Any

Struct Any 

Source
pub struct Any { /* private fields */ }
Available on crate feature alloc only.
Expand description

ASN.1 ANY: represents any explicitly tagged ASN.1 value.

This type provides the same functionality as AnyRef but owns the backing data.

Implementations§

Source§

impl Any

Source

pub fn new(tag: Tag, bytes: impl Into<Box<[u8]>>) -> Result<Self>

Create a new Any from the provided Tag and DER bytes.

Source

pub fn value(&self) -> &[u8]

Allow access to value

Source

pub fn decode_as<'a, T>(&'a self) -> Result<T>
where T: Choice<'a> + DecodeValue<'a>,

Attempt to decode this Any type into the inner value.

Source

pub fn encode_from<T>(msg: &T) -> Result<Self>
where T: Tagged + EncodeValue,

Encode the provided type as an Any value.

Source

pub fn sequence<'a, F, T>(&'a self, f: F) -> Result<T>
where F: FnOnce(&mut SliceReader<'a>) -> Result<T>,

Attempt to decode this value an ASN.1 SEQUENCE, creating a new nested reader and calling the provided argument with it.

Source

pub fn null() -> Self

Any representation of the ASN.1 NULL type.

Source§

impl Any

Source

pub fn is_null(&self) -> bool

Is this value an ASN.1 NULL value?

Trait Implementations§

Source§

impl Choice<'_> for Any

Source§

fn can_decode(_: Tag) -> bool

Is the provided Tag decodable as a variant of this CHOICE?
Source§

impl Clone for Any

Source§

fn clone(&self) -> Any

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Any

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<'a> Decode<'a> for Any

Source§

fn decode<R: Reader<'a>>(reader: &mut R) -> Result<Self>

Attempt to decode this message using the provided decoder.
Source§

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

Parse Self from the provided DER-encoded byte slice.
Source§

impl<'a> DecodeValue<'a> for Any

Source§

fn decode_value<R: Reader<'a>>(reader: &mut R, header: Header) -> Result<Self>

Attempt to decode this message using the provided Reader.
Source§

impl EncodeValue for Any

Source§

fn value_len(&self) -> Result<Length>

Compute the length of this value (sans Tag+Length header) when encoded as ASN.1 DER.
Source§

fn encode_value(&self, writer: &mut impl Writer) -> Result<()>

Encode value (sans Tag+Length header) as ASN.1 DER using the provided Writer.
Source§

fn header(&self) -> Result<Header>
where Self: Tagged,

Get the Header used to encode this value.
Source§

impl<'a> From<&'a Any> for AnyRef<'a>

Source§

fn from(any: &'a Any) -> AnyRef<'a>

Converts to this type from the input type.
Source§

impl From<ObjectIdentifier> for Any

Available on crate feature oid only.
Source§

fn from(oid: ObjectIdentifier) -> Any

Converts to this type from the input type.
Source§

impl<'a, T> From<T> for Any
where T: Into<AnyRef<'a>>,

Source§

fn from(input: T) -> Any

Converts to this type from the input type.
Source§

impl Ord for Any

Source§

fn cmp(&self, other: &Any) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl OwnedToRef for Any

Source§

type Borrowed<'a> = AnyRef<'a>

The resulting type referencing back to Self
Source§

fn owned_to_ref(&self) -> Self::Borrowed<'_>

Creates a new object referencing back to the self for storage
Source§

impl PartialEq for Any

Source§

fn eq(&self, other: &Any) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for Any

Source§

fn partial_cmp(&self, other: &Any) -> Option<Ordering>

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

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Tagged for Any

Source§

fn tag(&self) -> Tag

Get the ASN.1 tag that this type is encoded with.
Source§

impl<'__der> TryFrom<&'__der Any> for BitString

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<BitString>

Performs the conversion.
Source§

impl<'__der: 'a, 'a> TryFrom<&'__der Any> for BitStringRef<'a>

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<BitStringRef<'a>>

Performs the conversion.
Source§

impl<'__der> TryFrom<&'__der Any> for GeneralizedTime

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<GeneralizedTime>

Performs the conversion.
Source§

impl<'__der> TryFrom<&'__der Any> for Ia5String

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<Ia5String>

Performs the conversion.
Source§

impl<'__der: 'a, 'a> TryFrom<&'__der Any> for Ia5StringRef<'a>

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<Ia5StringRef<'a>>

Performs the conversion.
Source§

impl<'__der> TryFrom<&'__der Any> for Int

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<Int>

Performs the conversion.
Source§

impl<'__der: 'a, 'a> TryFrom<&'__der Any> for IntRef<'a>

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<IntRef<'a>>

Performs the conversion.
Source§

impl<'__der> TryFrom<&'__der Any> for Null

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<Null>

Performs the conversion.
Source§

impl<'__der> TryFrom<&'__der Any> for OctetString

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<OctetString>

Performs the conversion.
Source§

impl<'__der: 'a, 'a> TryFrom<&'__der Any> for OctetStringRef<'a>

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<OctetStringRef<'a>>

Performs the conversion.
Source§

impl<'__der> TryFrom<&'__der Any> for PrintableString

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<PrintableString>

Performs the conversion.
Source§

impl<'__der: 'a, 'a> TryFrom<&'__der Any> for PrintableStringRef<'a>

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<PrintableStringRef<'a>>

Performs the conversion.
Source§

impl<'__der> TryFrom<&'__der Any> for TeletexString

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<TeletexString>

Performs the conversion.
Source§

impl<'__der: 'a, 'a> TryFrom<&'__der Any> for TeletexStringRef<'a>

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<TeletexStringRef<'a>>

Performs the conversion.
Source§

impl<'__der> TryFrom<&'__der Any> for Uint

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<Uint>

Performs the conversion.
Source§

impl<'__der: 'a, 'a> TryFrom<&'__der Any> for UintRef<'a>

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<UintRef<'a>>

Performs the conversion.
Source§

impl<'__der> TryFrom<&'__der Any> for UtcTime

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<UtcTime>

Performs the conversion.
Source§

impl<'__der: 'a, 'a> TryFrom<&'__der Any> for Utf8StringRef<'a>

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<Utf8StringRef<'a>>

Performs the conversion.
Source§

impl<'__der: 'a, 'a> TryFrom<&'__der Any> for VideotexStringRef<'a>

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(any: &'__der Any) -> Result<VideotexStringRef<'a>>

Performs the conversion.
Source§

impl ValueOrd for Any

Source§

fn value_cmp(&self, other: &Self) -> Result<Ordering>

Return an Ordering between value portion of TLV-encoded self and other when serialized as ASN.1 DER.
Source§

impl Eq for Any

Source§

impl StructuralPartialEq for Any

Auto Trait Implementations§

§

impl Freeze for Any

§

impl RefUnwindSafe for Any

§

impl Send for Any

§

impl Sync for Any

§

impl Unpin for Any

§

impl UnwindSafe for Any

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DerOrd for T

Source§

fn der_cmp(&self, other: &T) -> Result<Ordering, Error>

Return an Ordering between self and other when serialized as ASN.1 DER.
Source§

impl<T> Encode for T
where T: EncodeValue + Tagged,

Source§

fn encoded_len(&self) -> Result<Length, Error>

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

Source§

fn encode(&self, writer: &mut impl Writer) -> Result<(), Error>

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

Source§

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

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

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

Available on crate feature alloc only.
Encode this message as ASN.1 DER, appending it to the provided byte vector.
Source§

fn to_der(&self) -> Result<Vec<u8>>

Available on crate feature alloc only.
Encode this type as DER, returning a byte vector.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<T> DecodeOwned for T
where T: for<'a> Decode<'a>,

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 32 bytes