pub enum BenchError {
Runner(TimingError),
UnknownFunction(String, Vec<String>),
Execution(String),
Io(Error),
Serialization(Error),
Config(String),
Build(String),
}Expand description
Error types for mobench-sdk operations.
This enum covers all error conditions that can occur during benchmark registration, execution, and mobile app building.
§Example
use mobench_sdk::{run_benchmark, BenchSpec, BenchError};
let spec = BenchSpec {
name: "nonexistent".to_string(),
iterations: 10,
warmup: 1,
};
match run_benchmark(spec) {
Ok(report) => println!("Success!"),
Err(BenchError::UnknownFunction(name)) => {
eprintln!("Benchmark '{}' not found", name);
}
Err(e) => eprintln!("Other error: {}", e),
}Variants§
Runner(TimingError)
Error from the underlying benchmark runner.
This wraps errors from crate::timing::TimingError, such as
zero iterations or execution failures.
UnknownFunction(String, Vec<String>)
The requested benchmark function was not found in the registry.
This occurs when calling run_benchmark with
a function name that hasn’t been registered via #[benchmark].
The error includes a list of available benchmarks to help diagnose the issue.
Execution(String)
An error occurred during benchmark execution.
This is a catch-all for execution-time errors that don’t fit other categories.
Io(Error)
An I/O error occurred.
Common causes include missing files, permission issues, or disk space problems during build operations.
Serialization(Error)
JSON serialization or deserialization failed.
This can occur when reading/writing benchmark specifications or configuration files.
Config(String)
A configuration error occurred.
This indicates invalid or missing configuration, such as malformed TOML files or missing required fields.
Build(String)
A build error occurred.
This covers failures during mobile app building, including:
- Missing build tools (cargo-ndk, xcodebuild, etc.)
- Compilation errors
- Code signing failures
- Missing dependencies