This commit is contained in:
dabreegster 2020-10-10 20:28:59 +00:00
parent f3a361b456
commit b8048001bd
16 changed files with 60 additions and 26 deletions

View File

@ -3242,9 +3242,19 @@ changes here.</p>
<ul>
<li>improve turn generation, with goldenfile tests</li>
<li>UI adjustments: unzoomed routes, better delay layer, include reasons for cancelled trips, throughput layer counts</li>
<li>small map importing fixes: multipolygon parking lots,</li>
<li>small map importing fixes: multipolygon parking lots</li>
<li>fix infinite parking and blackholed buildings</li>
</ul>
<p>0.2.15</p>
<ul>
<li>large internal change allowing asynchronously loading extra files over HTTP for web</li>
<li>the release of the first web version!</li>
<li>cars looking for parking now have a &quot;thought bubble&quot; showing this, by Michael</li>
<li>slow sections of a trip are now shown in the info panel, by Sam</li>
<li>fix by Michael for handling window resizing in panels</li>
<li>fix original routes on edited maps</li>
<li>internal code organization and documentation</li>
</ul>
<h1><a class="header" href="#references" id="references">References</a></h1>
<h2><a class="header" href="#example-use-cases" id="example-use-cases">Example use cases</a></h2>
<ul>

View File

@ -769,8 +769,18 @@ changes here.</p>
<ul>
<li>improve turn generation, with goldenfile tests</li>
<li>UI adjustments: unzoomed routes, better delay layer, include reasons for cancelled trips, throughput layer counts</li>
<li>small map importing fixes: multipolygon parking lots,</li>
<li>small map importing fixes: multipolygon parking lots</li>
<li>fix infinite parking and blackholed buildings</li>
</ul>
<p>0.2.15</p>
<ul>
<li>large internal change allowing asynchronously loading extra files over HTTP for web</li>
<li>the release of the first web version!</li>
<li>cars looking for parking now have a &quot;thought bubble&quot; showing this, by Michael</li>
<li>slow sections of a trip are now shown in the info panel, by Sam</li>
<li>fix by Michael for handling window resizing in panels</li>
<li>fix original routes on edited maps</li>
<li>internal code organization and documentation</li>
</ul>
</main>

View File

@ -1,2 +1,2 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `loading_tips` fn in crate `game`."><meta name="keywords" content="rust, rustlang, rust-lang, loading_tips"><title>game::helpers::loading_tips - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="shortcut icon" href="../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc fn"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../game/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class='location'><a href='../index.html'>game</a>::<wbr><a href='index.html'>helpers</a></p><script>window.sidebarCurrent = {name: 'loading_tips', ty: 'fn', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><span class="help-button">?</span>
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/game/helpers.rs.html#290-302' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>game</a>::<wbr><a href='index.html'>helpers</a>::<wbr><a class="fn" href=''>loading_tips</a></span></h1><pre class='rust fn'>pub fn loading_tips() -&gt; Text</pre></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "game";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/game/helpers.rs.html#290-304' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>game</a>::<wbr><a href='index.html'>helpers</a>::<wbr><a class="fn" href=''>loading_tips</a></span></h1><pre class='rust fn'>pub fn loading_tips() -&gt; Text</pre></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "game";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>

View File

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `helpers` mod in crate `game`."><meta name="keywords" content="rust, rustlang, rust-lang, helpers"><title>game::helpers - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="shortcut icon" href="../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../game/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class='location'>Module helpers</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#enums">Enums</a></li><li><a href="#functions">Functions</a></li></ul></div><p class='location'><a href='../index.html'>game</a></p><script>window.sidebarCurrent = {name: 'helpers', ty: 'mod', relpath: '../'};</script><script defer src="../sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><span class="help-button">?</span>
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/game/helpers.rs.html#1-302' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../index.html'>game</a>::<wbr><a class="mod" href=''>helpers</a></span></h1><h2 id='enums' class='section-header'><a href="#enums">Enums</a></h2>
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/game/helpers.rs.html#1-304' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../index.html'>game</a>::<wbr><a class="mod" href=''>helpers</a></span></h1><h2 id='enums' class='section-header'><a href="#enums">Enums</a></h2>
<table><tr class='module-item'><td><a class="enum" href="enum.ID.html" title='game::helpers::ID enum'>ID</a></td><td class='docblock-short'></td></tr></table><h2 id='functions' class='section-header'><a href="#functions">Functions</a></h2>
<table><tr class='module-item'><td><a class="fn" href="fn.amenity_type.html" title='game::helpers::amenity_type fn'>amenity_type</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="fn" href="fn.checkbox_per_mode.html" title='game::helpers::checkbox_per_mode fn'>checkbox_per_mode</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="fn" href="fn.cmp_duration_shorter.html" title='game::helpers::cmp_duration_shorter fn'>cmp_duration_shorter</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="fn" href="fn.color_for_agent_type.html" title='game::helpers::color_for_agent_type fn'>color_for_agent_type</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="fn" href="fn.color_for_mode.html" title='game::helpers::color_for_mode fn'>color_for_mode</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="fn" href="fn.color_for_trip_phase.html" title='game::helpers::color_for_trip_phase fn'>color_for_trip_phase</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="fn" href="fn.hotkey_btn.html" title='game::helpers::hotkey_btn fn'>hotkey_btn</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="fn" href="fn.intersections_from_roads.html" title='game::helpers::intersections_from_roads fn'>intersections_from_roads</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="fn" href="fn.list_names.html" title='game::helpers::list_names fn'>list_names</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="fn" href="fn.loading_tips.html" title='game::helpers::loading_tips fn'>loading_tips</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="fn" href="fn.nice_map_name.html" title='game::helpers::nice_map_name fn'>nice_map_name</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="fn" href="fn.open_browser.html" title='game::helpers::open_browser fn'>open_browser</a></td><td class='docblock-short'></td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "game";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>

View File

@ -1,3 +1,3 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `BUILT_TIME_UTC` constant in crate `game`."><meta name="keywords" content="rust, rustlang, rust-lang, BUILT_TIME_UTC"><title>game::pregame::built_info::BUILT_TIME_UTC - Rust</title><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../../ayu.css" disabled ><script src="../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="shortcut icon" href="../../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../../down-arrow.svg");}</style></head><body class="rustdoc constant"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../../game/index.html'><div class='logo-container rust-logo'><img src='../../../rust-logo.png' alt='logo'></div></a><div class="sidebar-elems"><p class='location'><a href='../../index.html'>game</a>::<wbr><a href='../index.html'>pregame</a>::<wbr><a href='index.html'>built_info</a></p><script>window.sidebarCurrent = {name: 'BUILT_TIME_UTC', ty: 'constant', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><span class="help-button">?</span>
<a id="settings-menu" href="../../../settings.html"><img src="../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../../src/game/home/runner/work/abstreet/abstreet/target/debug/build/game-e788b46a21eaee2a/out/built.rs.html#49' title='goto source code'>[src]</a></span><span class='in-band'>Constant <a href='../../index.html'>game</a>::<wbr><a href='../index.html'>pregame</a>::<wbr><a href='index.html'>built_info</a>::<wbr><a class="constant" href=''>BUILT_TIME_UTC</a></span></h1><pre class='rust const'>pub const BUILT_TIME_UTC: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a> = &quot;Sat, 10 Oct 2020 19:46:01 +0000&quot;;</pre><div class='docblock'><p>The built-time in RFC2822, UTC</p>
<a id="settings-menu" href="../../../settings.html"><img src="../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../../src/game/home/runner/work/abstreet/abstreet/target/debug/build/game-e788b46a21eaee2a/out/built.rs.html#49' title='goto source code'>[src]</a></span><span class='in-band'>Constant <a href='../../index.html'>game</a>::<wbr><a href='../index.html'>pregame</a>::<wbr><a href='index.html'>built_info</a>::<wbr><a class="constant" href=''>BUILT_TIME_UTC</a></span></h1><pre class='rust const'>pub const BUILT_TIME_UTC: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a> = &quot;Sat, 10 Oct 2020 20:26:27 +0000&quot;;</pre><div class='docblock'><p>The built-time in RFC2822, UTC</p>
</div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../../";window.currentCrate = "game";</script><script src="../../../main.js"></script><script defer src="../../../search-index.js"></script></body></html>

File diff suppressed because one or more lines are too long

View File

@ -29,7 +29,13 @@ running the simulation, and compare the live Analytics to the prebaked baseline
in time.</p>
</div><span id="structfield.bus_arrivals" class="structfield small-section-header"><a href="#structfield.bus_arrivals" class="anchor field"></a><code>bus_arrivals: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="struct" href="../../sim/struct.CarID.html" title="struct sim::CarID">CarID</a>, <a class="struct" href="../../map_model/objects/bus_stop/struct.BusRouteID.html" title="struct map_model::objects::bus_stop::BusRouteID">BusRouteID</a>, <a class="struct" href="../../map_model/objects/bus_stop/struct.BusStopID.html" title="struct map_model::objects::bus_stop::BusStopID">BusStopID</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;</code></span><span id="structfield.passengers_boarding" class="structfield small-section-header"><a href="#structfield.passengers_boarding" class="anchor field"></a><code>passengers_boarding: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../../map_model/objects/bus_stop/struct.BusStopID.html" title="struct map_model::objects::bus_stop::BusStopID">BusStopID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="struct" href="../../map_model/objects/bus_stop/struct.BusRouteID.html" title="struct map_model::objects::bus_stop::BusRouteID">BusRouteID</a>, <a class="struct" href="../../geom/duration/struct.Duration.html" title="struct geom::duration::Duration">Duration</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;&gt;</code></span><div class='docblock'><p>For each passenger boarding, how long did they wait at the stop?</p>
</div><span id="structfield.passengers_alighting" class="structfield small-section-header"><a href="#structfield.passengers_alighting" class="anchor field"></a><code>passengers_alighting: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../../map_model/objects/bus_stop/struct.BusStopID.html" title="struct map_model::objects::bus_stop::BusStopID">BusStopID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="struct" href="../../map_model/objects/bus_stop/struct.BusRouteID.html" title="struct map_model::objects::bus_stop::BusRouteID">BusRouteID</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;&gt;</code></span><span id="structfield.started_trips" class="structfield small-section-header"><a href="#structfield.started_trips" class="anchor field"></a><code>started_trips: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../../sim/struct.TripID.html" title="struct sim::TripID">TripID</a>, <a class="struct" href="../../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>&gt;</code></span><span id="structfield.finished_trips" class="structfield small-section-header"><a href="#structfield.finished_trips" class="anchor field"></a><code>finished_trips: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="struct" href="../../sim/struct.TripID.html" title="struct sim::TripID">TripID</a>, <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="../../sim/enum.TripMode.html" title="enum sim::TripMode">TripMode</a>&gt;, <a class="struct" href="../../geom/duration/struct.Duration.html" title="struct geom::duration::Duration">Duration</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;</code></span><div class='docblock'><p>Finish time, ID, mode, trip duration</p>
</div><span id="structfield.trip_intersection_delays" class="structfield small-section-header"><a href="#structfield.trip_intersection_delays" class="anchor field"></a><code>trip_intersection_delays: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../../sim/struct.TripID.html" title="struct sim::TripID">TripID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../../map_model/objects/turn/struct.TurnID.html" title="struct map_model::objects::turn::TurnID">TurnID</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;&gt;</code></span><span id="structfield.lane_speed_percentage" class="structfield small-section-header"><a href="#structfield.lane_speed_percentage" class="anchor field"></a><code>lane_speed_percentage: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../../sim/struct.TripID.html" title="struct sim::TripID">TripID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../../map_model/objects/lane/struct.LaneID.html" title="struct map_model::objects::lane::LaneID">LaneID</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;&gt;</code></span><span id="structfield.trip_log" class="structfield small-section-header"><a href="#structfield.trip_log" class="anchor field"></a><code>trip_log: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="struct" href="../../sim/struct.TripID.html" title="struct sim::TripID">TripID</a>, <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../../map_model/pathfind/struct.PathRequest.html" title="struct map_model::pathfind::PathRequest">PathRequest</a>&gt;, <a class="enum" href="../../sim/enum.TripPhaseType.html" title="enum sim::TripPhaseType">TripPhaseType</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;</code></span><span id="structfield.intersection_delays" class="structfield small-section-header"><a href="#structfield.intersection_delays" class="anchor field"></a><code>intersection_delays: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../../map_model/objects/intersection/struct.IntersectionID.html" title="struct map_model::objects::intersection::IntersectionID">IntersectionID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>, <a class="struct" href="../../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="struct" href="../../geom/duration/struct.Duration.html" title="struct geom::duration::Duration">Duration</a>, <a class="enum" href="../../sim/enum.AgentType.html" title="enum sim::AgentType">AgentType</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;&gt;</code></span><div class='docblock'><p>Only for traffic signals. The u8 is the movement index from a CompressedMovementID.</p>
</div><span id="structfield.trip_intersection_delays" class="structfield small-section-header"><a href="#structfield.trip_intersection_delays" class="anchor field"></a><code>trip_intersection_delays: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../../sim/struct.TripID.html" title="struct sim::TripID">TripID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../../map_model/objects/turn/struct.TurnID.html" title="struct map_model::objects::turn::TurnID">TurnID</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;&gt;</code></span><div class='docblock'><p>Records how long was spent waiting at each turn (Intersection) for a given trip
Over a certain threshold
TripID, [(TurnID, Time Waiting In Seconds)]</p>
</div><span id="structfield.lane_speed_percentage" class="structfield small-section-header"><a href="#structfield.lane_speed_percentage" class="anchor field"></a><code>lane_speed_percentage: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../../sim/struct.TripID.html" title="struct sim::TripID">TripID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../../map_model/objects/lane/struct.LaneID.html" title="struct map_model::objects::lane::LaneID">LaneID</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;&gt;</code></span><div class='docblock'><p>Records the average speed/maximum speed for each lane
If it is over a certain threshold (&lt;95% of max speed)
TripID, [(LaneID, Percent of maximum speed as an integer (0-100)]</p>
</div><span id="structfield.trip_log" class="structfield small-section-header"><a href="#structfield.trip_log" class="anchor field"></a><code>trip_log: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="struct" href="../../sim/struct.TripID.html" title="struct sim::TripID">TripID</a>, <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../../map_model/pathfind/struct.PathRequest.html" title="struct map_model::pathfind::PathRequest">PathRequest</a>&gt;, <a class="enum" href="../../sim/enum.TripPhaseType.html" title="enum sim::TripPhaseType">TripPhaseType</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;</code></span><span id="structfield.intersection_delays" class="structfield small-section-header"><a href="#structfield.intersection_delays" class="anchor field"></a><code>intersection_delays: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../../map_model/objects/intersection/struct.IntersectionID.html" title="struct map_model::objects::intersection::IntersectionID">IntersectionID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>, <a class="struct" href="../../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="struct" href="../../geom/duration/struct.Duration.html" title="struct geom::duration::Duration">Duration</a>, <a class="enum" href="../../sim/enum.AgentType.html" title="enum sim::AgentType">AgentType</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;&gt;</code></span><div class='docblock'><p>Only for traffic signals. The u8 is the movement index from a CompressedMovementID.</p>
</div><span id="structfield.parking_lane_changes" class="structfield small-section-header"><a href="#structfield.parking_lane_changes" class="anchor field"></a><code>parking_lane_changes: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../../map_model/objects/lane/struct.LaneID.html" title="struct map_model::objects::lane::LaneID">LaneID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;&gt;</code></span><div class='docblock'><p>Per parking lane or lot, when does a spot become filled (true) or free (false)</p>
</div><span id="structfield.parking_lot_changes" class="structfield small-section-header"><a href="#structfield.parking_lot_changes" class="anchor field"></a><code>parking_lot_changes: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../../map_model/objects/parking_lot/struct.ParkingLotID.html" title="struct map_model::objects::parking_lot::ParkingLotID">ParkingLotID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;&gt;</code></span><span id="structfield.alerts" class="structfield small-section-header"><a href="#structfield.alerts" class="anchor field"></a><code>alerts: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="enum" href="../../sim/enum.AlertLocation.html" title="enum sim::AlertLocation">AlertLocation</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;</code></span><span id="structfield.record_anything" class="structfield small-section-header"><a href="#structfield.record_anything" class="anchor field"></a><code>record_anything: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class='docblock'><p>After we restore from a savestate, don't record anything. This is only going to make sense
if savestates are only used for quickly previewing against prebaked results, where we have

View File

@ -1,5 +1,5 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `driving` mod in crate `sim`."><meta name="keywords" content="rust, rustlang, rust-lang, driving"><title>sim::mechanics::driving - Rust</title><link rel="stylesheet" type="text/css" href="../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../../ayu.css" disabled ><script src="../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../noscript.css"></noscript><link rel="shortcut icon" href="../../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../../sim/index.html'><div class='logo-container rust-logo'><img src='../../../rust-logo.png' alt='logo'></div></a><p class='location'>Module driving</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#structs">Structs</a></li><li><a href="#constants">Constants</a></li></ul></div><p class='location'><a href='../../index.html'>sim</a>::<wbr><a href='../index.html'>mechanics</a></p><script>window.sidebarCurrent = {name: 'driving', ty: 'mod', relpath: '../'};</script><script defer src="../sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><span class="help-button">?</span>
<a id="settings-menu" href="../../../settings.html"><img src="../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../../src/sim/mechanics/driving.rs.html#1-1076' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../../index.html'>sim</a>::<wbr><a href='../index.html'>mechanics</a>::<wbr><a class="mod" href=''>driving</a></span></h1><h2 id='structs' class='section-header'><a href="#structs">Structs</a></h2>
<a id="settings-menu" href="../../../settings.html"><img src="../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../../src/sim/mechanics/driving.rs.html#1-1075' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../../index.html'>sim</a>::<wbr><a href='../index.html'>mechanics</a>::<wbr><a class="mod" href=''>driving</a></span></h1><h2 id='structs' class='section-header'><a href="#structs">Structs</a></h2>
<table><tr class='module-item'><td><a class="struct" href="struct.DrivingSimState.html" title='sim::mechanics::driving::DrivingSimState struct'>DrivingSimState</a></td><td class='docblock-short'><p>Simulates vehicles!</p>
</td></tr></table><h2 id='constants' class='section-header'><a href="#constants">Constants</a></h2>
<table><tr class='module-item'><td><a class="constant" href="constant.BLIND_RETRY_TO_CREEP_FORWARDS.html" title='sim::mechanics::driving::BLIND_RETRY_TO_CREEP_FORWARDS constant'>BLIND_RETRY_TO_CREEP_FORWARDS</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.BLIND_RETRY_TO_REACH_END_DIST.html" title='sim::mechanics::driving::BLIND_RETRY_TO_REACH_END_DIST constant'>BLIND_RETRY_TO_REACH_END_DIST</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.TIME_TO_PARK_OFFSTREET.html" title='sim::mechanics::driving::TIME_TO_PARK_OFFSTREET constant'>TIME_TO_PARK_OFFSTREET</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.TIME_TO_PARK_ONSTREET.html" title='sim::mechanics::driving::TIME_TO_PARK_ONSTREET constant'>TIME_TO_PARK_ONSTREET</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.TIME_TO_UNPARK_OFFSTREET.html" title='sim::mechanics::driving::TIME_TO_UNPARK_OFFSTREET constant'>TIME_TO_UNPARK_OFFSTREET</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.TIME_TO_UNPARK_ONSTRET.html" title='sim::mechanics::driving::TIME_TO_UNPARK_ONSTRET constant'>TIME_TO_UNPARK_ONSTRET</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="constant" href="constant.TIME_TO_WAIT_AT_STOP.html" title='sim::mechanics::driving::TIME_TO_WAIT_AT_STOP constant'>TIME_TO_WAIT_AT_STOP</a></td><td class='docblock-short'></td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../../";window.currentCrate = "sim";</script><script src="../../../main.js"></script><script defer src="../../../search-index.js"></script></body></html>

File diff suppressed because one or more lines are too long

View File

@ -29,7 +29,13 @@ running the simulation, and compare the live Analytics to the prebaked baseline
in time.</p>
</div><span id="structfield.bus_arrivals" class="structfield small-section-header"><a href="#structfield.bus_arrivals" class="anchor field"></a><code>bus_arrivals: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="struct" href="../sim/struct.CarID.html" title="struct sim::CarID">CarID</a>, <a class="struct" href="../map_model/objects/bus_stop/struct.BusRouteID.html" title="struct map_model::objects::bus_stop::BusRouteID">BusRouteID</a>, <a class="struct" href="../map_model/objects/bus_stop/struct.BusStopID.html" title="struct map_model::objects::bus_stop::BusStopID">BusStopID</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;</code></span><span id="structfield.passengers_boarding" class="structfield small-section-header"><a href="#structfield.passengers_boarding" class="anchor field"></a><code>passengers_boarding: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../map_model/objects/bus_stop/struct.BusStopID.html" title="struct map_model::objects::bus_stop::BusStopID">BusStopID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="struct" href="../map_model/objects/bus_stop/struct.BusRouteID.html" title="struct map_model::objects::bus_stop::BusRouteID">BusRouteID</a>, <a class="struct" href="../geom/duration/struct.Duration.html" title="struct geom::duration::Duration">Duration</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;&gt;</code></span><div class='docblock'><p>For each passenger boarding, how long did they wait at the stop?</p>
</div><span id="structfield.passengers_alighting" class="structfield small-section-header"><a href="#structfield.passengers_alighting" class="anchor field"></a><code>passengers_alighting: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../map_model/objects/bus_stop/struct.BusStopID.html" title="struct map_model::objects::bus_stop::BusStopID">BusStopID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="struct" href="../map_model/objects/bus_stop/struct.BusRouteID.html" title="struct map_model::objects::bus_stop::BusRouteID">BusRouteID</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;&gt;</code></span><span id="structfield.started_trips" class="structfield small-section-header"><a href="#structfield.started_trips" class="anchor field"></a><code>started_trips: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../sim/struct.TripID.html" title="struct sim::TripID">TripID</a>, <a class="struct" href="../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>&gt;</code></span><span id="structfield.finished_trips" class="structfield small-section-header"><a href="#structfield.finished_trips" class="anchor field"></a><code>finished_trips: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="struct" href="../sim/struct.TripID.html" title="struct sim::TripID">TripID</a>, <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="enum" href="../sim/enum.TripMode.html" title="enum sim::TripMode">TripMode</a>&gt;, <a class="struct" href="../geom/duration/struct.Duration.html" title="struct geom::duration::Duration">Duration</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;</code></span><div class='docblock'><p>Finish time, ID, mode, trip duration</p>
</div><span id="structfield.trip_intersection_delays" class="structfield small-section-header"><a href="#structfield.trip_intersection_delays" class="anchor field"></a><code>trip_intersection_delays: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../sim/struct.TripID.html" title="struct sim::TripID">TripID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../map_model/objects/turn/struct.TurnID.html" title="struct map_model::objects::turn::TurnID">TurnID</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;&gt;</code></span><span id="structfield.lane_speed_percentage" class="structfield small-section-header"><a href="#structfield.lane_speed_percentage" class="anchor field"></a><code>lane_speed_percentage: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../sim/struct.TripID.html" title="struct sim::TripID">TripID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../map_model/objects/lane/struct.LaneID.html" title="struct map_model::objects::lane::LaneID">LaneID</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;&gt;</code></span><span id="structfield.trip_log" class="structfield small-section-header"><a href="#structfield.trip_log" class="anchor field"></a><code>trip_log: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="struct" href="../sim/struct.TripID.html" title="struct sim::TripID">TripID</a>, <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../map_model/pathfind/struct.PathRequest.html" title="struct map_model::pathfind::PathRequest">PathRequest</a>&gt;, <a class="enum" href="../sim/enum.TripPhaseType.html" title="enum sim::TripPhaseType">TripPhaseType</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;</code></span><span id="structfield.intersection_delays" class="structfield small-section-header"><a href="#structfield.intersection_delays" class="anchor field"></a><code>intersection_delays: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../map_model/objects/intersection/struct.IntersectionID.html" title="struct map_model::objects::intersection::IntersectionID">IntersectionID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>, <a class="struct" href="../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="struct" href="../geom/duration/struct.Duration.html" title="struct geom::duration::Duration">Duration</a>, <a class="enum" href="../sim/enum.AgentType.html" title="enum sim::AgentType">AgentType</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;&gt;</code></span><div class='docblock'><p>Only for traffic signals. The u8 is the movement index from a CompressedMovementID.</p>
</div><span id="structfield.trip_intersection_delays" class="structfield small-section-header"><a href="#structfield.trip_intersection_delays" class="anchor field"></a><code>trip_intersection_delays: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../sim/struct.TripID.html" title="struct sim::TripID">TripID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../map_model/objects/turn/struct.TurnID.html" title="struct map_model::objects::turn::TurnID">TurnID</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;&gt;</code></span><div class='docblock'><p>Records how long was spent waiting at each turn (Intersection) for a given trip
Over a certain threshold
TripID, [(TurnID, Time Waiting In Seconds)]</p>
</div><span id="structfield.lane_speed_percentage" class="structfield small-section-header"><a href="#structfield.lane_speed_percentage" class="anchor field"></a><code>lane_speed_percentage: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../sim/struct.TripID.html" title="struct sim::TripID">TripID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../map_model/objects/lane/struct.LaneID.html" title="struct map_model::objects::lane::LaneID">LaneID</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;&gt;</code></span><div class='docblock'><p>Records the average speed/maximum speed for each lane
If it is over a certain threshold (&lt;95% of max speed)
TripID, [(LaneID, Percent of maximum speed as an integer (0-100)]</p>
</div><span id="structfield.trip_log" class="structfield small-section-header"><a href="#structfield.trip_log" class="anchor field"></a><code>trip_log: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="struct" href="../sim/struct.TripID.html" title="struct sim::TripID">TripID</a>, <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../map_model/pathfind/struct.PathRequest.html" title="struct map_model::pathfind::PathRequest">PathRequest</a>&gt;, <a class="enum" href="../sim/enum.TripPhaseType.html" title="enum sim::TripPhaseType">TripPhaseType</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;</code></span><span id="structfield.intersection_delays" class="structfield small-section-header"><a href="#structfield.intersection_delays" class="anchor field"></a><code>intersection_delays: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../map_model/objects/intersection/struct.IntersectionID.html" title="struct map_model::objects::intersection::IntersectionID">IntersectionID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>, <a class="struct" href="../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="struct" href="../geom/duration/struct.Duration.html" title="struct geom::duration::Duration">Duration</a>, <a class="enum" href="../sim/enum.AgentType.html" title="enum sim::AgentType">AgentType</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;&gt;</code></span><div class='docblock'><p>Only for traffic signals. The u8 is the movement index from a CompressedMovementID.</p>
</div><span id="structfield.parking_lane_changes" class="structfield small-section-header"><a href="#structfield.parking_lane_changes" class="anchor field"></a><code>parking_lane_changes: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../map_model/objects/lane/struct.LaneID.html" title="struct map_model::objects::lane::LaneID">LaneID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;&gt;</code></span><div class='docblock'><p>Per parking lane or lot, when does a spot become filled (true) or free (false)</p>
</div><span id="structfield.parking_lot_changes" class="structfield small-section-header"><a href="#structfield.parking_lot_changes" class="anchor field"></a><code>parking_lot_changes: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a>&lt;<a class="struct" href="../map_model/objects/parking_lot/struct.ParkingLotID.html" title="struct map_model::objects::parking_lot::ParkingLotID">ParkingLotID</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;&gt;</code></span><span id="structfield.alerts" class="structfield small-section-header"><a href="#structfield.alerts" class="anchor field"></a><code>alerts: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="../geom/time/struct.Time.html" title="struct geom::time::Time">Time</a>, <a class="enum" href="../sim/enum.AlertLocation.html" title="enum sim::AlertLocation">AlertLocation</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>&gt;</code></span><span id="structfield.record_anything" class="structfield small-section-header"><a href="#structfield.record_anything" class="anchor field"></a><code>record_anything: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class='docblock'><p>After we restore from a savestate, don't record anything. This is only going to make sense
if savestates are only used for quickly previewing against prebaked results, where we have

View File

@ -301,6 +301,8 @@
<span id="300">300</span>
<span id="301">301</span>
<span id="302">302</span>
<span id="303">303</span>
<span id="304">304</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">BTreeSet</span>;
@ -593,8 +595,10 @@
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">loading_tips</span>() <span class="op">-&gt;</span> <span class="ident">Text</span> {
<span class="ident">Text</span>::<span class="ident">from_multiline</span>(<span class="macro">vec</span><span class="macro">!</span>[
<span class="ident">Line</span>(<span class="string">&quot;Recent changes (September 27)&quot;</span>),
<span class="ident">Line</span>(<span class="string">&quot;Recent changes (October 11)&quot;</span>),
<span class="ident">Line</span>(<span class="string">&quot;&quot;</span>),
<span class="ident">Line</span>(<span class="string">&quot;- A web version has launched!&quot;</span>),
<span class="ident">Line</span>(<span class="string">&quot;- Slow segments of a trip shown in the info panel&quot;</span>),
<span class="ident">Line</span>(<span class="string">&quot;- Alleyways are now included in the map&quot;</span>),
<span class="ident">Line</span>(<span class="string">&quot;- Check out the trip tables and summary changes (press &#39;q&#39;)&quot;</span>),
<span class="ident">Line</span>(<span class="string">&quot;- Try out the new traffic signal editor!&quot;</span>),

View File

@ -112,7 +112,7 @@
<span class="doccomment">/// The output of `rustdoc -V`</span>
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">RUSTDOC_VERSION</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;rustdoc 1.47.0 (18bf6b4f0 2020-10-07)&quot;</span>;
<span class="doccomment">/// The built-time in RFC2822, UTC</span>
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">BUILT_TIME_UTC</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;Sat, 10 Oct 2020 19:46:01 +0000&quot;</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">BUILT_TIME_UTC</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;Sat, 10 Oct 2020 20:26:27 +0000&quot;</span>;
<span class="doccomment">/// The target architecture, given by `cfg!(target_arch)`.</span>
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">CFG_TARGET_ARCH</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;x86_64&quot;</span>;
<span class="doccomment">/// The endianness, given by `cfg!(target_endian)`.</span>

View File

@ -710,13 +710,13 @@
<span class="doccomment">/// Finish time, ID, mode, trip duration</span>
<span class="kw">pub</span> <span class="ident">finished_trips</span>: <span class="ident">Vec</span><span class="op">&lt;</span>(<span class="ident">Time</span>, <span class="ident">TripID</span>, <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">TripMode</span><span class="op">&gt;</span>, <span class="ident">Duration</span>)<span class="op">&gt;</span>,
<span class="comment">// Records how long was spent waiting at each turn (Intersection) for a given trip</span>
<span class="comment">// Over a certain threshold</span>
<span class="comment">// TripID, [(TurnID, Time Waiting In Seconds)]</span>
<span class="doccomment">/// Records how long was spent waiting at each turn (Intersection) for a given trip</span>
<span class="doccomment">/// Over a certain threshold</span>
<span class="doccomment">/// TripID, [(TurnID, Time Waiting In Seconds)]</span>
<span class="kw">pub</span> <span class="ident">trip_intersection_delays</span>: <span class="ident">BTreeMap</span><span class="op">&lt;</span><span class="ident">TripID</span>, <span class="ident">BTreeMap</span><span class="op">&lt;</span><span class="ident">TurnID</span>, <span class="ident">u8</span><span class="op">&gt;&gt;</span>,
<span class="comment">// Records the average speed/maximum speed for each lane</span>
<span class="comment">// If it is over a certain threshold (&lt;95% of max speed)</span>
<span class="comment">// TripID, [(LaneID, Percent of maximum speed as an integer (0-100)]</span>
<span class="doccomment">/// Records the average speed/maximum speed for each lane</span>
<span class="doccomment">/// If it is over a certain threshold (&lt;95% of max speed)</span>
<span class="doccomment">/// TripID, [(LaneID, Percent of maximum speed as an integer (0-100)]</span>
<span class="kw">pub</span> <span class="ident">lane_speed_percentage</span>: <span class="ident">BTreeMap</span><span class="op">&lt;</span><span class="ident">TripID</span>, <span class="ident">BTreeMap</span><span class="op">&lt;</span><span class="ident">LaneID</span>, <span class="ident">u8</span><span class="op">&gt;&gt;</span>,
<span class="comment">// TODO This subsumes finished_trips</span>

View File

@ -1074,7 +1074,6 @@
<span id="1073">1073</span>
<span id="1074">1074</span>
<span id="1075">1075</span>
<span id="1076">1076</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::{<span class="ident">BTreeMap</span>, <span class="ident">BTreeSet</span>, <span class="ident">HashSet</span>, <span class="ident">VecDeque</span>};
@ -1286,7 +1285,7 @@
<span class="comment">// checker, temporarily move one of them out of the BTreeMap.</span>
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">car</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">cars</span>.<span class="ident">remove</span>(<span class="kw-2">&amp;</span><span class="ident">id</span>).<span class="ident">unwrap</span>();
<span class="comment">// Responsibility of update_car to manage scheduling stuff!</span>
<span class="ident">need_distances</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">update_car_without_distances</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">car</span>, <span class="ident">id</span>, <span class="ident">now</span>, <span class="ident">ctx</span>, <span class="ident">transit</span>);
<span class="ident">need_distances</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">update_car_without_distances</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">car</span>, <span class="ident">now</span>, <span class="ident">ctx</span>, <span class="ident">transit</span>);
<span class="self">self</span>.<span class="ident">cars</span>.<span class="ident">insert</span>(<span class="ident">id</span>, <span class="ident">car</span>);
}
@ -1319,7 +1318,6 @@
<span class="kw">fn</span> <span class="ident">update_car_without_distances</span>(
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>,
<span class="ident">car</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">Car</span>,
<span class="ident">id</span>: <span class="ident">CarID</span>,
<span class="ident">now</span>: <span class="ident">Time</span>,
<span class="ident">ctx</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">Ctx</span>,
<span class="ident">transit</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">TransitSimState</span>,
@ -1457,7 +1455,7 @@
<span class="self">self</span>.<span class="ident">events</span>.<span class="ident">push</span>(<span class="ident">Event</span>::<span class="ident">TripIntersectionDelay</span>(
<span class="ident">trip</span>,
<span class="ident">t</span>,
<span class="ident">AgentID</span>::<span class="ident">Car</span>(<span class="ident">id</span>),
<span class="ident">AgentID</span>::<span class="ident">Car</span>(<span class="ident">car</span>.<span class="ident">vehicle</span>.<span class="ident">id</span>),
<span class="ident">now</span> <span class="op">-</span> <span class="ident">blocked_since</span>,
));
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long