Struct CommitEngine

Source
pub struct CommitEngine { /* private fields */ }
Expand description

A helper engine used in computing commitment ids.

Implementations§

Source§

impl CommitEngine

Source

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.

Source

pub fn commit_to_serialized<T: StrictEncode>(&mut self, value: &T)

Add a commitment to a strict-encoded value.

Source

pub fn commit_to_option<T: StrictEncode + StrictDumb>( &mut self, value: &Option<T>, )

Add a commitment to a strict-encoded optional value.

Source

pub fn commit_to_hash<T: CommitEncode<CommitmentId = StrictHash> + StrictType>( &mut self, value: &T, )

Add a commitment to a value which supports StrictHashing.

Source

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.

Source

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.

Source

pub fn commit_to_linear_list<T, const MIN: usize, const MAX: usize>( &mut self, collection: &Confined<Vec<T>, MIN, MAX>, )

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.

Source

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.

Source

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.

Source

pub fn as_layout(&mut self) -> &[CommitStep]

Get a reference for the underlying sequence of commit steps.

Source

pub fn into_layout(self) -> TinyVec<CommitStep>

Convert into the underlying sequence of commit steps.

Source

pub fn set_finished(&mut self)

Mark the procedure as completed, preventing any further data from being added.

Source

pub fn finish(self) -> Sha256

Complete the commitment returning the resulting hash.

Source

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

Source§

fn clone(&self) -> CommitEngine

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CommitEngine

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V