Struct proof_of_sql::base::commitment::ColumnCommitments
source · pub struct ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,{ /* private fields */ }
Expand description
Commitments for a collection of columns with some metadata.
These columns do not need to belong to the same table, and can have differing lengths.
Implementations§
source§impl<C> ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
impl<C> ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
sourcepub fn from_accessor_with_max_bounds(
table: TableRef,
columns: &[ColumnField],
accessor: &impl CommitmentAccessor<<Vec<C> as VecCommitmentExt>::DecompressedCommitment>,
) -> Self
pub fn from_accessor_with_max_bounds( table: TableRef, columns: &[ColumnField], accessor: &impl CommitmentAccessor<<Vec<C> as VecCommitmentExt>::DecompressedCommitment>, ) -> Self
Create a new ColumnCommitments
for a table from a commitment accessor.
sourcepub fn commitments(&self) -> &Vec<C>
pub fn commitments(&self) -> &Vec<C>
Returns a reference to the stored commitments.
sourcepub fn column_metadata(&self) -> &ColumnCommitmentMetadataMap
pub fn column_metadata(&self) -> &ColumnCommitmentMetadataMap
Returns a reference to the stored column metadata.
sourcepub fn get_commitment(
&self,
identifier: &Identifier,
) -> Option<<Vec<C> as VecCommitmentExt>::DecompressedCommitment>
pub fn get_commitment( &self, identifier: &Identifier, ) -> Option<<Vec<C> as VecCommitmentExt>::DecompressedCommitment>
Returns the commitment with the given identifier.
sourcepub fn get_metadata(
&self,
identifier: &Identifier,
) -> Option<&ColumnCommitmentMetadata>
pub fn get_metadata( &self, identifier: &Identifier, ) -> Option<&ColumnCommitmentMetadata>
Returns the metadata for the commitment with the given identifier.
sourcepub fn iter(
&self,
) -> Map<Zip<<&'_ ColumnCommitmentMetadataMap as IntoIterator>::IntoIter, Iter<'_, C>>, fn(_: ((&'_ Identifier, &'_ ColumnCommitmentMetadata), &'_ C)) -> (&'_ Identifier, &'_ ColumnCommitmentMetadata, &'_ C)> ⓘ
pub fn iter( &self, ) -> Map<Zip<<&'_ ColumnCommitmentMetadataMap as IntoIterator>::IntoIter, Iter<'_, C>>, fn(_: ((&'_ Identifier, &'_ ColumnCommitmentMetadata), &'_ C)) -> (&'_ Identifier, &'_ ColumnCommitmentMetadata, &'_ C)> ⓘ
Iterate over the metadata and commitments by reference.
sourcepub fn try_from_columns_with_offset<'a, COL>(
columns: impl IntoIterator<Item = (&'a Identifier, COL)>,
offset: usize,
setup: &<Vec<C> as VecCommitmentExt>::CommitmentPublicSetup<'_>,
) -> Result<ColumnCommitments<C>, DuplicateIdentifiers>where
COL: Into<CommittableColumn<'a>>,
pub fn try_from_columns_with_offset<'a, COL>(
columns: impl IntoIterator<Item = (&'a Identifier, COL)>,
offset: usize,
setup: &<Vec<C> as VecCommitmentExt>::CommitmentPublicSetup<'_>,
) -> Result<ColumnCommitments<C>, DuplicateIdentifiers>where
COL: Into<CommittableColumn<'a>>,
Returns ColumnCommitments
to the provided columns using the given generator offset
sourcepub fn try_append_rows_with_offset<'a, COL>(
&mut self,
columns: impl IntoIterator<Item = (&'a Identifier, COL)>,
offset: usize,
setup: &<Vec<C> as VecCommitmentExt>::CommitmentPublicSetup<'_>,
) -> Result<(), AppendColumnCommitmentsError>where
COL: Into<CommittableColumn<'a>>,
pub fn try_append_rows_with_offset<'a, COL>(
&mut self,
columns: impl IntoIterator<Item = (&'a Identifier, COL)>,
offset: usize,
setup: &<Vec<C> as VecCommitmentExt>::CommitmentPublicSetup<'_>,
) -> Result<(), AppendColumnCommitmentsError>where
COL: Into<CommittableColumn<'a>>,
Append rows of data from the provided columns to the existing commitments.
The given generator offset will be used for committing to the new rows. You most likely want this to be equal to the 0-indexed row number of the first new row.
Will error on a variety of mismatches.
See ColumnCommitmentsMismatch
for an enumeration of these errors.
sourcepub fn try_extend_columns_with_offset<'a, COL>(
&mut self,
columns: impl IntoIterator<Item = (&'a Identifier, COL)>,
offset: usize,
setup: &<Vec<C> as VecCommitmentExt>::CommitmentPublicSetup<'_>,
) -> Result<(), DuplicateIdentifiers>where
COL: Into<CommittableColumn<'a>>,
pub fn try_extend_columns_with_offset<'a, COL>(
&mut self,
columns: impl IntoIterator<Item = (&'a Identifier, COL)>,
offset: usize,
setup: &<Vec<C> as VecCommitmentExt>::CommitmentPublicSetup<'_>,
) -> Result<(), DuplicateIdentifiers>where
COL: Into<CommittableColumn<'a>>,
Add new columns to this ColumnCommitments
using the given generator offset.
sourcepub fn try_add(self, other: Self) -> Result<Self, ColumnCommitmentsMismatch>where
Self: Sized,
pub fn try_add(self, other: Self) -> Result<Self, ColumnCommitmentsMismatch>where
Self: Sized,
Add two ColumnCommitments
together.
Will error on a variety of mismatches.
See ColumnCommitmentsMismatch
for an enumeration of these errors.
sourcepub fn try_sub(self, other: Self) -> Result<Self, ColumnCommitmentsMismatch>where
Self: Sized,
pub fn try_sub(self, other: Self) -> Result<Self, ColumnCommitmentsMismatch>where
Self: Sized,
Subtract two ColumnCommitments
.
Will error on a variety of mismatches.
See ColumnCommitmentsMismatch
for an enumeration of these errors.
Trait Implementations§
source§impl<C: Clone> Clone for ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
impl<C: Clone> Clone for ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
source§fn clone(&self) -> ColumnCommitments<C>
fn clone(&self) -> ColumnCommitments<C>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<C: Debug> Debug for ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
impl<C: Debug> Debug for ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
source§impl<C: Default> Default for ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
impl<C: Default> Default for ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
source§fn default() -> ColumnCommitments<C>
fn default() -> ColumnCommitments<C>
source§impl<'de, C> Deserialize<'de> for ColumnCommitments<C>
impl<'de, C> Deserialize<'de> for ColumnCommitments<C>
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl<C> FromIterator<(Identifier, ColumnCommitmentMetadata, C)> for ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
impl<C> FromIterator<(Identifier, ColumnCommitmentMetadata, C)> for ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
source§fn from_iter<T: IntoIterator<Item = (Identifier, ColumnCommitmentMetadata, C)>>(
iter: T,
) -> Self
fn from_iter<T: IntoIterator<Item = (Identifier, ColumnCommitmentMetadata, C)>>( iter: T, ) -> Self
source§impl<'a, C> IntoIterator for &'a ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
impl<'a, C> IntoIterator for &'a ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
§type Item = (&'a Identifier, &'a ColumnCommitmentMetadata, &'a C)
type Item = (&'a Identifier, &'a ColumnCommitmentMetadata, &'a C)
§type IntoIter = Map<Zip<<&'a IndexMap<Identifier, ColumnCommitmentMetadata> as IntoIterator>::IntoIter, Iter<'a, C>>, fn(_: ((&'a Identifier, &'a ColumnCommitmentMetadata), &'a C)) -> (&'a Identifier, &'a ColumnCommitmentMetadata, &'a C)>
type IntoIter = Map<Zip<<&'a IndexMap<Identifier, ColumnCommitmentMetadata> as IntoIterator>::IntoIter, Iter<'a, C>>, fn(_: ((&'a Identifier, &'a ColumnCommitmentMetadata), &'a C)) -> (&'a Identifier, &'a ColumnCommitmentMetadata, &'a C)>
source§impl<C> IntoIterator for ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
impl<C> IntoIterator for ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
§type Item = (Identifier, ColumnCommitmentMetadata, C)
type Item = (Identifier, ColumnCommitmentMetadata, C)
§type IntoIter = Map<Zip<<IndexMap<Identifier, ColumnCommitmentMetadata> as IntoIterator>::IntoIter, IntoIter<C>>, fn(_: ((Identifier, ColumnCommitmentMetadata), C)) -> (Identifier, ColumnCommitmentMetadata, C)>
type IntoIter = Map<Zip<<IndexMap<Identifier, ColumnCommitmentMetadata> as IntoIterator>::IntoIter, IntoIter<C>>, fn(_: ((Identifier, ColumnCommitmentMetadata), C)) -> (Identifier, ColumnCommitmentMetadata, C)>
source§impl<C: PartialEq> PartialEq for ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
impl<C: PartialEq> PartialEq for ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
source§fn eq(&self, other: &ColumnCommitments<C>) -> bool
fn eq(&self, other: &ColumnCommitments<C>) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl<C> Serialize for ColumnCommitments<C>
impl<C> Serialize for ColumnCommitments<C>
impl<C: Eq> Eq for ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
impl<C> StructuralPartialEq for ColumnCommitments<C>where
Vec<C>: VecCommitmentExt,
Auto Trait Implementations§
impl<C> Freeze for ColumnCommitments<C>
impl<C> RefUnwindSafe for ColumnCommitments<C>where
C: RefUnwindSafe,
impl<C> Send for ColumnCommitments<C>where
C: Send,
impl<C> Sync for ColumnCommitments<C>where
C: Sync,
impl<C> Unpin for ColumnCommitments<C>where
C: Unpin,
impl<C> UnwindSafe for ColumnCommitments<C>where
C: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more