pub trait CircuitV2Builder<C: Config> {
Show 20 methods
    // Required methods
    fn bits2num_v2_f(
        &mut self,
        bits: impl IntoIterator<Item = Felt<<C as Config>::F>>,
    ) -> Felt<C::F>;
    fn num2bits_v2_f(
        &mut self,
        num: Felt<C::F>,
        num_bits: usize,
    ) -> Vec<Felt<C::F>>;
    fn exp_reverse_bits_v2(
        &mut self,
        input: Felt<C::F>,
        power_bits: Vec<Felt<C::F>>,
    ) -> Felt<C::F>;
    fn batch_fri_v2(
        &mut self,
        alphas: Vec<Ext<C::F, C::EF>>,
        p_at_zs: Vec<Ext<C::F, C::EF>>,
        p_at_xs: Vec<Felt<C::F>>,
    ) -> Ext<C::F, C::EF>;
    fn poseidon2_permute_v2(
        &mut self,
        state: [Felt<C::F>; 16],
    ) -> [Felt<C::F>; 16];
    fn poseidon2_hash_v2(&mut self, array: &[Felt<C::F>]) -> [Felt<C::F>; 8];
    fn poseidon2_compress_v2(
        &mut self,
        input: impl IntoIterator<Item = Felt<C::F>>,
    ) -> [Felt<C::F>; 8];
    fn fri_fold_v2(
        &mut self,
        input: CircuitV2FriFoldInput<C>,
    ) -> CircuitV2FriFoldOutput<C>;
    fn ext2felt_v2(&mut self, ext: Ext<C::F, C::EF>) -> [Felt<C::F>; 4];
    fn add_curve_v2(
        &mut self,
        point1: SepticCurve<Felt<C::F>>,
        point2: SepticCurve<Felt<C::F>>,
    ) -> SepticCurve<Felt<C::F>>;
    fn assert_digest_zero_v2(
        &mut self,
        is_real: Felt<C::F>,
        digest: SepticDigest<Felt<C::F>>,
    );
    fn sum_digest_v2(
        &mut self,
        digests: Vec<SepticDigest<Felt<C::F>>>,
    ) -> SepticDigest<Felt<C::F>>;
    fn select_global_cumulative_sum(
        &mut self,
        is_first_shard: Felt<C::F>,
        vk_digest: SepticDigest<Felt<C::F>>,
    ) -> SepticDigest<Felt<C::F>>;
    fn commit_public_values_v2(
        &mut self,
        public_values: RecursionPublicValues<Felt<C::F>>,
    );
    fn cycle_tracker_v2_enter(&mut self, name: impl Into<Cow<'static, str>>);
    fn cycle_tracker_v2_exit(&mut self);
    fn hint_ext_v2(&mut self) -> Ext<C::F, C::EF>;
    fn hint_felt_v2(&mut self) -> Felt<C::F>;
    fn hint_exts_v2(&mut self, len: usize) -> Vec<Ext<C::F, C::EF>>;
    fn hint_felts_v2(&mut self, len: usize) -> Vec<Felt<C::F>>;
}Required Methods§
fn bits2num_v2_f( &mut self, bits: impl IntoIterator<Item = Felt<<C as Config>::F>>, ) -> Felt<C::F>
fn num2bits_v2_f(&mut self, num: Felt<C::F>, num_bits: usize) -> Vec<Felt<C::F>>
fn exp_reverse_bits_v2( &mut self, input: Felt<C::F>, power_bits: Vec<Felt<C::F>>, ) -> Felt<C::F>
fn batch_fri_v2( &mut self, alphas: Vec<Ext<C::F, C::EF>>, p_at_zs: Vec<Ext<C::F, C::EF>>, p_at_xs: Vec<Felt<C::F>>, ) -> Ext<C::F, C::EF>
fn poseidon2_permute_v2(&mut self, state: [Felt<C::F>; 16]) -> [Felt<C::F>; 16]
fn poseidon2_hash_v2(&mut self, array: &[Felt<C::F>]) -> [Felt<C::F>; 8]
fn poseidon2_compress_v2( &mut self, input: impl IntoIterator<Item = Felt<C::F>>, ) -> [Felt<C::F>; 8]
fn fri_fold_v2( &mut self, input: CircuitV2FriFoldInput<C>, ) -> CircuitV2FriFoldOutput<C>
fn ext2felt_v2(&mut self, ext: Ext<C::F, C::EF>) -> [Felt<C::F>; 4]
fn add_curve_v2( &mut self, point1: SepticCurve<Felt<C::F>>, point2: SepticCurve<Felt<C::F>>, ) -> SepticCurve<Felt<C::F>>
fn assert_digest_zero_v2( &mut self, is_real: Felt<C::F>, digest: SepticDigest<Felt<C::F>>, )
fn sum_digest_v2( &mut self, digests: Vec<SepticDigest<Felt<C::F>>>, ) -> SepticDigest<Felt<C::F>>
fn select_global_cumulative_sum( &mut self, is_first_shard: Felt<C::F>, vk_digest: SepticDigest<Felt<C::F>>, ) -> SepticDigest<Felt<C::F>>
fn commit_public_values_v2( &mut self, public_values: RecursionPublicValues<Felt<C::F>>, )
fn cycle_tracker_v2_enter(&mut self, name: impl Into<Cow<'static, str>>)
fn cycle_tracker_v2_exit(&mut self)
fn hint_ext_v2(&mut self) -> Ext<C::F, C::EF>
fn hint_felt_v2(&mut self) -> Felt<C::F>
fn hint_exts_v2(&mut self, len: usize) -> Vec<Ext<C::F, C::EF>>
fn hint_felts_v2(&mut self, len: usize) -> Vec<Felt<C::F>>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.