pub trait CommitmentGadget<C, F> where
C: CommitmentScheme,
F: Field, {
type OutputGadget: ConditionalEqGadget<F> + CondSelectGadget<F> + EqGadget<F> + ToBytesGadget<F> + AllocGadget<<C as CommitmentScheme>::Output, F> + Clone + Sized + Debug;
type ParametersGadget: AllocGadget<<C as CommitmentScheme>::Parameters, F> + Clone;
type RandomnessGadget: AllocGadget<<C as CommitmentScheme>::Randomness, F> + Clone;
fn check_commitment_gadget<CS>(
cs: CS,
parameters: &Self::ParametersGadget,
input: &[UInt8],
r: &Self::RandomnessGadget
) -> Result<Self::OutputGadget, SynthesisError>
where
CS: ConstraintSystem<F>;
}