Skip to main content

MachineRecord

Trait MachineRecord 

Source
pub trait MachineRecord:
    Default
    + Sized
    + Send
    + Sync
    + Clone {
    // Required methods
    fn stats(&self) -> HashMap<String, usize>;
    fn append(&mut self, other: &mut Self);
    fn public_values<F: AbstractField>(&self) -> Vec<F>;
    fn eval_public_values<AB: SP1AirBuilder>(builder: &mut AB);
    fn interactions_in_public_values() -> Vec<InteractionKind>;
}
Expand description

A record that can be proven by a machine.

Required Methods§

Source

fn stats(&self) -> HashMap<String, usize>

The statistics of the record.

Source

fn append(&mut self, other: &mut Self)

Appends two records together.

Source

fn public_values<F: AbstractField>(&self) -> Vec<F>

Returns the public values of the record.

Source

fn eval_public_values<AB: SP1AirBuilder>(builder: &mut AB)

Constrains the public values of the record.

Source

fn interactions_in_public_values() -> Vec<InteractionKind>

The interaction kinds that appear in eval_public_values. Needed so that the shard verifier knows how much randomness to allocate for the LogUpGkr beta_seed challenge.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl MachineRecord for Vec<(u32, u32, u32)>

This exists only for the zerocheck unit test on MinimalAddChip.

Implementors§