pub struct RequiredCapabilitiesExtension { /* private fields */ }
Expand description
§Required Capabilities Extension.
The configuration of a group imposes certain requirements on clients in the
group. At a minimum, all members of the group need to support the ciphersuite
and protocol version in use. Additional requirements can be imposed by
including a required capabilities extension in the GroupContext
.
This extension lists the extensions and proposal types that must be supported by all members of the group. For new members, it is enforced by existing members during the application of Add commits. Existing members should of course be in compliance already. In order to ensure this continues to be the case even as the group’s extensions can be updated, a GroupContextExtensions proposal is invalid if it contains a required capabilities extension that requires capabilities not supported by all current members.
// draft-ietf-mls-protocol-17
struct {
ExtensionType extension_types<V>;
ProposalType proposal_types<V>;
CredentialType credential_types<V>;
} RequiredCapabilities;
Implementations§
Source§impl RequiredCapabilitiesExtension
impl RequiredCapabilitiesExtension
Sourcepub fn new(
extension_types: &[ExtensionType],
proposal_types: &[ProposalType],
credential_types: &[CredentialType],
) -> Self
pub fn new( extension_types: &[ExtensionType], proposal_types: &[ProposalType], credential_types: &[CredentialType], ) -> Self
Creates a new RequiredCapabilitiesExtension
from extension and proposal types.
Sourcepub fn extension_types(&self) -> &[ExtensionType]
pub fn extension_types(&self) -> &[ExtensionType]
Get a slice with the required extension types.
Sourcepub fn proposal_types(&self) -> &[ProposalType]
pub fn proposal_types(&self) -> &[ProposalType]
Get a slice with the required proposal types.
Sourcepub fn credential_types(&self) -> &[CredentialType]
pub fn credential_types(&self) -> &[CredentialType]
Get a slice with the required credential types.
Trait Implementations§
Source§impl Clone for RequiredCapabilitiesExtension
impl Clone for RequiredCapabilitiesExtension
Source§fn clone(&self) -> RequiredCapabilitiesExtension
fn clone(&self) -> RequiredCapabilitiesExtension
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Default for RequiredCapabilitiesExtension
impl Default for RequiredCapabilitiesExtension
Source§fn default() -> RequiredCapabilitiesExtension
fn default() -> RequiredCapabilitiesExtension
Source§impl<'de> Deserialize<'de> for RequiredCapabilitiesExtension
impl<'de> Deserialize<'de> for RequiredCapabilitiesExtension
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 RequiredCapabilitiesExtension
impl Deserialize for RequiredCapabilitiesExtension
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 moreSource§impl DeserializeBytes for RequiredCapabilitiesExtension
impl DeserializeBytes for RequiredCapabilitiesExtension
Source§impl PartialEq for RequiredCapabilitiesExtension
impl PartialEq for RequiredCapabilitiesExtension
Source§fn eq(&self, other: &RequiredCapabilitiesExtension) -> bool
fn eq(&self, other: &RequiredCapabilitiesExtension) -> bool
self
and other
values to be equal, and is used by ==
.Source§impl Serialize for &RequiredCapabilitiesExtension
impl Serialize for &RequiredCapabilitiesExtension
Source§impl Serialize for RequiredCapabilitiesExtension
impl Serialize for RequiredCapabilitiesExtension
Source§impl Size for &RequiredCapabilitiesExtension
impl Size for &RequiredCapabilitiesExtension
fn tls_serialized_len(&self) -> usize
Source§impl Size for RequiredCapabilitiesExtension
impl Size for RequiredCapabilitiesExtension
fn tls_serialized_len(&self) -> usize
impl Eq for RequiredCapabilitiesExtension
impl StructuralPartialEq for RequiredCapabilitiesExtension
Auto Trait Implementations§
impl Freeze for RequiredCapabilitiesExtension
impl RefUnwindSafe for RequiredCapabilitiesExtension
impl Send for RequiredCapabilitiesExtension
impl Sync for RequiredCapabilitiesExtension
impl Unpin for RequiredCapabilitiesExtension
impl UnwindSafe for RequiredCapabilitiesExtension
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