Я пытаюсь взять json, который выглядит так:
{
"foo": "bar",
"name": "some name"
}
и используйте serde
для десериализации в такую структуру данных:
#[derive(Clone, PartialEq, Debug)]
pub struct Quux {
foo: Foo,
name: String,
}
pub enum Foo {
Bar,
Baz,
}
У меня есть код, но, честно говоря, это довольно просто из serde
руководства по «десериализации без макросов», и я не совсем уверен, что мне нужно сделать, чтобы заставить его десериализовать поле foo
в Foo
.
Я реализовал Deserialize
для Foo
перечисления, которого, как я думал, будет достаточно для вызова visitor.visit_value()
в моем impl serde::de::Vistor for QuuxVisitor
, чтобы вызвать эту версию deserialize
, но, похоже, это не так.
Ошибка, которую я получаю при попытке десериализации до Quux
, равна called 'Result::unwrap()' on an 'Err' value: SyntaxError("expected value", 2, 20)
, но если я изменю Quux
на использование String
для foo
вместо Foo
, десериализация будет выполнена нормально.