Skip to main content

Decode

Trait Decode 

Source
pub trait Decode: Encode + Sized {
    type Ref<'a>;

    // Required methods
    fn decode(bytes: &[u8]) -> Result<Self>;
    fn view(bytes: &[u8]) -> Result<Self::Ref<'_>>;
}
Expand description

A type that can be read back out of a record.

Decode::Ref is the borrowed view: the form that reads out of the arena without copying, which is Y29 and where G6’s point read budget lives. The owned form is one call away for the code that does not care.

Required Associated Types§

Source

type Ref<'a>

The borrowed view of this type.

Required Methods§

Source

fn decode(bytes: &[u8]) -> Result<Self>

Read an owned value.

§Errors

Code::Corrupt when the bytes are not this type, which means the collection holds something the shape said it did not.

Source

fn view(bytes: &[u8]) -> Result<Self::Ref<'_>>

Read a borrowed view, which copies nothing.

§Errors

The same as Decode::decode.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl Decode for String

Source§

type Ref<'a> = &'a str

Source§

fn decode(bytes: &[u8]) -> Result<String>

Source§

fn view(bytes: &[u8]) -> Result<&str>

Source§

impl Decode for Vec<u8>

Source§

type Ref<'a> = &'a [u8]

Source§

fn decode(bytes: &[u8]) -> Result<Vec<u8>>

Source§

fn view(bytes: &[u8]) -> Result<&[u8]>

Source§

impl Decode for bool

Source§

type Ref<'a> = bool

Source§

fn decode(bytes: &[u8]) -> Result<bool>

Source§

fn view(bytes: &[u8]) -> Result<bool>

Source§

impl Decode for f32

Source§

type Ref<'a> = f32

Source§

fn decode(bytes: &[u8]) -> Result<f32>

Source§

fn view(bytes: &[u8]) -> Result<f32>

Source§

impl Decode for f64

Source§

type Ref<'a> = f64

Source§

fn decode(bytes: &[u8]) -> Result<f64>

Source§

fn view(bytes: &[u8]) -> Result<f64>

Source§

impl Decode for i8

Source§

type Ref<'a> = i8

Source§

fn decode(bytes: &[u8]) -> Result<i8>

Source§

fn view(bytes: &[u8]) -> Result<i8>

Source§

impl Decode for i16

Source§

type Ref<'a> = i16

Source§

fn decode(bytes: &[u8]) -> Result<i16>

Source§

fn view(bytes: &[u8]) -> Result<i16>

Source§

impl Decode for i32

Source§

type Ref<'a> = i32

Source§

fn decode(bytes: &[u8]) -> Result<i32>

Source§

fn view(bytes: &[u8]) -> Result<i32>

Source§

impl Decode for i64

Source§

type Ref<'a> = i64

Source§

fn decode(bytes: &[u8]) -> Result<i64>

Source§

fn view(bytes: &[u8]) -> Result<i64>

Source§

impl Decode for u8

Source§

type Ref<'a> = u8

Source§

fn decode(bytes: &[u8]) -> Result<u8>

Source§

fn view(bytes: &[u8]) -> Result<u8>

Source§

impl Decode for u16

Source§

type Ref<'a> = u16

Source§

fn decode(bytes: &[u8]) -> Result<u16>

Source§

fn view(bytes: &[u8]) -> Result<u16>

Source§

impl Decode for u32

Source§

type Ref<'a> = u32

Source§

fn decode(bytes: &[u8]) -> Result<u32>

Source§

fn view(bytes: &[u8]) -> Result<u32>

Source§

impl Decode for u64

Source§

type Ref<'a> = u64

Source§

fn decode(bytes: &[u8]) -> Result<u64>

Source§

fn view(bytes: &[u8]) -> Result<u64>

Implementors§