pub struct RouterDecision {
pub kind: InterstitialKind,
pub severity: InterstitialSeverity,
pub route: InterstitialRoute,
pub reason: String,
pub evidence: PageSignatureEvidence,
pub classified_at_unix_ms: u64,
}Expand description
Result of routing a PageSignature.
The decision carries:
kind— the structural classification fromInterstitialClassifier.severity— dedicated observability field distinguishing retryable / requires-solve / terminal tiers. Observability tooling should branch on this field rather than the kind enum when the question is “is the run terminal vs retryable”.route— the dedicated acquisition route per kind.reason— short human-readable rationale.evidence— the per-signature matches that drove the decision.classified_at_unix_ms— wall-clock timestamp the decision was produced.
Fields§
§kind: InterstitialKindStructural classification.
severity: InterstitialSeverityDedicated operational severity tier. Distinguishes
Queue (retryable) from HardBlock (terminal) for
observability tooling.
route: InterstitialRouteDedicated acquisition route.
reason: StringCompact human-readable rationale.
evidence: PageSignatureEvidencePer-signature evidence that drove the decision.
classified_at_unix_ms: u64Wall-clock timestamp the decision was produced.
Implementations§
Source§impl RouterDecision
impl RouterDecision
Sourcepub fn new(
kind: InterstitialKind,
route: InterstitialRoute,
reason: impl Into<String>,
evidence: PageSignatureEvidence,
) -> Self
pub fn new( kind: InterstitialKind, route: InterstitialRoute, reason: impl Into<String>, evidence: PageSignatureEvidence, ) -> Self
Build a decision with the supplied fields and the current wall-clock timestamp.
Sourcepub const fn with_timestamp(self, unix_ms: u64) -> Self
pub const fn with_timestamp(self, unix_ms: u64) -> Self
Build a decision with an explicit
classified_at_unix_ms (useful for tests and
deterministic replay).
Sourcepub const fn kind(&self) -> InterstitialKind
pub const fn kind(&self) -> InterstitialKind
Structural classification kind.
Sourcepub const fn severity(&self) -> InterstitialSeverity
pub const fn severity(&self) -> InterstitialSeverity
Operational severity tier (dedicated observability field).
Sourcepub const fn route(&self) -> &InterstitialRoute
pub const fn route(&self) -> &InterstitialRoute
Dedicated acquisition route.
Sourcepub const fn evidence(&self) -> &PageSignatureEvidence
pub const fn evidence(&self) -> &PageSignatureEvidence
Per-signature evidence.
Sourcepub const fn is_classified(&self) -> bool
pub const fn is_classified(&self) -> bool
true when the decision is for a classified
interstitial (kind != transient). Used by the runner
to decide whether to short-circuit.
Sourcepub const fn is_terminal(&self) -> bool
pub const fn is_terminal(&self) -> bool
true when the severity is
InterstitialSeverity::Terminal.
Sourcepub const fn requires_solve(&self) -> bool
pub const fn requires_solve(&self) -> bool
true when the severity is
InterstitialSeverity::RequiresSolve.
Sourcepub const fn is_retryable(&self) -> bool
pub const fn is_retryable(&self) -> bool
true when the severity is
InterstitialSeverity::Retryable.
Trait Implementations§
Source§impl Clone for RouterDecision
impl Clone for RouterDecision
Source§fn clone(&self) -> RouterDecision
fn clone(&self) -> RouterDecision
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RouterDecision
impl Debug for RouterDecision
Source§impl<'de> Deserialize<'de> for RouterDecision
impl<'de> Deserialize<'de> for RouterDecision
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 Display for RouterDecision
impl Display for RouterDecision
Source§impl PartialEq for RouterDecision
impl PartialEq for RouterDecision
Source§impl Serialize for RouterDecision
impl Serialize for RouterDecision
impl Eq for RouterDecision
impl StructuralPartialEq for RouterDecision
Auto Trait Implementations§
impl Freeze for RouterDecision
impl RefUnwindSafe for RouterDecision
impl Send for RouterDecision
impl Sync for RouterDecision
impl Unpin for RouterDecision
impl UnsafeUnpin for RouterDecision
impl UnwindSafe for RouterDecision
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.