pub struct PassthroughMode {
pub allowed_message_types: Vec<String>,
}Expand description
Generic extension mode handler for dynamically registered modes.
Accepts any message type listed in the mode descriptor. Commitment messages from the initiator resolve the session. All other messages are accepted and the payload is persisted as mode state.
Fields§
§allowed_message_types: Vec<String>Trait Implementations§
Source§impl Mode for PassthroughMode
impl Mode for PassthroughMode
fn on_session_start( &self, _session: &Session, _env: &Envelope, ) -> Result<ModeResponse, MacpError>
fn on_message( &self, session: &Session, env: &Envelope, ) -> Result<ModeResponse, MacpError>
Authorize the sender for this message. Modes can override to customize
authorization (e.g., allowing orchestrator bypass for Commitment messages).
Source§fn on_message_at(
&self,
session: &Session,
env: &Envelope,
ctx: &MessageContext,
) -> Result<ModeResponse, MacpError>
fn on_message_at( &self, session: &Session, env: &Envelope, ctx: &MessageContext, ) -> Result<ModeResponse, MacpError>
Kernel entry point:
on_message plus the runtime’s
[MessageContext] (acceptance clock). Defaulted to plain
on_message so most modes ignore it; modes that need a trustworthy
time source (Handoff) override this instead of reading the forgeable
Envelope.timestamp_unix_ms. The runtime and replay always call this,
with the same clock value that the log entry records.Auto Trait Implementations§
impl Freeze for PassthroughMode
impl RefUnwindSafe for PassthroughMode
impl Send for PassthroughMode
impl Sync for PassthroughMode
impl Unpin for PassthroughMode
impl UnsafeUnpin for PassthroughMode
impl UnwindSafe for PassthroughMode
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request