1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import Realm
- public protocol RealmOptionalType {
- }
- public extension RealmOptionalType {
-
- static func className() -> String {
- return ""
- }
- }
- extension Int: RealmOptionalType {}
- extension Int8: RealmOptionalType {}
- extension Int16: RealmOptionalType {}
- extension Int32: RealmOptionalType {}
- extension Int64: RealmOptionalType {}
- extension Float: RealmOptionalType {}
- extension Double: RealmOptionalType {}
- extension Bool: RealmOptionalType {}
- public final class RealmOptional<Value: RealmOptionalType>: RLMOptionalBase {
-
- public var value: Value? {
- get {
- return RLMGetOptional(self).map(dynamicBridgeCast)
- }
- set {
- RLMSetOptional(self, newValue.map(dynamicBridgeCast))
- }
- }
-
- public init(_ value: Value? = nil) {
- super.init()
- self.value = value
- }
- }
- extension RealmOptional: Codable where Value: Codable {
- public convenience init(from decoder: Decoder) throws {
- self.init()
-
-
- let container = try decoder.singleValueContainer()
- self.value = container.decodeNil() ? nil : try container.decode(Value.self)
- }
- public func encode(to encoder: Encoder) throws {
- try self.value.encode(to: encoder)
- }
- }
- internal protocol RealmOptionalProtocol { }
- extension RealmOptional: RealmOptionalProtocol { }
|