66//
77
88public struct Property : Hashable , Node {
9-
9+
1010 public var accessLevel : AccessLevel = . default
11-
11+
1212 public var objc = false
13-
13+
1414 public var `static` = false
15-
15+
1616 public let variable : Variable
17-
17+
1818 public var value : VariableValue ?
19-
20-
19+
2120 public init ( variable: Variable ) {
2221 self . variable = variable
2322 }
24-
23+
2524 public func with( accessLevel: AccessLevel ) -> Property {
2625 var _self = self
2726 _self. accessLevel = accessLevel
2827 return _self
2928 }
30-
29+
3130 public func with( objc: Bool ) -> Property {
3231 var _self = self
3332 _self. objc = objc
3433 return _self
3534 }
36-
35+
3736 public func with( static: Bool ) -> Property {
3837 var _self = self
3938 _self. static = `static`
4039 return _self
4140 }
42-
41+
4342 public func with( value: VariableValue ? ) -> Property {
4443 var _self = self
4544 _self. value = value
@@ -50,18 +49,18 @@ public struct Property: Hashable, Node {
5049extension Property : TypeBodyMember { }
5150
5251public struct ProtocolProperty : Hashable , Node {
53-
52+
5453 public let name : String
55-
54+
5655 public let type : TypeIdentifier
57-
56+
5857 public var setter = false
59-
58+
6059 public init ( name: String , type: TypeIdentifier ) {
6160 self . name = name
6261 self . type = type
6362 }
64-
63+
6564 public func with( setter: Bool ) -> ProtocolProperty {
6665 var _self = self
6766 _self. setter = setter
@@ -72,43 +71,51 @@ public struct ProtocolProperty: Hashable, Node {
7271extension ProtocolProperty : TypeBodyMember { }
7372
7473public struct ComputedProperty : Hashable , Node {
75-
74+
7675 public var accessLevel : AccessLevel = . default
77-
76+
7877 public var objc = false
79-
78+
79+ public var `static` = false
80+
8081 public let variable : Variable
81-
82+
8283 public var body : [ FunctionBodyMember ] = [ ]
83-
84+
8485 public init ( variable: Variable ) {
8586 self . variable = variable
8687 }
87-
88+
8889 public func with( accessLevel: AccessLevel ) -> ComputedProperty {
8990 var _self = self
9091 _self. accessLevel = accessLevel
9192 return _self
9293 }
93-
94+
9495 public func with( objc: Bool ) -> ComputedProperty {
9596 var _self = self
9697 _self. objc = objc
9798 return _self
9899 }
99-
100+
101+ public func with( static: Bool ) -> ComputedProperty {
102+ var _self = self
103+ _self. static = `static`
104+ return _self
105+ }
106+
100107 public func with( body: [ FunctionBodyMember ] ) -> ComputedProperty {
101108 var _self = self
102109 _self. body = body
103110 return _self
104111 }
105-
112+
106113 public func adding( member: FunctionBodyMember ? ) -> ComputedProperty {
107114 var _self = self
108115 _self. body += [ member ] . compactMap { $0 }
109116 return _self
110117 }
111-
118+
112119 public func adding( members: [ FunctionBodyMember ] ) -> ComputedProperty {
113120 var _self = self
114121 _self. body += members
@@ -119,55 +126,55 @@ public struct ComputedProperty: Hashable, Node {
119126extension ComputedProperty : TypeBodyMember { }
120127
121128public struct GetterSetter : Hashable , Node {
122-
129+
123130 public var accessLevel : AccessLevel = . default
124-
131+
125132 public let variable : Variable
126-
133+
127134 public var getterBody : [ FunctionBodyMember ] ?
128-
135+
129136 public var setterBody : [ FunctionBodyMember ] ?
130-
137+
131138 public init ( variable: Variable ) {
132139 self . variable = variable
133140 }
134-
141+
135142 public func with( accessLevel: AccessLevel ) -> GetterSetter {
136143 var _self = self
137144 _self. accessLevel = accessLevel
138145 return _self
139146 }
140-
147+
141148 public func with( getter body: [ FunctionBodyMember ] ? ) -> GetterSetter {
142149 var _self = self
143150 _self. getterBody = body
144151 return _self
145152 }
146-
153+
147154 public func adding( getterMember: FunctionBodyMember ? ) -> GetterSetter {
148155 var _self = self
149156 _self. getterBody = ( _self. getterBody ?? [ ] ) + [ getterMember] . compactMap { $0 }
150157 return _self
151158 }
152-
159+
153160 public func adding( getterMember: [ FunctionBodyMember ] ) -> GetterSetter {
154161 var _self = self
155162 _self. getterBody = ( _self. getterBody ?? [ ] ) + getterMember
156163 return _self
157164 }
158-
165+
159166 public func with( setter body: [ FunctionBodyMember ] ? ) -> GetterSetter {
160167 var _self = self
161168 _self. setterBody = body
162169 return _self
163170 }
164-
171+
165172 public func adding( setterMember: FunctionBodyMember ? ) -> GetterSetter {
166173 var _self = self
167174 _self. setterBody = ( _self. setterBody ?? [ ] ) + [ setterMember] . compactMap { $0 }
168175 return _self
169176 }
170-
177+
171178 public func adding( setterMember: [ FunctionBodyMember ] ) -> GetterSetter {
172179 var _self = self
173180 _self. setterBody = ( _self. setterBody ?? [ ] ) + setterMember
@@ -180,38 +187,39 @@ extension GetterSetter: TypeBodyMember {}
180187// MARK: - MetaSwiftConvertible
181188
182189extension Property {
183-
190+
184191 public var swiftString : String {
185192 let objc = self . objc ? " @objc " : . empty
186193 let `static` = self . static ? " static " : . empty
187194 let value = self . value? . swiftString. prefixed ( " = " ) ?? . empty
188- return " \( objc) \( `static` ) \( accessLevel. swiftString. suffixed ( " " ) ) \( variable. swiftString) \( value) "
195+ return " \( objc) \( accessLevel. swiftString. suffixed ( " " ) ) \( `static` ) \( variable. swiftString) \( value) "
189196 }
190197}
191198
192199extension ProtocolProperty {
193-
200+
194201 public var swiftString : String {
195202 return " var \( name) : \( type. swiftString) { get \( setter ? " set " : . empty) } "
196203 }
197204}
198205
199206extension ComputedProperty {
200-
207+
201208 public var swiftString : String {
202209 let objc = self . objc ? " @objc " : . empty
210+ let `static` = self . static ? " static " : . empty
203211 return """
204- \( objc) \( accessLevel. swiftString. suffixed ( " " ) ) \( variable. with ( immutable: false ) . swiftString) {
212+ \( objc) \( accessLevel. swiftString. suffixed ( " " ) ) \( `static` ) \( variable. with ( immutable: false ) . swiftString) {
205213 \( body. map { $0. swiftString } . indented)
206214 }
207215 """
208216 }
209217}
210218
211219extension GetterSetter {
212-
220+
213221 public var swiftString : String {
214-
222+
215223 let getter : String
216224 if let getterBody = getterBody {
217225 getter = """
@@ -222,19 +230,19 @@ extension GetterSetter {
222230 } else {
223231 getter = . empty
224232 }
225-
233+
226234 let setter : String
227235 if let setterBody = setterBody {
228236 setter = """
229-
237+
230238 set {
231239 \( setterBody. map { $0. swiftString } . indented)
232240 }
233241 """
234242 } else {
235243 setter = . empty
236244 }
237-
245+
238246 return """
239247 \( accessLevel. swiftString. suffixed ( " " ) ) \( variable. with ( immutable: false ) . swiftString) {
240248 \( getter. indented) \( setter. indented)
0 commit comments