pub struct Message {
pub src: String,
pub dest: String,
pub body: MessageBody,
}
Expand description
Message represents a message sent from Src node to Dest node.
The body is stored as parsed MessageBody
along with the original string
and all extra fields.
Fields§
§src: String
§dest: String
§body: MessageBody
Implementations§
Source§impl Message
impl Message
Sourcepub fn get_type(&self) -> &str
pub fn get_type(&self) -> &str
Examples found in repository?
More examples
examples/echo_failure.rs (line 29)
28 async fn process(&self, runtime: Runtime, message: Message) -> Result<()> {
29 if message.get_type() == "echo" {
30 if self.inter.fetch_add(1, Ordering::SeqCst) > 0 {
31 let err = maelstrom::Error::TemporarilyUnavailable {};
32 let body = ErrorMessageBody::from_error(err);
33 return runtime.reply(message, body).await;
34 }
35
36 let echo = format!("Another echo {}", message.body.msg_id);
37 let msg = Value::Object(Map::from_iter([("echo".to_string(), Value::String(echo))]));
38 return runtime.reply(message, msg).await;
39 }
40
41 done(runtime, message)
42 }
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Message
impl<'de> Deserialize<'de> for Message
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for Message
impl StructuralPartialEq for Message
Auto Trait Implementations§
impl Freeze for Message
impl RefUnwindSafe for Message
impl Send for Message
impl Sync for Message
impl Unpin for Message
impl UnwindSafe for Message
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more