pub enum WafModelError {
Oracle(String),
BudgetExhausted {
queries: u64,
},
Artifact(String),
BadRule {
rule: String,
source: Error,
},
EmptySearchSpace,
TableNotClosed,
}Expand description
Anything that can go wrong while decompiling, mining, or hardening.
Variants§
Oracle(String)
The oracle could not be queried (transport, timeout, etc.).
BudgetExhausted
The learner exhausted its membership-query budget before the hypothesis stabilized. Carries the budget that was spent so the caller can decide to raise it rather than trust a partial model.
Artifact(String)
A learned-model artifact failed to (de)serialize or its schema version is not understood by this build.
BadRule
A regex shipped in a Tier-B ruleset failed to compile.
EmptySearchSpace
The equivalence oracle’s UCB bandit was asked to draw a counterexample word but the search space was empty — the hypothesis has zero states, or the alphabet has zero symbols. Neither is a valid input; the caller must supply a non-trivial automaton and a non-empty alphabet.
TableNotClosed
The L* observation table was found to be non-closed while
building a hypothesis. Pre-R51 this surfaced as a panic (the
.expect("table closed ⇒ …") call sites in build_hypothesis).
A WAF that returns non-deterministic oracle answers (load-
balanced cluster with inconsistent rule sets, mid-scan rule
reload, etc.) can push two identical prefixes to different
rows and trip this invariant. R51 pass-13 I3 (CLAUDE.md §15).
Trait Implementations§
Source§impl Debug for WafModelError
impl Debug for WafModelError
Source§impl Display for WafModelError
impl Display for WafModelError
Source§impl Error for WafModelError
impl Error for WafModelError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()