[][src]Trait canonical::Canon

pub trait Canon<S: Store>: Sized + Clone {
    fn write(&self, sink: &mut impl Sink<S>) -> Result<(), S::Error>;
fn read(source: &mut impl Source<S>) -> Result<Self, S::Error>;
fn encoded_len(&self) -> usize; }

Trait to read/write values as bytes

Required methods

fn write(&self, sink: &mut impl Sink<S>) -> Result<(), S::Error>

Write the value as bytes to a Sink

fn read(source: &mut impl Source<S>) -> Result<Self, S::Error>

Read the value from bytes in a Source

fn encoded_len(&self) -> usize

Returns the number of bytes needed to encode this value

Loading content...

Implementations on Foreign Types

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

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

impl<S: Store, T> Canon<S> for PhantomData<T>[src]

Loading content...

Implementors

impl<S> Canon<S> for S where
    S: Store
[src]

impl<S> Canon<S> for bool where
    S: Store
[src]

impl<S: Store> Canon<S> for ()[src]

impl<S: Store> Canon<S> for InvalidEncoding[src]

impl<S: Store> Canon<S> for i8[src]

impl<S: Store> Canon<S> for i16[src]

impl<S: Store> Canon<S> for i32[src]

impl<S: Store> Canon<S> for i64[src]

impl<S: Store> Canon<S> for i128[src]

impl<S: Store> Canon<S> for u8[src]

impl<S: Store> Canon<S> for u16[src]

impl<S: Store> Canon<S> for u32[src]

impl<S: Store> Canon<S> for u64[src]

impl<S: Store> Canon<S> for u128[src]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

impl<T, S> Canon<S> for [T; 0] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 1] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 2] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 3] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 4] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 5] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 6] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 7] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 8] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 9] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 10] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 11] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 12] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 13] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 14] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 15] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 16] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 17] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 18] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 19] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 20] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 21] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 22] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 23] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 24] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 25] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 26] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 27] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 28] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 29] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 30] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 31] where
    T: Canon<S> + Sized,
    S: Store
[src]

impl<T, S> Canon<S> for [T; 32] where
    T: Canon<S> + Sized,
    S: Store
[src]

Loading content...