Skip to content

7.0.0 - Rename deserialization protocols for clarity, improve usability of error types, etc.

Compare
Choose a tag to compare
@drmohundro drmohundro released this 07 May 01:04
· 22 commits to main since this release

Renaming XMLIndexerDeserializable protocol and Adding XMLValueDeserialization protocol

I renamed XMLIndexerDeserializable to be XMLObjectDeserialization - its purpose is to deserialize object structures like classes or structs. So, multiple values. Then, there is a new protocol named XMLValueDeserialization - it serves the purpose of both XMLElementDeserializable and XMLAttributeDeserializable. It is only used for custom value deserialization. I hope this will clarify the usage a lot. It makes sense to me anyway!

This should cover the use case at #148.

Usability of Errors

Multiple times when helping people, I'd notice that the nodeIsInvalid error would get thrown, but the error message was just about impossible to determine what was wrong. The code had implemented CustomStringConvertible but everyone was using localizedDescription. Now, errors implement LocalizedError, too, so it is a lot more obvious to see the elements that had caused issues.

Code Reorganization

The code had all been lumped into two Swift files since the beginning. It was unwieldy then, but it has just gotten worse. So I gave in and broke them all out into their own files by type. Much better.