Trait pod::code::Decode [] [src]

pub trait Decode: Sized {
    type Options: Default;
    fn decode<R: Read>(r: &mut R) -> Result<Self> { ... }
    fn decode_options<R: Read>(r: &mut R, _options: Self::Options) -> Result<Self> { ... }
    fn decode_slice(data: &[u8]) -> Result<Self> { ... }
    fn decode_slice_options(data: &[u8], options: Self::Options) -> Result<Self> { ... }
    fn validate(&self) -> Result<()> { ... }
}

Decodes data from a Read into a new value.

See Encode for more details.

Associated Types

type Options: Default

Options will affect how the value is decoded, and may be used to provide any data that is normally lost during encoding.

Provided Methods

fn decode<R: Read>(r: &mut R) -> Result<Self>

Decodes from the Read with default options

fn decode_options<R: Read>(r: &mut R, _options: Self::Options) -> Result<Self>

Decodes from the Read with the provided options

fn decode_slice(data: &[u8]) -> Result<Self>

Decodes from a byte slice

fn decode_slice_options(data: &[u8], options: Self::Options) -> Result<Self>

Decodes from a byte slice with the provided options

fn validate(&self) -> Result<()>

Implement to assert that the decoded contents are valid

Warning

This takes &self, meaning the object is still created before validation occurs. Therefore any Drop implementations must not assume that the object is valid.

Implementors