Enum openmls::extensions::Extension
source · pub enum Extension {
ApplicationId(ApplicationIdExtension),
RatchetTree(RatchetTreeExtension),
RequiredCapabilities(RequiredCapabilitiesExtension),
ExternalPub(ExternalPubExtension),
ExternalSenders(ExternalSendersExtension),
Unknown(u16, UnknownExtension),
}
Expand description
Extension
An extension is one of the Extension
enum values.
The enum provides a set of common functionality for all extensions.
See the individual extensions for more details on each extension.
// draft-ietf-mls-protocol-16
struct {
ExtensionType extension_type;
opaque extension_data<V>;
} Extension;
Variants§
ApplicationId(ApplicationIdExtension)
RatchetTree(RatchetTreeExtension)
RequiredCapabilities(RequiredCapabilitiesExtension)
ExternalPub(ExternalPubExtension)
ExternalSenders(ExternalSendersExtension)
Unknown(u16, UnknownExtension)
A currently unknown extension.
Implementations§
source§impl Extension
impl Extension
sourcepub fn as_application_id_extension(
&self
) -> Result<&ApplicationIdExtension, ExtensionError>
pub fn as_application_id_extension( &self ) -> Result<&ApplicationIdExtension, ExtensionError>
Get a reference to this extension as ApplicationIdExtension
.
Returns an ExtensionError::InvalidExtensionType
if called on an
Extension
that’s not an ApplicationIdExtension
.
sourcepub fn as_ratchet_tree_extension(
&self
) -> Result<&RatchetTreeExtension, ExtensionError>
pub fn as_ratchet_tree_extension( &self ) -> Result<&RatchetTreeExtension, ExtensionError>
Get a reference to this extension as RatchetTreeExtension
.
Returns an ExtensionError::InvalidExtensionType
if called on
an Extension
that’s not a RatchetTreeExtension
.
sourcepub fn as_required_capabilities_extension(
&self
) -> Result<&RequiredCapabilitiesExtension, ExtensionError>
pub fn as_required_capabilities_extension( &self ) -> Result<&RequiredCapabilitiesExtension, ExtensionError>
Get a reference to this extension as RequiredCapabilitiesExtension
.
Returns an ExtensionError::InvalidExtensionType
error if called on an
Extension
that’s not a RequiredCapabilitiesExtension
.
sourcepub fn as_external_pub_extension(
&self
) -> Result<&ExternalPubExtension, ExtensionError>
pub fn as_external_pub_extension( &self ) -> Result<&ExternalPubExtension, ExtensionError>
Get a reference to this extension as ExternalPubExtension
.
Returns an ExtensionError::InvalidExtensionType
error if called on an
Extension
that’s not a ExternalPubExtension
.
sourcepub fn as_external_senders_extension(
&self
) -> Result<&ExternalSendersExtension, ExtensionError>
pub fn as_external_senders_extension( &self ) -> Result<&ExternalSendersExtension, ExtensionError>
Get a reference to this extension as ExternalSendersExtension
.
Returns an ExtensionError::InvalidExtensionType
error if called on an
Extension
that’s not a ExternalSendersExtension
.
sourcepub const fn extension_type(&self) -> ExtensionType
pub const fn extension_type(&self) -> ExtensionType
Returns the ExtensionType
Trait Implementations§
source§impl<'de> Deserialize<'de> for Extension
impl<'de> Deserialize<'de> for Extension
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 Extension
impl Deserialize for Extension
source§fn tls_deserialize<R: Read>(bytes: &mut R) -> Result<Self, Error>
fn tls_deserialize<R: Read>(bytes: &mut R) -> Result<Self, Error>
bytes
from the provided a std::io::Read
and returns the populated struct. Read more