pub trait DerDecodable<'a>: Sized {
    // Required method
    fn load(object: DerObject<'a>) -> Result<Self, Asn1DerError>;

    // Provided methods
    fn decode(raw: &'a [u8]) -> Result<Self, Asn1DerError> { ... }
    fn decode_at(
        raw: &'a [u8],
        header_start: usize
    ) -> Result<Self, Asn1DerError> { ... }
    fn decode_from_source<A: Source, B: Sink + Into<&'a [u8]>>(
        source: &mut A,
        sink: B
    ) -> Result<Self, Asn1DerError> { ... }
}
Expand description

A trait for DER decodable types

Required Methods§

source

fn load(object: DerObject<'a>) -> Result<Self, Asn1DerError>

Loads object as Self

Provided Methods§

source

fn decode(raw: &'a [u8]) -> Result<Self, Asn1DerError>

Decodes an object as Self

source

fn decode_at(raw: &'a [u8], header_start: usize) -> Result<Self, Asn1DerError>

Decodes an object as Self

source

fn decode_from_source<A: Source, B: Sink + Into<&'a [u8]>>( source: &mut A, sink: B ) -> Result<Self, Asn1DerError>

Reads an object from source by parsing the length field and copying the necessary bytes into sink and decoding it from sink

Implementations on Foreign Types§

source§

impl<'a> DerDecodable<'a> for u8

source§

fn load(object: DerObject<'a>) -> Result<Self, Asn1DerError>

source§

impl<'a> DerDecodable<'a> for String

source§

fn load(object: DerObject<'a>) -> Result<Self, Asn1DerError>

source§

impl<'a> DerDecodable<'a> for usize

source§

fn load(object: DerObject<'a>) -> Result<Self, Asn1DerError>

source§

impl<'a> DerDecodable<'a> for bool

source§

fn load(object: DerObject<'a>) -> Result<Self, Asn1DerError>

source§

impl<'a, T: DerDecodable<'a>> DerDecodable<'a> for Option<T>

source§

fn load(object: DerObject<'a>) -> Result<Self, Asn1DerError>

source§

impl<'a> DerDecodable<'a> for Vec<u8>

source§

fn load(object: DerObject<'a>) -> Result<Self, Asn1DerError>

source§

impl<'a> DerDecodable<'a> for ()

source§

fn load(object: DerObject<'a>) -> Result<Self, Asn1DerError>

source§

impl<'a> DerDecodable<'a> for u32

source§

fn load(object: DerObject<'a>) -> Result<Self, Asn1DerError>

source§

impl<'a> DerDecodable<'a> for u128

source§

fn load(object: DerObject<'a>) -> Result<Self, Asn1DerError>

source§

impl<'a> DerDecodable<'a> for u64

source§

fn load(object: DerObject<'a>) -> Result<Self, Asn1DerError>

source§

impl<'a> DerDecodable<'a> for u16

source§

fn load(object: DerObject<'a>) -> Result<Self, Asn1DerError>

Implementors§

source§

impl<'a> DerDecodable<'a> for DerObject<'a>

source§

impl<'a> DerDecodable<'a> for Boolean<'a>

source§

impl<'a> DerDecodable<'a> for Integer<'a>

source§

impl<'a> DerDecodable<'a> for Null<'a>

source§

impl<'a> DerDecodable<'a> for OctetString<'a>

source§

impl<'a> DerDecodable<'a> for Sequence<'a>

source§

impl<'a> DerDecodable<'a> for Utf8String<'a>

source§

impl<'a, T: DerDecodable<'a>> DerDecodable<'a> for SequenceVec<T>