adding start of introspection
This commit is contained in:
parent
2a0cc5e27b
commit
0e7288c2ba
|
@ -6,11 +6,36 @@
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|
||||||
class StORM {
|
open class StORM {
|
||||||
var cursor = StORMCursor()
|
// open var connection = StORMConnect() // covariant?
|
||||||
var error = StORMError()
|
// open var cursor = StORMCursor()
|
||||||
var results = StORMResultSet()
|
open var results = StORMResultSet()
|
||||||
var connection = StORMConnect()
|
open var error = StORMError()
|
||||||
|
|
||||||
|
public init() {}
|
||||||
|
|
||||||
|
// introspection of structure
|
||||||
|
public func cols() -> [String:Any] {
|
||||||
|
var c = [String:Any]()
|
||||||
|
|
||||||
|
let mirror = Mirror(reflecting: self)
|
||||||
|
for child in mirror.children {
|
||||||
|
guard let key = child.label else {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
c[key] = type(of:child.value)
|
||||||
|
}
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public func firstAsKey() -> (String, Any) {
|
||||||
|
let mirror = Mirror(reflecting: self)
|
||||||
|
for case let (label?, value) in mirror.children {
|
||||||
|
return (label, value)
|
||||||
|
}
|
||||||
|
return ("id", "unknown")
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
//
|
||||||
|
// StORMProtocol.swift
|
||||||
|
// StORM
|
||||||
|
//
|
||||||
|
// Created by Jonathan Guthrie on 2016-09-30.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
Loading…
Reference in New Issue