pub trait MultihashDigest<const S: usize>:
TryFrom<u64>
+ Into<u64>
+ Send
+ Sync
+ Unpin
+ Copy
+ Eq
+ Debug
+ 'static {
// Required methods
fn digest(&self, input: &[u8]) -> Multihash<S>;
fn multihash_from_digest<'a, D, const DIGEST_SIZE: usize>(
digest: &'a D,
) -> Multihash<S>
where D: Digest<DIGEST_SIZE>,
Self: From<&'a D>;
}
Expand description
Trait that implements hashing.
It is usually implemented by a custom code table enum that derives the
Multihash
derive.
Required Methods§
Sourcefn digest(&self, input: &[u8]) -> Multihash<S>
fn digest(&self, input: &[u8]) -> Multihash<S>
Calculate the hash of some input data.
§Example
// `Code` implements `MultihashDigest`
use sp_multihash::{
Code,
MultihashDigest,
};
let hash = Code::Sha3_256.digest(b"Hello world!");
println!("{:02x?}", hash);
Sourcefn multihash_from_digest<'a, D, const DIGEST_SIZE: usize>(
digest: &'a D,
) -> Multihash<S>
fn multihash_from_digest<'a, D, const DIGEST_SIZE: usize>( digest: &'a D, ) -> Multihash<S>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.