Struct TableWitnessIndex

Source
pub struct TableWitnessIndex<'cs, 'alloc, P = PackedType<OptimalUnderlier, B128>>{ /* private fields */ }
Expand description

Holds witness column data for a table, indexed by column index.

Implementations§

Source§

impl<'cs, 'alloc, P> TableWitnessIndex<'cs, 'alloc, P>

Source

pub fn table(&self) -> &'cs Table<P::Scalar>

Source

pub fn size(&self) -> usize

The number of table events that the index should contain.

Source

pub fn log_capacity(&self) -> usize

Source

pub fn min_log_segment_size(&self) -> usize

Binary logarithm of the mininimum segment size.

This is the minimum number of logical rows that can be put into one segment during iteration. It is the maximum number of logical rows occupied by a single underlier.

Source§

impl<'cs, 'alloc, F: TowerField, P: PackedField<Scalar = F>> TableWitnessIndex<'cs, 'alloc, P>

Source

pub fn new( allocator: &'alloc Bump, table: &'cs Table<F>, size: usize, ) -> Result<Self, Error>

Source

pub fn table_id(&self) -> TableId

Source

pub fn capacity(&self) -> usize

Source

pub fn full_segment(&mut self) -> TableWitnessSegment<'_, P>

Returns a witness index segment covering the entire table.

Source

pub fn fill_sequential<T: TableFiller<P>>( &mut self, table: &T, rows: &[T::Event], ) -> Result<(), Error>

Fill a full table witness index using the given row data.

This function iterates through witness segments sequentially in a single thread.

Source

pub fn fill_parallel<T>( &mut self, table: &T, rows: &[T::Event], ) -> Result<(), Error>
where T: TableFiller<P> + Sync, T::Event: Sync,

Fill a full table witness index using the given row data.

This function iterates through witness segments in parallel in multiple threads.

Source

pub fn fill_sequential_with_segment_size<T: TableFiller<P>>( &mut self, table: &T, rows: &[T::Event], log_size: usize, ) -> Result<(), Error>

Fill a full table witness index using the given row data.

This function iterates through witness segments sequentially in a single thread.

Source

pub fn fill_parallel_with_segment_size<T>( &mut self, table: &T, rows: &[T::Event], log_size: usize, ) -> Result<(), Error>
where T: TableFiller<P> + Sync, T::Event: Sync,

Fill a full table witness index using the given row data.

This function iterates through witness segments in parallel in multiple threads.

Source

pub fn segments( &mut self, log_size: usize, ) -> impl Iterator<Item = TableWitnessSegment<'_, P>>

Returns an iterator over segments of witness index rows.

This method clamps the segment size, requested as log_size, to a minimum of self.min_log_segment_size() and a maximum of self.log_capacity(). The actual segment size can be queried on the items yielded by the iterator.

Source

pub fn par_segments( &mut self, log_size: usize, ) -> impl IndexedParallelIterator<Item = TableWitnessSegment<'_, P>>

Trait Implementations§

Source§

impl<'cs, 'alloc, P> Debug for TableWitnessIndex<'cs, 'alloc, P>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'cs, 'alloc, P> Freeze for TableWitnessIndex<'cs, 'alloc, P>

§

impl<'cs, 'alloc, P = <M128 as PackScalar<BinaryField128b>>::Packed> !RefUnwindSafe for TableWitnessIndex<'cs, 'alloc, P>

§

impl<'cs, 'alloc, P> Send for TableWitnessIndex<'cs, 'alloc, P>

§

impl<'cs, 'alloc, P> Sync for TableWitnessIndex<'cs, 'alloc, P>

§

impl<'cs, 'alloc, P> Unpin for TableWitnessIndex<'cs, 'alloc, P>

§

impl<'cs, 'alloc, P = <M128 as PackScalar<BinaryField128b>>::Packed> !UnwindSafe for TableWitnessIndex<'cs, 'alloc, P>

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more