Here's the deal : I'm making a level editor for a game, and I'd like to try to support modded content. Is there some way, when initialising from a Decoder, that I could ask it to "Give me the rest of the data" ?
Something like :
var json = "{\"name\" : \"test\", \"modData\" : 35}"
struct Something : Codable {
var name : String
var additional : [String : any Codable] // Possibly the wrong type
private enum CodingKeys : String, CodingKey {
case name, additional
}
init(from decoder : Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
name = container.decode(String.self, forKey: .name)
additional = //Is there any way to get modded data out here ?
}
}
The idea being that modData is something I couldn't possibly have known about when implementing the thing, but I still retain some level of compatibility with like showing it in the inspector and allowing you to change its value.
I'm almost certain this is impossible, but maybe I'm missing something.