Skip to main content

ElevatorConfig

Struct ElevatorConfig 

Source
pub struct ElevatorConfig {
Show 13 fields pub id: u32, pub name: String, pub max_speed: f64, pub acceleration: f64, pub deceleration: f64, pub weight_capacity: f64, pub starting_stop: StopId, pub door_open_ticks: u32, pub door_transition_ticks: u32, pub restricted_stops: Vec<StopId>, pub energy_profile: Option<EnergyProfile>, pub service_mode: Option<ServiceMode>, pub inspection_speed_factor: f64,
}
Expand description

Configuration for a single elevator car.

Fields§

§id: u32

Numeric identifier for this elevator, unique within the config.

Mapped to an EntityId at construction time; not used at runtime.

§name: String

Human-readable elevator name, displayed in UIs and logs.

§max_speed: f64

Maximum travel speed in distance units per second.

Must be positive. The trapezoidal velocity profile accelerates up to this speed, cruises, then decelerates to stop at the target.

Default (from SimulationBuilder): 2.0.

§acceleration: f64

Acceleration rate in distance units per second squared.

Must be positive. Controls how quickly the elevator reaches max_speed from rest.

Default (from SimulationBuilder): 1.5.

§deceleration: f64

Deceleration rate in distance units per second squared.

Must be positive. Controls how quickly the elevator slows to a stop when approaching a target. May differ from acceleration for asymmetric motion profiles.

Default (from SimulationBuilder): 2.0.

§weight_capacity: f64

Maximum total weight the elevator car can carry.

Must be positive. Riders whose weight would exceed this limit are rejected during the loading phase.

Units: same as rider weight (typically kilograms). Default (from SimulationBuilder): 800.0.

§starting_stop: StopId

The StopId where this elevator starts at simulation init.

Must reference an existing stop in the building config.

§door_open_ticks: u32

How many ticks the doors remain fully open before closing.

During this window, riders may board or exit. Longer values increase loading opportunity but reduce throughput.

Units: simulation ticks. Default (from SimulationBuilder): 10.

§door_transition_ticks: u32

How many ticks a door open or close transition takes.

Models the mechanical travel time of the door panels. No boarding or exiting occurs during transitions.

Units: simulation ticks. Default (from SimulationBuilder): 5.

§restricted_stops: Vec<StopId>

Stop IDs this elevator cannot serve (access restriction).

Riders whose current destination is in this list are rejected with RejectionReason::AccessDenied during the loading phase.

Default: empty (no restrictions).

§energy_profile: Option<EnergyProfile>

Energy profile for this elevator. If None, energy is not tracked.

Requires the energy feature.

§service_mode: Option<ServiceMode>

Service mode at simulation start. Defaults to Normal.

§inspection_speed_factor: f64

Speed multiplier for Inspection mode (0.0..1.0). Defaults to 0.25.

Trait Implementations§

Source§

impl Clone for ElevatorConfig

Source§

fn clone(&self) -> ElevatorConfig

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 ElevatorConfig

Source§

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

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

impl Default for ElevatorConfig

Source§

fn default() -> Self

Reasonable defaults matching the physics values the rest of this struct’s field docs advertise. Override any field with struct-update syntax:

use elevator_core::config::ElevatorConfig;
use elevator_core::stop::StopId;

let fast = ElevatorConfig {
    name: "Express".into(),
    max_speed: 6.0,
    starting_stop: StopId(0),
    ..Default::default()
};

starting_stop defaults to StopId(0) — the conventional lobby id. Override if your config uses a different bottom-stop id.

Source§

impl<'de> Deserialize<'de> for ElevatorConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for ElevatorConfig

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. 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.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,