Completely refactor deserialization (also remove unnecessary constructors/getters/setters, and remove "ref").
Deserialization now uses serde derives and attributes rather than visitor structs.
Thank you for taking the time to review this pull request. I've removed .to_string() calls inside the write! macro, and swapped out the enum name for the full version.
Completely refactor deserialization (also remove unnecessary constructors/getters/setters, and remove "ref"). Deserialization now uses serde derives and attributes rather than visitor structs.