Здравствуйте!
- Как реализовать вектор из сериализуемых объектов неизвестных на этапе компиляции типов?
Вот такой вариант компилятор отвергает по причине ошибки E0038. А другие варианты что-то в голову не приходят.
#[derive(Serialize, Debug)]
struct Must {
must: Vec<Box<dyn Serialize>>
}
- Не компилируется своя реализация Serialize для структуры
#[derive(Debug)]
struct Term {
name: String,
value: TermValue
}
impl Serialize for Term {
fn serialize<S>(&self, serializer: S) -> ::std::result::Result<S::Ok, S::Error>
where S: Serializer {
let mut term = serializer.serialize_struct("Term", 1)?;
term.serialize_field(self.name, self.value.serialize(serializer))?;
term.end()
}
}
Компилятор утверждает, что нет методов serialize_field и end, хотя они явно есть, да и в примере код похожий.
Спасибо.