Struct gear_core::message::MessageContext
source · pub struct MessageContext { /* private fields */ }
Expand description
Context of currently processing incoming message.
Implementations§
source§impl MessageContext
impl MessageContext
sourcepub fn new(
dispatch: IncomingDispatch,
program_id: ProgramId,
settings: ContextSettings,
) -> Option<Self>
pub fn new( dispatch: IncomingDispatch, program_id: ProgramId, settings: ContextSettings, ) -> Option<Self>
Create new message context.
Returns None
if outgoing messages bytes limit exceeded.
sourcepub fn settings(&self) -> &ContextSettings
pub fn settings(&self) -> &ContextSettings
Getter for inner settings.
sourcepub fn reply_sent(&self) -> bool
pub fn reply_sent(&self) -> bool
Return bool defining was reply sent within the execution.
sourcepub fn init_program(
&mut self,
packet: InitPacket,
delay: u32,
) -> Result<(MessageId, ProgramId), Error>
pub fn init_program( &mut self, packet: InitPacket, delay: u32, ) -> Result<(MessageId, ProgramId), Error>
Send a new program initialization message.
Generates a new message from provided data packet. Returns message id and generated program id.
sourcepub fn send_commit(
&mut self,
handle: u32,
packet: HandlePacket,
delay: u32,
reservation: Option<ReservationId>,
) -> Result<MessageId, Error>
pub fn send_commit( &mut self, handle: u32, packet: HandlePacket, delay: u32, reservation: Option<ReservationId>, ) -> Result<MessageId, Error>
Send a new program initialization message.
Generates message from provided data packet and stored by handle payload. Returns message id.
sourcepub fn send_init(&mut self) -> Result<u32, Error>
pub fn send_init(&mut self) -> Result<u32, Error>
Provide space for storing payload for future message creation.
Returns it’s handle.
sourcepub fn send_push(&mut self, handle: u32, buffer: &[u8]) -> Result<(), Error>
pub fn send_push(&mut self, handle: u32, buffer: &[u8]) -> Result<(), Error>
Pushes payload into stored payload by handle.
sourcepub fn send_push_input(
&mut self,
handle: u32,
range: CheckedRange,
) -> Result<(), Error>
pub fn send_push_input( &mut self, handle: u32, range: CheckedRange, ) -> Result<(), Error>
Pushes the incoming buffer/payload into stored payload by handle.
sourcepub fn check_input_range(
&self,
offset: u32,
len: u32,
) -> Result<CheckedRange, Error>
pub fn check_input_range( &self, offset: u32, len: u32, ) -> Result<CheckedRange, Error>
Check if provided offset
/len
are correct for the current payload
limits. Result CheckedRange
instance is accepted by
send_push_input
/reply_push_input
and has the method len
allowing to charge gas before the calls.
sourcepub fn reply_commit(
&mut self,
packet: ReplyPacket,
reservation: Option<ReservationId>,
) -> Result<MessageId, ExtError>
pub fn reply_commit( &mut self, packet: ReplyPacket, reservation: Option<ReservationId>, ) -> Result<MessageId, ExtError>
Send reply message.
Generates reply from provided data packet and stored reply payload. Returns message id.
sourcepub fn reply_push(&mut self, buffer: &[u8]) -> Result<(), ExtError>
pub fn reply_push(&mut self, buffer: &[u8]) -> Result<(), ExtError>
Pushes payload into stored reply payload.
sourcepub fn reply_destination(&self) -> ProgramId
pub fn reply_destination(&self) -> ProgramId
Return reply destination.
sourcepub fn reply_push_input(&mut self, range: CheckedRange) -> Result<(), ExtError>
pub fn reply_push_input(&mut self, range: CheckedRange) -> Result<(), ExtError>
Pushes the incoming message buffer into stored reply payload.
sourcepub fn wake(&mut self, waker_id: MessageId, delay: u32) -> Result<(), Error>
pub fn wake(&mut self, waker_id: MessageId, delay: u32) -> Result<(), Error>
Wake message by it’s message id.
sourcepub fn reply_deposit(
&mut self,
message_id: MessageId,
amount: u64,
) -> Result<(), MessageError>
pub fn reply_deposit( &mut self, message_id: MessageId, amount: u64, ) -> Result<(), MessageError>
Create deposit to handle future reply on message id was sent.
sourcepub fn current(&self) -> &IncomingMessage
pub fn current(&self) -> &IncomingMessage
Current processing incoming message.
sourcepub fn payload_mut(&mut self) -> &mut Payload
pub fn payload_mut(&mut self) -> &mut Payload
Mutable reference to currently processed incoming message.
sourcepub fn program_id(&self) -> ProgramId
pub fn program_id(&self) -> ProgramId
Current program’s id.
sourcepub fn drain(self) -> (ContextOutcome, ContextStore)
pub fn drain(self) -> (ContextOutcome, ContextStore)
Destructs context after execution and returns provided outcome and store.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for MessageContext
impl RefUnwindSafe for MessageContext
impl Send for MessageContext
impl Sync for MessageContext
impl Unpin for MessageContext
impl UnwindSafe for MessageContext
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
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.