#[non_exhaustive]pub struct DefaultMlsRules {
pub commit_options: CommitOptions,
pub encryption_options: EncryptionOptions,
}
Expand description
Default MLS rules with pass-through proposal filter and customizable options.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.commit_options: CommitOptions
§encryption_options: EncryptionOptions
Implementations§
Source§impl DefaultMlsRules
impl DefaultMlsRules
Sourcepub fn new() -> Self
pub fn new() -> Self
Create new MLS rules with default settings: do not enforce path and do put the ratchet tree in the extension.
Sourcepub fn with_commit_options(self, commit_options: CommitOptions) -> Self
pub fn with_commit_options(self, commit_options: CommitOptions) -> Self
Set commit options.
Sourcepub fn with_encryption_options(
self,
encryption_options: EncryptionOptions,
) -> Self
pub fn with_encryption_options( self, encryption_options: EncryptionOptions, ) -> Self
Set encryption options.
Trait Implementations§
Source§impl Clone for DefaultMlsRules
impl Clone for DefaultMlsRules
Source§fn clone(&self) -> DefaultMlsRules
fn clone(&self) -> DefaultMlsRules
Returns a duplicate of the value. Read more
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for DefaultMlsRules
impl Debug for DefaultMlsRules
Source§impl Default for DefaultMlsRules
impl Default for DefaultMlsRules
Source§fn default() -> DefaultMlsRules
fn default() -> DefaultMlsRules
Returns the “default value” for a type. Read more
Source§impl MlsRules for DefaultMlsRules
impl MlsRules for DefaultMlsRules
type Error = Infallible
Source§fn filter_proposals(
&self,
_direction: CommitDirection,
_source: CommitSource,
_current_roster: &Roster<'_>,
_: &GroupContext,
proposals: ProposalBundle,
) -> Result<ProposalBundle, Self::Error>
fn filter_proposals( &self, _direction: CommitDirection, _source: CommitSource, _current_roster: &Roster<'_>, _: &GroupContext, proposals: ProposalBundle, ) -> Result<ProposalBundle, Self::Error>
This is called when preparing or receiving a commit to pre-process the set of committed
proposals. Read more
Source§fn commit_options(
&self,
_: &Roster<'_>,
_: &GroupContext,
_: &ProposalBundle,
) -> Result<CommitOptions, Self::Error>
fn commit_options( &self, _: &Roster<'_>, _: &GroupContext, _: &ProposalBundle, ) -> Result<CommitOptions, Self::Error>
This is called when preparing a commit to determine various options: whether to enforce an update
path in case it is not mandated by MLS, whether to include the ratchet tree in the welcome
message (if the commit adds members) and whether to generate a single welcome message, or one
welcome message for each added member. Read more
Source§fn encryption_options(
&self,
_: &Roster<'_>,
_: &GroupContext,
) -> Result<EncryptionOptions, Self::Error>
fn encryption_options( &self, _: &Roster<'_>, _: &GroupContext, ) -> Result<EncryptionOptions, Self::Error>
This is called when sending any packet. For proposals and commits, this determines whether to
encrypt them. For any encrypted packet, this determines the padding mode used. Read more
Auto Trait Implementations§
impl Freeze for DefaultMlsRules
impl RefUnwindSafe for DefaultMlsRules
impl Send for DefaultMlsRules
impl Sync for DefaultMlsRules
impl Unpin for DefaultMlsRules
impl UnwindSafe for DefaultMlsRules
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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