pub enum Output {
Transmit(Transmission),
StoreCheckpoint {
conversation: ConversationKey,
next_id: u8,
epoch: u16,
},
LookupOutbound {
request_id: u32,
conversation: ConversationKey,
sequence: MessageSequence,
},
StoreArchive {
key: ArchiveKey,
payload: Vec<u8, MAX_FRAME>,
},
DeleteArchive {
conversation: ConversationKey,
message_id: u8,
},
StoreMessage(MessageMutation),
Event(Event),
Diagnostic(Diagnostic),
}Expand description
One drained output: an effect for the platform or an application event.
Variants§
Transmit(Transmission)
StoreCheckpoint
Persist the outbound stream checkpoint before transmitting the frames queued after it.
Failure contract: outputs are ordered, so the platform sees this
before the Output::Transmits it covers. If the write fails, the
platform must drop (not send) those transmissions and resynchronize
via Engine::restore; sending them anyway risks reusing a wire ID
after the next power cycle without announcing a Sequence Reset.
LookupOutbound
Look up resendable outbound material; answer with
Engine::archive_result.
StoreArchive
Store resendable material without transmitting it. Emitted when an edit re-issues the original message ID’s archive with the edited body: a later resend request for that ID must serve the edited content, never the superseded original.
DeleteArchive
Delete every archived fragment stored under this message ID (the
unfragmented entry included). Emitted before an edit’s replacement
Output::StoreArchives — so stale fragments of a differently
fragmented original can never be served — and on delete, where the
retracted content must no longer be resendable at all.
StoreMessage(MessageMutation)
Event(Event)
Diagnostic(Diagnostic)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Output
impl RefUnwindSafe for Output
impl Send for Output
impl Sync for Output
impl Unpin for Output
impl UnwindSafe for Output
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)