pub enum ProcessedMessageContent {
ApplicationMessage(ApplicationMessage),
ProposalMessage(Box<QueuedProposal>),
ExternalJoinProposalMessage(Box<QueuedProposal>),
StagedCommitMessage(Box<StagedCommit>),
}
Expand description
Content of a processed message.
See the content variants’ documentation for more information.
StagedCommit
and QueuedProposal
can be inspected for authorization purposes.
Variants§
ApplicationMessage(ApplicationMessage)
An application message.
The ApplicationMessage
contains a vector of bytes that can be used right-away.
ProposalMessage(Box<QueuedProposal>)
A standalone proposal.
The QueuedProposal
can be inspected for authorization purposes by the application.
If the proposal is deemed to be allowed, it should be added to the group’s proposal
queue using MlsGroup::store_pending_proposal()
.
ExternalJoinProposalMessage(Box<QueuedProposal>)
An external join proposal sent by a NewMemberProposal sender which is outside the group.
Since this originates from a party outside the group, the QueuedProposal
SHOULD be
inspected for authorization purposes by the application. If the proposal is deemed to be
allowed, it should be added to the group’s proposal queue using
MlsGroup::store_pending_proposal()
.
StagedCommitMessage(Box<StagedCommit>)
A Commit message.
The StagedCommit
can be inspected for authorization purposes by the application.
If the type of the commit and the proposals it covers are deemed to be allowed,
the commit should be merged into the group’s state using
MlsGroup::merge_staged_commit()
.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ProcessedMessageContent
impl RefUnwindSafe for ProcessedMessageContent
impl Send for ProcessedMessageContent
impl Sync for ProcessedMessageContent
impl Unpin for ProcessedMessageContent
impl UnwindSafe for ProcessedMessageContent
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
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>
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>
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