pub struct DflashRung { /* private fields */ }Expand description
2026-09-25: The DFlash gamma resolver. The serve builds and configures one
and the scheduler context holds it (SchedCtx::dflash_rung).
Implementations§
Source§impl DflashRung
impl DflashRung
Sourcepub fn configure(&self, cap_k: usize, explicit_flag: bool, woa_available: bool)
pub fn configure(&self, cap_k: usize, explicit_flag: bool, woa_available: bool)
2026-09-25: Serve-time configuration. cap_k is the head’s widest
verify width (its gamma); explicit_flag says the operator passed
--dflash-gamma; woa_available says the K = 4 write-on-accept
kernel is on (otherwise the C >= 2 rung is the cap). Reads the
environment here.
Sourcepub fn configure_with(&self, cap_k: usize, pinned: bool, r: Rungs)
pub fn configure_with(&self, cap_k: usize, pinned: bool, r: Rungs)
2026-09-25: Resets the controller to the wide state with explicit
rungs and no environment reads. It arms only when !pinned and
cap_k >= 3.
pub fn armed(&self) -> bool
Sourcepub fn drafts_for(&self, n_active: usize, num_drafts: usize) -> usize
pub fn drafts_for(&self, n_active: usize, num_drafts: usize) -> usize
2026-09-25: The per-step draft count for n_active sequences.
num_drafts is the serve’s configured count (cap - 1) and is returned
unchanged when the resolver is unarmed.
Sourcepub fn observe_step(&self, d1_match: bool)
pub fn observe_step(&self, d1_match: bool)
2026-09-25: Scores one verify step: d1_match says the first draft
was accepted. The DFlash verify step calls it every step; it does
nothing unless the resolver is armed and the last dispatch was C = 1.
A switch is logged when it happens.