Juniper Tyree
Juniper Tyree
With #253 the test case would pass, but: ### 1. Unit variants now deserialize to `Value::String` instead of `Value::Unit`: ```rust // No longer works assert_eq!("Foo".parse(), Ok(Value::Unit)); // This is now...
@torkleyy @kvark What do you think about this tradeoff? I could try to reopen and refactor #253.
Maybe at least part of `#4` could be solved by adding some extra functionality to `Value` when doing non-self-describing deserialization.
Ok, I played around with it a bit more to get a feel of what a rough implementation could look like. It's essentially #253 but with (a) a fix that...
You can have a look here https://github.com/ron-rs/ron/compare/master...MomoLangenstein:253-untagged-enums to see roughly what would be changed.
I guess my summary is that - it is possible - only `Value` and `deserialize_any` are affected at all - the semantics of `Value` change a bit as anything struct-like...
@NiklasEi I haven't done any more work on this since. If there is interest, I could definitely have another look and see if I could resolve some of the issues...
One could get flattening to work with this slightly frightening code: ```rust fn deserialize_map(mut self, visitor: V) -> Result where V: Visitor
You can find a more refined implementation with some first test cases in #403 - I'm not sure if this is the right path forward, though.
?r @torkleyy