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", so this trait is not object safe.

Implementations on Foreign Types§

Source§

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

This exists only for the zerocheck unit test on MinimalAddChip.

Implementors§