pub trait FieldHasherVariable<C: CircuitConfig>: FieldHasher {
type DigestVariable: Clone + Copy;
// Required methods
fn hash(
builder: &mut Builder<C>,
input: &[Felt<SP1Field>],
) -> Self::DigestVariable;
fn compress(
builder: &mut Builder<C>,
input: [Self::DigestVariable; 2],
) -> Self::DigestVariable;
fn assert_digest_eq(
builder: &mut Builder<C>,
a: Self::DigestVariable,
b: Self::DigestVariable,
);
fn select_chain_digest(
builder: &mut Builder<C>,
should_swap: C::Bit,
input: [Self::DigestVariable; 2],
) -> [Self::DigestVariable; 2];
fn print_digest(builder: &mut Builder<C>, digest: Self::DigestVariable);
}Required Associated Types§
type DigestVariable: Clone + Copy
Required Methods§
fn hash( builder: &mut Builder<C>, input: &[Felt<SP1Field>], ) -> Self::DigestVariable
fn compress( builder: &mut Builder<C>, input: [Self::DigestVariable; 2], ) -> Self::DigestVariable
fn assert_digest_eq( builder: &mut Builder<C>, a: Self::DigestVariable, b: Self::DigestVariable, )
fn select_chain_digest( builder: &mut Builder<C>, should_swap: C::Bit, input: [Self::DigestVariable; 2], ) -> [Self::DigestVariable; 2]
fn print_digest(builder: &mut Builder<C>, digest: Self::DigestVariable)
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.