From 015157f0d7e8645d290fb53ff9fdb90568dabd0d Mon Sep 17 00:00:00 2001 From: Kevaundray Wedderburn Date: Sat, 24 May 2025 21:13:41 +0100 Subject: [PATCH] move reports to reports.rs --- crates/zkvm-interface/src/lib.rs | 37 +++------------------------- crates/zkvm-interface/src/reports.rs | 33 +++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 34 deletions(-) create mode 100644 crates/zkvm-interface/src/reports.rs diff --git a/crates/zkvm-interface/src/lib.rs b/crates/zkvm-interface/src/lib.rs index 7634f39..b218f38 100644 --- a/crates/zkvm-interface/src/lib.rs +++ b/crates/zkvm-interface/src/lib.rs @@ -6,6 +6,9 @@ use thiserror::Error; mod input; pub use input::{Input, InputItem}; +mod reports; +pub use reports::{ProgramExecutionReport, ProgramProvingReport}; + #[allow(non_camel_case_types)] /// Compiler trait for compiling programs into an opaque sequence of bytes. pub trait Compiler { @@ -56,37 +59,3 @@ pub trait zkVM { /// TODO: ensure they check it for correct #[must_use] fn verify(&self, proof: &[u8]) -> Result<(), zkVMError>; } - -/// ProgramExecutionReport produces information about a particular program -/// execution. -#[derive(Debug, Clone, Default, Serialize, Deserialize)] -pub struct ProgramExecutionReport { - /// Total number of cycles for the entire workload execution. - pub total_num_cycles: u64, - /// Region-specific cycles, mapping region names (e.g., "setup", "compute") to their cycle counts. - pub region_cycles: IndexMap, -} - -impl ProgramExecutionReport { - pub fn new(total_num_cycles: u64) -> Self { - ProgramExecutionReport { - total_num_cycles, - region_cycles: Default::default(), - } - } - pub fn insert_region(&mut self, region_name: String, num_cycles: u64) { - self.region_cycles.insert(region_name, num_cycles); - } -} - -/// ProgramProvingReport produces information about proving a particular -/// program's instance. -#[derive(Debug, Clone, Default, Serialize, Deserialize)] -pub struct ProgramProvingReport { - pub proving_time: Duration, -} -impl ProgramProvingReport { - pub fn new(proving_time: Duration) -> Self { - Self { proving_time } - } -} diff --git a/crates/zkvm-interface/src/reports.rs b/crates/zkvm-interface/src/reports.rs new file mode 100644 index 0000000..2692b26 --- /dev/null +++ b/crates/zkvm-interface/src/reports.rs @@ -0,0 +1,33 @@ +/// ProgramExecutionReport produces information about a particular program +/// execution. +#[derive(Debug, Clone, Default, Serialize, Deserialize)] +pub struct ProgramExecutionReport { + /// Total number of cycles for the entire workload execution. + pub total_num_cycles: u64, + /// Region-specific cycles, mapping region names (e.g., "setup", "compute") to their cycle counts. + pub region_cycles: IndexMap, +} + +impl ProgramExecutionReport { + pub fn new(total_num_cycles: u64) -> Self { + ProgramExecutionReport { + total_num_cycles, + region_cycles: Default::default(), + } + } + pub fn insert_region(&mut self, region_name: String, num_cycles: u64) { + self.region_cycles.insert(region_name, num_cycles); + } +} + +/// ProgramProvingReport produces information about proving a particular +/// program's instance. +#[derive(Debug, Clone, Default, Serialize, Deserialize)] +pub struct ProgramProvingReport { + pub proving_time: Duration, +} +impl ProgramProvingReport { + pub fn new(proving_time: Duration) -> Self { + Self { proving_time } + } +}