pub trait InboundSink: Send + Sync {
// Required method
fn deliver<'life0, 'life1, 'async_trait>(
&'life0 self,
channel: ChannelId,
msg: &'life1 InboundMessage,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
}Expand description
The channel-agnostic inbound DELIVERY sink. An adapter feeds each inbound
message it observes to deliver; the sink routes it to the host’s approval
semantics (the iMessage adapter wires this to its handle_inbound). The
boundary is delivery, NOT retrieval — InboundMessage carries only what
handle_inbound reads (handle_id + body); the watermark stays private to
the iMessage adapter’s poll loop and never crosses this sink.
Required Methods§
Sourcefn deliver<'life0, 'life1, 'async_trait>(
&'life0 self,
channel: ChannelId,
msg: &'life1 InboundMessage,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn deliver<'life0, 'life1, 'async_trait>(
&'life0 self,
channel: ChannelId,
msg: &'life1 InboundMessage,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Deliver one observed inbound message into the channel-agnostic approval
path. Async because resolution touches the async HostState.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".