taple-core 0.3.3

TAPLE Protocol reference implementation
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
use blake3::Hash;
use borsh::BorshSerialize;
use crate::errors::Error;

pub fn digest_calculator<T: BorshSerialize>(serializable: T) -> Result<Hash, Error> {
    let bytes = match serializable.try_to_vec() {
        Ok(bytes) => bytes,
        Err(_) => return Err(Error::BorshSerializationFailed),
    };
    let digest = blake3::hash(&bytes);
    Ok(digest)
}