use thiserror::Error;
#[derive(Debug, Error)]
#[allow(missing_docs)] pub enum VerifyError {
#[error("Timing leak detected: t-value {t_value:.2} exceeds threshold {threshold:.2}")]
TimingLeakDetected { t_value: f64, threshold: f64 },
#[error("Need at least {required} samples, got {provided}")]
InsufficientSamples { required: usize, provided: usize },
#[error("Test execution failed: {reason}")]
ExecutionFailed { reason: String },
#[error("Memory at offset {offset} not zeroized: expected 0x00, got 0x{actual:02X}")]
MemoryNotZeroized { offset: usize, actual: u8 },
#[error("Property violation: {property}")]
PropertyViolation { property: String },
#[error("Report generation failed: {reason}")]
ReportGenerationFailed { reason: String },
}
pub type VerifyResult<T> = Result<T, VerifyError>;