pub trait SerdeHash: Sized + FromStr + Display + Index<usize, Output = u8, Output = [u8]> + Index<RangeFull>where
    Self::Err: Display,{
    const N: usize;

    // Required method
    fn from_slice_delegated(sl: &[u8]) -> Result<Self, Error>;

    // Provided methods
    fn serialize<S>(
        &self,
        s: S
    ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
       where S: Serializer { ... }
    fn deserialize<'de, D>(
        d: D
    ) -> Result<Self, <D as Deserializer<'de>>::Error>
       where D: Deserializer<'de> { ... }
}
Expand description

Default serialization/deserialization methods.

Required Associated Constants§

const N: usize

Size, in bits, of the hash.

Required Methods§

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

Helper function to turn a deserialized slice into the correct hash type.

Provided Methods§

fn serialize<S>( &self, s: S ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where S: Serializer,

Do serde serialization.

fn deserialize<'de, D>(d: D) -> Result<Self, <D as Deserializer<'de>>::Error>where D: Deserializer<'de>,

Do serde deserialization.

Implementations on Foreign Types§

§

impl SerdeHash for WitnessCommitment

§

const N: usize = 32usize

§

fn from_slice_delegated(sl: &[u8]) -> Result<WitnessCommitment, Error>

§

impl SerdeHash for LegacySighash

§

const N: usize = 32usize

§

fn from_slice_delegated(sl: &[u8]) -> Result<LegacySighash, Error>

§

impl SerdeHash for XpubIdentifier

§

const N: usize = 20usize

§

fn from_slice_delegated(sl: &[u8]) -> Result<XpubIdentifier, Error>

§

impl SerdeHash for FilterHeader

§

const N: usize = 32usize

§

fn from_slice_delegated(sl: &[u8]) -> Result<FilterHeader, Error>

§

impl SerdeHash for FilterHash

§

const N: usize = 32usize

§

fn from_slice_delegated(sl: &[u8]) -> Result<FilterHash, Error>

§

impl SerdeHash for TapSighash

§

const N: usize = 32usize

§

fn from_slice_delegated(sl: &[u8]) -> Result<TapSighash, Error>

§

impl SerdeHash for WitnessMerkleNode

§

const N: usize = 32usize

§

fn from_slice_delegated(sl: &[u8]) -> Result<WitnessMerkleNode, Error>

§

impl SerdeHash for TapTweakHash

§

const N: usize = 32usize

§

fn from_slice_delegated(sl: &[u8]) -> Result<TapTweakHash, Error>

§

impl SerdeHash for Wtxid

§

const N: usize = 32usize

§

fn from_slice_delegated(sl: &[u8]) -> Result<Wtxid, Error>

§

impl SerdeHash for TapLeafHash

§

const N: usize = 32usize

§

fn from_slice_delegated(sl: &[u8]) -> Result<TapLeafHash, Error>

§

impl SerdeHash for SegwitV0Sighash

§

const N: usize = 32usize

§

fn from_slice_delegated(sl: &[u8]) -> Result<SegwitV0Sighash, Error>

§

impl SerdeHash for TapNodeHash

§

const N: usize = 32usize

§

fn from_slice_delegated(sl: &[u8]) -> Result<TapNodeHash, Error>

Implementors§

§

impl SerdeHash for BlockHash

§

const N: usize = 32usize

§

impl SerdeHash for PubkeyHash

§

const N: usize = 20usize

§

impl SerdeHash for ScriptHash

§

const N: usize = 20usize

§

impl SerdeHash for TxMerkleNode

§

const N: usize = 32usize

§

impl SerdeHash for Txid

§

const N: usize = 32usize

§

impl SerdeHash for WPubkeyHash

§

const N: usize = 20usize

§

impl SerdeHash for WScriptHash

§

const N: usize = 32usize

§

impl SerdeHash for bitcoin::key::secp256k1::hashes::hash160::Hash

§

const N: usize = 20usize

§

impl SerdeHash for bitcoin::key::secp256k1::hashes::ripemd160::Hash

§

const N: usize = 20usize

§

impl SerdeHash for bitcoin::key::secp256k1::hashes::sha1::Hash

§

const N: usize = 20usize

§

impl SerdeHash for bitcoin::key::secp256k1::hashes::sha256::Hash

§

const N: usize = 32usize

§

impl SerdeHash for Midstate

§

const N: usize = 32usize

§

impl SerdeHash for bitcoin::key::secp256k1::hashes::sha256d::Hash

§

const N: usize = 32usize

§

impl SerdeHash for bitcoin::key::secp256k1::hashes::sha512::Hash

§

const N: usize = 64usize

§

impl SerdeHash for bitcoin::key::secp256k1::hashes::sha512_256::Hash

§

const N: usize = 32usize

§

impl SerdeHash for bitcoin::key::secp256k1::hashes::siphash24::Hash

§

const N: usize = 8usize

§

impl<T> SerdeHash for bitcoin::key::secp256k1::hashes::sha256t::Hash<T>where T: Tag,

§

const N: usize = 32usize