Struct ExternalCommitBuilder

Source
pub struct ExternalCommitBuilder { /* private fields */ }
Expand description

This is the builder for external commits. It allows you to build an external commit that can be used to join a group externally. Parameters such as optional SelfRemove proposals from other members, the ratchet tree, and the group join configuration can be set in the first builder stage.

The second stage of this builder is a CommitBuilder that can be used to add one or more PreSharedKeyProposals to the external commit and specify LeafNodeParameters.

Implementations§

Source§

impl ExternalCommitBuilder

Source

pub fn new() -> Self

Creates a new ExternalCommitBuilder with default values.

Source

pub fn with_proposals(self, proposals: Vec<PublicMessageIn>) -> Self

Adds SelfRemove proposals to the external commit. Other proposals or other types of messages are ignored.

Source

pub fn with_ratchet_tree(self, ratchet_tree: RatchetTreeIn) -> Self

Specifies the ratchet tree to use for the external commit. This is only used if the ratchet tree is not provided in the VerifiableGroupInfo extensions. A ratchet tree must be provided, either in the VerifiableGroupInfo extensions or via this method.

Source

pub fn with_config(self, config: MlsGroupJoinConfig) -> Self

Specifies the configuration to use for the group built as part of the external commit. Note that the external commit will always be a PublicMessage regardless of the wire format policy set in the group config.

Source

pub fn with_aad(self, aad: Vec<u8>) -> Self

Specifies additional authenticated data (AAD) to be included in the external commit.

Source

pub fn skip_lifetime_validation(self) -> Self

Skip the validation of lifetimes in leaf nodes in the ratchet tree. Note that only the leaf nodes are checked that were never updated.

By default they are validated.

Source

pub fn build_group<Provider: OpenMlsProvider>( self, provider: &Provider, verifiable_group_info: VerifiableGroupInfo, credential_with_key: CredentialWithKey, ) -> Result<CommitBuilder<'_, Initial, MlsGroup>, ExternalCommitBuilderError<Provider::StorageError>>

Build the MlsGroup from the provided VerifiableGroupInfo and CredentialWithKey.

Returns a CommitBuilder that can be used to further configure the external commit.

Trait Implementations§

Source§

impl Default for ExternalCommitBuilder

Source§

fn default() -> ExternalCommitBuilder

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.