Make generators public

This commit is contained in:
Robin Salen 2023-04-12 12:34:47 -04:00
parent 5de5bfb5e4
commit bf02a3e87d
No known key found for this signature in database
GPG Key ID: F98FD38F65687358
19 changed files with 31 additions and 23 deletions

View File

@ -372,7 +372,7 @@ impl<F: RichField + Extendable<D>, const D: usize> CircuitBuilder<F, D> {
}
#[derive(Debug, Default)]
pub(crate) struct EqualityGenerator {
pub struct EqualityGenerator {
x: Target,
y: Target,
equal: BoolTarget,

View File

@ -495,7 +495,7 @@ impl<F: RichField + Extendable<D>, const D: usize> CircuitBuilder<F, D> {
}
#[derive(Debug, Default)]
pub(crate) struct QuotientGeneratorExtension<const D: usize> {
pub struct QuotientGeneratorExtension<const D: usize> {
numerator: ExtensionTarget<D>,
denominator: ExtensionTarget<D>,
quotient: ExtensionTarget<D>,

View File

@ -7,4 +7,4 @@ pub mod random_access;
pub mod range_check;
pub mod select;
pub mod split_base;
pub(crate) mod split_join;
pub mod split_join;

View File

@ -53,7 +53,7 @@ impl<F: RichField + Extendable<D>, const D: usize> CircuitBuilder<F, D> {
}
#[derive(Debug, Default)]
pub(crate) struct LowHighGenerator {
pub struct LowHighGenerator {
integer: Target,
n_log: usize,
low: Target,

View File

@ -81,7 +81,7 @@ impl<F: RichField + Extendable<D>, const D: usize> CircuitBuilder<F, D> {
}
#[derive(Debug, Default)]
pub(crate) struct BaseSumGenerator<const B: usize> {
pub struct BaseSumGenerator<const B: usize> {
row: usize,
limbs: Vec<BoolTarget>,
}

View File

@ -57,7 +57,7 @@ impl<F: RichField + Extendable<D>, const D: usize> CircuitBuilder<F, D> {
}
#[derive(Debug, Default)]
pub(crate) struct SplitGenerator {
pub struct SplitGenerator {
integer: Target,
bits: Vec<Target>,
}
@ -99,7 +99,7 @@ impl<F: RichField> SimpleGenerator<F> for SplitGenerator {
}
#[derive(Debug, Default)]
pub(crate) struct WireSplitGenerator {
pub struct WireSplitGenerator {
integer: Target,
gates: Vec<usize>,
num_limbs: usize,

View File

@ -181,7 +181,7 @@ impl<F: RichField + Extendable<D>, const D: usize> PackedEvaluableBase<F, D> for
}
#[derive(Clone, Debug, Default)]
pub(crate) struct ArithmeticBaseGenerator<F: RichField + Extendable<D>, const D: usize> {
pub struct ArithmeticBaseGenerator<F: RichField + Extendable<D>, const D: usize> {
row: usize,
const_0: F,
const_1: F,

View File

@ -165,7 +165,7 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for ArithmeticExte
}
#[derive(Clone, Debug, Default)]
pub(crate) struct ArithmeticExtensionGenerator<F: RichField + Extendable<D>, const D: usize> {
pub struct ArithmeticExtensionGenerator<F: RichField + Extendable<D>, const D: usize> {
row: usize,
const_0: F,
const_1: F,

View File

@ -387,7 +387,7 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for CosetInterpola
}
#[derive(Debug, Default)]
pub(crate) struct InterpolationGenerator<F: RichField + Extendable<D>, const D: usize> {
pub struct InterpolationGenerator<F: RichField + Extendable<D>, const D: usize> {
row: usize,
gate: CosetInterpolationGate<F, D>,
interpolation_domain: Vec<F>,

View File

@ -238,7 +238,7 @@ impl<F: RichField + Extendable<D>, const D: usize> PackedEvaluableBase<F, D>
}
#[derive(Debug, Default)]
pub(crate) struct ExponentiationGenerator<F: RichField + Extendable<D>, const D: usize> {
pub struct ExponentiationGenerator<F: RichField + Extendable<D>, const D: usize> {
row: usize,
gate: ExponentiationGate<F, D>,
}

View File

@ -152,7 +152,7 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for MulExtensionGa
}
#[derive(Clone, Debug, Default)]
pub(crate) struct MulExtensionGenerator<F: RichField + Extendable<D>, const D: usize> {
pub struct MulExtensionGenerator<F: RichField + Extendable<D>, const D: usize> {
row: usize,
const_0: F,
i: usize,

View File

@ -410,7 +410,7 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for PoseidonGate<F
}
#[derive(Debug, Default)]
pub(crate) struct PoseidonGenerator<F: RichField + Extendable<D> + Poseidon, const D: usize> {
pub struct PoseidonGenerator<F: RichField + Extendable<D> + Poseidon, const D: usize> {
row: usize,
_phantom: PhantomData<F>,
}

View File

@ -210,7 +210,7 @@ impl<F: RichField + Extendable<D> + Poseidon, const D: usize> Gate<F, D> for Pos
}
#[derive(Clone, Debug, Default)]
pub(crate) struct PoseidonMdsGenerator<const D: usize> {
pub struct PoseidonMdsGenerator<const D: usize> {
row: usize,
}

View File

@ -339,7 +339,7 @@ impl<F: RichField + Extendable<D>, const D: usize> PackedEvaluableBase<F, D>
}
#[derive(Debug, Default)]
pub(crate) struct RandomAccessGenerator<F: RichField + Extendable<D>, const D: usize> {
pub struct RandomAccessGenerator<F: RichField + Extendable<D>, const D: usize> {
row: usize,
gate: RandomAccessGate<F, D>,
copy: usize,

View File

@ -178,7 +178,7 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for ReducingGate<D
}
#[derive(Debug, Default)]
pub(crate) struct ReducingGenerator<const D: usize> {
pub struct ReducingGenerator<const D: usize> {
row: usize,
gate: ReducingGate<D>,
}

View File

@ -178,7 +178,7 @@ impl<F: RichField + Extendable<D>, const D: usize> Gate<F, D> for ReducingExtens
}
#[derive(Debug, Default)]
pub(crate) struct ReducingGenerator<const D: usize> {
pub struct ReducingGenerator<const D: usize> {
row: usize,
gate: ReducingExtensionGate<D>,
}

View File

@ -129,7 +129,7 @@ impl<T: WitnessGenerator<F>, F: Field> AnyWitnessGenerator<F> for T {
}
/// A wrapper around an `Box<AnyWitnessGenerator>`.
pub struct WitnessGeneratorRef<F: Field>(pub(crate) Box<dyn AnyWitnessGenerator<F>>);
pub struct WitnessGeneratorRef<F: Field>(pub Box<dyn AnyWitnessGenerator<F>>);
impl<F: Field> WitnessGeneratorRef<F> {
pub fn new<G: AnyWitnessGenerator<F>>(generator: G) -> WitnessGeneratorRef<F> {
@ -269,7 +269,7 @@ impl<F: Field, SG: SimpleGenerator<F>> WitnessGenerator<F> for SimpleGeneratorAd
/// A generator which copies one wire to another.
#[derive(Debug, Default)]
pub(crate) struct CopyGenerator {
pub struct CopyGenerator {
pub(crate) src: Target,
pub(crate) dst: Target,
}
@ -302,7 +302,7 @@ impl<F: Field> SimpleGenerator<F> for CopyGenerator {
/// A generator for including a random value
#[derive(Debug, Default)]
pub(crate) struct RandomValueGenerator {
pub struct RandomValueGenerator {
pub(crate) target: Target,
}
@ -332,7 +332,7 @@ impl<F: Field> SimpleGenerator<F> for RandomValueGenerator {
/// A generator for testing if a value equals zero
#[derive(Debug, Default)]
pub(crate) struct NonzeroTestGenerator {
pub struct NonzeroTestGenerator {
pub(crate) to_test: Target,
pub(crate) dummy: Target,
}
@ -372,7 +372,7 @@ impl<F: Field> SimpleGenerator<F> for NonzeroTestGenerator {
/// Generator used to fill an extra constant.
#[derive(Debug, Clone, Default)]
pub(crate) struct ConstantGenerator<F: Field> {
pub struct ConstantGenerator<F: Field> {
pub row: usize,
pub constant_index: usize,
pub wire_index: usize,

View File

@ -154,7 +154,7 @@ impl<F: RichField + Extendable<D>, const D: usize> CircuitBuilder<F, D> {
}
#[derive(Debug)]
pub(crate) struct DummyProofGenerator<F, C, const D: usize>
pub struct DummyProofGenerator<F, C, const D: usize>
where
F: RichField + Extendable<D>,
C: GenericConfig<D, F = F>,

View File

@ -63,6 +63,14 @@ macro_rules! get_generator_tag_impl {
}
#[macro_export]
/// Macro implementing the `WitnessGeneratorSerializer` trait.
/// To serialize a list of generators used for a circuit,
/// this macro should be called with a struct on which to implement
/// this as first argument, followed by all the targeted generators.
///
/// ***NOTE:*** If you need to include `DummyProofGenerator`, you **MUST**
/// place it at the *beginning* of the generators list, right after
/// the serializer struct.
macro_rules! impl_generator_serializer {
($target:ty, $($generator_types:ty),+) => {
fn read_generator(