Skip to main content

SimEvent

Enum SimEvent 

Source
pub enum SimEvent {
Show 26 variants OrderArrival { order_id: OrderId, }, TaskAssignment { task_id: TaskId, robot_id: RobotId, }, RobotDepartNode { robot_id: RobotId, from_node: NodeId, to_node: NodeId, edge_id: EdgeId, }, RobotArriveNode { robot_id: RobotId, node_id: NodeId, from_node: NodeId, }, StationServiceStart { robot_id: RobotId, station_id: StationId, task_id: TaskId, }, StationServiceEnd { robot_id: RobotId, station_id: StationId, task_id: TaskId, }, InventoryUpdate { sku_id: SkuId, bin_id: BinId, delta: i32, task_id: TaskId, }, RobotWaitStart { robot_id: RobotId, at_node: NodeId, waiting_for_edge: EdgeId, }, RobotWaitEnd { robot_id: RobotId, at_node: NodeId, }, RobotPickup { robot_id: RobotId, task_id: TaskId, node_id: NodeId, }, DispatchTasks, InboundArrival { shipment_id: ShipmentId, station_id: StationId, }, PutawayTaskCreated { task_id: TaskId, shipment_id: ShipmentId, }, OutboundReady { order_id: OrderId, }, ShipmentDeparture { shipment_id: ShipmentId, station_id: StationId, }, ReplenishmentTrigger { sku_id: SkuId, bin_id: BinId, current_qty: u32, threshold: u32, }, RobotChargingStart { robot_id: RobotId, station_id: ChargingStationId, }, RobotChargingEnd { robot_id: RobotId, station_id: ChargingStationId, energy_charged_wh: f64, }, RobotLowBattery { robot_id: RobotId, soc: f64, }, MetricsSampleTick, DeadlockDetected { robots: Vec<RobotId>, }, DeadlockResolved { robots: Vec<RobotId>, resolver_robot: RobotId, }, RobotFailure { robot_id: RobotId, interrupted_task: Option<TaskId>, }, RobotMaintenanceDue { robot_id: RobotId, operating_hours: f64, }, MaintenanceStart { robot_id: RobotId, station_id: MaintenanceStationId, is_repair: bool, }, MaintenanceEnd { robot_id: RobotId, station_id: MaintenanceStationId, is_repair: bool, duration_s: f64, },
}
Expand description

All possible simulation events

Variants§

§

OrderArrival

New order arrives in the system

Fields

§order_id: OrderId
§

TaskAssignment

Task is assigned to a robot

Fields

§task_id: TaskId
§robot_id: RobotId
§

RobotDepartNode

Robot departs from a node to traverse an edge

Fields

§robot_id: RobotId
§from_node: NodeId
§to_node: NodeId
§edge_id: EdgeId
§

RobotArriveNode

Robot arrives at a node after traversing an edge

Fields

§robot_id: RobotId
§node_id: NodeId
§from_node: NodeId
§

StationServiceStart

Robot begins service at a station

Fields

§robot_id: RobotId
§station_id: StationId
§task_id: TaskId
§

StationServiceEnd

Robot completes service at a station

Fields

§robot_id: RobotId
§station_id: StationId
§task_id: TaskId
§

InventoryUpdate

Inventory is updated (pick decrements, putaway increments)

Fields

§sku_id: SkuId
§bin_id: BinId
§delta: i32
§task_id: TaskId
§

RobotWaitStart

Robot starts waiting for an edge to become available

Fields

§robot_id: RobotId
§at_node: NodeId
§waiting_for_edge: EdgeId
§

RobotWaitEnd

Robot wait ends, can attempt to proceed

Fields

§robot_id: RobotId
§at_node: NodeId
§

RobotPickup

Robot pickup at bin location

Fields

§robot_id: RobotId
§task_id: TaskId
§node_id: NodeId
§

DispatchTasks

Try to dispatch pending tasks to available robots

§

InboundArrival

Shipment arrives at inbound station

Fields

§shipment_id: ShipmentId
§station_id: StationId
§

PutawayTaskCreated

Putaway task created from inbound shipment

Fields

§task_id: TaskId
§shipment_id: ShipmentId
§

OutboundReady

Order is ready for outbound (all picks complete)

Fields

§order_id: OrderId
§

ShipmentDeparture

Shipment departs from outbound station

Fields

§shipment_id: ShipmentId
§station_id: StationId
§

ReplenishmentTrigger

Replenishment triggered due to low inventory

Fields

§sku_id: SkuId
§bin_id: BinId
§current_qty: u32
§threshold: u32
§

RobotChargingStart

Robot starts charging at a station

Fields

§robot_id: RobotId
§

RobotChargingEnd

Robot completes charging

Fields

§robot_id: RobotId
§energy_charged_wh: f64
§

RobotLowBattery

Robot battery drops below threshold

Fields

§robot_id: RobotId
§soc: f64
§

MetricsSampleTick

Periodic metrics sampling tick

§

DeadlockDetected

Deadlock detected between robots

Fields

§robots: Vec<RobotId>

Robot IDs involved in the deadlock cycle

§

DeadlockResolved

Deadlock resolution action taken

Fields

§robots: Vec<RobotId>

Robot IDs that were in the deadlock

§resolver_robot: RobotId

Robot that was selected to resolve the deadlock

§

RobotFailure

Robot has failed and needs repair

Fields

§robot_id: RobotId
§interrupted_task: Option<TaskId>

Task that was interrupted by the failure, if any

§

RobotMaintenanceDue

Robot scheduled maintenance is due

Fields

§robot_id: RobotId
§operating_hours: f64

Operating hours since last maintenance

§

MaintenanceStart

Robot starts maintenance or repair at a station

Fields

§robot_id: RobotId
§is_repair: bool

True if this is a repair (failure recovery), false if scheduled maintenance

§

MaintenanceEnd

Robot completes maintenance or repair

Fields

§robot_id: RobotId
§is_repair: bool

True if this was a repair, false if scheduled maintenance

§duration_s: f64

Duration of the maintenance/repair in seconds

Implementations§

Source§

impl SimEvent

Source

pub fn event_type_name(&self) -> &'static str

Get a string name for the event type

Source

pub fn robot_id(&self) -> Option<RobotId>

Get the robot ID associated with this event, if any

Source

pub fn task_id(&self) -> Option<TaskId>

Get the task ID associated with this event, if any

Source

pub fn shipment_id(&self) -> Option<ShipmentId>

Get the shipment ID associated with this event, if any

Source

pub fn charging_station_id(&self) -> Option<ChargingStationId>

Get the charging station ID associated with this event, if any

Source

pub fn maintenance_station_id(&self) -> Option<MaintenanceStationId>

Get the maintenance station ID associated with this event, if any

Trait Implementations§

Source§

impl Archive for SimEvent

Source§

type Archived = ArchivedSimEvent

The archived representation of this type. Read more
Source§

type Resolver = SimEventResolver

The resolver for this type. It must contain all the additional information from serializing needed to make the archived type from the normal type.
Source§

fn resolve( &self, resolver: <Self as Archive>::Resolver, out: Place<<Self as Archive>::Archived>, )

Creates the archived version of this value at the given position and writes it to the given output. Read more
Source§

const COPY_OPTIMIZATION: CopyOptimization<Self> = _

An optimization flag that allows the bytes of this type to be copied directly to a writer instead of calling serialize. Read more
Source§

impl Clone for SimEvent

Source§

fn clone(&self) -> SimEvent

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SimEvent

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<__D: Fallible + ?Sized> Deserialize<SimEvent, __D> for Archived<SimEvent>

Source§

fn deserialize( &self, deserializer: &mut __D, ) -> Result<SimEvent, <__D as Fallible>::Error>

Deserializes using the given deserializer
Source§

impl<__S: Fallible + ?Sized> Serialize<__S> for SimEvent

Source§

fn serialize( &self, serializer: &mut __S, ) -> Result<<Self as Archive>::Resolver, <__S as Fallible>::Error>

Writes the dependencies for the object and returns a resolver that can create the archived type.

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> ArchivePointee for T

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
Source§

impl<T> ArchiveUnsized for T
where T: Archive,

Source§

type Archived = <T as Archive>::Archived

The archived counterpart of this type. Unlike Archive, it may be unsized. Read more
Source§

fn archived_metadata( &self, ) -> <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata

Creates the archived version of the metadata for this value.
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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> LayoutRaw for T

Source§

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
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

Source§

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>>)

Writes data to out indicating that a T is niched.
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The metadata type for pointers and references to this type.
Source§

impl<T, S> SerializeUnsized<S> for T
where T: Serialize<S>, S: Fallible + Writer + ?Sized,

Source§

fn serialize_unsized( &self, serializer: &mut S, ) -> Result<usize, <S as Fallible>::Error>

Writes the object and returns the position of the archived type.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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