[][src]Trait bitcoin_hashes::Hash

pub trait Hash: Copy + Clone + PartialEq + Eq + Default + PartialOrd + Ord + Hash + Debug + Display + LowerHex + Index<RangeFull, Output = [u8]> + Index<RangeFrom<usize>, Output = [u8]> + Index<RangeTo<usize>, Output = [u8]> + Index<Range<usize>, Output = [u8]> + Index<usize, Output = u8> + Borrow<[u8]> {
    type Engine: HashEngine;
    type Inner: FromHex;

    const LEN: usize;
    const DISPLAY_BACKWARD: bool;

    fn from_engine(e: Self::Engine) -> Self;
fn from_slice(sl: &[u8]) -> Result<Self, Error>;
fn into_inner(self) -> Self::Inner;
fn as_inner(&self) -> &Self::Inner;
fn from_inner(inner: Self::Inner) -> Self; fn engine() -> Self::Engine { ... }
fn hash(data: &[u8]) -> Self { ... } }

Trait which applies to hashes of all types

Associated Types

type Engine: HashEngine

A hashing engine which bytes can be serialized into. It is expected to implement the io::Write trait, and to never return errors under any conditions.

type Inner: FromHex

The byte array that represents the hash internally

Loading content...

Associated Constants

const LEN: usize

Length of the hash, in bytes

const DISPLAY_BACKWARD: bool

Flag indicating whether user-visible serializations of this hash should be backward. For some reason Satoshi decided this should be true for Sha256dHash, so here we are.

Loading content...

Required methods

fn from_engine(e: Self::Engine) -> Self

Produce a hash from the current state of a given engine

fn from_slice(sl: &[u8]) -> Result<Self, Error>

Copies a byte slice into a hash object

fn into_inner(self) -> Self::Inner

Unwraps the hash and returns the underlying byte array

fn as_inner(&self) -> &Self::Inner

Unwraps the hash and returns a reference to the underlying byte array

fn from_inner(inner: Self::Inner) -> Self

Constructs a hash from the underlying byte array

Loading content...

Provided methods

fn engine() -> Self::Engine

Construct a new engine

fn hash(data: &[u8]) -> Self

Hashes some bytes

Loading content...

Implementors

impl Hash for bitcoin_hashes::hash160::Hash[src]

type Engine = HashEngine

type Inner = [u8; 20]

impl Hash for bitcoin_hashes::ripemd160::Hash[src]

type Engine = HashEngine

type Inner = [u8; 20]

impl Hash for bitcoin_hashes::sha1::Hash[src]

type Engine = HashEngine

type Inner = [u8; 20]

impl Hash for bitcoin_hashes::sha256::Hash[src]

type Engine = HashEngine

type Inner = [u8; 32]

impl Hash for bitcoin_hashes::sha256d::Hash[src]

type Engine = HashEngine

type Inner = [u8; 32]

impl Hash for bitcoin_hashes::sha512::Hash[src]

type Engine = HashEngine

type Inner = [u8; 64]

impl Hash for bitcoin_hashes::siphash24::Hash[src]

type Engine = HashEngine

type Inner = [u8; 8]

impl<T: Tag> Hash for bitcoin_hashes::sha256t::Hash<T>[src]

type Engine = HashEngine

type Inner = [u8; 32]

impl<T: HashTrait> Hash for Hmac<T>[src]

type Engine = HmacEngine<T>

type Inner = T::Inner

Loading content...