Well, it's a bit voluminous, and getting the generic creation function to compile was a bit strange, but this is what I ended up with:protocol SerializableType { static var serializableName: String { get } var serializableProperties: [String: Any] { get } init (serializedProperties: [String: Any]) } extension Int: SerializableType { static var serializableName: String { return Int } var serializableProperties: [String: Any] { return [value: self] } init (serializedProperties: [String: Any]) { self = serializedProperties [value] as! Int } } extension String: SerializableType { static var serializableName: String { return String } var serializableProperties: [String: Any] { return [value: self] } init (serializedProperties: [String: Any]) { self = serializedProperties [value] as! String } } struct A: SerializableType { static var serializableName: String { return A } var serializableProperties: [String: Any] { return [a1: a1, a2: a2] } init (a1: Int, a2: String) { self.a1 = a1 self.a2 = a2 } init (serializedPro
Topic:
Programming Languages
SubTopic:
Swift
Tags: