<linkrel="alternate icon"type="image/png"href="../favicon-32x32.png"><styletype="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><bodyclass="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu">☰</div><ahref='../sim/index.html'><divclass='logo-container rust-logo'><imgsrc='../rust-logo.png'alt='logo'></div></a><pclass='location'>Struct SimOptions</p><divclass="sidebar-elems"><divclass="block items"><aclass="sidebar-title"href="#fields">Fields</a><divclass="sidebar-links"><ahref="#structfield.alerts">alerts</a><ahref="#structfield.break_turn_conflict_cycles">break_turn_conflict_cycles</a><ahref="#structfield.cancel_drivers_delay_threshold">cancel_drivers_delay_threshold</a><ahref="#structfield.disable_turn_conflicts">disable_turn_conflicts</a><ahref="#structfield.dont_block_the_box">dont_block_the_box</a><ahref="#structfield.enable_pandemic_model">enable_pandemic_model</a><ahref="#structfield.handle_uber_turns">handle_uber_turns</a><ahref="#structfield.infinite_parking">infinite_parking</a><ahref="#structfield.recalc_lanechanging">recalc_lanechanging</a><ahref="#structfield.run_name">run_name</a><ahref="#structfield.skip_analytics">skip_analytics</a><ahref="#structfield.use_freeform_policy_everywhere">use_freeform_policy_everywhere</a></div><aclass="sidebar-title"href="#implementations">Methods</a><divclass="sidebar-links"><ahref="#method.from_args">from_args</a><ahref="#method.new">new</a></div><aclass="sidebar-title"href="#trait-implementations">Trait Implementations</a><divclass="sidebar-links"><ahref="#impl-Clone">Clone</a><ahref="#impl-Default">Default</a></div><aclass="sidebar-title"href="#synthetic-implementations">Auto Trait Implementations</a><divclass="sidebar-links"><ahref="#impl-RefUnwindSafe">RefUnwindSafe</a><ahref="#impl-Send">Send</a><ahref="#impl-Sync">Sync</a><ahref="#impl-Unpin">Unpin</a><ahref="#impl-UnwindSafe">UnwindSafe</a></div><aclass="sidebar-title"href="#blanket-implementations">Blanket Implementations</a><divclass="sidebar-links"><ahref="#impl-Any">Any</a><ahref="#impl-Borrow%3CT%3E">Borrow<T></a><ahref="#impl-BorrowMut%3CT%3E">BorrowMut<T></a><ahref="#impl-Downcast">Downcast</a><ahref="#impl-DowncastSync">DowncastSync</a><ahref="#impl-From%3CT%3E">From<T></a><ahref="#impl-Into%3CU%3E">Into<U></a><ahref="#impl-Same%3CT%3E">Same<T></a><ahref="#impl-ToOwned">ToOwned</a><ahref="#impl-TryFrom%3CU%3E">TryFrom<U></a><ahref="#impl-TryInto%3CU%3E">TryInto<U></a><ahref="#impl-VZip%3CV%3E">VZip<V></a></div></div><pclass='location'><ahref='index.html'>sim</a></p><script>window.sidebarCurrent={name:'SimOptions',ty:'struct',relpath:''};</script><scriptdefersrc="sidebar-items.js"></script></div></nav><divclass="theme-picker"><buttonid="theme-picker"aria-label="Pick another theme!"><imgsrc="../brush.svg"width="18"alt="Pick another theme!"></button><divid="theme-choices"></div></div><scriptsrc="../theme.js"></script><navclass="sub"><formclass="search-form"><divclass="search-container"><div><selectid="crate-search"><optionvalue="All crates">All crates</option></select><inputclass="search-input"name="search"disabledautocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><spanclass="help-button">?</span>
Fields<ahref='#fields'class='anchor'></a></h2><spanid="structfield.run_name"class="structfield small-section-header"><ahref="#structfield.run_name"class="anchor field"></a><code>run_name: <aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html"title="struct alloc::string::String">String</a></code></span><divclass='docblock'><p>Used to distinguish savestates for running the same scenario.</p>
</div><spanid="structfield.use_freeform_policy_everywhere"class="structfield small-section-header"><ahref="#structfield.use_freeform_policy_everywhere"class="anchor field"></a><code>use_freeform_policy_everywhere: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><divclass='docblock'><p>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.</p>
</div><spanid="structfield.dont_block_the_box"class="structfield small-section-header"><ahref="#structfield.dont_block_the_box"class="anchor field"></a><code>dont_block_the_box: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><divclass='docblock'><p>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.</p>
</div><spanid="structfield.recalc_lanechanging"class="structfield small-section-header"><ahref="#structfield.recalc_lanechanging"class="anchor field"></a><code>recalc_lanechanging: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><divclass='docblock'><p>As a vehicle follows a route, opportunistically make small changes to use a different lane,
based on some score of "least-loaded" lane.</p>
</div><spanid="structfield.break_turn_conflict_cycles"class="structfield small-section-header"><ahref="#structfield.break_turn_conflict_cycles"class="anchor field"></a><code>break_turn_conflict_cycles: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><divclass='docblock'><p>If a cycle of vehicles depending on each other to turn is detected, temporarily allow
"blocking the box" to try to break gridlock.</p>
</div><spanid="structfield.handle_uber_turns"class="structfield small-section-header"><ahref="#structfield.handle_uber_turns"class="anchor field"></a><code>handle_uber_turns: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><divclass='docblock'><p>Enable experimental handling for "uber-turns", sequences of turns through complex
intersections with short roads. "Locks" the entire movement before starting, and ignores
</div><spanid="structfield.alerts"class="structfield small-section-header"><ahref="#structfield.alerts"class="anchor field"></a><code>alerts: <aclass="enum"href="../sim/enum.AlertHandler.html"title="enum sim::AlertHandler">AlertHandler</a></code></span><divclass='docblock'><p>When a warning is encountered during simulation, specifies how to respond.</p>
</div><spanid="structfield.infinite_parking"class="structfield small-section-header"><ahref="#structfield.infinite_parking"class="anchor field"></a><code>infinite_parking: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><divclass='docblock'><p>Ignore parking data in the map and instead treat every building as if it has unlimited
capacity for vehicles.</p>
</div><spanid="structfield.disable_turn_conflicts"class="structfield small-section-header"><ahref="#structfield.disable_turn_conflicts"class="anchor field"></a><code>disable_turn_conflicts: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><divclass='docblock'><p>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.</p>
</div><spanid="structfield.cancel_drivers_delay_threshold"class="structfield small-section-header"><ahref="#structfield.cancel_drivers_delay_threshold"class="anchor field"></a><code>cancel_drivers_delay_threshold: <aclass="enum"href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="struct"href="../geom/duration/struct.Duration.html"title="struct geom::duration::Duration">Duration</a>></code></span><divclass='docblock'><p>If present, cancel any driving trips who will pass through a road currently experiencing
</div><spanid="structfield.skip_analytics"class="structfield small-section-header"><ahref="#structfield.skip_analytics"class="anchor field"></a><code>skip_analytics: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><divclass='docblock'><p>Don't collect any analytics. Only useful for benchmarking and debugging gridlock more
</div></div><h3id='impl-Downcast'class='impl'><codeclass='in-band'>impl<T> Downcast for T <spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html"title="trait core::any::Any">Any</a>, </span></code><ahref='#impl-Downcast'class='anchor'></a></h3><divclass='impl-items'><h4id='method.into_any'class="method hidden"><code>fn <ahref='#method.into_any'class='fnname'>into_any</a>(self: <aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html"title="struct alloc::boxed::Box">Box</a><T>) -><aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html"title="struct alloc::boxed::Box">Box</a><dyn <aclass="trait"href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html"title="trait core::any::Any">Any</a> + 'static></code></h4><divclass='docblock hidden'><p>Convert <code>Box<dyn Trait></code> (where <code>Trait: Downcast</code>) to <code>Box<dyn Any></code>. <code>Box<dyn Any></code> can
then be further <code>downcast</code> into <code>Box<ConcreteType></code> where <code>ConcreteType</code> implements <code>Trait</code>. <ahref="#tymethod.into_any">Read more</a></p>
</div><h4id='method.into_any_rc'class="method hidden"><code>fn <ahref='#method.into_any_rc'class='fnname'>into_any_rc</a>(self: <aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/rc/struct.Rc.html"title="struct alloc::rc::Rc">Rc</a><T>) -><aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/rc/struct.Rc.html"title="struct alloc::rc::Rc">Rc</a><dyn <aclass="trait"href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html"title="trait core::any::Any">Any</a> + 'static></code></h4><divclass='docblock hidden'><p>Convert <code>Rc<Trait></code> (where <code>Trait: Downcast</code>) to <code>Rc<Any></code>. <code>Rc<Any></code> can then be
further <code>downcast</code> into <code>Rc<ConcreteType></code> where <code>ConcreteType</code> implements <code>Trait</code>. <ahref="#tymethod.into_any_rc">Read more</a></p>
</div><h4id='method.as_any'class="method hidden"><code>fn <ahref='#method.as_any'class='fnname'>as_any</a>(&self) ->&(dyn <aclass="trait"href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html"title="trait core::any::Any">Any</a> + 'static)</code></h4><divclass='docblock hidden'><p>Convert <code>&Trait</code> (where <code>Trait: Downcast</code>) to <code>&Any</code>. This is needed since Rust cannot
generate <code>&Any</code>'s vtable from <code>&Trait</code>'s. <ahref="#tymethod.as_any">Read more</a></p>
</div><h4id='method.as_any_mut'class="method hidden"><code>fn <ahref='#method.as_any_mut'class='fnname'>as_any_mut</a>(&mut self) ->&mut (dyn <aclass="trait"href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html"title="trait core::any::Any">Any</a> + 'static)</code></h4><divclass='docblock hidden'><p>Convert <code>&mut Trait</code> (where <code>Trait: Downcast</code>) to <code>&Any</code>. This is needed since Rust cannot
generate <code>&mut Any</code>'s vtable from <code>&mut Trait</code>'s. <ahref="#tymethod.as_any_mut">Read more</a></p>
</div></div><h3id='impl-DowncastSync'class='impl'><codeclass='in-band'>impl<T> DowncastSync for T <spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html"title="trait core::marker::Send">Send</a> + <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html"title="trait core::marker::Sync">Sync</a> + <aclass="trait"href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html"title="trait core::any::Any">Any</a>, </span></code><ahref='#impl-DowncastSync'class='anchor'></a></h3><divclass='impl-items'><h4id='method.into_any_arc'class="method hidden"><code>fn <ahref='#method.into_any_arc'class='fnname'>into_any_arc</a>(self: <aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html"title="struct alloc::sync::Arc">Arc</a><T>) -><aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html"title="struct alloc::sync::Arc">Arc</a><dyn <aclass="trait"href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html"title="trait core::any::Any">Any</a> + 'static + <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html"title="trait core::marker::Sync">Sync</a> + <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html"title="trait core::marker::Send">Send</a>></code></h4><divclass='docblock hidden'><p>Convert <code>Arc<Trait></code> (where <code>Trait: Downcast</code>) to <code>Arc<Any></code>. <code>Arc<Any></code> can then be
further <code>downcast</code> into <code>Arc<ConcreteType></code> where <code>ConcreteType</code> implements <code>Trait</code>. <ahref="#tymethod.into_any_arc">Read more</a></p>
</div></div><h3id='impl-From%3CT%3E'class='impl'><codeclass='in-band'>impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html"title="trait core::convert::From">From</a><T> for T</code><ahref='#impl-From%3CT%3E'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#551-555'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='method.from'class="method hidden"><code>fn <ahref='https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from'class='fnname'>from</a>(t: T) -> T</code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#552-554'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3id='impl-Into%3CU%3E'class='impl'><codeclass='in-band'>impl<T, U><aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"title="trait core::convert::Into">Into</a><U> for T <spanclass="where fmt-newline">where<br> U: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html"title="trait core::convert::From">From</a><T>, </span></code><ahref='#impl-Into%3CU%3E'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#540-547'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='method.into'class="method hidden"><code>fn <ahref='https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into'class='fnname'>into</a>(self) -> U</code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#544-546'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3id='impl-Same%3CT%3E'class='impl'><codeclass='in-band'>impl<T> Same<T> for T</code><ahref='#impl-Same%3CT%3E'class='anchor'></a></h3><divclass='impl-items'><h4id='associatedtype.Output'class="type"><code>type <ahref='#associatedtype.Output'class="type">Output</a> = T</code></h4><divclass='docblock'><p>Should always be <code>Self</code></p>
</div></div><h3id='impl-ToOwned'class='impl'><codeclass='in-band'>impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html"title="trait alloc::borrow::ToOwned">ToOwned</a> for T <spanclass="where fmt-newline">where<br> T: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>, </span></code><ahref='#impl-ToOwned'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#80-92'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='associatedtype.Owned'class="type"><code>type <ahref='https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned'class="type">Owned</a> = T</code></h4><divclass='docblock'><p>The resulting type after obtaining ownership.</p>
</div><h4id='method.to_owned'class="method hidden"><code>fn <ahref='https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned'class='fnname'>to_owned</a>(&self) -> T</code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#85-87'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Creates owned data from borrowed data, usually by cloning. <ahref="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></p>
</div><h4id='method.clone_into'class="method hidden"><code>fn <ahref='https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into'class='fnname'>clone_into</a>(&self, target: <aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#89-91'title='goto source code'>[src]</a></h4><divclass='stability hidden'><divclass='stab unstable'><details><summary><spanclass='emoji'>🔬</span> This is a nightly-only experimental API. (<code>toowned_clone_into</code>)</summary><p>recently added</p>
</details></div></div><divclass='docblock hidden'><p>Uses borrowed data to replace owned data, usually by cloning. <ahref="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></p>
</div></div><h3id='impl-TryFrom%3CU%3E'class='impl'><codeclass='in-band'>impl<T, U><aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><U> for T <spanclass="where fmt-newline">where<br> U: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html"title="trait core::convert::Into">Into</a><T>, </span></code><ahref='#impl-TryFrom%3CU%3E'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#588-597'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='associatedtype.Error'class="type"><code>type <ahref='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error'class="type">Error</a> = <aclass="enum"href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html"title="enum core::convert::Infallible">Infallible</a></code></h4><divclass='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4id='method.try_from'class="method hidden"><code>fn <ahref='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from'class='fnname'>try_from</a>(value: U) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><T, <T as <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><U>>::<aclass="type"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a>></code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#594-596'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3id='impl-TryInto%3CU%3E'class='impl'><codeclass='in-band'>impl<T, U><aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html"title="trait core::convert::TryInto">TryInto</a><U> for T <spanclass="where fmt-newline">where<br> U: <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>, </span></code><ahref='#impl-TryInto%3CU%3E'class='anchor'></a><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#574-583'title='goto source code'>[src]</a></h3><divclass='impl-items'><h4id='associatedtype.Error-1'class="type"><code>type <ahref='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error'class="type">Error</a> = <U as <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>>::<aclass="type"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a></code></h4><divclass='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4id='method.try_into'class="method hidden"><code>fn <ahref='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into'class='fnname'>try_into</a>(self) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><U, <U as <aclass="trait"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>>::<aclass="type"href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a>></code><aclass='srclink'href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#580-582'title='goto source code'>[src]</a></h4><divclass='docblock hidden'><p>Performs the conversion.</p>