pub struct Message { /* private fields */ }Expand description
Represents a message that can be sent between scripts or from the engine.
§Example
// Define a message type, has to implement Serialize and Deserialize
#[derive(Serialize, Deserialize)]
struct TestMessage {
value: i32,
}
// Register the message type
message_type!(TestMessage, "test", "message");Implementations§
Source§impl Message
impl Message
Sourcepub fn new<T: MessageType>(value: &T) -> Self
pub fn new<T: MessageType>(value: &T) -> Self
Creates a new message with the given value.
Sourcepub fn meta(&self) -> &MessageMeta
pub fn meta(&self) -> &MessageMeta
Returns the message type metadata.
Sourcepub fn source(&self) -> &MessageSource
pub fn source(&self) -> &MessageSource
Returns the source of the message.
Sourcepub fn value<T: MessageType>(&self) -> Result<T, MessageValueError>
pub fn value<T: MessageType>(&self) -> Result<T, MessageValueError>
Returns the message value as the given type. Returns a MessageValueError if the message has a different type.
Sourcepub fn has_type<T: MessageType>(&self) -> bool
pub fn has_type<T: MessageType>(&self) -> bool
Returns true if the message has the given type.
Sourcepub fn handle<T: MessageType>(
&self,
f: impl FnOnce(T) -> Result<(), Box<dyn Error>>,
) -> Result<bool, MessageHandleError>
pub fn handle<T: MessageType>( &self, f: impl FnOnce(T) -> Result<(), Box<dyn Error>>, ) -> Result<bool, MessageHandleError>
Handle the message with the given handler function.
Returns Ok(true) if the message was handled, Ok(false) if the message has a different type,
or Err if the message could not be deserialized or the handler function returned an error.
The handler function should return Ok(()) if the message was handled successfully.
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
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