pub trait Contextuable<D, S, T, ST, SYM, VS, VT>: Identifiablewhere
D: Datable + Clone,
S: Spatial<VS> + Clone,
T: Temporal<VT> + Clone,
ST: SpaceTemporal<VS, VT> + Clone,
SYM: Symbolic + Clone,
VS: Clone,
VT: Clone,{
// Required method
fn vertex_type(&self) -> &ContextoidType<D, S, T, ST, SYM, VS, VT>;
}
Expand description
Represents any entity that participates in a causal context graph.
This trait defines the unified interface over any entity that may be:
- A data node
- A spatial or temporal marker
- A symbolic atom
- A spacetime event
It is designed to abstract over the underlying causal semantics while retaining compile-time type safety and minimal trait bounds.
§Type Parameters
D
: ADatable
node (e.g., sensor reading, fact, entity)S
: ASpatial
nodeT
: ATemporal
nodeST
: ASpaceTemporal
node (4D entity)SYM
: ASymbolic
node (logical/abstract)VS
: The numeric or symbolic coordinate typeVT
: The numeric or symbolic time type
§Design Note
This trait is the dispatch point for ContextoidType
, allowing static or
dynamic graph traversal based on node kind. It intentionally generalizes
over all possible causal node roles.
Required Methods§
Sourcefn vertex_type(&self) -> &ContextoidType<D, S, T, ST, SYM, VS, VT>
fn vertex_type(&self) -> &ContextoidType<D, S, T, ST, SYM, VS, VT>
Returns a reference to the type-erased node variant.
Use this to determine the role of the current node (data, space, time, etc.) and then downcast or dispatch accordingly.