Struct der::asn1::ContextSpecific
source · Expand description
Context-specific field which wraps an owned inner value.
This type decodes/encodes a field which is specific to a particular context
and is identified by a TagNumber.
Fields§
§tag_number: TagNumberContext-specific tag number sans the leading 0b10000000 class
identifier bit and 0b100000 constructed flag.
tag_mode: TagModeTag mode: EXPLICIT VS IMPLICIT.
value: TValue of the field.
Implementations§
source§impl<T> ContextSpecific<T>
impl<T> ContextSpecific<T>
sourcepub fn decode_explicit<'a>(
decoder: &mut Decoder<'a>,
tag_number: TagNumber
) -> Result<Option<Self>>where
T: Decodable<'a>,
pub fn decode_explicit<'a>(
decoder: &mut Decoder<'a>,
tag_number: TagNumber
) -> Result<Option<Self>>where
T: Decodable<'a>,
Attempt to decode an EXPLICIT ASN.1 CONTEXT-SPECIFIC field with the
provided TagNumber.
This method has the following behavior which is designed to simplify
handling of extension fields, which are denoted in an ASN.1 schema
using the ... ellipsis extension marker:
- Skips over
ContextSpecificfields with a tag number lower than the current one, consuming and ignoring them. - Returns
Ok(None)if aContextSpecificfield with a higher tag number is encountered. These fields are not consumed in this case, allowing a field with a lower tag number to be omitted, then the higher numbered field consumed as a follow-up. - Returns
Ok(None)if anything other than aContextSpecificfield is encountered.
sourcepub fn decode_implicit<'a>(
decoder: &mut Decoder<'a>,
tag_number: TagNumber
) -> Result<Option<Self>>where
T: DecodeValue<'a> + Tagged,
pub fn decode_implicit<'a>(
decoder: &mut Decoder<'a>,
tag_number: TagNumber
) -> Result<Option<Self>>where
T: DecodeValue<'a> + Tagged,
Attempt to decode an IMPLICIT ASN.1 CONTEXT-SPECIFIC field with the
provided TagNumber.
This method otherwise behaves the same as decode_explicit,
but should be used in cases where the particular fields are IMPLICIT
as opposed to EXPLICIT.
sourcepub fn to_ref(&self) -> ContextSpecificRef<'_, T>
pub fn to_ref(&self) -> ContextSpecificRef<'_, T>
Get a ContextSpecificRef for this field.
Trait Implementations§
source§impl<T: Clone> Clone for ContextSpecific<T>
impl<T: Clone> Clone for ContextSpecific<T>
source§fn clone(&self) -> ContextSpecific<T>
fn clone(&self) -> ContextSpecific<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 ContextSpecific<T>
impl<T: Debug> Debug for ContextSpecific<T>
source§impl<'a, T> Decodable<'a> for ContextSpecific<T>where
T: Decodable<'a>,
impl<'a, T> Decodable<'a> for ContextSpecific<T>where
T: Decodable<'a>,
source§impl<T> EncodeValue for ContextSpecific<T>where
T: EncodeValue + Tagged,
impl<T> EncodeValue for ContextSpecific<T>where
T: EncodeValue + Tagged,
source§impl<T: Ord> Ord for ContextSpecific<T>
impl<T: Ord> Ord for ContextSpecific<T>
source§fn cmp(&self, other: &ContextSpecific<T>) -> Ordering
fn cmp(&self, other: &ContextSpecific<T>) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl<T: PartialEq> PartialEq<ContextSpecific<T>> for ContextSpecific<T>
impl<T: PartialEq> PartialEq<ContextSpecific<T>> for ContextSpecific<T>
source§fn eq(&self, other: &ContextSpecific<T>) -> bool
fn eq(&self, other: &ContextSpecific<T>) -> bool
source§impl<T: PartialOrd> PartialOrd<ContextSpecific<T>> for ContextSpecific<T>
impl<T: PartialOrd> PartialOrd<ContextSpecific<T>> for ContextSpecific<T>
source§fn partial_cmp(&self, other: &ContextSpecific<T>) -> Option<Ordering>
fn partial_cmp(&self, other: &ContextSpecific<T>) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read more