1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use hashbrown::HashMap;

use p3_field::AbstractField;

pub trait MachineRecord: Default + Sized + Send + Sync + Clone {
    type Config: 'static + Copy + Send + Sync;

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

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

    fn register_nonces(&mut self, _opts: &Self::Config) {}

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