pub enum ObservabilityClass {
PerJeDensity,
RelationalGraph,
Temporal,
MemoryOnly,
}Expand description
In-principle observability class of an anomaly — which detection arm can, in principle,
observe it. Grounds the routing/observability thesis (FINDINGS §12): different anomaly families
surface to different signals, so a fair ML benchmark should report detection against the ceiling
of the arm that can see each family, not a single pooled score. Assigned at injection time
from the anomaly type via AnomalyType::observability_class; it is the primary observability
(the arm most likely to surface the family first), not an exclusive claim.
Variants§
PerJeDensity
Visible from a single journal entry’s own attributes — amount, round-dollar / threshold signatures, weekend / off-hours / post-close timing flags, account classification, balance. The per-JE density residual observes this family.
RelationalGraph
Visible only in the cross-entry account-flow graph — unusual account pairs, circular flows, counterparty nodes, network centrality, intercompany structure. The relational account-flow residual observes this family.
Temporal
Visible only in the cross-period time series — trend breaks, level shifts, seasonality, period-timing (wrong-period, backdating, cutoff), frequency bursts. A temporal arm observes this family.
MemoryOnly
Visible only with cross-period / cross-entity memory of prior occurrences — duplicate payments, recurring ghost employees, repeated shell-company payments. Needs audit-doctrine carry-forward (FINDINGS §40-41), not a single period’s manifold.
Implementations§
Trait Implementations§
Source§impl Clone for ObservabilityClass
impl Clone for ObservabilityClass
Source§fn clone(&self) -> ObservabilityClass
fn clone(&self) -> ObservabilityClass
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ObservabilityClass
Source§impl Debug for ObservabilityClass
impl Debug for ObservabilityClass
Source§impl Default for ObservabilityClass
impl Default for ObservabilityClass
Source§fn default() -> ObservabilityClass
fn default() -> ObservabilityClass
Source§impl<'de> Deserialize<'de> for ObservabilityClass
impl<'de> Deserialize<'de> for ObservabilityClass
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>,
impl Eq for ObservabilityClass
Source§impl Hash for ObservabilityClass
impl Hash for ObservabilityClass
Source§impl PartialEq for ObservabilityClass
impl PartialEq for ObservabilityClass
Source§fn eq(&self, other: &ObservabilityClass) -> bool
fn eq(&self, other: &ObservabilityClass) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for ObservabilityClass
impl Serialize for ObservabilityClass
impl StructuralPartialEq for ObservabilityClass
Auto Trait Implementations§
impl Freeze for ObservabilityClass
impl RefUnwindSafe for ObservabilityClass
impl Send for ObservabilityClass
impl Sync for ObservabilityClass
impl Unpin for ObservabilityClass
impl UnsafeUnpin for ObservabilityClass
impl UnwindSafe for ObservabilityClass
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<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.