pub struct Extensions<T> { /* private fields */ }Expand description
A Extension for Object of type T
Implementations§
Source§impl<T: ExtensionValidator> Extensions<T>
impl<T: ExtensionValidator> Extensions<T>
Sourcepub fn iter(&self) -> impl Iterator<Item = &Extension>
pub fn iter(&self) -> impl Iterator<Item = &Extension>
Returns an iterator over the extension list.
Sourcepub fn remove(&mut self, extension_type: ExtensionType) -> Option<Extension>
pub fn remove(&mut self, extension_type: ExtensionType) -> Option<Extension>
Remove an extension from the extension list.
Returns the removed extension or None when there is no extension with
the given extension type.
Sourcepub fn contains(&self, extension_type: ExtensionType) -> bool
pub fn contains(&self, extension_type: ExtensionType) -> bool
Returns true iff the extension list contains an extension with the
given extension type.
Source§impl<T> Extensions<T>
impl<T> Extensions<T>
Sourcepub fn single(extension: Extension) -> Result<Self, InvalidExtensionError>
pub fn single(extension: Extension) -> Result<Self, InvalidExtensionError>
Create an extension list with a single extension.
Sourcepub fn from_vec(
extensions: Vec<Extension>,
) -> Result<Self, InvalidExtensionError>
pub fn from_vec( extensions: Vec<Extension>, ) -> Result<Self, InvalidExtensionError>
Create an extension list with multiple extensions.
This function will fail when the list of extensions contains duplicate extension types.
Sourcepub fn validate<'a>(
extensions: impl Iterator<Item = &'a Extension>,
) -> Result<(), InvalidExtensionError>
pub fn validate<'a>( extensions: impl Iterator<Item = &'a Extension>, ) -> Result<(), InvalidExtensionError>
Validate if the extensions are valid for this context
Sourcepub fn add(&mut self, extension: Extension) -> Result<(), InvalidExtensionError>
pub fn add(&mut self, extension: Extension) -> Result<(), InvalidExtensionError>
Add an extension to the extension list.
Returns an error when there already is an extension with the same extension type.
Sourcepub fn add_or_replace(
&mut self,
extension: Extension,
) -> Result<Option<Extension>, InvalidExtensionError>
pub fn add_or_replace( &mut self, extension: Extension, ) -> Result<Option<Extension>, InvalidExtensionError>
Add an extension to the extension list (or replace an existing one.)
Returns the replaced extension (if any).
Source§impl<T> Extensions<T>
impl<T> Extensions<T>
Sourcepub fn application_id(&self) -> Option<&ApplicationIdExtension>
pub fn application_id(&self) -> Option<&ApplicationIdExtension>
Get a reference to the ApplicationIdExtension if there is any.
Sourcepub fn ratchet_tree(&self) -> Option<&RatchetTreeExtension>
pub fn ratchet_tree(&self) -> Option<&RatchetTreeExtension>
Get a reference to the RatchetTreeExtension if there is any.
Sourcepub fn required_capabilities(&self) -> Option<&RequiredCapabilitiesExtension>
pub fn required_capabilities(&self) -> Option<&RequiredCapabilitiesExtension>
Get a reference to the RequiredCapabilitiesExtension if there is
any.
Sourcepub fn external_pub(&self) -> Option<&ExternalPubExtension>
pub fn external_pub(&self) -> Option<&ExternalPubExtension>
Get a reference to the ExternalPubExtension if there is any.
Sourcepub fn external_senders(&self) -> Option<&ExternalSendersExtension>
pub fn external_senders(&self) -> Option<&ExternalSendersExtension>
Get a reference to the ExternalSendersExtension if there is any.
Sourcepub fn app_data_dictionary(&self) -> Option<&AppDataDictionaryExtension>
Available on crate feature extensions-draft-08 only.
pub fn app_data_dictionary(&self) -> Option<&AppDataDictionaryExtension>
extensions-draft-08 only.Get a reference to the AppDataDictionaryExtension if there is any.
Sourcepub fn unknown(&self, extension_type_id: u16) -> Option<&UnknownExtension>
pub fn unknown(&self, extension_type_id: u16) -> Option<&UnknownExtension>
Get a reference to the UnknownExtension with the given type id, if there is any.
Trait Implementations§
Source§impl<T: Clone> Clone for Extensions<T>
impl<T: Clone> Clone for Extensions<T>
Source§fn clone(&self) -> Extensions<T>
fn clone(&self) -> Extensions<T>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<T: Debug> Debug for Extensions<T>
impl<T: Debug> Debug for Extensions<T>
Source§impl<T> Default for Extensions<T>
impl<T> Default for Extensions<T>
Source§impl<'de, T> Deserialize<'de> for Extensions<T>
impl<'de, T> Deserialize<'de> for Extensions<T>
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<T: ExtensionValidator> Deserialize for Extensions<T>
impl<T: ExtensionValidator> Deserialize for Extensions<T>
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,
std only.bytes from the provided a std::io::Read
and returns the populated struct. Read moreSource§impl<T: ExtensionValidator> DeserializeBytes for Extensions<T>
impl<T: ExtensionValidator> DeserializeBytes for Extensions<T>
Source§impl From<Extensions<GroupContext>> for Extensions<AnyObject>
impl From<Extensions<GroupContext>> for Extensions<AnyObject>
Source§fn from(value: Extensions<GroupContext>) -> Self
fn from(value: Extensions<GroupContext>) -> Self
Source§impl From<Extensions<KeyPackage>> for Extensions<AnyObject>
impl From<Extensions<KeyPackage>> for Extensions<AnyObject>
Source§fn from(value: Extensions<KeyPackage>) -> Self
fn from(value: Extensions<KeyPackage>) -> Self
Source§impl From<Extensions<LeafNode>> for Extensions<AnyObject>
impl From<Extensions<LeafNode>> for Extensions<AnyObject>
Source§fn from(value: Extensions<LeafNode>) -> Self
fn from(value: Extensions<LeafNode>) -> Self
Source§impl<T: PartialEq> PartialEq for Extensions<T>
impl<T: PartialEq> PartialEq for Extensions<T>
Source§impl<T> Serialize for Extensions<T>
impl<T> Serialize for Extensions<T>
Source§impl<T> Serialize for Extensions<T>
impl<T> Serialize for Extensions<T>
Source§impl<T> Size for Extensions<T>
impl<T> Size for Extensions<T>
fn tls_serialized_len(&self) -> usize
Source§impl TryFrom<Extensions<AnyObject>> for Extensions<GroupContext>
impl TryFrom<Extensions<AnyObject>> for Extensions<GroupContext>
Source§type Error = ExtensionTypeNotValidInGroupContextError
type Error = ExtensionTypeNotValidInGroupContextError
Source§fn try_from(
value: Extensions<AnyObject>,
) -> Result<Self, ExtensionTypeNotValidInGroupContextError>
fn try_from( value: Extensions<AnyObject>, ) -> Result<Self, ExtensionTypeNotValidInGroupContextError>
Source§impl TryFrom<Extensions<AnyObject>> for Extensions<KeyPackage>
impl TryFrom<Extensions<AnyObject>> for Extensions<KeyPackage>
Source§type Error = ExtensionTypeNotValidInKeyPackageError
type Error = ExtensionTypeNotValidInKeyPackageError
Source§fn try_from(
value: Extensions<AnyObject>,
) -> Result<Self, ExtensionTypeNotValidInKeyPackageError>
fn try_from( value: Extensions<AnyObject>, ) -> Result<Self, ExtensionTypeNotValidInKeyPackageError>
Source§impl TryFrom<Extensions<AnyObject>> for Extensions<LeafNode>
impl TryFrom<Extensions<AnyObject>> for Extensions<LeafNode>
Source§type Error = ExtensionTypeNotValidInLeafNodeError
type Error = ExtensionTypeNotValidInLeafNodeError
Source§fn try_from(
value: Extensions<AnyObject>,
) -> Result<Self, ExtensionTypeNotValidInLeafNodeError>
fn try_from( value: Extensions<AnyObject>, ) -> Result<Self, ExtensionTypeNotValidInLeafNodeError>
Source§impl<T: ExtensionValidator> TryFrom<Vec<Extension>> for Extensions<T>
impl<T: ExtensionValidator> TryFrom<Vec<Extension>> for Extensions<T>
impl<T: Eq> Eq for Extensions<T>
impl<T> StructuralPartialEq for Extensions<T>
Auto Trait Implementations§
impl<T> Freeze for Extensions<T>
impl<T> RefUnwindSafe for Extensions<T>where
T: RefUnwindSafe,
impl<T> Send for Extensions<T>where
T: Send,
impl<T> Sync for Extensions<T>where
T: Sync,
impl<T> Unpin for Extensions<T>where
T: Unpin,
impl<T> UnsafeUnpin for Extensions<T>
impl<T> UnwindSafe for Extensions<T>where
T: UnwindSafe,
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> Declassify for T
impl<T> Declassify for T
type Declassified = T
fn declassify(self) -> T
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