pub struct CommitEngine { /* private fields */ }
Expand description
A helper engine used in computing commitment ids.
Implementations§
Source§impl CommitEngine
impl CommitEngine
Sourcepub fn new(tag: &'static str) -> Self
pub fn new(tag: &'static str) -> Self
Initialize the engine using a type-specific tag string.
The tag should be in a form of a valid URN, ending with a fragment specifying the date of the tag, or other form of versioning.
Sourcepub fn commit_to_serialized<T: StrictEncode>(&mut self, value: &T)
pub fn commit_to_serialized<T: StrictEncode>(&mut self, value: &T)
Add a commitment to a strict-encoded value.
Sourcepub fn commit_to_option<T: StrictEncode + StrictDumb>(
&mut self,
value: &Option<T>,
)
pub fn commit_to_option<T: StrictEncode + StrictDumb>( &mut self, value: &Option<T>, )
Add a commitment to a strict-encoded optional value.
Sourcepub fn commit_to_hash<T: CommitEncode<CommitmentId = StrictHash> + StrictType>(
&mut self,
value: &T,
)
pub fn commit_to_hash<T: CommitEncode<CommitmentId = StrictHash> + StrictType>( &mut self, value: &T, )
Add a commitment to a value which supports StrictHash
ing.
Sourcepub fn commit_to_merkle<T: MerkleLeaves>(&mut self, value: &T)where
T::Leaf: StrictType,
pub fn commit_to_merkle<T: MerkleLeaves>(&mut self, value: &T)where
T::Leaf: StrictType,
Add a commitment to a merklized collection.
The collection must implement MerkleLeaves
trait.
Sourcepub fn commit_to_concealed<T>(&mut self, value: &T)
pub fn commit_to_concealed<T>(&mut self, value: &T)
Add a commitment to a type which supports Conceal
procedure (hiding
some of its data).
First, the conceal procedure is called for the value
, and then the
resulting data are serialized using strict encoding.
Sourcepub fn commit_to_linear_list<T, const MIN: usize, const MAX: usize>(
&mut self,
collection: &Confined<Vec<T>, MIN, MAX>,
)where
T: StrictEncode + StrictDumb,
pub fn commit_to_linear_list<T, const MIN: usize, const MAX: usize>(
&mut self,
collection: &Confined<Vec<T>, MIN, MAX>,
)where
T: StrictEncode + StrictDumb,
Add a commitment to a vector collection.
Does not use merklization and encodes each element as strict encoding binary data right in to the hasher.
Additionally to all elements, commits to the length of the collection and minimal and maximal dimensions of the confinement.
Sourcepub fn commit_to_linear_set<T, const MIN: usize, const MAX: usize>(
&mut self,
collection: &Confined<BTreeSet<T>, MIN, MAX>,
)
pub fn commit_to_linear_set<T, const MIN: usize, const MAX: usize>( &mut self, collection: &Confined<BTreeSet<T>, MIN, MAX>, )
Add a commitment to a set collection.
Does not use merklization and encodes each element as strict encoding binary data right in to the hasher.
Additionally to all elements, commits to the length of the collection and minimal and maximal dimensions of the confinement.
Sourcepub fn commit_to_linear_map<K, V, const MIN: usize, const MAX: usize>(
&mut self,
collection: &Confined<BTreeMap<K, V>, MIN, MAX>,
)
pub fn commit_to_linear_map<K, V, const MIN: usize, const MAX: usize>( &mut self, collection: &Confined<BTreeMap<K, V>, MIN, MAX>, )
Add a commitment to a mapped collection.
Does not use merklization and encodes each element as strict encoding binary data right in to the hasher.
Additionally to all keys and values, commits to the length of the collection and minimal and maximal dimensions of the confinement.
Sourcepub fn as_layout(&mut self) -> &[CommitStep]
pub fn as_layout(&mut self) -> &[CommitStep]
Get a reference for the underlying sequence of commit steps.
Sourcepub fn into_layout(self) -> TinyVec<CommitStep>
pub fn into_layout(self) -> TinyVec<CommitStep>
Convert into the underlying sequence of commit steps.
Sourcepub fn set_finished(&mut self)
pub fn set_finished(&mut self)
Mark the procedure as completed, preventing any further data from being added.
Sourcepub fn finish_layout(self) -> (Sha256, TinyVec<CommitStep>)
pub fn finish_layout(self) -> (Sha256, TinyVec<CommitStep>)
Complete the commitment returning the resulting hash and the description of all commitment steps performed during the procedure.
Trait Implementations§
Source§impl Clone for CommitEngine
impl Clone for CommitEngine
Source§fn clone(&self) -> CommitEngine
fn clone(&self) -> CommitEngine
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more