Trait canonical::Canon[][src]

pub trait Canon: Sized + Clone {
    fn encode(&self, sink: &mut Sink<'_>);
fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>;
fn encoded_len(&self) -> usize; }
Expand description

Trait to read/write values as bytes

Required methods

fn encode(&self, sink: &mut Sink<'_>)[src]

Write the value as bytes to a Sink

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

Read the value from bytes in a Source

fn encoded_len(&self) -> usize[src]

Returns the number of bytes needed to encode this value

Implementations on Foreign Types

impl Canon for u8[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl Canon for u16[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl Canon for i16[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl Canon for u32[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl Canon for i32[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl Canon for u64[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl Canon for i64[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl Canon for u128[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl Canon for i128[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl Canon for bool[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<T> Canon for Option<T> where
    T: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<T, E> Canon for Result<T, E> where
    T: Canon,
    E: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl Canon for ()[src]

fn encode(&self, _: &mut Sink<'_>)[src]

fn decode(_: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl Canon for ![src]

fn encode(&self, _: &mut Sink<'_>)[src]

fn decode(_: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<T> Canon for PhantomData<T>[src]

fn encode(&self, _: &mut Sink<'_>)[src]

fn decode(_: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<A, B> Canon for (A, B) where
    A: Canon,
    B: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<A, B, C> Canon for (A, B, C) where
    A: Canon,
    B: Canon,
    C: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<A, B, C, D> Canon for (A, B, C, D) where
    A: Canon,
    B: Canon,
    C: Canon,
    D: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<A, B, C, D, E> Canon for (A, B, C, D, E) where
    A: Canon,
    B: Canon,
    C: Canon,
    D: Canon,
    E: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<A, B, C, D, E, F> Canon for (A, B, C, D, E, F) where
    A: Canon,
    B: Canon,
    C: Canon,
    D: Canon,
    E: Canon,
    F: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<A, B, C, D, E, F, G> Canon for (A, B, C, D, E, F, G) where
    A: Canon,
    B: Canon,
    C: Canon,
    D: Canon,
    E: Canon,
    F: Canon,
    G: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<A, B, C, D, E, F, G, H> Canon for (A, B, C, D, E, F, G, H) where
    A: Canon,
    B: Canon,
    C: Canon,
    D: Canon,
    E: Canon,
    F: Canon,
    G: Canon,
    H: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<A, B, C, D, E, F, G, H, I> Canon for (A, B, C, D, E, F, G, H, I) where
    A: Canon,
    B: Canon,
    C: Canon,
    D: Canon,
    E: Canon,
    F: Canon,
    G: Canon,
    H: Canon,
    I: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<A, B, C, D, E, F, G, H, I, J> Canon for (A, B, C, D, E, F, G, H, I, J) where
    A: Canon,
    B: Canon,
    C: Canon,
    D: Canon,
    E: Canon,
    F: Canon,
    G: Canon,
    H: Canon,
    I: Canon,
    J: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<A, B, C, D, E, F, G, H, I, J, K> Canon for (A, B, C, D, E, F, G, H, I, J, K) where
    A: Canon,
    B: Canon,
    C: Canon,
    D: Canon,
    E: Canon,
    F: Canon,
    G: Canon,
    H: Canon,
    I: Canon,
    J: Canon,
    K: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<A, B, C, D, E, F, G, H, I, J, K, L> Canon for (A, B, C, D, E, F, G, H, I, J, K, L) where
    A: Canon,
    B: Canon,
    C: Canon,
    D: Canon,
    E: Canon,
    F: Canon,
    G: Canon,
    H: Canon,
    I: Canon,
    J: Canon,
    K: Canon,
    L: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<A, B, C, D, E, F, G, H, I, J, K, L, M> Canon for (A, B, C, D, E, F, G, H, I, J, K, L, M) where
    A: Canon,
    B: Canon,
    C: Canon,
    D: Canon,
    E: Canon,
    F: Canon,
    G: Canon,
    H: Canon,
    I: Canon,
    J: Canon,
    K: Canon,
    L: Canon,
    M: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N> Canon for (A, B, C, D, E, F, G, H, I, J, K, L, M, N) where
    A: Canon,
    B: Canon,
    C: Canon,
    D: Canon,
    E: Canon,
    F: Canon,
    G: Canon,
    H: Canon,
    I: Canon,
    J: Canon,
    K: Canon,
    L: Canon,
    M: Canon,
    N: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O> Canon for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O) where
    A: Canon,
    B: Canon,
    C: Canon,
    D: Canon,
    E: Canon,
    F: Canon,
    G: Canon,
    H: Canon,
    I: Canon,
    J: Canon,
    K: Canon,
    L: Canon,
    M: Canon,
    N: Canon,
    O: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P> Canon for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P) where
    A: Canon,
    B: Canon,
    C: Canon,
    D: Canon,
    E: Canon,
    F: Canon,
    G: Canon,
    H: Canon,
    I: Canon,
    J: Canon,
    K: Canon,
    L: Canon,
    M: Canon,
    N: Canon,
    O: Canon,
    P: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<T, const N: usize> Canon for [T; N] where
    T: Canon + Sized
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<T: Canon> Canon for Vec<T>[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl Canon for String[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<T> Canon for Rc<T> where
    T: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<T> Canon for Arc<T> where
    T: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

Implementors

impl Canon for CanonError[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl Canon for Id[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]

impl<T> Canon for Repr<T> where
    T: Canon
[src]

fn encode(&self, sink: &mut Sink<'_>)[src]

fn decode(source: &mut Source<'_>) -> Result<Self, CanonError>[src]

fn encoded_len(&self) -> usize[src]