Streamable

Trait Streamable 

Source
pub trait Streamable {
    // Required methods
    fn update_digest(&self, digest: &mut Sha256);
    fn stream(&self, out: &mut Vec<u8>) -> Result<()>;
    fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>
       where Self: Sized;

    // Provided methods
    fn to_bytes(&self) -> Result<Vec<u8>> { ... }
    fn from_bytes(bytes: &[u8]) -> Result<Self>
       where Self: Sized { ... }
    fn from_bytes_unchecked(bytes: &[u8]) -> Result<Self>
       where Self: Sized { ... }
    fn hash(&self) -> [u8; 32] { ... }
}

Required Methods§

Source

fn update_digest(&self, digest: &mut Sha256)

Source

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>
where Self: Sized,

Provided Methods§

Source

fn to_bytes(&self) -> Result<Vec<u8>>

Source

fn from_bytes(bytes: &[u8]) -> Result<Self>
where Self: Sized,

Source

fn from_bytes_unchecked(bytes: &[u8]) -> Result<Self>
where Self: Sized,

Source

fn hash(&self) -> [u8; 32]

Implementations on Foreign Types§

Source§

impl Streamable for bool

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>

Source§

impl Streamable for i8

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>

Source§

impl Streamable for i16

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>

Source§

impl Streamable for i32

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>

Source§

impl Streamable for i64

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>

Source§

impl Streamable for i128

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>

Source§

impl Streamable for u8

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>

Source§

impl Streamable for u16

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>

Source§

impl Streamable for u32

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>

Source§

impl Streamable for u64

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>

Source§

impl Streamable for u128

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>

Source§

impl Streamable for ()

Source§

fn update_digest(&self, _digest: &mut Sha256)

Source§

fn stream(&self, _out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(_input: &mut Cursor<&[u8]>) -> Result<Self>

Source§

impl Streamable for String

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>

Source§

impl<T: Streamable> Streamable for Option<T>

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>

Source§

impl<T: Streamable> Streamable for Vec<T>

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>

Source§

impl<T: Streamable, U: Streamable> Streamable for (T, U)

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>

Source§

impl<T: Streamable, U: Streamable, V: Streamable> Streamable for (T, U, V)

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>

Source§

impl<T: Streamable, U: Streamable, V: Streamable, W: Streamable> Streamable for (T, U, V, W)

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<()>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self>

Implementors§