Struct RequiredCapabilitiesExtension
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§
§impl RequiredCapabilitiesExtension
impl RequiredCapabilitiesExtension
pub fn new(
extension_types: &[ExtensionType],
proposal_types: &[ProposalType],
credential_types: &[CredentialType],
) -> RequiredCapabilitiesExtension
pub fn new( extension_types: &[ExtensionType], proposal_types: &[ProposalType], credential_types: &[CredentialType], ) -> RequiredCapabilitiesExtension
Creates a new RequiredCapabilitiesExtension from extension and proposal types.
pub fn extension_types(&self) -> &[ExtensionType]
pub fn extension_types(&self) -> &[ExtensionType]
Get a slice with the required extension types.
pub fn proposal_types(&self) -> &[ProposalType]
pub fn proposal_types(&self) -> &[ProposalType]
Get a slice with the required proposal types.
pub fn credential_types(&self) -> &[CredentialType]
pub fn credential_types(&self) -> &[CredentialType]
Get a slice with the required credential types.
Trait Implementations§
§impl Clone for RequiredCapabilitiesExtension
impl Clone for RequiredCapabilitiesExtension
§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 more§impl Debug for RequiredCapabilitiesExtension
impl Debug for RequiredCapabilitiesExtension
§impl Default for RequiredCapabilitiesExtension
impl Default for RequiredCapabilitiesExtension
§fn default() -> RequiredCapabilitiesExtension
fn default() -> RequiredCapabilitiesExtension
§impl<'de> Deserialize<'de> for RequiredCapabilitiesExtension
impl<'de> Deserialize<'de> for RequiredCapabilitiesExtension
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<RequiredCapabilitiesExtension, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<RequiredCapabilitiesExtension, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl Deserialize for RequiredCapabilitiesExtension
impl Deserialize for RequiredCapabilitiesExtension
§fn tls_deserialize<R>(
bytes: &mut R,
) -> Result<RequiredCapabilitiesExtension, Error>where
R: Read,
fn tls_deserialize<R>(
bytes: &mut R,
) -> Result<RequiredCapabilitiesExtension, Error>where
R: Read,
bytes from the provided a std::io::Read
and returns the populated struct. Read more§impl DeserializeBytes for RequiredCapabilitiesExtension
impl DeserializeBytes for RequiredCapabilitiesExtension
§fn tls_deserialize_bytes(
bytes: &[u8],
) -> Result<(RequiredCapabilitiesExtension, &[u8]), Error>
fn tls_deserialize_bytes( bytes: &[u8], ) -> Result<(RequiredCapabilitiesExtension, &[u8]), Error>
bytes from the provided a &[u8]
and returns the populated struct, as well as the remaining slice. Read more§impl From<RequiredCapabilitiesExtension> for FrankenRequiredCapabilitiesExtension
impl From<RequiredCapabilitiesExtension> for FrankenRequiredCapabilitiesExtension
§fn from(
value: RequiredCapabilitiesExtension,
) -> FrankenRequiredCapabilitiesExtension
fn from( value: RequiredCapabilitiesExtension, ) -> FrankenRequiredCapabilitiesExtension
§impl PartialEq for RequiredCapabilitiesExtension
impl PartialEq for RequiredCapabilitiesExtension
§impl Serialize for &RequiredCapabilitiesExtension
impl Serialize for &RequiredCapabilitiesExtension
§impl Serialize for RequiredCapabilitiesExtension
impl Serialize for RequiredCapabilitiesExtension
§impl Serialize for RequiredCapabilitiesExtension
impl Serialize for RequiredCapabilitiesExtension
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
§impl Size for &RequiredCapabilitiesExtension
impl Size for &RequiredCapabilitiesExtension
fn tls_serialized_len(&self) -> usize
§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
§impl<T> Classify for T
impl<T> Classify for T
type Classified = T
fn classify(self) -> T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> Declassify for T
impl<T> Declassify for T
type Declassified = T
fn declassify(self) -> T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.