Skip to content

Commit bb1df14

Browse files
committed
Clean up IndexSymbolKind enum.
1 parent f8a8ee8 commit bb1df14

File tree

1 file changed

+95
-77
lines changed

1 file changed

+95
-77
lines changed

Sources/IndexStoreDB/IndexStoreDB.swift

Lines changed: 95 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -159,82 +159,36 @@ public struct SymbolRole: OptionSet {
159159
}
160160
}
161161

162-
public enum IndexSymbolKindEnum: Int {
163-
case unknown = 0,
164-
module,
165-
namespace,
166-
namespaceAlias,
167-
macro,
168-
`enum`,
169-
`struct`,
170-
`class`,
171-
`protocol`,
172-
`extension`,
173-
union,
174-
`typealias`,
175-
function,
176-
variable,
177-
field,
178-
enumConstant,
179-
instanceMethod,
180-
classMethod,
181-
staticMethod,
182-
instanceProperty,
183-
classProperty,
184-
staticProperty,
185-
constructor,
186-
destructor,
187-
conversionFunction,
188-
parameter,
189-
using
190-
191-
case commentTag = 1000
192-
193-
public init?(cValue: indexstoredb_symbol_kind_t) {
194-
self.init(rawValue: Int(cValue.rawValue))
195-
}
196-
}
197-
198-
public struct IndexSymbolKind: RawRepresentable {
199-
public var rawValue: Int
200-
201-
public static let unknown: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_UNKNOWN)
202-
public static let module: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_MODULE)
203-
public static let namespace: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_NAMESPACE)
204-
public static let namespaceAlias: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_NAMESPACEALIAS)
205-
public static let macro: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_MACRO)
206-
public static let `enum`: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_ENUM)
207-
public static let `struct`: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_STRUCT)
208-
public static let `class`: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_CLASS)
209-
public static let `protocol`: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_PROTOCOL)
210-
public static let `extension`: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_EXTENSION)
211-
public static let union: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_UNION)
212-
public static let `typealias`: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_TYPEALIAS)
213-
public static let function: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_FUNCTION)
214-
public static let variable: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_VARIABLE)
215-
public static let field: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_FIELD)
216-
public static let enumConstant: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_ENUMCONSTANT)
217-
public static let instanceMethod: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_INSTANCEMETHOD)
218-
public static let classMethod: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_CLASSMETHOD)
219-
public static let staticMethod: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_STATICMETHOD)
220-
public static let instanceProperty: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_INSTANCEPROPERTY)
221-
public static let classProperty: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_CLASSPROPERTY)
222-
public static let staticProperty: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_STATICPROPERTY)
223-
public static let constructor: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_CONSTRUCTOR)
224-
public static let destructor: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_DESTRUCTOR)
225-
public static let conversionFunction: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_CONVERSIONFUNCTION)
226-
public static let parameter: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_PARAMETER)
227-
public static let using: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_USING)
228-
229-
public static let commentTag: IndexSymbolKind = IndexSymbolKind(rawValue: INDEXSTOREDB_SYMBOL_KIND_COMMENTTAG)
230-
231-
public init(rawValue: Int) {
232-
self.rawValue = rawValue
233-
}
234-
235-
public init(rawValue: indexstoredb_symbol_kind_t) {
236-
self.rawValue = Int(rawValue.rawValue)
237-
}
162+
public enum IndexSymbolKind {
163+
case unknown
164+
case module
165+
case namespace
166+
case namespaceAlias
167+
case macro
168+
case `enum`
169+
case `struct`
170+
case `class`
171+
case `protocol`
172+
case `extension`
173+
case union
174+
case `typealias`
175+
case function
176+
case variable
177+
case field
178+
case enumConstant
179+
case instanceMethod
180+
case classMethod
181+
case staticMethod
182+
case instanceProperty
183+
case classProperty
184+
case staticProperty
185+
case constructor
186+
case destructor
187+
case conversionFunction
188+
case parameter
189+
case using
190+
191+
case commentTag
238192
}
239193

240194
public final class Symbol {
@@ -243,7 +197,7 @@ public final class Symbol {
243197

244198
public lazy var usr: String = String(cString: indexstoredb_symbol_usr(value))
245199
public lazy var name: String = String(cString: indexstoredb_symbol_name(value))
246-
public lazy var kind = IndexSymbolKind(rawValue: indexstoredb_symbol_kind(value))
200+
public lazy var kind: IndexSymbolKind = getSymbolKind(from: indexstoredb_symbol_kind(value))
247201

248202
init(_ value: indexstoredb_symbol_t) {
249203
self.value = value
@@ -252,6 +206,70 @@ public final class Symbol {
252206
deinit {
253207
indexstoredb_release(value)
254208
}
209+
210+
func getSymbolKind(from cSymbolKind: indexstoredb_symbol_kind_t) -> IndexSymbolKind {
211+
switch cSymbolKind {
212+
case INDEXSTOREDB_SYMBOL_KIND_UNKNOWN:
213+
return .unknown
214+
case INDEXSTOREDB_SYMBOL_KIND_MODULE:
215+
return .module
216+
case INDEXSTOREDB_SYMBOL_KIND_NAMESPACE:
217+
return .namespace
218+
case INDEXSTOREDB_SYMBOL_KIND_NAMESPACEALIAS:
219+
return .namespaceAlias
220+
case INDEXSTOREDB_SYMBOL_KIND_MACRO:
221+
return .macro
222+
case INDEXSTOREDB_SYMBOL_KIND_ENUM:
223+
return .enum
224+
case INDEXSTOREDB_SYMBOL_KIND_STRUCT:
225+
return .struct
226+
case INDEXSTOREDB_SYMBOL_KIND_CLASS:
227+
return .class
228+
case INDEXSTOREDB_SYMBOL_KIND_PROTOCOL:
229+
return .protocol
230+
case INDEXSTOREDB_SYMBOL_KIND_EXTENSION:
231+
return .extension
232+
case INDEXSTOREDB_SYMBOL_KIND_UNION:
233+
return .union
234+
case INDEXSTOREDB_SYMBOL_KIND_TYPEALIAS:
235+
return .typealias
236+
case INDEXSTOREDB_SYMBOL_KIND_FUNCTION:
237+
return .function
238+
case INDEXSTOREDB_SYMBOL_KIND_VARIABLE:
239+
return .variable
240+
case INDEXSTOREDB_SYMBOL_KIND_FIELD:
241+
return .field
242+
case INDEXSTOREDB_SYMBOL_KIND_ENUMCONSTANT:
243+
return .enumConstant
244+
case INDEXSTOREDB_SYMBOL_KIND_INSTANCEMETHOD:
245+
return .instanceMethod
246+
case INDEXSTOREDB_SYMBOL_KIND_CLASSMETHOD:
247+
return .classMethod
248+
case INDEXSTOREDB_SYMBOL_KIND_STATICMETHOD:
249+
return .staticMethod
250+
case INDEXSTOREDB_SYMBOL_KIND_INSTANCEPROPERTY:
251+
return .instanceProperty
252+
case INDEXSTOREDB_SYMBOL_KIND_CLASSPROPERTY:
253+
return .classProperty
254+
case INDEXSTOREDB_SYMBOL_KIND_STATICPROPERTY:
255+
return .staticProperty
256+
case INDEXSTOREDB_SYMBOL_KIND_CONSTRUCTOR:
257+
return .constructor
258+
case INDEXSTOREDB_SYMBOL_KIND_DESTRUCTOR:
259+
return .destructor
260+
case INDEXSTOREDB_SYMBOL_KIND_CONVERSIONFUNCTION:
261+
return .conversionFunction
262+
case INDEXSTOREDB_SYMBOL_KIND_PARAMETER:
263+
return .parameter
264+
case INDEXSTOREDB_SYMBOL_KIND_USING:
265+
return .using
266+
267+
case INDEXSTOREDB_SYMBOL_KIND_COMMENTTAG:
268+
return .commentTag
269+
default:
270+
return .unknown
271+
}
272+
}
255273
}
256274

257275
public struct SymbolLocation {

0 commit comments

Comments
 (0)