@@ -9,25 +9,56 @@ namespace GitHub.Unity
99 [ Serializable ]
1010 public struct ConfigRemote
1111 {
12- public string Name ;
13- public string Url ;
12+ public static ConfigRemote Default = new ConfigRemote ( String . Empty , String . Empty ) ;
13+
14+ public string name ;
15+ public string url ;
16+
17+ public ConfigRemote ( string name , string url )
18+ {
19+ this . name = name ;
20+ this . url = url ;
21+ }
22+
23+ public string Name => name ;
24+
25+ public string Url => url ;
1426
1527 public override string ToString ( )
1628 {
17- return String . Format ( "{{Remote {0 } {1 }}}" , Name , Url ) ;
29+ return $ "{{Remote { Name } { Url } }}";
1830 }
1931 }
2032
2133 [ Serializable ]
2234 public struct ConfigBranch
2335 {
24- public string Name ;
25- public ConfigRemote ? Remote ;
36+ public static ConfigBranch Default = new ConfigBranch ( String . Empty ) ;
37+
38+ public string name ;
39+ public ConfigRemote remote ;
40+
41+ public ConfigBranch ( string name )
42+ {
43+ this . name = name ;
44+ remote = ConfigRemote . Default ;
45+ }
46+
47+ public ConfigBranch ( string name , ConfigRemote ? remote )
48+ {
49+ this . name = name ;
50+ this . remote = remote ?? ConfigRemote . Default ;
51+ }
52+
2653 public bool IsTracking => Remote . HasValue ;
2754
55+ public string Name => name ;
56+
57+ public ConfigRemote ? Remote => Equals ( remote , ConfigRemote . Default ) ? ( ConfigRemote ? ) null : remote ;
58+
2859 public override string ToString ( )
2960 {
30- return String . Format ( "{{Branch {0 } {1}}}" , Name , Remote ? . ToString ( ) ?? "Untracked" ) ;
61+ return $ "{{Branch { Name } { Remote ? . ToString ( ) ?? "Untracked" } }}" ;
3162 }
3263 }
3364
@@ -74,11 +105,7 @@ public IEnumerable<ConfigBranch> GetBranches()
74105 return groups
75106 . Where ( x => x . Key == "branch" )
76107 . SelectMany ( x => x . Value )
77- . Select ( x => new ConfigBranch
78- {
79- Name = x . Key ,
80- Remote = GetRemote ( x . Value . TryGetString ( "remote" ) )
81- } ) ;
108+ . Select ( x => new ConfigBranch ( x . Key , GetRemote ( x . Value . TryGetString ( "remote" ) ) ) ) ;
82109 }
83110
84111 public IEnumerable < ConfigRemote > GetRemotes ( )
@@ -87,11 +114,7 @@ public IEnumerable<ConfigRemote> GetRemotes()
87114 . Where ( x => x . Key == "remote" )
88115 . SelectMany ( x => x . Value )
89116 . Where ( x => x . Value . TryGetString ( "url" ) != null )
90- . Select ( x => new ConfigRemote
91- {
92- Name = x . Key ,
93- Url = x . Value . TryGetString ( "url" )
94- } ) ;
117+ . Select ( x => new ConfigRemote ( x . Key , x . Value . TryGetString ( "url" ) ) ) ;
95118 }
96119
97120 public ConfigRemote ? GetRemote ( string remote )
@@ -100,11 +123,7 @@ public IEnumerable<ConfigRemote> GetRemotes()
100123 . Where ( x => x . Key == "remote" )
101124 . SelectMany ( x => x . Value )
102125 . Where ( x => x . Key == remote && x . Value . TryGetString ( "url" ) != null )
103- . Select ( x => new ConfigRemote
104- {
105- Name = x . Key ,
106- Url = x . Value . GetString ( "url" )
107- } as ConfigRemote ? )
126+ . Select ( x => new ConfigRemote ( x . Key , x . Value . GetString ( "url" ) ) as ConfigRemote ? )
108127 . FirstOrDefault ( ) ;
109128 }
110129
@@ -114,11 +133,7 @@ public IEnumerable<ConfigRemote> GetRemotes()
114133 . Where ( x => x . Key == "branch" )
115134 . SelectMany ( x => x . Value )
116135 . Where ( x => x . Key == branch )
117- . Select ( x => new ConfigBranch
118- {
119- Name = x . Key ,
120- Remote = GetRemote ( x . Value . TryGetString ( "remote" ) )
121- } as ConfigBranch ? )
136+ . Select ( x => new ConfigBranch ( x . Key , GetRemote ( x . Value . TryGetString ( "remote" ) ) ) as ConfigBranch ? )
122137 . FirstOrDefault ( ) ;
123138 }
124139
0 commit comments