Я использую Rocket и пытаюсь создать Layout
структуру. Я реализовал serde::Serialize
, потому что в документации говорится, что второй аргумент статического метода Template::render
принимает структуру, реализующую Serialize
:
struct Layout {
data: String,
second: String,
}
impl Layout {
fn new(data: String, second: String) -> Layout {
Layout { data, second }
}
fn render(&self) -> Template {
Template::render("Layout", &self)
}
}
impl Serialize for Layout {
fn serialize<S>(&self, serialize: S) -> Result<S::Ok, S::Error>
where S: Serializer
{
let mut state = serializer.serialize_struct("Layout", 2);
state.serialize_field("data", &self.data)?;
state.serialize_field("second", &self.data)?;
state.end()
}
}
Я получаю ошибку
the trait `serde::ser::Serialize` is not implemented for `layout::Layout`
Что я сделал не так?