Struct kimchi_msm::circuit_design::composition::SubEnvColumn
source · pub struct SubEnvColumn<'a, F: PrimeField, CIx1: ColumnIndexer, Env1: ColAccessCap<F, CIx1>, L>(_);
Expand description
Sub environment with a lens that is mapping columns.
Implementations§
source§impl<'a, F: PrimeField, CIx1: ColumnIndexer, Env1: ColAccessCap<F, CIx1>, L> SubEnvColumn<'a, F, CIx1, Env1, L>
impl<'a, F: PrimeField, CIx1: ColumnIndexer, Env1: ColAccessCap<F, CIx1>, L> SubEnvColumn<'a, F, CIx1, Env1, L>
pub fn new(env: &'a mut Env1, lens: L) -> Self
Trait Implementations§
source§impl<'a, F: PrimeField, CIx1: ColumnIndexer, CIx2: ColumnIndexer, Env1: ColAccessCap<F, CIx1>, L: MPrism<Source = CIx1, Target = CIx2>> ColAccessCap<F, CIx2> for SubEnvColumn<'a, F, CIx1, Env1, L>
impl<'a, F: PrimeField, CIx1: ColumnIndexer, CIx2: ColumnIndexer, Env1: ColAccessCap<F, CIx1>, L: MPrism<Source = CIx1, Target = CIx2>> ColAccessCap<F, CIx2> for SubEnvColumn<'a, F, CIx1, Env1, L>
type Variable = <Env1 as ColAccessCap<F, CIx1>>::Variable
source§fn assert_zero(&mut self, cst: Self::Variable)
fn assert_zero(&mut self, cst: Self::Variable)
Asserts that the value is zero.
source§fn set_assert_mapper(
&mut self,
mapper: Box<dyn Fn(Self::Variable) -> Self::Variable>
)
fn set_assert_mapper( &mut self, mapper: Box<dyn Fn(Self::Variable) -> Self::Variable> )
Sets an assert predicate
f(X)
such that when assert_zero is
called on x, it will actually perform assert_zero(f(x))
.source§fn read_column(&self, ix: CIx2) -> Self::Variable
fn read_column(&self, ix: CIx2) -> Self::Variable
Reads value from a column position.
source§impl<'a, F: PrimeField, CIx1: ColumnIndexer, CIx2: ColumnIndexer, Env1: ColWriteCap<F, CIx1>, L: MPrism<Source = CIx1, Target = CIx2>> ColWriteCap<F, CIx2> for SubEnvColumn<'a, F, CIx1, Env1, L>
impl<'a, F: PrimeField, CIx1: ColumnIndexer, CIx2: ColumnIndexer, Env1: ColWriteCap<F, CIx1>, L: MPrism<Source = CIx1, Target = CIx2>> ColWriteCap<F, CIx2> for SubEnvColumn<'a, F, CIx1, Env1, L>
fn write_column(&mut self, ix: CIx2, value: &Self::Variable)
source§impl<'a, F: PrimeField, CIx1: ColumnIndexer, CIx2: ColumnIndexer, Env1: HybridCopyCap<F, CIx1>, L: MPrism<Source = CIx1, Target = CIx2>> HybridCopyCap<F, CIx2> for SubEnvColumn<'a, F, CIx1, Env1, L>
impl<'a, F: PrimeField, CIx1: ColumnIndexer, CIx2: ColumnIndexer, Env1: HybridCopyCap<F, CIx1>, L: MPrism<Source = CIx1, Target = CIx2>> HybridCopyCap<F, CIx2> for SubEnvColumn<'a, F, CIx1, Env1, L>
source§impl<'a, F: PrimeField, CIx1: ColumnIndexer, CIx2: ColumnIndexer, LT: LookupTableID, Env1: LookupCap<F, CIx1, LT>, L: MPrism<Source = CIx1, Target = CIx2>> LookupCap<F, CIx2, LT> for SubEnvColumn<'a, F, CIx1, Env1, L>
impl<'a, F: PrimeField, CIx1: ColumnIndexer, CIx2: ColumnIndexer, LT: LookupTableID, Env1: LookupCap<F, CIx1, LT>, L: MPrism<Source = CIx1, Target = CIx2>> LookupCap<F, CIx2, LT> for SubEnvColumn<'a, F, CIx1, Env1, L>
Auto Trait Implementations§
impl<'a, F, CIx1, Env1, L> RefUnwindSafe for SubEnvColumn<'a, F, CIx1, Env1, L>where CIx1: RefUnwindSafe, Env1: RefUnwindSafe, F: RefUnwindSafe, L: RefUnwindSafe,
impl<'a, F, CIx1, Env1, L> Send for SubEnvColumn<'a, F, CIx1, Env1, L>where CIx1: Send, Env1: Send, L: Send,
impl<'a, F, CIx1, Env1, L> Sync for SubEnvColumn<'a, F, CIx1, Env1, L>where CIx1: Sync, Env1: Sync, L: Sync,
impl<'a, F, CIx1, Env1, L> Unpin for SubEnvColumn<'a, F, CIx1, Env1, L>where CIx1: Unpin, F: Unpin, L: Unpin,
impl<'a, F, CIx1, Env1, L> !UnwindSafe for SubEnvColumn<'a, F, CIx1, Env1, L>
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
Mutably borrows from an owned value. Read more