Enum der::Tag[][src]

#[non_exhaustive]
#[repr(u8)]
pub enum Tag {
Show variants Boolean, Integer, BitString, OctetString, Null, ObjectIdentifier, Utf8String, Set, PrintableString, Ia5String, UtcTime, GeneralizedTime, Sequence, ContextSpecific0, ContextSpecific1, ContextSpecific2, ContextSpecific3,
}
Expand description

ASN.1 tags.

Tags are the leading byte of the Tag-Length-Value encoding used by ASN.1 DER and identify the type of the subsequent value.

Variants (Non-exhaustive)

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Boolean
Expand description

BOOLEAN tag.

Integer
Expand description

INTEGER tag.

BitString
Expand description

BIT STRING tag.

OctetString
Expand description

OCTET STRING tag.

Null
Expand description

NULL tag.

ObjectIdentifier
Expand description

OBJECT IDENTIFIER tag.

Utf8String
Expand description

UTF8String tag.

Set
Expand description

SET and SET OF tag.

PrintableString
Expand description

PrintableString tag.

Ia5String
Expand description

IA5String tag.

UtcTime
Expand description

UTCTime tag.

GeneralizedTime
Expand description

GeneralizedTime tag.

Sequence
Expand description

SEQUENCE tag.

Note that the universal tag number for SEQUENCE is technically 0x10 however we presently only support the constructed form, which has the 6th bit (i.e. 0x20) set.

ContextSpecific0
Expand description

Context-specific tag (0) unique to a particular structure.

ContextSpecific1
Expand description

Context-specific tag (1) unique to a particular structure.

ContextSpecific2
Expand description

Context-specific tag (2) unique to a particular structure.

ContextSpecific3
Expand description

Context-specific tag (3) unique to a particular structure.

Implementations

impl Tag[src]

pub fn assert_eq(self, expected: Tag) -> Result<Tag>[src]

Assert that this Tag matches the provided expected tag.

On mismatch, returns an Error with ErrorKind::UnexpectedTag.

pub fn type_name(self) -> &'static str[src]

Names of ASN.1 type which corresponds to a given Tag.

Trait Implementations

impl Clone for Tag[src]

fn clone(&self) -> Tag[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for Tag[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl Decodable<'_> for Tag[src]

fn decode(decoder: &mut Decoder<'_>) -> Result<Self>[src]

Attempt to decode this message using the provided decoder.

fn from_der(bytes: &'a [u8]) -> Result<Self>[src]

Parse Self from the provided DER-encoded byte slice.

impl Display for Tag[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl Encodable for Tag[src]

fn encoded_len(&self) -> Result<Length>[src]

Compute the length of this value in bytes when encoded as ASN.1 DER.

fn encode(&self, encoder: &mut Encoder<'_>) -> Result<()>[src]

Encode this value as ASN.1 DER using the provided Encoder.

fn encode_to_slice<'a>(&self, buf: &'a mut [u8]) -> Result<&'a [u8]>[src]

Encode this value to the provided byte slice, returning a sub-slice containing the encoded message. Read more

fn encode_to_vec(&self, buf: &mut Vec<u8>) -> Result<Length>[src]

This is supported on crate feature alloc only.

Encode this message as ASN.1 DER, appending it to the provided byte vector. Read more

fn to_vec(&self) -> Result<Vec<u8>>[src]

This is supported on crate feature alloc only.

Serialize this message as a byte vector.

impl Ord for Tag[src]

fn cmp(&self, other: &Tag) -> Ordering[src]

This method returns an Ordering between self and other. Read more

#[must_use]
fn max(self, other: Self) -> Self
1.21.0[src]

Compares and returns the maximum of two values. Read more

#[must_use]
fn min(self, other: Self) -> Self
1.21.0[src]

Compares and returns the minimum of two values. Read more

#[must_use]
fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]

Restrict a value to a certain interval. Read more

impl PartialEq<Tag> for Tag[src]

fn eq(&self, other: &Tag) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl PartialOrd<Tag> for Tag[src]

fn partial_cmp(&self, other: &Tag) -> Option<Ordering>[src]

This method returns an ordering between self and other values if one exists. Read more

#[must_use]
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests less than (for self and other) and is used by the < operator. Read more

#[must_use]
fn le(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

#[must_use]
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests greater than (for self and other) and is used by the > operator. Read more

#[must_use]
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl TryFrom<u8> for Tag[src]

type Error = Error

The type returned in the event of a conversion error.

fn try_from(byte: u8) -> Result<Tag>[src]

Performs the conversion.

impl Copy for Tag[src]

impl Eq for Tag[src]

impl StructuralEq for Tag[src]

impl StructuralPartialEq for Tag[src]

Auto Trait Implementations

impl RefUnwindSafe for Tag

impl Send for Tag

impl Sync for Tag

impl Unpin for Tag

impl UnwindSafe for Tag

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T> ToString for T where
    T: Display + ?Sized
[src]

pub default fn to_string(&self) -> String[src]

Converts the given value to a String. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.