Struct sim::SimOptions [−][src]
Options controlling the traffic simulation.
Fields
run_name: String
Used to distinguish savestates for running the same scenario.
use_freeform_policy_everywhere: bool
Ignore all stop signs and traffic signals, instead using a "freeform" policy to control access to intersections. If a requested turn doesn't conflict with an already accepted one, immediately accept it. FIFO ordering, no balancing between different movements.
dont_block_the_box: bool
Prevent a vehicle from starting a turn if their target lane is already full, since this may mean they'll get stuck blocking the intersection.
recalc_lanechanging: bool
As a vehicle follows a route, opportunistically make small changes to use a different lane, based on some score of "least-loaded" lane.
break_turn_conflict_cycles: bool
If a cycle of vehicles depending on each other to turn is detected, temporarily allow "blocking the box" to try to break gridlock.
handle_uber_turns: bool
Enable experimental handling for "uber-turns", sequences of turns through complex intersections with short roads. "Locks" the entire movement before starting, and ignores red lights after starting.
enable_pandemic_model: Option<XorShiftRng>
Enable an experimental SEIR pandemic model.
alerts: AlertHandler
When a warning is encountered during simulation, specifies how to respond.
infinite_parking: bool
Ignore parking data in the map and instead treat every building as if it has unlimited capacity for vehicles.
disable_turn_conflicts: bool
Allow all agents to immediately proceed into an intersection, even if they'd hit another agent. Obviously this destroys realism of the simulation, but can be used to debug gridlock. Also implies freeform_policy, so vehicles ignore traffic signals.
cancel_drivers_delay_threshold: Option<Duration>
If present, cancel any driving trips who will pass through a road currently experiencing delays beyond this threshold.
delay_trips_instead_of_cancelling: Option<Duration>
Instead of cancelling trips due to cancel_drivers_delay_threshold
or congestion capping,
delay the start of the trip by this amount, and try again. If conditions are still
problematic, repeat a fixed 3 times before cancelling.
skip_analytics: bool
Don't collect any analytics. Only useful for benchmarking and debugging gridlock more quickly.
Implementations
impl SimOptions
[src]
pub fn from_args(args: &mut CmdArgs, rng_seed: u64) -> SimOptions
[src]
impl SimOptions
[src]
pub fn new(run_name: &str) -> SimOptions
[src]
Trait Implementations
impl Clone for SimOptions
[src]
fn clone(&self) -> SimOptions
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Default for SimOptions
[src]
fn default() -> SimOptions
[src]
Auto Trait Implementations
impl RefUnwindSafe for SimOptions
[src]
impl Send for SimOptions
[src]
impl Sync for SimOptions
[src]
impl Unpin for SimOptions
[src]
impl UnwindSafe for SimOptions
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Downcast for T where
T: Any,
T: Any,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn as_any(&self) -> &(dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
impl<T> DowncastSync for T where
T: Send + Sync + Any,
T: Send + Sync + Any,
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,