Swift 4's new
Codable protocol makes it much simpler to serialize Swift objects. The built-in
PlistEncoder encode and decode JSON and plist, but what about when you need to use other formats?
Writing a custom encoder is fairly complex, so Serializer takes care of that for you. Serializer converts your Swift objects into a simple
enum, which you can easily traverse and write to a file format of your choice.
All you have to do is implement the
Serializer protocol and create a method called
serialize, which encodes a
Serializable enum into your custom format. Decoding is similar -- add the
Deserializer protocol, with a
deserialize method which converts your custom format into a
Serializable. Here's an example serializer and deserializer for the NBT file format.