NetAction

Enum NetAction 

Source
pub enum NetAction {
    RunNetUntilBlocked,
    CreatePacket(Option<EpochID>),
    ConsumePacket(PacketID),
    StartEpoch(EpochID),
    FinishEpoch(EpochID),
    CancelEpoch(EpochID),
    CreateAndStartEpoch(NodeName, Salvo),
    LoadPacketIntoOutputPort(PacketID, PortName),
    SendOutputSalvo(EpochID, SalvoConditionName),
    TransportPacketToLocation(PacketID, PacketLocation),
}
Expand description

An action that can be performed on the network.

All mutations to Net state must go through these actions via Net::do_action. This ensures all operations are tracked and produce appropriate events.

Variants§

§

RunNetUntilBlocked

Run automatic packet flow until no more progress can be made. Moves packets from edges to input ports and triggers input salvo conditions.

§

CreatePacket(Option<EpochID>)

Create a new packet, optionally inside an epoch. If None, packet is created outside the network.

§

ConsumePacket(PacketID)

Remove a packet from the network entirely.

§

StartEpoch(EpochID)

Transition a startable epoch to running state.

§

FinishEpoch(EpochID)

Complete a running epoch. Fails if epoch still contains packets.

§

CancelEpoch(EpochID)

Cancel an epoch and destroy all packets inside it.

§

CreateAndStartEpoch(NodeName, Salvo)

Manually create and start an epoch with specified packets. Bypasses the normal salvo condition triggering mechanism.

§

LoadPacketIntoOutputPort(PacketID, PortName)

Move a packet from inside an epoch to one of its output ports.

§

SendOutputSalvo(EpochID, SalvoConditionName)

Send packets from output ports onto edges according to a salvo condition.

§

TransportPacketToLocation(PacketID, PacketLocation)

Transport a packet to a new location. Restrictions:

  • Cannot move packets into or out of Running epochs (only Startable allowed)
  • Input ports are checked for capacity

Trait Implementations§

Source§

impl Debug for NetAction

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V