pub enum DispatchAction {
Done,
StartVoting(GroupUpdateRequest),
GroupUpdated,
LeaveGroup,
JoinedGroup,
}Expand description
Action returned by dispatch_result telling the caller what to do next.
This enum represents the application-level actions needed after processing an inbound message. The core library handles protocol-level concerns; these actions represent what your application layer needs to do.
Variants§
Done
Core handled the result fully; nothing more to do.
The message was processed and any necessary callbacks were made.
StartVoting(GroupUpdateRequest)
A group update request needs consensus voting.
The application should spawn a background task to:
- Call
start_votingwith the request - Store the proposal ID via
GroupHandle::store_voting_proposal
GroupUpdated
Group MLS state was updated (batch commit applied).
The application should:
- Transition state machine from Waiting → Working
- Refresh UI with new group state
LeaveGroup
The user was removed from the group.
The application should:
- Remove the group from its registry
- Clean up any associated state
- Notify the UI
JoinedGroup
The user successfully joined a group.
The application should:
- Transition state machine from PendingJoin → Working
- Start epoch timing synchronization
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DispatchAction
impl RefUnwindSafe for DispatchAction
impl Send for DispatchAction
impl Sync for DispatchAction
impl Unpin for DispatchAction
impl UnwindSafe for DispatchAction
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> Declassify for T
impl<T> Declassify for T
type Declassified = T
fn declassify(self) -> T
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more