Skip to main content

DispatchManifest

Struct DispatchManifest 

Source
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

Source

pub fn waiting_count_at(&self, stop: EntityId) -> usize

Number of riders waiting at a stop.

Source

pub fn total_weight_at(&self, stop: EntityId) -> f64

Total weight of riders waiting at a stop.

Source

pub fn riding_count_to(&self, stop: EntityId) -> usize

Number of riders heading to a stop (aboard elevators).

Source

pub fn has_demand(&self, stop: EntityId) -> bool

Whether a stop has any demand (waiting riders or riders heading there).

Source

pub fn resident_count_at(&self, stop: EntityId) -> usize

Number of residents at a stop (read-only hint, not active demand).

Source

pub fn hall_call_at( &self, stop: EntityId, direction: CallDirection, ) -> Option<&HallCall>

The hall call at (stop, direction), if pressed.

Source

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.

Source

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

Source§

fn clone(&self) -> DispatchManifest

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 DispatchManifest

Source§

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

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

impl Default for DispatchManifest

Source§

fn default() -> DispatchManifest

Returns the “default value” for a type. 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> 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> 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.