pub struct RoutingTable { /* private fields */ }Expand description
Pre-computed routing table for O(1) DAG event dispatch.
Built from a finalized StreamingDag during topology construction
(Ring 2). Provides cache-aligned O(1) lookups indexed by (node_id, port).
§Performance Target
Route lookup: < 50ns (single cache-line read).
Implementations§
Source§impl RoutingTable
impl RoutingTable
Sourcepub fn from_dag(dag: &StreamingDag) -> Self
pub fn from_dag(dag: &StreamingDag) -> Self
Builds a routing table from a finalized StreamingDag.
Scans all nodes and their outgoing edges to populate routing entries. All targets for a node are collected into a single entry at port 0.
§Arguments
dag- A finalizedStreamingDagtopology
Sourcepub fn route(&self, source: NodeId, port: u8) -> &RoutingEntry
pub fn route(&self, source: NodeId, port: u8) -> &RoutingEntry
Sourcepub fn node_targets(&self, source: NodeId) -> &RoutingEntry
pub fn node_targets(&self, source: NodeId) -> &RoutingEntry
Convenience method to get targets for a node’s primary output (port 0).
Sourcepub fn entry_count(&self) -> usize
pub fn entry_count(&self) -> usize
Returns the total number of routing entries in the table.
Sourcepub fn max_node_id(&self) -> u32
pub fn max_node_id(&self) -> u32
Returns the maximum node ID covered by the table.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for RoutingTable
impl RefUnwindSafe for RoutingTable
impl Send for RoutingTable
impl Sync for RoutingTable
impl Unpin for RoutingTable
impl UnwindSafe for RoutingTable
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Mutably borrows from an owned value. Read more
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>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.