Expand description
Multi-modal mobility for rustsim.
This crate is the glue layer that lets pedestrians, cyclists, cars, taxis, buses, trains, and lifts participate in the same simulation without any one domain crate having to know about the others.
It provides:
leg— a trip broken into per-mode legs with waypoints in 2-D or 3-D.mode_state— a deterministic state machine that advances a traveller through their legs (walk → board → ride → alight → walk → drive → park → walk → …).obstacle— a sharedObstacletrait every domain can implement, so crowd models can see vehicles and vehicles can see crowd clusters.router— a multi-modal Dijkstra over mode-tagged graphs, with construction helpers forrustsim-trafficlink metadata.policy— cross-domain queue, dispatch, dwell, and control policy contracts re-exported for multimodal orchestration.
The crate is deliberately small and opinionated — it is not a full MATSim/SUMO replacement, it is the engineering contract that keeps domain crates decoupled while still allowing them to interact.
Re-exports§
pub use leg::Leg;pub use leg::TripPlan;pub use leg::Waypoint;pub use mode_state::ModeController;pub use mode_state::ModeState;pub use mode_state::TravellerContext;pub use obstacle::Obstacle;pub use obstacle::ObstacleKind;pub use obstacle::ObstacleSnapshot;pub use obstacle::PedestrianObstacle;pub use obstacle::VehicleObstacle;pub use router::only;pub use router::shortest_path;pub use router::ModalEdge;pub use router::ModalGraph;pub use router::ModalGraphBuildError;pub use router::ModalRoute;
Modules§
- leg
- Trip plans made of per-mode
Legs. - mode_
state - Mode-transition state machine for travellers.
- obstacle
- Cross-domain obstacle trait.
- policy
- Cross-domain mobility policy re-exports.
- prelude
- Convenience re-exports.
- router
- Mode-tagged routing graph and Dijkstra router.
Structs§
- Capacity
Stop Queue Policy - Stop queue policy that enforces the stop’s soft capacity as a hard cap.
- Control
Context - Signal/control context for an approach or movement.
- Dispatch
Context - Dispatch request context for one route at one simulation time.
- Fifo
Boarding Policy - FIFO boarding policy with an optional per-stop-event boarding cap.
- Fifo
GapPolicy - FIFO policy with a fixed gap to the leader and fixed exit clearance.
- Fixed
Control Policy - Fixed-rule control policy for uncontrolled, yield, stop, and signal controls.
- Linear
Dwell Policy - Linear dwell policy backed by
DwellParams. - Scheduled
Dispatch Policy - Schedule-following dispatch policy with optional active-vehicle caps.
- Speed
Decision - Speed chosen by a queue policy.
Enums§
- Control
Decision - Control decision for a movement.
- Dispatch
Decision - Decision returned by a dispatch policy.
- Speed
Constraint - Why a policy constrained an agent’s speed.
Traits§
- Boarding
Policy - Policy for deciding which queued passengers board a vehicle.
- Control
Policy - Policy that decides whether a movement may proceed through a control point.
- Dispatch
Policy - Policy that decides whether a route should dispatch a vehicle.
- Dwell
Policy - Policy for computing stop dwell times from passenger exchange counts.
- Queue
Policy - Policy for choosing an agent’s link speed from ordered occupancy.
- Stop
Queue Policy - Policy for admitting passengers to a stop queue.
Functions§
- board_
with_ policy - Apply a boarding policy to a queue and vehicle.