Moving stuff about, renaming
This commit is contained in:
17
Sources/HummingbirdMustache/Mirror.swift
Normal file
17
Sources/HummingbirdMustache/Mirror.swift
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
|
||||
func unwrapOptional(_ object: Any) -> Any? {
|
||||
let mirror = Mirror(reflecting: object)
|
||||
guard mirror.displayStyle == .optional else { return object }
|
||||
guard let first = mirror.children.first else { return nil }
|
||||
return first.value
|
||||
}
|
||||
|
||||
extension Mirror {
|
||||
func getValue(forKey key: String) -> Any? {
|
||||
guard let matched = children.filter({ $0.label == key }).first else {
|
||||
return nil
|
||||
}
|
||||
return unwrapOptional(matched.value)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user