#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub struct ProtocolParams {
pub log_blowup: u32,
pub log_folding_arity: u32,
pub num_queries: u32,
pub query_pow_bits: u32,
pub deep_pow_bits: u32,
pub folding_pow_bits: u32,
pub lookup_pow_bits: u32,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub struct InstanceShape {
pub log_max_height: u32,
pub field_bits: u64,
pub collision_resistance: u32,
}
impl InstanceShape {
pub const fn cap(&self) -> u64 {
let collision = crate::fixed::from_bits(self.collision_resistance);
if collision < self.field_bits {
collision
} else {
self.field_bits
}
}
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub struct LookupShape {
pub fractions_per_row: u32,
pub max_message_width: u32,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub struct AirShape {
pub num_composed_constraints: u32,
pub max_constraint_degree: u32,
pub num_deep_terms: Option<u32>,
pub lookup: LookupShape,
}