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: u32Numeric identifier for this elevator, unique within the config.
Mapped to an EntityId at construction
time; not used at runtime.
name: StringHuman-readable elevator name, displayed in UIs and logs.
max_speed: f64Maximum 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: f64Acceleration 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: f64Deceleration 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: f64Maximum 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: StopIdThe StopId where this elevator starts at simulation init.
Must reference an existing stop in the building config.
door_open_ticks: u32How 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: u32How 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: f64Speed multiplier for Inspection mode (0.0..1.0). Defaults to 0.25.
Trait Implementations§
Source§impl Clone for ElevatorConfig
impl Clone for ElevatorConfig
Source§fn clone(&self) -> ElevatorConfig
fn clone(&self) -> ElevatorConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ElevatorConfig
impl Debug for ElevatorConfig
Source§impl Default for ElevatorConfig
impl Default for ElevatorConfig
Source§fn default() -> Self
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.