pub enum PacketLocation {
Node(EpochID),
InputPort(NodeName, PortName),
OutputPort(EpochID, PortName),
Edge(Edge),
OutsideNet,
}Expand description
Where a packet is located in the network.
Packets move through these locations as they flow through the network:
- Start outside the net or get created inside an epoch
- Move to edges, then to input ports
- Get consumed into epochs via salvo conditions
- Can be loaded into output ports and sent back to edges
Variants§
Node(EpochID)
Inside an epoch (either startable or running).
InputPort(NodeName, PortName)
Waiting at a node’s input port.
OutputPort(EpochID, PortName)
Loaded into an epoch’s output port, ready to be sent.
Edge(Edge)
In transit on an edge between nodes.
OutsideNet
External to the network (not yet injected or already extracted).
Trait Implementations§
Source§impl Clone for PacketLocation
impl Clone for PacketLocation
Source§fn clone(&self) -> PacketLocation
fn clone(&self) -> PacketLocation
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PacketLocation
impl Debug for PacketLocation
Source§impl Hash for PacketLocation
impl Hash for PacketLocation
Source§impl PartialEq for PacketLocation
impl PartialEq for PacketLocation
impl Eq for PacketLocation
impl StructuralPartialEq for PacketLocation
Auto Trait Implementations§
impl Freeze for PacketLocation
impl RefUnwindSafe for PacketLocation
impl Send for PacketLocation
impl Sync for PacketLocation
impl Unpin for PacketLocation
impl UnwindSafe for PacketLocation
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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
Compare self to
key and return true if they are equal.