After following the serde documentation on serializing a struct
use serde::ser::{Serialize, Serializer, SerializeStruct};
#[derive(Debug, Clone)]
pub struct Message {
pub sender_id: usize,
pub receiver_id: usize,
pub message: String,
}
impl Serialize for Message {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: Serializer
{
let mut state = serializer.serialize_struct("Message", 3);
state.serialize_field("sender_id", &self.sender_id)?;
state.serialize_field("receiver_id", &self.receiver_id)?;
state.serialize_field("message", &self.message)?;
state.end()
}
}
I get this error
state.serialize_field("sender_id", &self.sender_id)?;
| ^^^^^^^^^^^^^^^ method not found in `Result<<S as Serializer>::SerializeStruct, <S as Serializer>::Error>`
error[E0599]: no method named `serialize_field` found for enum `Result` in the current scope
--> src/main.rs:37:15