Struct lotus_script::message::Message
source · pub struct Message { /* private fields */ }
Expand description
Represents a message that can be sent between scripts or from the engine.
§Example
#[derive(Serialize, Deserialize)]
struct TestMessage {
value: i32,
}
impl MessageType for TestMessage {
fn id() -> &'static str {
"test_message"
}
}
fn handle(message: &Message) {
message.handle::<TestMessage>(|m| {
log::info!("Received message: {}", m.value);
Ok(())
}).expect("message handle failed");
}
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 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.
sourcepub fn send(&self, _target: MessageTarget)
pub fn send(&self, _target: MessageTarget)
Sends the message to the given target.
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