Skip to main content

BaselineStore

Trait BaselineStore 

Source
pub trait BaselineStore {
    // Required methods
    fn load(&self, scope: &str, name: &str) -> Result<Option<Baseline>>;
    fn save(&self, scope: &str, baseline: &Baseline) -> Result<()>;
}
Expand description

A storage backend for benchmark baselines.

Implementations MUST treat load as tolerant of missing data (return Ok(None)). Implementations SHOULD treat save as atomic — partial writes that survive a crash are unacceptable because they would corrupt comparisons on the next run.

scope is a free-form key the caller uses to namespace baselines (e.g. a git SHA, a branch name, or "latest"). The implementation MUST treat (scope, name) as the identity of a baseline.

Required Methods§

Source

fn load(&self, scope: &str, name: &str) -> Result<Option<Baseline>>

Load a baseline if one exists for (scope, name).

Source

fn save(&self, scope: &str, baseline: &Baseline) -> Result<()>

Persist a baseline atomically.

Implementors§