Created
May 6, 2018 05:46
-
-
Save tarunon/5428dab8b75cab63b47635bc28a155bf to your computer and use it in GitHub Desktop.
Don't compile me.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public struct _ModelX<_ModelN: Codable>: Codable { | |
public var model0: _ModelN | |
public var model1: Bool? | |
public var model2: Bool? | |
public var model3: Bool? | |
public var model4: Bool? | |
public var model5: Bool? | |
public var model6: Bool? | |
public var model7: Bool? | |
public var model8: Bool? | |
public var model9: Bool? | |
public var model10: Bool? | |
public var model11: Bool? | |
public var model12: Bool? | |
public var model13: Bool? | |
public var model14: Bool? | |
public var model15: Bool? | |
public var model16: Bool? | |
public var model17: Bool? | |
public var model18: Bool? | |
public var model19: Bool? | |
} | |
public typealias ModelX = _ModelX<Bool?> | |
public protocol ModelXConvertible { | |
func asModelX() -> ModelX | |
} | |
extension _ModelX: ModelXConvertible { | |
public func asModelX() -> ModelX { | |
return ModelX( | |
model1: model1, | |
model0: (model0 as _ModelN) as? Bool, | |
model2: model2, | |
model3: model3, | |
model4: model4, | |
model5: model5, | |
model6: model6, | |
model7: model7, | |
model8: model8, | |
model9: model9, | |
model10: model10, | |
model11: model11, | |
model12: model12, | |
model13: model13, | |
model14: model14, | |
model15: model15, | |
model16: model16, | |
model17: model17, | |
model18: model18, | |
model19: model19 | |
) | |
} | |
} | |
public extension ModelXConvertible { | |
public var model0: Bool? { return asModelX().model0 } | |
public var model1: Bool? { return asModelX().model1 } | |
public var model2: Bool? { return asModelX().model2 } | |
public var model3: Bool? { return asModelX().model3 } | |
public var model4: Bool? { return asModelX().model4 } | |
public var model5: Bool? { return asModelX().model5 } | |
public var model6: Bool? { return asModelX().model6 } | |
public var model7: Bool? { return asModelX().model7 } | |
public var model8: Bool? { return asModelX().model8 } | |
public var model9: Bool? { return asModelX().model9 } | |
public var model10: Bool? { return asModelX().model10 } | |
public var model11: Bool? { return asModelX().model11 } | |
public var model12: Bool? { return asModelX().model12 } | |
public var model13: Bool? { return asModelX().model13 } | |
public var model14: Bool? { return asModelX().model14 } | |
public var model15: Bool? { return asModelX().model15 } | |
public var model16: Bool? { return asModelX().model16 } | |
public var model17: Bool? { return asModelX().model17 } | |
public var model18: Bool? { return asModelX().model18 } | |
public var model19: Bool? { return asModelX().model19 } | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment