pub struct DispatchManifest {
pub waiting_at_stop: BTreeMap<EntityId, Vec<RiderInfo>>,
pub riding_to_stop: BTreeMap<EntityId, Vec<RiderInfo>>,
pub resident_count_at_stop: BTreeMap<EntityId, usize>,
pub hall_calls_at_stop: BTreeMap<EntityId, Vec<HallCall>>,
pub car_calls_by_car: BTreeMap<EntityId, Vec<CarCall>>,
}Expand description
Full demand picture for dispatch decisions.
Contains per-rider metadata grouped by stop, enabling entity-aware dispatch strategies (priority, weight-aware, VIP-first, etc.).
Uses BTreeMap for deterministic iteration order.
Fields§
§waiting_at_stop: BTreeMap<EntityId, Vec<RiderInfo>>Riders waiting at each stop, with full per-rider metadata.
riding_to_stop: BTreeMap<EntityId, Vec<RiderInfo>>Riders currently aboard elevators, grouped by their destination stop.
resident_count_at_stop: BTreeMap<EntityId, usize>Number of residents at each stop (read-only hint for dispatch strategies).
hall_calls_at_stop: BTreeMap<EntityId, Vec<HallCall>>Pending hall calls at each stop — at most two entries per stop
(one per CallDirection). Populated only for stops served by
the group being dispatched. Strategies read this to rank based on
call age, pending-rider count, pin flags, or DCS destinations.
car_calls_by_car: BTreeMap<EntityId, Vec<CarCall>>Floor buttons pressed inside each car in the group. Keyed by car
entity. Strategies read this to plan intermediate stops without
poking into World directly.
Implementations§
Source§impl DispatchManifest
impl DispatchManifest
Sourcepub fn waiting_count_at(&self, stop: EntityId) -> usize
pub fn waiting_count_at(&self, stop: EntityId) -> usize
Number of riders waiting at a stop.
Sourcepub fn total_weight_at(&self, stop: EntityId) -> f64
pub fn total_weight_at(&self, stop: EntityId) -> f64
Total weight of riders waiting at a stop.
Sourcepub fn riding_count_to(&self, stop: EntityId) -> usize
pub fn riding_count_to(&self, stop: EntityId) -> usize
Number of riders heading to a stop (aboard elevators).
Sourcepub fn has_demand(&self, stop: EntityId) -> bool
pub fn has_demand(&self, stop: EntityId) -> bool
Whether a stop has any demand (waiting riders or riders heading there).
Sourcepub fn resident_count_at(&self, stop: EntityId) -> usize
pub fn resident_count_at(&self, stop: EntityId) -> usize
Number of residents at a stop (read-only hint, not active demand).
Sourcepub fn hall_call_at(
&self,
stop: EntityId,
direction: CallDirection,
) -> Option<&HallCall>
pub fn hall_call_at( &self, stop: EntityId, direction: CallDirection, ) -> Option<&HallCall>
The hall call at (stop, direction), if pressed.
Sourcepub fn iter_hall_calls(&self) -> impl Iterator<Item = &HallCall>
pub fn iter_hall_calls(&self) -> impl Iterator<Item = &HallCall>
All hall calls across every stop in the group (flattened iterator).
No #[must_use] needed: impl Iterator already carries that
annotation, and adding our own triggers clippy’s
double_must_use lint.
Sourcepub fn car_calls_for(&self, car: EntityId) -> &[CarCall]
pub fn car_calls_for(&self, car: EntityId) -> &[CarCall]
Floor buttons currently pressed inside car. Empty slice if the
car has no aboard riders or no outstanding presses.
Trait Implementations§
Source§impl Clone for DispatchManifest
impl Clone for DispatchManifest
Source§fn clone(&self) -> DispatchManifest
fn clone(&self) -> DispatchManifest
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more