pub struct Chromosome {
pub genes: Vec<(String, String)>,
pub fitness: f64,
pub evaluations: u32,
pub lineage: Lineage,
}Expand description
A chromosome representing a combination of evasion techniques.
Fields§
§genes: Vec<(String, String)>Named technique genes: (gene_name, gene_value).
fitness: f64Fitness score (0.0 = always blocked, 1.0 = always passes).
evaluations: u32Number of times this chromosome has been evaluated.
lineage: LineageFull lineage tree for replayability.
Implementations§
Source§impl Chromosome
impl Chromosome
Sourcepub fn new(genes: Vec<(String, String)>) -> Self
pub fn new(genes: Vec<(String, String)>) -> Self
Create a new chromosome with zero fitness and genesis lineage.
Sourcepub fn with_lineage(genes: Vec<(String, String)>, lineage: Lineage) -> Self
pub fn with_lineage(genes: Vec<(String, String)>, lineage: Lineage) -> Self
Create a new chromosome with explicit lineage.
Sourcepub fn record_verdict(&mut self, verdict: &OracleVerdict)
pub fn record_verdict(&mut self, verdict: &OracleVerdict)
Record an evaluation result using a rich oracle verdict.
Sourcepub fn active_gene_count(&self) -> usize
pub fn active_gene_count(&self) -> usize
Count genes that actively apply an evasion technique.
Sourcepub fn hash(&self) -> u64
pub fn hash(&self) -> u64
Compute a hash of this chromosome for deduplication.
R48 pass-10 I4 (CLAUDE.md §15 AUDIT): pre-fix used
DefaultHasher which is non-collision-resistant — an adversary
controlling gene names (e.g. via crafted --technique flags or
.wafrift.toml) could engineer collisions to silently dedupe
distinct bypass discoveries from the corpus or mark live
candidates as already-visited in tabu search. Switched to
SHA-256, truncated to u64 — matches the lineage.rs::BypassEntry
collision-fix that the rest of the crate already adopted.
Trait Implementations§
Source§impl Clone for Chromosome
impl Clone for Chromosome
Source§fn clone(&self) -> Chromosome
fn clone(&self) -> Chromosome
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Chromosome
impl Debug for Chromosome
Source§impl<'de> Deserialize<'de> for Chromosome
impl<'de> Deserialize<'de> for Chromosome
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for Chromosome
impl PartialEq for Chromosome
Source§fn eq(&self, other: &Chromosome) -> bool
fn eq(&self, other: &Chromosome) -> bool
self and other values to be equal, and is used by ==.