pub enum ExtensionType {
    ApplicationId,
    RatchetTree,
    RequiredCapabilities,
    ExternalPub,
    ExternalSenders,
    LastResort,
    Unknown(u16),
}Expand description
MLS Extension Types
Copied from draft-ietf-mls-protocol-16:
| Value | Name | Message(s) | Recommended | Reference | 
|---|---|---|---|---|
| 0x0000 | RESERVED | N/A | N/A | RFC XXXX | 
| 0x0001 | application_id | LN | Y | RFC XXXX | 
| 0x0002 | ratchet_tree | GI | Y | RFC XXXX | 
| 0x0003 | required_capabilities | GC | Y | RFC XXXX | 
| 0x0004 | external_pub | GI | Y | RFC XXXX | 
| 0x0005 | external_senders | GC | Y | RFC XXXX | 
| 0xff00 - 0xffff | Reserved for Private Use | N/A | N/A | RFC XXXX | 
Note: OpenMLS does not provide a Reserved variant in ExtensionType.
Variants§
ApplicationId
The application id extension allows applications to add an explicit, application-defined identifier to a KeyPackage.
RatchetTree
The ratchet tree extensions provides the whole public state of the ratchet tree.
RequiredCapabilities
The required capabilities extension defines the configuration of a group that imposes certain requirements on clients in the group.
ExternalPub
To join a group via an External Commit, a new member needs a GroupInfo with an ExternalPub extension present in its extensions field.
ExternalSenders
Group context extension that contains the credentials and signature keys of senders that are permitted to send external proposals to the group.
LastResort
KeyPackage extension that marks a KeyPackage for use in a last resort scenario.
Unknown(u16)
A currently unknown extension type.
Trait Implementations§
Source§impl Clone for ExtensionType
 
impl Clone for ExtensionType
Source§fn clone(&self) -> ExtensionType
 
fn clone(&self) -> ExtensionType
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ExtensionType
 
impl Debug for ExtensionType
Source§impl<'de> Deserialize<'de> for ExtensionType
 
impl<'de> Deserialize<'de> for ExtensionType
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
    __D: Deserializer<'de>,
 
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
    __D: Deserializer<'de>,
Source§impl Deserialize for ExtensionType
 
impl Deserialize for ExtensionType
Source§fn tls_deserialize<R: Read>(bytes: &mut R) -> Result<Self, Error>where
    Self: Sized,
 
fn tls_deserialize<R: Read>(bytes: &mut R) -> Result<Self, Error>where
    Self: Sized,
bytes from the provided a std::io::Read
and returns the populated struct. Read moreSource§impl DeserializeBytes for ExtensionType
 
impl DeserializeBytes for ExtensionType
Source§impl From<ExtensionType> for u16
 
impl From<ExtensionType> for u16
Source§fn from(value: ExtensionType) -> Self
 
fn from(value: ExtensionType) -> Self
Source§impl From<u16> for ExtensionType
 
impl From<u16> for ExtensionType
Source§impl Hash for ExtensionType
 
impl Hash for ExtensionType
Source§impl Ord for ExtensionType
 
impl Ord for ExtensionType
Source§fn cmp(&self, other: &ExtensionType) -> Ordering
 
fn cmp(&self, other: &ExtensionType) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
    Self: Sized,
 
fn max(self, other: Self) -> Selfwhere
    Self: Sized,
Source§impl PartialEq for ExtensionType
 
impl PartialEq for ExtensionType
Source§impl PartialOrd for ExtensionType
 
impl PartialOrd for ExtensionType
Source§impl Serialize for ExtensionType
 
impl Serialize for ExtensionType
Source§impl Serialize for ExtensionType
 
impl Serialize for ExtensionType
Source§impl Size for ExtensionType
 
impl Size for ExtensionType
fn tls_serialized_len(&self) -> usize
impl Copy for ExtensionType
impl Eq for ExtensionType
impl StructuralPartialEq for ExtensionType
Auto Trait Implementations§
impl Freeze for ExtensionType
impl RefUnwindSafe for ExtensionType
impl Send for ExtensionType
impl Sync for ExtensionType
impl Unpin for ExtensionType
impl UnwindSafe for ExtensionType
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> 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>
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