diff options
author | Lars Wirzenius <liw@liw.fi> | 2021-12-05 19:44:14 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2021-12-05 19:44:14 +0200 |
commit | f57152e112a55c1b821469cb911e2e16890585c6 (patch) | |
tree | 69c4ce2f854a07b101dcc5d6445a97cbbbe6ec79 | |
parent | 82968fdf4ae02ea6931b0166c519376127723e03 (diff) | |
download | obnam-benchmark-f57152e112a55c1b821469cb911e2e16890585c6.tar.gz |
feat: prepare for more measurements
Sponsored-by: author
-rw-r--r-- | src/result.rs | 29 | ||||
-rw-r--r-- | src/step.rs | 8 |
2 files changed, 27 insertions, 10 deletions
diff --git a/src/result.rs b/src/result.rs index cb23d35..3a73079 100644 --- a/src/result.rs +++ b/src/result.rs @@ -2,14 +2,21 @@ use serde::Serialize; #[derive(Debug, Default, Serialize)] pub struct Result { - measurements: Vec<Measurement>, + measurements: Vec<OpMeasurements>, } #[derive(Debug, Serialize)] -pub struct Measurement { +pub struct OpMeasurements { benchmark: String, op: Operation, - ms: u128, + measurements: Vec<Measurement>, +} + +#[derive(Debug, Serialize)] +pub enum Measurement { + TotalFiles(u64), + TotalData(u64), + DurationMs(u128), } #[derive(Debug, Clone, Copy, Serialize)] @@ -19,14 +26,22 @@ pub enum Operation { } impl Result { - pub fn push(&mut self, m: Measurement) { + pub fn push(&mut self, m: OpMeasurements) { self.measurements.push(m); } } -impl Measurement { - pub fn new(benchmark: &str, op: Operation, ms: u128) -> Self { +impl OpMeasurements { + pub fn new(benchmark: &str, op: Operation) -> Self { let benchmark = benchmark.to_string(); - Self { benchmark, op, ms } + Self { + benchmark, + op, + measurements: vec![], + } + } + + pub fn push(&mut self, m: Measurement) { + self.measurements.push(m); } } diff --git a/src/step.rs b/src/step.rs index 0ca7729..1142765 100644 --- a/src/step.rs +++ b/src/step.rs @@ -1,4 +1,4 @@ -use crate::result::{Measurement, Operation}; +use crate::result::{OpMeasurements, Operation, Measurement}; use crate::specification::{Change, Create, FileCount}; use std::time::Instant; @@ -50,7 +50,7 @@ impl Step { } } - pub fn execute(&self, current: &mut Option<String>) -> Result<Option<Measurement>, StepError> { + pub fn execute(&self, current: &mut Option<String>) -> Result<Option<OpMeasurements>, StepError> { let now = Instant::now(); let op = match self { Self::Start(name) => { @@ -92,7 +92,9 @@ impl Step { let ms = now.elapsed().as_millis(); assert!(current.is_some()); let current = current.as_ref().unwrap(); - Some(Measurement::new(current, op, ms)) + let mut om = OpMeasurements::new(current, op); + om.push(Measurement::DurationMs(ms)); + Some(om) } else { None }; |