Я не могу сделать свою структуру кодируемой/декодируемой:
enum MyEnum {
Enum1,
Enum2,
Enum3,
}
#[derive(RustcDecodable, RustcEncodable)]
pub struct MyStruct {
val1: MyEnum,
val2: i32,
val3 : BTreeMap<i64, Json>,
}
Ошибки:
the trait `rustc_serialize::serialize::Decodable` is not implemented for the type `rustc_serialize::json::Json`
the trait `rustc_serialize::serialize::Decodable` is not implemented for the type `rustc_serialize::json::MyEnum`
Я смущен тем, что мне нужно реализовать?
Вместо RustcEncodable
мне нужно реализовать ToJson#to_json
. А как же RustcDecodable
? Нет черты FromJson#from_json
В документации написано rustc_serialize::Decodable/Encodable
Но нужен ли мне Decodable
, если есть ToJson#to_json
?
В любом случае, вопрос в том, как сделать мою собственную структуру кодируемой и декодируемой из JSON?
MyEnum
с помощью#[derive(RustcDecodable, RustcEncodable)]
? Не могли бы вы также объяснить, почему вы хотите иметь полеval3: BTreeMap<i64, Json>
, в частности, что оно может представлять? - person Shepmaster   schedule 20.09.2015