This commit is contained in:
dabreegster 2020-12-07 21:14:42 +00:00
parent 36a4391130
commit 0bc7accf9c
25 changed files with 188 additions and 197 deletions

View File

@ -233,6 +233,11 @@ Seattle scenarios.</li>
King County GIS, and so on. If the mirrors are slow or the files vanish, you
could fill out <code>data/config</code> and use the <code>updater</code> described above to grab the
latest input.</p>
<p>Building contraction hierarchies for pathfinding occurs in the --map stage. It
can take a few minutes for larger maps. To view occasional progress updates,
you can run the importer with </p>
<pre><code>RUST_LOG=&quot;fast_paths=debug/contracted node [0-9]+0000 &quot;
</code></pre>
<p>You can rerun specific stages of the importer:</p>
<ul>
<li>If you're modifying the initial OSM data -&gt; RawMap conversion in
@ -310,11 +315,34 @@ during map importing, since the player won't deal with this, and loudly stopping
problems is useful. It's also fine to crash when initially constructing all of
the renderable map objects, because this crash will consistently happen at
startup-time and be noticed by somebody developing before a player gets to it.</p>
<p>Prefer using <code>info!</code>, <code>warn!</code>, <code>error!</code>, etc from the <code>log</code> crate. Or if a
<code>Timer</code> is available and you want to collect all notes together, <code>timer.note</code>.
There are still many places calling <code>println!</code>, but we're trying to clean these
up.</p>
<p>See the <a href="testing.html">testing strategy</a> page.</p>
<h2><a class="header" href="#logging" id="logging">Logging</a></h2>
<p>Prefer using <code>info!</code>, <code>warn!</code>, <code>error!</code>, etc from the <code>log</code> crate rather than
<code>println</code>. Or if a <code>Timer</code> is available and you want to collect all notes
together, <code>timer.note</code>. There are still many places calling <code>println!</code>, but
we're trying to clean these up.</p>
<p>Adjust the log level without recompiling via the <code>RUST_LOG</code> env variable.</p>
<pre><code>RUST_LOG=debug cargo run --bin game
</code></pre>
<p>This can be done on a per lib basis:</p>
<pre><code>RUST_LOG=my_lib=debug cargo run --bin game
</code></pre>
<p>Or a module-by-module basis:</p>
<pre><code>RUST_LOG=my_lib::module=debug cargo run --bin game
</code></pre>
<p>You can mix and match:</p>
<pre><code># error logging by default, except the foo:bar module at debug level
# and the entire baz crate at info level
RUST_LOG=error,foo::bar=debug,baz=info cargo run --bin game
</code></pre>
<p>For some special cases, you might want to use regex matching by specifying a
pattern with the &quot;/&quot;:</p>
<pre><code># only log once every 10k
RUST_LOG=&quot;fast_paths=debug/contracted node [0-9]+0000 &quot; mike import_la
</code></pre>
<p>See the <a href="https://docs.rs/env_logger/0.8.2/env_logger/">env_logger
documentation</a> for more usage
examples.</p>
<h2><a class="header" href="#profiling" id="profiling">Profiling</a></h2>
<p>Use <a href="https://github.com/flamegraph-rs/flamegraph">https://github.com/flamegraph-rs/flamegraph</a>, just running it on the
binaries you build normally.</p>

View File

@ -879,6 +879,11 @@ Seattle scenarios.</li>
King County GIS, and so on. If the mirrors are slow or the files vanish, you
could fill out <code>data/config</code> and use the <code>updater</code> described above to grab the
latest input.</p>
<p>Building contraction hierarchies for pathfinding occurs in the --map stage. It
can take a few minutes for larger maps. To view occasional progress updates,
you can run the importer with </p>
<pre><code>RUST_LOG=&quot;fast_paths=debug/contracted node [0-9]+0000 &quot;
</code></pre>
<p>You can rerun specific stages of the importer:</p>
<ul>
<li>If you're modifying the initial OSM data -&gt; RawMap conversion in
@ -956,11 +961,34 @@ during map importing, since the player won't deal with this, and loudly stopping
problems is useful. It's also fine to crash when initially constructing all of
the renderable map objects, because this crash will consistently happen at
startup-time and be noticed by somebody developing before a player gets to it.</p>
<p>Prefer using <code>info!</code>, <code>warn!</code>, <code>error!</code>, etc from the <code>log</code> crate. Or if a
<code>Timer</code> is available and you want to collect all notes together, <code>timer.note</code>.
There are still many places calling <code>println!</code>, but we're trying to clean these
up.</p>
<p>See the <a href="dev/testing.html">testing strategy</a> page.</p>
<h2><a class="header" href="#logging" id="logging">Logging</a></h2>
<p>Prefer using <code>info!</code>, <code>warn!</code>, <code>error!</code>, etc from the <code>log</code> crate rather than
<code>println</code>. Or if a <code>Timer</code> is available and you want to collect all notes
together, <code>timer.note</code>. There are still many places calling <code>println!</code>, but
we're trying to clean these up.</p>
<p>Adjust the log level without recompiling via the <code>RUST_LOG</code> env variable.</p>
<pre><code>RUST_LOG=debug cargo run --bin game
</code></pre>
<p>This can be done on a per lib basis:</p>
<pre><code>RUST_LOG=my_lib=debug cargo run --bin game
</code></pre>
<p>Or a module-by-module basis:</p>
<pre><code>RUST_LOG=my_lib::module=debug cargo run --bin game
</code></pre>
<p>You can mix and match:</p>
<pre><code># error logging by default, except the foo:bar module at debug level
# and the entire baz crate at info level
RUST_LOG=error,foo::bar=debug,baz=info cargo run --bin game
</code></pre>
<p>For some special cases, you might want to use regex matching by specifying a
pattern with the &quot;/&quot;:</p>
<pre><code># only log once every 10k
RUST_LOG=&quot;fast_paths=debug/contracted node [0-9]+0000 &quot; mike import_la
</code></pre>
<p>See the <a href="https://docs.rs/env_logger/0.8.2/env_logger/">env_logger
documentation</a> for more usage
examples.</p>
<h2><a class="header" href="#profiling" id="profiling">Profiling</a></h2>
<p>Use <a href="https://github.com/flamegraph-rs/flamegraph">https://github.com/flamegraph-rs/flamegraph</a>, just running it on the
binaries you build normally.</p>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,26 @@
<!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 `setup` fn in crate `abstutil`."><meta name="keywords" content="rust, rustlang, rust-lang, setup"><title>abstutil::setup - 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="icon" type="image/svg+xml" href="../favicon.svg">
<link rel="alternate icon" type="image/png" href="../favicon-16x16.png">
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><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='../abstutil/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'>abstutil</a></p><script>window.sidebarCurrent = {name: 'setup', 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/abstutil/logger.rs.html#28-39' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='index.html'>abstutil</a>::<wbr><a class="fn" href=''>setup</a></span></h1><pre class='rust fn'>pub fn setup()</pre><div class='docblock'><h2 id="on-native-uses-env_log" class="section-header"><a href="#on-native-uses-env_log">On native: uses env_log</a></h2>
<p>You can adjust the log level without recompiling with the RUST_LOG env variable.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="ident">RUST_LOG</span><span class="op">=</span><span class="ident">debug</span> <span class="ident">cargo</span> <span class="ident">run</span> <span class="op">-</span><span class="op">-</span><span class="ident">bin</span> <span class="ident">game</span></pre></div>
<p>This can be done on a per lib basis:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="ident">RUST_LOG</span><span class="op">=</span><span class="ident">my_lib</span><span class="op">=</span><span class="ident">debug</span> <span class="ident">cargo</span> <span class="ident">run</span> <span class="op">-</span><span class="op">-</span><span class="ident">bin</span> <span class="ident">game</span></pre></div>
<p>Or a module-by-module basis:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="ident">RUST_LOG</span><span class="op">=</span><span class="ident">my_lib</span>::<span class="ident">module</span><span class="op">=</span><span class="ident">debug</span> <span class="ident">cargo</span> <span class="ident">run</span> <span class="op">-</span><span class="op">-</span><span class="ident">bin</span> <span class="ident">game</span></pre></div>
<p>You can mix and match:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="ident">RUST_LOG</span><span class="op">=</span><span class="ident">error</span>,<span class="ident">foo</span>::<span class="ident">bar</span><span class="op">=</span><span class="ident">debug</span>,<span class="ident">baz</span><span class="op">=</span><span class="ident">info</span> <span class="ident">cargo</span> <span class="ident">run</span> <span class="op">-</span><span class="op">-</span><span class="ident">bin</span> <span class="ident">game</span></pre></div>
<p>For some special cases, you might want to use regex matching by specifying a pattern with the
&quot;/&quot;:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="ident">RUST_LOG</span><span class="op">=</span><span class="string">&quot;fast_paths=debug/contracted node [0-9]+0000 &quot;</span> <span class="ident">mike</span> <span class="ident">import_la</span></pre></div>
<h2 id="on-web-uses-console_log" class="section-header"><a href="#on-web-uses-console_log">On web: uses console_log</a></h2></div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "abstutil";</script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>

View File

@ -18,7 +18,7 @@
</td></tr><tr class='module-item'><td><a class="struct" href="struct.FileWithProgress.html" title='abstutil::FileWithProgress struct'>FileWithProgress</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="struct" href="struct.FixedMap.html" title='abstutil::FixedMap struct'>FixedMap</a></td><td class='docblock-short'><p>A drop-in replacement for <code>BTreeMap</code>, where the keys have the property of being array indices.
Some values may be missing. Much more efficient at operations on individual objects, because
it just becomes a simple array lookup.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.Logger.html" title='abstutil::Logger struct'>Logger</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="struct" href="struct.Manifest.html" title='abstutil::Manifest struct'>Manifest</a></td><td class='docblock-short'><p>A list of all canonical data files for A/B Street that're uploaded somewhere. The file formats
</td></tr><tr class='module-item'><td><a class="struct" href="struct.Manifest.html" title='abstutil::Manifest struct'>Manifest</a></td><td class='docblock-short'><p>A list of all canonical data files for A/B Street that're uploaded somewhere. The file formats
are tied to the latest version of the git repo. Players use the updater crate to sync these
files with local copies.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.MapName.html" title='abstutil::MapName struct'>MapName</a></td><td class='docblock-short'><p>A single map is identified using this. Using a struct makes refactoring later easier, to
@ -60,6 +60,7 @@ serialized form is deterministic.</p>
</td></tr><tr class='module-item'><td><a class="fn" href="fn.serialize_usize.html" title='abstutil::serialize_usize fn'>serialize_usize</a></td><td class='docblock-short'><p>Serializes a <code>usize</code> as a <code>u32</code> to save space. Useful when you need <code>usize</code> for indexing, but
the values don't exceed 2^32.</p>
</td></tr><tr class='module-item'><td><a class="fn" href="fn.serialized_size_bytes.html" title='abstutil::serialized_size_bytes fn'>serialized_size_bytes</a></td><td class='docblock-short'><p>The number of bytes for an object serialized to bincode.</p>
</td></tr><tr class='module-item'><td><a class="fn" href="fn.setup.html" title='abstutil::setup fn'>setup</a></td><td class='docblock-short'><p>On native: uses env_log</p>
</td></tr><tr class='module-item'><td><a class="fn" href="fn.slurp_file.html" title='abstutil::slurp_file fn'>slurp_file</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="fn" href="fn.to_json.html" title='abstutil::to_json fn'>to_json</a></td><td class='docblock-short'><p>Stringifies an object to nicely formatted JSON.</p>
</td></tr><tr class='module-item'><td><a class="fn" href="fn.to_json_terse.html" title='abstutil::to_json_terse fn'>to_json_terse</a></td><td class='docblock-short'><p>Stringifies an object to terse JSON.</p>
</td></tr><tr class='module-item'><td><a class="fn" href="fn.wraparound_get.html" title='abstutil::wraparound_get fn'>wraparound_get</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="fn" href="fn.write_binary.html" title='abstutil::write_binary fn'>write_binary</a></td><td class='docblock-short'></td></tr><tr class='module-item'><td><a class="fn" href="fn.write_json.html" title='abstutil::write_json fn'>write_json</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 = "abstutil";</script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>

View File

@ -0,0 +1,26 @@
<!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 `setup` fn in crate `abstutil`."><meta name="keywords" content="rust, rustlang, rust-lang, setup"><title>abstutil::logger::setup - 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="icon" type="image/svg+xml" href="../../favicon.svg">
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><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='../../abstutil/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'>abstutil</a>::<wbr><a href='index.html'>logger</a></p><script>window.sidebarCurrent = {name: 'setup', 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/abstutil/logger.rs.html#28-39' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>abstutil</a>::<wbr><a href='index.html'>logger</a>::<wbr><a class="fn" href=''>setup</a></span></h1><pre class='rust fn'>pub fn setup()</pre><div class='docblock'><h2 id="on-native-uses-env_log" class="section-header"><a href="#on-native-uses-env_log">On native: uses env_log</a></h2>
<p>You can adjust the log level without recompiling with the RUST_LOG env variable.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="ident">RUST_LOG</span><span class="op">=</span><span class="ident">debug</span> <span class="ident">cargo</span> <span class="ident">run</span> <span class="op">-</span><span class="op">-</span><span class="ident">bin</span> <span class="ident">game</span></pre></div>
<p>This can be done on a per lib basis:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="ident">RUST_LOG</span><span class="op">=</span><span class="ident">my_lib</span><span class="op">=</span><span class="ident">debug</span> <span class="ident">cargo</span> <span class="ident">run</span> <span class="op">-</span><span class="op">-</span><span class="ident">bin</span> <span class="ident">game</span></pre></div>
<p>Or a module-by-module basis:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="ident">RUST_LOG</span><span class="op">=</span><span class="ident">my_lib</span>::<span class="ident">module</span><span class="op">=</span><span class="ident">debug</span> <span class="ident">cargo</span> <span class="ident">run</span> <span class="op">-</span><span class="op">-</span><span class="ident">bin</span> <span class="ident">game</span></pre></div>
<p>You can mix and match:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="ident">RUST_LOG</span><span class="op">=</span><span class="ident">error</span>,<span class="ident">foo</span>::<span class="ident">bar</span><span class="op">=</span><span class="ident">debug</span>,<span class="ident">baz</span><span class="op">=</span><span class="ident">info</span> <span class="ident">cargo</span> <span class="ident">run</span> <span class="op">-</span><span class="op">-</span><span class="ident">bin</span> <span class="ident">game</span></pre></div>
<p>For some special cases, you might want to use regex matching by specifying a pattern with the
&quot;/&quot;:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="ident">RUST_LOG</span><span class="op">=</span><span class="string">&quot;fast_paths=debug/contracted node [0-9]+0000 &quot;</span> <span class="ident">mike</span> <span class="ident">import_la</span></pre></div>
<h2 id="on-web-uses-console_log" class="section-header"><a href="#on-web-uses-console_log">On web: uses console_log</a></h2></div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "abstutil";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>

View File

@ -1,5 +1,6 @@
<!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 `logger` mod in crate `abstutil`."><meta name="keywords" content="rust, rustlang, rust-lang, logger"><title>abstutil::logger - 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="icon" type="image/svg+xml" href="../../favicon.svg">
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><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='../../abstutil/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class='location'>Module logger</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#structs">Structs</a></li></ul></div><p class='location'><a href='../index.html'>abstutil</a></p><script>window.sidebarCurrent = {name: 'logger', 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/abstutil/logger.rs.html#1-74' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../index.html'>abstutil</a>::<wbr><a class="mod" href=''>logger</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.Logger.html" title='abstutil::logger::Logger struct'>Logger</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 = "abstutil";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><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='../../abstutil/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class='location'>Module logger</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#functions">Functions</a></li></ul></div><p class='location'><a href='../index.html'>abstutil</a></p><script>window.sidebarCurrent = {name: 'logger', 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/abstutil/logger.rs.html#1-39' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../index.html'>abstutil</a>::<wbr><a class="mod" href=''>logger</a></span></h1><h2 id='functions' class='section-header'><a href="#functions">Functions</a></h2>
<table><tr class='module-item'><td><a class="fn" href="fn.setup.html" title='abstutil::logger::setup fn'>setup</a></td><td class='docblock-short'><p>On native: uses env_log</p>
</td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "abstutil";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>

View File

@ -1 +1 @@
initSidebarItems({"struct":[["Logger",""]]});
initSidebarItems({"fn":[["setup","On native: uses env_logYou can adjust the log level without recompiling with the RUST_LOG env variable."]]});

View File

@ -1,23 +0,0 @@
<!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 `Logger` struct in crate `abstutil`."><meta name="keywords" content="rust, rustlang, rust-lang, Logger"><title>abstutil::logger::Logger - 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="icon" type="image/svg+xml" href="../../favicon.svg">
<link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
<link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc struct"><!--[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='../../abstutil/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class='location'>Struct Logger</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#fields">Fields</a><div class="sidebar-links"><a href="#structfield.last_fast_paths_note">last_fast_paths_note</a></div><a class="sidebar-title" href="#implementations">Methods</a><div class="sidebar-links"><a href="#method.setup">setup</a></div><a class="sidebar-title" href="#trait-implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-Log">Log</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><a class="sidebar-title" href="#blanket-implementations">Blanket Implementations</a><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a></div></div><p class='location'><a href='../index.html'>abstutil</a>::<wbr><a href='index.html'>logger</a></p><script>window.sidebarCurrent = {name: 'Logger', ty: 'struct', 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/abstutil/logger.rs.html#7-9' title='goto source code'>[src]</a></span><span class='in-band'>Struct <a href='../index.html'>abstutil</a>::<wbr><a href='index.html'>logger</a>::<wbr><a class="struct" href=''>Logger</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class='rust struct'>pub struct Logger {
last_fast_paths_note: <a class="struct" href="https://doc.rust-lang.org/nightly/std/sync/rwlock/struct.RwLock.html" title="struct std::sync::rwlock::RwLock">RwLock</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Instant&gt;&gt;,
}</pre></div><h2 id='fields' class='fields small-section-header'>
Fields<a href='#fields' class='anchor'></a></h2><span id="structfield.last_fast_paths_note" class="structfield small-section-header"><a href="#structfield.last_fast_paths_note" class="anchor field"></a><code>last_fast_paths_note: <a class="struct" href="https://doc.rust-lang.org/nightly/std/sync/rwlock/struct.RwLock.html" title="struct std::sync::rwlock::RwLock">RwLock</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Instant&gt;&gt;</code></span><h2 id='implementations' class='small-section-header'>Implementations<a href='#implementations' class='anchor'></a></h2><h3 id='impl' class='impl'><code class='in-band'>impl <a class="struct" href="../../abstutil/struct.Logger.html" title="struct abstutil::Logger">Logger</a></code><a href='#impl' class='anchor'></a><a class='srclink' href='../../src/abstutil/logger.rs.html#11-31' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.setup' class="method"><code>pub fn <a href='#method.setup' class='fnname'>setup</a>()</code><a class='srclink' href='../../src/abstutil/logger.rs.html#16-30' title='goto source code'>[src]</a></h4><div class='docblock'><p>On native: intercept messages using the <code>log</code> crate and print them to STDOUT. Contains
special handling to filter/throttle spammy messages from <code>fast_paths</code> and <code>hyper</code>.</p>
<p>On web: Just use console_log.</p>
</div></div><h2 id='trait-implementations' class='small-section-header'>Trait Implementations<a href='#trait-implementations' class='anchor'></a></h2><div id='trait-implementations-list'><h3 id='impl-Log' class='impl'><code class='in-band'>impl <a class="trait" href="https://docs.rs/log/0.4.11/log/trait.Log.html" title="trait log::Log">Log</a> for <a class="struct" href="../../abstutil/struct.Logger.html" title="struct abstutil::Logger">Logger</a></code><a href='#impl-Log' class='anchor'></a><a class='srclink' href='../../src/abstutil/logger.rs.html#33-74' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.enabled' class="method hidden"><code>fn <a href='https://docs.rs/log/0.4.11/log/trait.Log.html#tymethod.enabled' class='fnname'>enabled</a>(&amp;self, _: &amp;<a class="struct" href="https://docs.rs/log/0.4.11/log/struct.Metadata.html" title="struct log::Metadata">Metadata</a>&lt;'_&gt;) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class='srclink' href='../../src/abstutil/logger.rs.html#34-36' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Determines if a log message with the specified metadata would be
logged. <a href="https://docs.rs/log/0.4.11/log/trait.Log.html#tymethod.enabled">Read more</a></p>
</div><h4 id='method.log' class="method hidden"><code>fn <a href='https://docs.rs/log/0.4.11/log/trait.Log.html#tymethod.log' class='fnname'>log</a>(&amp;self, record: &amp;<a class="struct" href="https://docs.rs/log/0.4.11/log/struct.Record.html" title="struct log::Record">Record</a>&lt;'_&gt;)</code><a class='srclink' href='../../src/abstutil/logger.rs.html#38-71' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Logs the <code>Record</code>. <a href="https://docs.rs/log/0.4.11/log/trait.Log.html#tymethod.log">Read more</a></p>
</div><h4 id='method.flush' class="method hidden"><code>fn <a href='https://docs.rs/log/0.4.11/log/trait.Log.html#tymethod.flush' class='fnname'>flush</a>(&amp;self)</code><a class='srclink' href='../../src/abstutil/logger.rs.html#73' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Flushes any buffered records.</p>
</div></div></div><h2 id='synthetic-implementations' class='small-section-header'>Auto Trait Implementations<a href='#synthetic-implementations' class='anchor'></a></h2><div id='synthetic-implementations-list'><h3 id='impl-RefUnwindSafe' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="../../abstutil/struct.Logger.html" title="struct abstutil::Logger">Logger</a></code><a href='#impl-RefUnwindSafe' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Send' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="../../abstutil/struct.Logger.html" title="struct abstutil::Logger">Logger</a></code><a href='#impl-Send' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Sync' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="../../abstutil/struct.Logger.html" title="struct abstutil::Logger">Logger</a></code><a href='#impl-Sync' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Unpin' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="../../abstutil/struct.Logger.html" title="struct abstutil::Logger">Logger</a></code><a href='#impl-Unpin' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-UnwindSafe' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a> for <a class="struct" href="../../abstutil/struct.Logger.html" title="struct abstutil::Logger">Logger</a></code><a href='#impl-UnwindSafe' class='anchor'></a></h3><div class='impl-items'></div></div><h2 id='blanket-implementations' class='small-section-header'>Blanket Implementations<a href='#blanket-implementations' class='anchor'></a></h2><div id='blanket-implementations-list'><h3 id='impl-Any' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href='#impl-Any' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/any.rs.html#108-112' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.type_id' class="method hidden"><code>fn <a href='https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id' class='fnname'>type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/any.rs.html#109-111' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></div><h3 id='impl-Borrow%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href='#impl-Borrow%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210-214' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.borrow' class="method hidden"><code>fn <a href='https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow' class='fnname'>borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211-213' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></div><h3 id='impl-BorrowMut%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href='#impl-BorrowMut%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217-221' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.borrow_mut' class="method hidden"><code>fn <a href='https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut' class='fnname'>borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#218-220' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
</div></div><h3 id='impl-From%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</code><a href='#impl-From%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#551-555' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from' class="method hidden"><code>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from' class='fnname'>from</a>(t: T) -&gt; T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#552-554' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-Into%3CU%3E' class='impl'><code class='in-band'>impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,&nbsp;</span></code><a href='#impl-Into%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#540-547' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.into' class="method hidden"><code>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into' class='fnname'>into</a>(self) -&gt; U</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#544-546' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-TryFrom%3CU%3E' class='impl'><code class='in-band'>impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,&nbsp;</span></code><a href='#impl-TryFrom%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#588-597' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Error' class="type"><code>type <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error' class="type">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></code></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4 id='method.try_from' class="method hidden"><code>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from' class='fnname'>try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#594-596' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-TryInto%3CU%3E' class='impl'><code class='in-band'>impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,&nbsp;</span></code><a href='#impl-TryInto%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#574-583' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Error-1' class="type"><code>type <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error' class="type">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="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><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4 id='method.try_into' class="method hidden"><code>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into' class='fnname'>try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#580-582' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div></div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "abstutil";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>

View File

@ -1 +1 @@
initSidebarItems({"constant":[["PROGRESS_FREQUENCY_SECONDS",""]],"enum":[["Parallelism",""]],"fn":[["basename",""],["clamp",""],["clear_current_line",""],["contains_duplicates",""],["delete_file","Idempotent"],["deserialize_btreemap","Deserializes a BTreeMap from a list of tuples. Necessary when the keys are structs; see https://github.com/serde-rs/json/issues/402."],["deserialize_hashmap","Deserializes a HashMap from a list of tuples."],["deserialize_multimap","Deserializes a MultiMap."],["deserialize_usize","Deserializes a `usize` from a `u32`."],["elapsed_seconds",""],["file_exists",""],["find_next_file",""],["find_prev_file","Keeps file extensions"],["from_binary","Deserializes an object from the bincode format."],["from_binary_reader","Deserializes an object from the bincode format, from a reader."],["from_json","Deserializes an object from a JSON string."],["from_json_reader","Deserializes an object from JSON, from a reader."],["list_all_objects","Just list all things from a directory, return sorted by name, with file extension removed."],["list_dir","Returns full paths"],["load_all_objects","Load all serialized things from a directory, return sorted by name, with file extension removed. Detects JSON or binary. Filters out broken files."],["maybe_read_binary",""],["maybe_read_json",""],["must_read_object","May be a JSON or binary file. Panics on failure."],["must_run_cmd","Runs a command, asserts success. STDOUT and STDERR aren't touched."],["parent_path",""],["parse_scenario_path","Extract the map and scenario name from a path. Crashes if the input is strange."],["path",""],["path_all_edits",""],["path_all_saves",""],["path_all_scenarios",""],["path_camera_state",""],["path_edits",""],["path_player",""],["path_popdat",""],["path_prebaked_results",""],["path_raw_map",""],["path_save",""],["path_scenario",""],["plain_list_names",""],["prettyprint_time",""],["prettyprint_usize",""],["read_binary",""],["read_json",""],["read_object","May be a JSON or binary file"],["retain_btreemap",""],["retain_btreeset",""],["serialize_btreemap","Serializes a BTreeMap as a list of tuples. Necessary when the keys are structs; see https://github.com/serde-rs/json/issues/402."],["serialize_hashmap","Serializes a HashMap as a list of tuples, first sorting by the keys. This ensures the serialized form is deterministic."],["serialize_multimap","Serializes a MultiMap."],["serialize_usize","Serializes a `usize` as a `u32` to save space. Useful when you need `usize` for indexing, but the values don't exceed 2^32."],["serialized_size_bytes","The number of bytes for an object serialized to bincode."],["slurp_file",""],["to_json","Stringifies an object to nicely formatted JSON."],["to_json_terse","Stringifies an object to terse JSON."],["wraparound_get",""],["write_binary",""],["write_json",""]],"mod":[["abst_data",""],["abst_paths","Generate paths for different A/B Street files"],["cli",""],["collections",""],["io",""],["io_native","Normal file IO using the filesystem"],["logger",""],["process",""],["serde",""],["time",""],["utils",""]],"struct":[["CmdArgs","Yet another barebones command-line flag parsing library."],["Counter",""],["DataPacks","Player-chosen groups of files to opt into downloading"],["Entry","A single file"],["FileWithProgress",""],["FixedMap","A drop-in replacement for `BTreeMap`, where the keys have the property of being array indices. Some values may be missing. Much more efficient at operations on individual objects, because it just becomes a simple array lookup."],["Logger",""],["Manifest","A list of all canonical data files for A/B Street that're uploaded somewhere. The file formats are tied to the latest version of the git repo. Players use the updater crate to sync these files with local copies."],["MapName","A single map is identified using this. Using a struct makes refactoring later easier, to organize cities hierarchially."],["MultiMap",""],["Tags","Convenience functions around a string->string map"],["Timer","Hierarchial magic"],["VecMap","Use when your key is just PartialEq, not Ord or Hash."]],"trait":[["IndexableKey","Use with `FixedMap`. From a particular key, extract a `usize`. These values should be roughly contiguous; the space used by the `FixedMap` will be `O(n)` with respect to the largest value returned here."],["TimerSink",""]]});
initSidebarItems({"constant":[["PROGRESS_FREQUENCY_SECONDS",""]],"enum":[["Parallelism",""]],"fn":[["basename",""],["clamp",""],["clear_current_line",""],["contains_duplicates",""],["delete_file","Idempotent"],["deserialize_btreemap","Deserializes a BTreeMap from a list of tuples. Necessary when the keys are structs; see https://github.com/serde-rs/json/issues/402."],["deserialize_hashmap","Deserializes a HashMap from a list of tuples."],["deserialize_multimap","Deserializes a MultiMap."],["deserialize_usize","Deserializes a `usize` from a `u32`."],["elapsed_seconds",""],["file_exists",""],["find_next_file",""],["find_prev_file","Keeps file extensions"],["from_binary","Deserializes an object from the bincode format."],["from_binary_reader","Deserializes an object from the bincode format, from a reader."],["from_json","Deserializes an object from a JSON string."],["from_json_reader","Deserializes an object from JSON, from a reader."],["list_all_objects","Just list all things from a directory, return sorted by name, with file extension removed."],["list_dir","Returns full paths"],["load_all_objects","Load all serialized things from a directory, return sorted by name, with file extension removed. Detects JSON or binary. Filters out broken files."],["maybe_read_binary",""],["maybe_read_json",""],["must_read_object","May be a JSON or binary file. Panics on failure."],["must_run_cmd","Runs a command, asserts success. STDOUT and STDERR aren't touched."],["parent_path",""],["parse_scenario_path","Extract the map and scenario name from a path. Crashes if the input is strange."],["path",""],["path_all_edits",""],["path_all_saves",""],["path_all_scenarios",""],["path_camera_state",""],["path_edits",""],["path_player",""],["path_popdat",""],["path_prebaked_results",""],["path_raw_map",""],["path_save",""],["path_scenario",""],["plain_list_names",""],["prettyprint_time",""],["prettyprint_usize",""],["read_binary",""],["read_json",""],["read_object","May be a JSON or binary file"],["retain_btreemap",""],["retain_btreeset",""],["serialize_btreemap","Serializes a BTreeMap as a list of tuples. Necessary when the keys are structs; see https://github.com/serde-rs/json/issues/402."],["serialize_hashmap","Serializes a HashMap as a list of tuples, first sorting by the keys. This ensures the serialized form is deterministic."],["serialize_multimap","Serializes a MultiMap."],["serialize_usize","Serializes a `usize` as a `u32` to save space. Useful when you need `usize` for indexing, but the values don't exceed 2^32."],["serialized_size_bytes","The number of bytes for an object serialized to bincode."],["setup","On native: uses env_logYou can adjust the log level without recompiling with the RUST_LOG env variable."],["slurp_file",""],["to_json","Stringifies an object to nicely formatted JSON."],["to_json_terse","Stringifies an object to terse JSON."],["wraparound_get",""],["write_binary",""],["write_json",""]],"mod":[["abst_data",""],["abst_paths","Generate paths for different A/B Street files"],["cli",""],["collections",""],["io",""],["io_native","Normal file IO using the filesystem"],["logger",""],["process",""],["serde",""],["time",""],["utils",""]],"struct":[["CmdArgs","Yet another barebones command-line flag parsing library."],["Counter",""],["DataPacks","Player-chosen groups of files to opt into downloading"],["Entry","A single file"],["FileWithProgress",""],["FixedMap","A drop-in replacement for `BTreeMap`, where the keys have the property of being array indices. Some values may be missing. Much more efficient at operations on individual objects, because it just becomes a simple array lookup."],["Manifest","A list of all canonical data files for A/B Street that're uploaded somewhere. The file formats are tied to the latest version of the git repo. Players use the updater crate to sync these files with local copies."],["MapName","A single map is identified using this. Using a struct makes refactoring later easier, to organize cities hierarchially."],["MultiMap",""],["Tags","Convenience functions around a string->string map"],["Timer","Hierarchial magic"],["VecMap","Use when your key is just PartialEq, not Ord or Hash."]],"trait":[["IndexableKey","Use with `FixedMap`. From a particular key, extract a `usize`. These values should be roughly contiguous; the space used by the `FixedMap` will be `O(n)` with respect to the largest value returned here."],["TimerSink",""]]});

View File

@ -1,23 +0,0 @@
<!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 `Logger` struct in crate `abstutil`."><meta name="keywords" content="rust, rustlang, rust-lang, Logger"><title>abstutil::Logger - 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="icon" type="image/svg+xml" href="../favicon.svg">
<link rel="alternate icon" type="image/png" href="../favicon-16x16.png">
<link rel="alternate icon" type="image/png" href="../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc struct"><!--[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='../abstutil/index.html'><div class='logo-container rust-logo'><img src='../rust-logo.png' alt='logo'></div></a><p class='location'>Struct Logger</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#fields">Fields</a><div class="sidebar-links"><a href="#structfield.last_fast_paths_note">last_fast_paths_note</a></div><a class="sidebar-title" href="#implementations">Methods</a><div class="sidebar-links"><a href="#method.setup">setup</a></div><a class="sidebar-title" href="#trait-implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-Log">Log</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><a class="sidebar-title" href="#blanket-implementations">Blanket Implementations</a><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a></div></div><p class='location'><a href='index.html'>abstutil</a></p><script>window.sidebarCurrent = {name: 'Logger', ty: 'struct', 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/abstutil/logger.rs.html#7-9' title='goto source code'>[src]</a></span><span class='in-band'>Struct <a href='index.html'>abstutil</a>::<wbr><a class="struct" href=''>Logger</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class='rust struct'>pub struct Logger {
last_fast_paths_note: <a class="struct" href="https://doc.rust-lang.org/nightly/std/sync/rwlock/struct.RwLock.html" title="struct std::sync::rwlock::RwLock">RwLock</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Instant&gt;&gt;,
}</pre></div><h2 id='fields' class='fields small-section-header'>
Fields<a href='#fields' class='anchor'></a></h2><span id="structfield.last_fast_paths_note" class="structfield small-section-header"><a href="#structfield.last_fast_paths_note" class="anchor field"></a><code>last_fast_paths_note: <a class="struct" href="https://doc.rust-lang.org/nightly/std/sync/rwlock/struct.RwLock.html" title="struct std::sync::rwlock::RwLock">RwLock</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Instant&gt;&gt;</code></span><h2 id='implementations' class='small-section-header'>Implementations<a href='#implementations' class='anchor'></a></h2><h3 id='impl' class='impl'><code class='in-band'>impl <a class="struct" href="../abstutil/struct.Logger.html" title="struct abstutil::Logger">Logger</a></code><a href='#impl' class='anchor'></a><a class='srclink' href='../src/abstutil/logger.rs.html#11-31' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.setup' class="method"><code>pub fn <a href='#method.setup' class='fnname'>setup</a>()</code><a class='srclink' href='../src/abstutil/logger.rs.html#16-30' title='goto source code'>[src]</a></h4><div class='docblock'><p>On native: intercept messages using the <code>log</code> crate and print them to STDOUT. Contains
special handling to filter/throttle spammy messages from <code>fast_paths</code> and <code>hyper</code>.</p>
<p>On web: Just use console_log.</p>
</div></div><h2 id='trait-implementations' class='small-section-header'>Trait Implementations<a href='#trait-implementations' class='anchor'></a></h2><div id='trait-implementations-list'><h3 id='impl-Log' class='impl'><code class='in-band'>impl <a class="trait" href="https://docs.rs/log/0.4.11/log/trait.Log.html" title="trait log::Log">Log</a> for <a class="struct" href="../abstutil/struct.Logger.html" title="struct abstutil::Logger">Logger</a></code><a href='#impl-Log' class='anchor'></a><a class='srclink' href='../src/abstutil/logger.rs.html#33-74' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.enabled' class="method hidden"><code>fn <a href='https://docs.rs/log/0.4.11/log/trait.Log.html#tymethod.enabled' class='fnname'>enabled</a>(&amp;self, _: &amp;<a class="struct" href="https://docs.rs/log/0.4.11/log/struct.Metadata.html" title="struct log::Metadata">Metadata</a>&lt;'_&gt;) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class='srclink' href='../src/abstutil/logger.rs.html#34-36' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Determines if a log message with the specified metadata would be
logged. <a href="https://docs.rs/log/0.4.11/log/trait.Log.html#tymethod.enabled">Read more</a></p>
</div><h4 id='method.log' class="method hidden"><code>fn <a href='https://docs.rs/log/0.4.11/log/trait.Log.html#tymethod.log' class='fnname'>log</a>(&amp;self, record: &amp;<a class="struct" href="https://docs.rs/log/0.4.11/log/struct.Record.html" title="struct log::Record">Record</a>&lt;'_&gt;)</code><a class='srclink' href='../src/abstutil/logger.rs.html#38-71' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Logs the <code>Record</code>. <a href="https://docs.rs/log/0.4.11/log/trait.Log.html#tymethod.log">Read more</a></p>
</div><h4 id='method.flush' class="method hidden"><code>fn <a href='https://docs.rs/log/0.4.11/log/trait.Log.html#tymethod.flush' class='fnname'>flush</a>(&amp;self)</code><a class='srclink' href='../src/abstutil/logger.rs.html#73' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Flushes any buffered records.</p>
</div></div></div><h2 id='synthetic-implementations' class='small-section-header'>Auto Trait Implementations<a href='#synthetic-implementations' class='anchor'></a></h2><div id='synthetic-implementations-list'><h3 id='impl-RefUnwindSafe' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="../abstutil/struct.Logger.html" title="struct abstutil::Logger">Logger</a></code><a href='#impl-RefUnwindSafe' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Send' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="../abstutil/struct.Logger.html" title="struct abstutil::Logger">Logger</a></code><a href='#impl-Send' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Sync' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="../abstutil/struct.Logger.html" title="struct abstutil::Logger">Logger</a></code><a href='#impl-Sync' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Unpin' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="../abstutil/struct.Logger.html" title="struct abstutil::Logger">Logger</a></code><a href='#impl-Unpin' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-UnwindSafe' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a> for <a class="struct" href="../abstutil/struct.Logger.html" title="struct abstutil::Logger">Logger</a></code><a href='#impl-UnwindSafe' class='anchor'></a></h3><div class='impl-items'></div></div><h2 id='blanket-implementations' class='small-section-header'>Blanket Implementations<a href='#blanket-implementations' class='anchor'></a></h2><div id='blanket-implementations-list'><h3 id='impl-Any' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href='#impl-Any' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/any.rs.html#108-112' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.type_id' class="method hidden"><code>fn <a href='https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id' class='fnname'>type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/any.rs.html#109-111' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></div><h3 id='impl-Borrow%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href='#impl-Borrow%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#210-214' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.borrow' class="method hidden"><code>fn <a href='https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow' class='fnname'>borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211-213' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></div><h3 id='impl-BorrowMut%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href='#impl-BorrowMut%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217-221' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.borrow_mut' class="method hidden"><code>fn <a href='https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut' class='fnname'>borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#218-220' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
</div></div><h3 id='impl-From%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</code><a href='#impl-From%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#551-555' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from' class="method hidden"><code>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from' class='fnname'>from</a>(t: T) -&gt; T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#552-554' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-Into%3CU%3E' class='impl'><code class='in-band'>impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,&nbsp;</span></code><a href='#impl-Into%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#540-547' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.into' class="method hidden"><code>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into' class='fnname'>into</a>(self) -&gt; U</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#544-546' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-TryFrom%3CU%3E' class='impl'><code class='in-band'>impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,&nbsp;</span></code><a href='#impl-TryFrom%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#588-597' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Error' class="type"><code>type <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error' class="type">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></code></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4 id='method.try_from' class="method hidden"><code>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from' class='fnname'>try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#594-596' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-TryInto%3CU%3E' class='impl'><code class='in-band'>impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,&nbsp;</span></code><a href='#impl-TryInto%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#574-583' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Error-1' class="type"><code>type <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error' class="type">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="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><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4 id='method.try_into' class="method hidden"><code>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into' class='fnname'>try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#580-582' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div></div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "abstutil";</script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>

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 `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="icon" type="image/svg+xml" href="../../../favicon.svg">
<link rel="alternate icon" type="image/png" href="../../../favicon-16x16.png">
<link rel="alternate icon" type="image/png" href="../../../favicon-32x32.png"><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-f38555f90777146b/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;Mon, 07 Dec 2020 20:00:11 +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-f38555f90777146b/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;Mon, 07 Dec 2020 21:12:28 +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>

View File

@ -1,5 +1,5 @@
(function() {var implementors = {};
implementors["abstutil"] = [{"text":"impl Freeze for FileWithProgress","synthetic":true,"types":[]},{"text":"impl Freeze for Manifest","synthetic":true,"types":[]},{"text":"impl Freeze for Entry","synthetic":true,"types":[]},{"text":"impl Freeze for DataPacks","synthetic":true,"types":[]},{"text":"impl Freeze for MapName","synthetic":true,"types":[]},{"text":"impl Freeze for CmdArgs","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Freeze for MultiMap&lt;K, V&gt;","synthetic":true,"types":[]},{"text":"impl&lt;T&gt; Freeze for Counter&lt;T&gt;","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Freeze for VecMap&lt;K, V&gt;","synthetic":true,"types":[]},{"text":"impl Freeze for Tags","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Freeze for FixedMap&lt;K, V&gt;","synthetic":true,"types":[]},{"text":"impl !Freeze for Logger","synthetic":true,"types":[]},{"text":"impl&lt;'a&gt; Freeze for Timer&lt;'a&gt;","synthetic":true,"types":[]},{"text":"impl Freeze for Parallelism","synthetic":true,"types":[]},{"text":"impl Freeze for ROOT_DIR","synthetic":true,"types":[]},{"text":"impl Freeze for ROOT_PLAYER_DIR","synthetic":true,"types":[]},{"text":"impl Freeze for Progress","synthetic":true,"types":[]},{"text":"impl Freeze for TimerSpan","synthetic":true,"types":[]},{"text":"impl Freeze for TimedFileReader","synthetic":true,"types":[]},{"text":"impl Freeze for StackEntry","synthetic":true,"types":[]}];
implementors["abstutil"] = [{"text":"impl Freeze for FileWithProgress","synthetic":true,"types":[]},{"text":"impl Freeze for Manifest","synthetic":true,"types":[]},{"text":"impl Freeze for Entry","synthetic":true,"types":[]},{"text":"impl Freeze for DataPacks","synthetic":true,"types":[]},{"text":"impl Freeze for MapName","synthetic":true,"types":[]},{"text":"impl Freeze for CmdArgs","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Freeze for MultiMap&lt;K, V&gt;","synthetic":true,"types":[]},{"text":"impl&lt;T&gt; Freeze for Counter&lt;T&gt;","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Freeze for VecMap&lt;K, V&gt;","synthetic":true,"types":[]},{"text":"impl Freeze for Tags","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Freeze for FixedMap&lt;K, V&gt;","synthetic":true,"types":[]},{"text":"impl&lt;'a&gt; Freeze for Timer&lt;'a&gt;","synthetic":true,"types":[]},{"text":"impl Freeze for Parallelism","synthetic":true,"types":[]},{"text":"impl Freeze for ROOT_DIR","synthetic":true,"types":[]},{"text":"impl Freeze for ROOT_PLAYER_DIR","synthetic":true,"types":[]},{"text":"impl Freeze for Progress","synthetic":true,"types":[]},{"text":"impl Freeze for TimerSpan","synthetic":true,"types":[]},{"text":"impl Freeze for TimedFileReader","synthetic":true,"types":[]},{"text":"impl Freeze for StackEntry","synthetic":true,"types":[]}];
implementors["collisions"] = [{"text":"impl Freeze for CollisionDataset","synthetic":true,"types":[]},{"text":"impl Freeze for Collision","synthetic":true,"types":[]},{"text":"impl Freeze for Severity","synthetic":true,"types":[]}];
implementors["convert_osm"] = [{"text":"impl Freeze for Options","synthetic":true,"types":[]},{"text":"impl Freeze for OnstreetParking","synthetic":true,"types":[]},{"text":"impl Freeze for PublicOffstreetParking","synthetic":true,"types":[]},{"text":"impl Freeze for PrivateOffstreetParking","synthetic":true,"types":[]},{"text":"impl Freeze for OsmExtract","synthetic":true,"types":[]},{"text":"impl Freeze for Document","synthetic":true,"types":[]},{"text":"impl Freeze for Node","synthetic":true,"types":[]},{"text":"impl Freeze for Way","synthetic":true,"types":[]},{"text":"impl Freeze for Relation","synthetic":true,"types":[]},{"text":"impl Freeze for Elevation","synthetic":true,"types":[]}];
implementors["experiment"] = [{"text":"impl Freeze for Results","synthetic":true,"types":[]},{"text":"impl Freeze for Animator","synthetic":true,"types":[]},{"text":"impl Freeze for Animation","synthetic":true,"types":[]},{"text":"impl Freeze for SnowEffect","synthetic":true,"types":[]},{"text":"impl Freeze for Snowflake","synthetic":true,"types":[]},{"text":"impl Freeze for Effect","synthetic":true,"types":[]},{"text":"impl Freeze for Picker","synthetic":true,"types":[]},{"text":"impl Freeze for Buildings","synthetic":true,"types":[]},{"text":"impl Freeze for BldgState","synthetic":true,"types":[]},{"text":"impl Freeze for InstantController","synthetic":true,"types":[]},{"text":"impl Freeze for Game","synthetic":true,"types":[]},{"text":"impl Freeze for GameState","synthetic":true,"types":[]},{"text":"impl Freeze for EnergylessArrow","synthetic":true,"types":[]},{"text":"impl Freeze for Level","synthetic":true,"types":[]},{"text":"impl Freeze for Player","synthetic":true,"types":[]},{"text":"impl Freeze for BuildingsAlongRoad","synthetic":true,"types":[]},{"text":"impl Freeze for On","synthetic":true,"types":[]},{"text":"impl Freeze for Session","synthetic":true,"types":[]},{"text":"impl Freeze for TitleScreen","synthetic":true,"types":[]},{"text":"impl Freeze for Vehicle","synthetic":true,"types":[]}];

View File

@ -1,5 +1,5 @@
(function() {var implementors = {};
implementors["abstutil"] = [{"text":"impl Send for FileWithProgress","synthetic":true,"types":[]},{"text":"impl Send for Manifest","synthetic":true,"types":[]},{"text":"impl Send for Entry","synthetic":true,"types":[]},{"text":"impl Send for DataPacks","synthetic":true,"types":[]},{"text":"impl Send for MapName","synthetic":true,"types":[]},{"text":"impl Send for CmdArgs","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Send for MultiMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Send,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Send,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;T&gt; Send for Counter&lt;T&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: Send,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Send for VecMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Send,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Send,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl Send for Tags","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Send for FixedMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Send,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Send,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl Send for Logger","synthetic":true,"types":[]},{"text":"impl&lt;'a&gt; !Send for Timer&lt;'a&gt;","synthetic":true,"types":[]},{"text":"impl Send for Parallelism","synthetic":true,"types":[]},{"text":"impl Send for ROOT_DIR","synthetic":true,"types":[]},{"text":"impl Send for ROOT_PLAYER_DIR","synthetic":true,"types":[]},{"text":"impl Send for Progress","synthetic":true,"types":[]},{"text":"impl Send for TimerSpan","synthetic":true,"types":[]},{"text":"impl Send for TimedFileReader","synthetic":true,"types":[]},{"text":"impl Send for StackEntry","synthetic":true,"types":[]}];
implementors["abstutil"] = [{"text":"impl Send for FileWithProgress","synthetic":true,"types":[]},{"text":"impl Send for Manifest","synthetic":true,"types":[]},{"text":"impl Send for Entry","synthetic":true,"types":[]},{"text":"impl Send for DataPacks","synthetic":true,"types":[]},{"text":"impl Send for MapName","synthetic":true,"types":[]},{"text":"impl Send for CmdArgs","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Send for MultiMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Send,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Send,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;T&gt; Send for Counter&lt;T&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: Send,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Send for VecMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Send,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Send,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl Send for Tags","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Send for FixedMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Send,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Send,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;'a&gt; !Send for Timer&lt;'a&gt;","synthetic":true,"types":[]},{"text":"impl Send for Parallelism","synthetic":true,"types":[]},{"text":"impl Send for ROOT_DIR","synthetic":true,"types":[]},{"text":"impl Send for ROOT_PLAYER_DIR","synthetic":true,"types":[]},{"text":"impl Send for Progress","synthetic":true,"types":[]},{"text":"impl Send for TimerSpan","synthetic":true,"types":[]},{"text":"impl Send for TimedFileReader","synthetic":true,"types":[]},{"text":"impl Send for StackEntry","synthetic":true,"types":[]}];
implementors["collisions"] = [{"text":"impl Send for CollisionDataset","synthetic":true,"types":[]},{"text":"impl Send for Collision","synthetic":true,"types":[]},{"text":"impl Send for Severity","synthetic":true,"types":[]}];
implementors["convert_osm"] = [{"text":"impl Send for Options","synthetic":true,"types":[]},{"text":"impl Send for OnstreetParking","synthetic":true,"types":[]},{"text":"impl Send for PublicOffstreetParking","synthetic":true,"types":[]},{"text":"impl Send for PrivateOffstreetParking","synthetic":true,"types":[]},{"text":"impl Send for OsmExtract","synthetic":true,"types":[]},{"text":"impl Send for Document","synthetic":true,"types":[]},{"text":"impl Send for Node","synthetic":true,"types":[]},{"text":"impl Send for Way","synthetic":true,"types":[]},{"text":"impl Send for Relation","synthetic":true,"types":[]},{"text":"impl Send for Elevation","synthetic":true,"types":[]}];
implementors["experiment"] = [{"text":"impl !Send for Results","synthetic":true,"types":[]},{"text":"impl !Send for Animator","synthetic":true,"types":[]},{"text":"impl Send for Animation","synthetic":true,"types":[]},{"text":"impl !Send for SnowEffect","synthetic":true,"types":[]},{"text":"impl Send for Snowflake","synthetic":true,"types":[]},{"text":"impl Send for Effect","synthetic":true,"types":[]},{"text":"impl !Send for Picker","synthetic":true,"types":[]},{"text":"impl !Send for Buildings","synthetic":true,"types":[]},{"text":"impl Send for BldgState","synthetic":true,"types":[]},{"text":"impl Send for InstantController","synthetic":true,"types":[]},{"text":"impl !Send for Game","synthetic":true,"types":[]},{"text":"impl !Send for GameState","synthetic":true,"types":[]},{"text":"impl !Send for EnergylessArrow","synthetic":true,"types":[]},{"text":"impl Send for Level","synthetic":true,"types":[]},{"text":"impl Send for Player","synthetic":true,"types":[]},{"text":"impl Send for BuildingsAlongRoad","synthetic":true,"types":[]},{"text":"impl Send for On","synthetic":true,"types":[]},{"text":"impl Send for Session","synthetic":true,"types":[]},{"text":"impl !Send for TitleScreen","synthetic":true,"types":[]},{"text":"impl Send for Vehicle","synthetic":true,"types":[]}];

View File

@ -1,5 +1,5 @@
(function() {var implementors = {};
implementors["abstutil"] = [{"text":"impl Sync for FileWithProgress","synthetic":true,"types":[]},{"text":"impl Sync for Manifest","synthetic":true,"types":[]},{"text":"impl Sync for Entry","synthetic":true,"types":[]},{"text":"impl Sync for DataPacks","synthetic":true,"types":[]},{"text":"impl Sync for MapName","synthetic":true,"types":[]},{"text":"impl Sync for CmdArgs","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Sync for MultiMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Sync,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Sync,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;T&gt; Sync for Counter&lt;T&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: Sync,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Sync for VecMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Sync,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Sync,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl Sync for Tags","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Sync for FixedMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Sync,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Sync,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl Sync for Logger","synthetic":true,"types":[]},{"text":"impl&lt;'a&gt; !Sync for Timer&lt;'a&gt;","synthetic":true,"types":[]},{"text":"impl Sync for Parallelism","synthetic":true,"types":[]},{"text":"impl Sync for ROOT_DIR","synthetic":true,"types":[]},{"text":"impl Sync for ROOT_PLAYER_DIR","synthetic":true,"types":[]},{"text":"impl Sync for Progress","synthetic":true,"types":[]},{"text":"impl Sync for TimerSpan","synthetic":true,"types":[]},{"text":"impl Sync for TimedFileReader","synthetic":true,"types":[]},{"text":"impl Sync for StackEntry","synthetic":true,"types":[]}];
implementors["abstutil"] = [{"text":"impl Sync for FileWithProgress","synthetic":true,"types":[]},{"text":"impl Sync for Manifest","synthetic":true,"types":[]},{"text":"impl Sync for Entry","synthetic":true,"types":[]},{"text":"impl Sync for DataPacks","synthetic":true,"types":[]},{"text":"impl Sync for MapName","synthetic":true,"types":[]},{"text":"impl Sync for CmdArgs","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Sync for MultiMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Sync,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Sync,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;T&gt; Sync for Counter&lt;T&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: Sync,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Sync for VecMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Sync,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Sync,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl Sync for Tags","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Sync for FixedMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Sync,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Sync,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;'a&gt; !Sync for Timer&lt;'a&gt;","synthetic":true,"types":[]},{"text":"impl Sync for Parallelism","synthetic":true,"types":[]},{"text":"impl Sync for ROOT_DIR","synthetic":true,"types":[]},{"text":"impl Sync for ROOT_PLAYER_DIR","synthetic":true,"types":[]},{"text":"impl Sync for Progress","synthetic":true,"types":[]},{"text":"impl Sync for TimerSpan","synthetic":true,"types":[]},{"text":"impl Sync for TimedFileReader","synthetic":true,"types":[]},{"text":"impl Sync for StackEntry","synthetic":true,"types":[]}];
implementors["collisions"] = [{"text":"impl Sync for CollisionDataset","synthetic":true,"types":[]},{"text":"impl Sync for Collision","synthetic":true,"types":[]},{"text":"impl Sync for Severity","synthetic":true,"types":[]}];
implementors["convert_osm"] = [{"text":"impl Sync for Options","synthetic":true,"types":[]},{"text":"impl Sync for OnstreetParking","synthetic":true,"types":[]},{"text":"impl Sync for PublicOffstreetParking","synthetic":true,"types":[]},{"text":"impl Sync for PrivateOffstreetParking","synthetic":true,"types":[]},{"text":"impl Sync for OsmExtract","synthetic":true,"types":[]},{"text":"impl Sync for Document","synthetic":true,"types":[]},{"text":"impl Sync for Node","synthetic":true,"types":[]},{"text":"impl Sync for Way","synthetic":true,"types":[]},{"text":"impl Sync for Relation","synthetic":true,"types":[]},{"text":"impl Sync for Elevation","synthetic":true,"types":[]}];
implementors["experiment"] = [{"text":"impl !Sync for Results","synthetic":true,"types":[]},{"text":"impl !Sync for Animator","synthetic":true,"types":[]},{"text":"impl Sync for Animation","synthetic":true,"types":[]},{"text":"impl !Sync for SnowEffect","synthetic":true,"types":[]},{"text":"impl Sync for Snowflake","synthetic":true,"types":[]},{"text":"impl Sync for Effect","synthetic":true,"types":[]},{"text":"impl !Sync for Picker","synthetic":true,"types":[]},{"text":"impl !Sync for Buildings","synthetic":true,"types":[]},{"text":"impl Sync for BldgState","synthetic":true,"types":[]},{"text":"impl Sync for InstantController","synthetic":true,"types":[]},{"text":"impl !Sync for Game","synthetic":true,"types":[]},{"text":"impl !Sync for GameState","synthetic":true,"types":[]},{"text":"impl !Sync for EnergylessArrow","synthetic":true,"types":[]},{"text":"impl Sync for Level","synthetic":true,"types":[]},{"text":"impl Sync for Player","synthetic":true,"types":[]},{"text":"impl Sync for BuildingsAlongRoad","synthetic":true,"types":[]},{"text":"impl Sync for On","synthetic":true,"types":[]},{"text":"impl Sync for Session","synthetic":true,"types":[]},{"text":"impl !Sync for TitleScreen","synthetic":true,"types":[]},{"text":"impl Sync for Vehicle","synthetic":true,"types":[]}];

View File

@ -1,5 +1,5 @@
(function() {var implementors = {};
implementors["abstutil"] = [{"text":"impl Unpin for FileWithProgress","synthetic":true,"types":[]},{"text":"impl Unpin for Manifest","synthetic":true,"types":[]},{"text":"impl Unpin for Entry","synthetic":true,"types":[]},{"text":"impl Unpin for DataPacks","synthetic":true,"types":[]},{"text":"impl Unpin for MapName","synthetic":true,"types":[]},{"text":"impl Unpin for CmdArgs","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Unpin for MultiMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Unpin,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Unpin,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;T&gt; Unpin for Counter&lt;T&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: Unpin,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Unpin for VecMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Unpin,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Unpin,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl Unpin for Tags","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Unpin for FixedMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Unpin,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Unpin,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl Unpin for Logger","synthetic":true,"types":[]},{"text":"impl&lt;'a&gt; Unpin for Timer&lt;'a&gt;","synthetic":true,"types":[]},{"text":"impl Unpin for Parallelism","synthetic":true,"types":[]},{"text":"impl Unpin for ROOT_DIR","synthetic":true,"types":[]},{"text":"impl Unpin for ROOT_PLAYER_DIR","synthetic":true,"types":[]},{"text":"impl Unpin for Progress","synthetic":true,"types":[]},{"text":"impl Unpin for TimerSpan","synthetic":true,"types":[]},{"text":"impl Unpin for TimedFileReader","synthetic":true,"types":[]},{"text":"impl Unpin for StackEntry","synthetic":true,"types":[]}];
implementors["abstutil"] = [{"text":"impl Unpin for FileWithProgress","synthetic":true,"types":[]},{"text":"impl Unpin for Manifest","synthetic":true,"types":[]},{"text":"impl Unpin for Entry","synthetic":true,"types":[]},{"text":"impl Unpin for DataPacks","synthetic":true,"types":[]},{"text":"impl Unpin for MapName","synthetic":true,"types":[]},{"text":"impl Unpin for CmdArgs","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Unpin for MultiMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Unpin,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Unpin,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;T&gt; Unpin for Counter&lt;T&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: Unpin,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Unpin for VecMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Unpin,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Unpin,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl Unpin for Tags","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; Unpin for FixedMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: Unpin,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: Unpin,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;'a&gt; Unpin for Timer&lt;'a&gt;","synthetic":true,"types":[]},{"text":"impl Unpin for Parallelism","synthetic":true,"types":[]},{"text":"impl Unpin for ROOT_DIR","synthetic":true,"types":[]},{"text":"impl Unpin for ROOT_PLAYER_DIR","synthetic":true,"types":[]},{"text":"impl Unpin for Progress","synthetic":true,"types":[]},{"text":"impl Unpin for TimerSpan","synthetic":true,"types":[]},{"text":"impl Unpin for TimedFileReader","synthetic":true,"types":[]},{"text":"impl Unpin for StackEntry","synthetic":true,"types":[]}];
implementors["collisions"] = [{"text":"impl Unpin for CollisionDataset","synthetic":true,"types":[]},{"text":"impl Unpin for Collision","synthetic":true,"types":[]},{"text":"impl Unpin for Severity","synthetic":true,"types":[]}];
implementors["convert_osm"] = [{"text":"impl Unpin for Options","synthetic":true,"types":[]},{"text":"impl Unpin for OnstreetParking","synthetic":true,"types":[]},{"text":"impl Unpin for PublicOffstreetParking","synthetic":true,"types":[]},{"text":"impl Unpin for PrivateOffstreetParking","synthetic":true,"types":[]},{"text":"impl Unpin for OsmExtract","synthetic":true,"types":[]},{"text":"impl Unpin for Document","synthetic":true,"types":[]},{"text":"impl Unpin for Node","synthetic":true,"types":[]},{"text":"impl Unpin for Way","synthetic":true,"types":[]},{"text":"impl Unpin for Relation","synthetic":true,"types":[]},{"text":"impl Unpin for Elevation","synthetic":true,"types":[]}];
implementors["experiment"] = [{"text":"impl Unpin for Results","synthetic":true,"types":[]},{"text":"impl Unpin for Animator","synthetic":true,"types":[]},{"text":"impl Unpin for Animation","synthetic":true,"types":[]},{"text":"impl Unpin for SnowEffect","synthetic":true,"types":[]},{"text":"impl Unpin for Snowflake","synthetic":true,"types":[]},{"text":"impl Unpin for Effect","synthetic":true,"types":[]},{"text":"impl Unpin for Picker","synthetic":true,"types":[]},{"text":"impl Unpin for Buildings","synthetic":true,"types":[]},{"text":"impl Unpin for BldgState","synthetic":true,"types":[]},{"text":"impl Unpin for InstantController","synthetic":true,"types":[]},{"text":"impl Unpin for Game","synthetic":true,"types":[]},{"text":"impl Unpin for GameState","synthetic":true,"types":[]},{"text":"impl Unpin for EnergylessArrow","synthetic":true,"types":[]},{"text":"impl Unpin for Level","synthetic":true,"types":[]},{"text":"impl Unpin for Player","synthetic":true,"types":[]},{"text":"impl Unpin for BuildingsAlongRoad","synthetic":true,"types":[]},{"text":"impl Unpin for On","synthetic":true,"types":[]},{"text":"impl Unpin for Session","synthetic":true,"types":[]},{"text":"impl Unpin for TitleScreen","synthetic":true,"types":[]},{"text":"impl Unpin for Vehicle","synthetic":true,"types":[]}];

View File

@ -1,3 +0,0 @@
(function() {var implementors = {};
implementors["abstutil"] = [{"text":"impl Log for Logger","synthetic":false,"types":[]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()

View File

@ -1,5 +1,5 @@
(function() {var implementors = {};
implementors["abstutil"] = [{"text":"impl RefUnwindSafe for FileWithProgress","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Manifest","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Entry","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for DataPacks","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for MapName","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for CmdArgs","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; RefUnwindSafe for MultiMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: RefUnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: RefUnwindSafe,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;T&gt; RefUnwindSafe for Counter&lt;T&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: RefUnwindSafe,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; RefUnwindSafe for VecMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: RefUnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: RefUnwindSafe,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Tags","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; RefUnwindSafe for FixedMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: RefUnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: RefUnwindSafe,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Logger","synthetic":true,"types":[]},{"text":"impl&lt;'a&gt; !RefUnwindSafe for Timer&lt;'a&gt;","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Parallelism","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for ROOT_DIR","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for ROOT_PLAYER_DIR","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Progress","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for TimerSpan","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for TimedFileReader","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for StackEntry","synthetic":true,"types":[]}];
implementors["abstutil"] = [{"text":"impl RefUnwindSafe for FileWithProgress","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Manifest","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Entry","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for DataPacks","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for MapName","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for CmdArgs","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; RefUnwindSafe for MultiMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: RefUnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: RefUnwindSafe,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;T&gt; RefUnwindSafe for Counter&lt;T&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: RefUnwindSafe,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; RefUnwindSafe for VecMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: RefUnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: RefUnwindSafe,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Tags","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; RefUnwindSafe for FixedMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: RefUnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: RefUnwindSafe,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;'a&gt; !RefUnwindSafe for Timer&lt;'a&gt;","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Parallelism","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for ROOT_DIR","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for ROOT_PLAYER_DIR","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Progress","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for TimerSpan","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for TimedFileReader","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for StackEntry","synthetic":true,"types":[]}];
implementors["collisions"] = [{"text":"impl RefUnwindSafe for CollisionDataset","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Collision","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Severity","synthetic":true,"types":[]}];
implementors["convert_osm"] = [{"text":"impl RefUnwindSafe for Options","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for OnstreetParking","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for PublicOffstreetParking","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for PrivateOffstreetParking","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for OsmExtract","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Document","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Node","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Way","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Relation","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Elevation","synthetic":true,"types":[]}];
implementors["experiment"] = [{"text":"impl !RefUnwindSafe for Results","synthetic":true,"types":[]},{"text":"impl !RefUnwindSafe for Animator","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Animation","synthetic":true,"types":[]},{"text":"impl !RefUnwindSafe for SnowEffect","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Snowflake","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Effect","synthetic":true,"types":[]},{"text":"impl !RefUnwindSafe for Picker","synthetic":true,"types":[]},{"text":"impl !RefUnwindSafe for Buildings","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for BldgState","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for InstantController","synthetic":true,"types":[]},{"text":"impl !RefUnwindSafe for Game","synthetic":true,"types":[]},{"text":"impl !RefUnwindSafe for GameState","synthetic":true,"types":[]},{"text":"impl !RefUnwindSafe for EnergylessArrow","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Level","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Player","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for BuildingsAlongRoad","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for On","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Session","synthetic":true,"types":[]},{"text":"impl !RefUnwindSafe for TitleScreen","synthetic":true,"types":[]},{"text":"impl RefUnwindSafe for Vehicle","synthetic":true,"types":[]}];

View File

@ -1,5 +1,5 @@
(function() {var implementors = {};
implementors["abstutil"] = [{"text":"impl UnwindSafe for FileWithProgress","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Manifest","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Entry","synthetic":true,"types":[]},{"text":"impl UnwindSafe for DataPacks","synthetic":true,"types":[]},{"text":"impl UnwindSafe for MapName","synthetic":true,"types":[]},{"text":"impl UnwindSafe for CmdArgs","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; UnwindSafe for MultiMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: RefUnwindSafe + UnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: RefUnwindSafe + UnwindSafe,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;T&gt; UnwindSafe for Counter&lt;T&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: RefUnwindSafe + UnwindSafe,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; UnwindSafe for VecMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: UnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: UnwindSafe,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Tags","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; UnwindSafe for FixedMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: UnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: UnwindSafe,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Logger","synthetic":true,"types":[]},{"text":"impl&lt;'a&gt; !UnwindSafe for Timer&lt;'a&gt;","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Parallelism","synthetic":true,"types":[]},{"text":"impl UnwindSafe for ROOT_DIR","synthetic":true,"types":[]},{"text":"impl UnwindSafe for ROOT_PLAYER_DIR","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Progress","synthetic":true,"types":[]},{"text":"impl UnwindSafe for TimerSpan","synthetic":true,"types":[]},{"text":"impl UnwindSafe for TimedFileReader","synthetic":true,"types":[]},{"text":"impl UnwindSafe for StackEntry","synthetic":true,"types":[]}];
implementors["abstutil"] = [{"text":"impl UnwindSafe for FileWithProgress","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Manifest","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Entry","synthetic":true,"types":[]},{"text":"impl UnwindSafe for DataPacks","synthetic":true,"types":[]},{"text":"impl UnwindSafe for MapName","synthetic":true,"types":[]},{"text":"impl UnwindSafe for CmdArgs","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; UnwindSafe for MultiMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: RefUnwindSafe + UnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: RefUnwindSafe + UnwindSafe,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;T&gt; UnwindSafe for Counter&lt;T&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: RefUnwindSafe + UnwindSafe,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; UnwindSafe for VecMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: UnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: UnwindSafe,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Tags","synthetic":true,"types":[]},{"text":"impl&lt;K, V&gt; UnwindSafe for FixedMap&lt;K, V&gt; <span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;K: UnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;V: UnwindSafe,&nbsp;</span>","synthetic":true,"types":[]},{"text":"impl&lt;'a&gt; !UnwindSafe for Timer&lt;'a&gt;","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Parallelism","synthetic":true,"types":[]},{"text":"impl UnwindSafe for ROOT_DIR","synthetic":true,"types":[]},{"text":"impl UnwindSafe for ROOT_PLAYER_DIR","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Progress","synthetic":true,"types":[]},{"text":"impl UnwindSafe for TimerSpan","synthetic":true,"types":[]},{"text":"impl UnwindSafe for TimedFileReader","synthetic":true,"types":[]},{"text":"impl UnwindSafe for StackEntry","synthetic":true,"types":[]}];
implementors["collisions"] = [{"text":"impl UnwindSafe for CollisionDataset","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Collision","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Severity","synthetic":true,"types":[]}];
implementors["convert_osm"] = [{"text":"impl UnwindSafe for Options","synthetic":true,"types":[]},{"text":"impl UnwindSafe for OnstreetParking","synthetic":true,"types":[]},{"text":"impl UnwindSafe for PublicOffstreetParking","synthetic":true,"types":[]},{"text":"impl UnwindSafe for PrivateOffstreetParking","synthetic":true,"types":[]},{"text":"impl UnwindSafe for OsmExtract","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Document","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Node","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Way","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Relation","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Elevation","synthetic":true,"types":[]}];
implementors["experiment"] = [{"text":"impl !UnwindSafe for Results","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Animator","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Animation","synthetic":true,"types":[]},{"text":"impl UnwindSafe for SnowEffect","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Snowflake","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Effect","synthetic":true,"types":[]},{"text":"impl !UnwindSafe for Picker","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Buildings","synthetic":true,"types":[]},{"text":"impl UnwindSafe for BldgState","synthetic":true,"types":[]},{"text":"impl UnwindSafe for InstantController","synthetic":true,"types":[]},{"text":"impl !UnwindSafe for Game","synthetic":true,"types":[]},{"text":"impl UnwindSafe for GameState","synthetic":true,"types":[]},{"text":"impl UnwindSafe for EnergylessArrow","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Level","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Player","synthetic":true,"types":[]},{"text":"impl UnwindSafe for BuildingsAlongRoad","synthetic":true,"types":[]},{"text":"impl UnwindSafe for On","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Session","synthetic":true,"types":[]},{"text":"impl !UnwindSafe for TitleScreen","synthetic":true,"types":[]},{"text":"impl UnwindSafe for Vehicle","synthetic":true,"types":[]}];

File diff suppressed because one or more lines are too long

View File

@ -149,7 +149,7 @@
<span class="doccomment">/// Calling this has the side-effect of initializing logging on both native and web. This</span>
<span class="doccomment">/// should probably be done independently, but for the moment, every app wants both.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>() <span class="op">-</span><span class="op">&gt;</span> <span class="ident">CmdArgs</span> {
<span class="kw">crate</span>::<span class="ident">Logger</span>::<span class="ident">setup</span>();
<span class="kw">crate</span>::<span class="ident">logger</span>::<span class="ident">setup</span>();
<span class="kw">if</span> <span class="macro">cfg</span><span class="macro">!</span>(<span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;wasm32&quot;</span>) {
<span class="ident">CmdArgs</span>::<span class="ident">from_args</span>(<span class="ident">Vec</span>::<span class="ident">new</span>())

View File

@ -40,115 +40,45 @@
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
<span id="53">53</span>
<span id="54">54</span>
<span id="55">55</span>
<span id="56">56</span>
<span id="57">57</span>
<span id="58">58</span>
<span id="59">59</span>
<span id="60">60</span>
<span id="61">61</span>
<span id="62">62</span>
<span id="63">63</span>
<span id="64">64</span>
<span id="65">65</span>
<span id="66">66</span>
<span id="67">67</span>
<span id="68">68</span>
<span id="69">69</span>
<span id="70">70</span>
<span id="71">71</span>
<span id="72">72</span>
<span id="73">73</span>
<span id="74">74</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">sync</span>::<span class="ident">RwLock</span>;
<span class="kw">use</span> <span class="ident">instant</span>::<span class="ident">Instant</span>;
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">elapsed_seconds</span>;
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Logger</span> {
<span class="ident">last_fast_paths_note</span>: <span class="ident">RwLock</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Instant</span><span class="op">&gt;</span><span class="op">&gt;</span>,
}
<span class="kw">impl</span> <span class="ident">Logger</span> {
<span class="doccomment">/// On native: intercept messages using the `log` crate and print them to STDOUT. Contains</span>
<span class="doccomment">/// special handling to filter/throttle spammy messages from `fast_paths` and `hyper`.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// On web: Just use console_log.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">setup</span>() {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;wasm32&quot;</span>)]</span>
{
<span class="ident">console_log</span>::<span class="ident">init_with_level</span>(<span class="ident">log</span>::<span class="ident">Level</span>::<span class="ident">Info</span>).<span class="ident">unwrap</span>();
}
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;wasm32&quot;</span>))]</span>
{
<span class="ident">log</span>::<span class="ident">set_boxed_logger</span>(<span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">Logger</span> {
<span class="ident">last_fast_paths_note</span>: <span class="ident">RwLock</span>::<span class="ident">new</span>(<span class="prelude-val">None</span>),
}))
.<span class="ident">unwrap</span>();
<span class="ident">log</span>::<span class="ident">set_max_level</span>(<span class="ident">log</span>::<span class="ident">LevelFilter</span>::<span class="ident">Info</span>);
}
}
}
<span class="kw">impl</span> <span class="ident">log</span>::<span class="ident">Log</span> <span class="kw">for</span> <span class="ident">Logger</span> {
<span class="kw">fn</span> <span class="ident">enabled</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="kw">_</span>: <span class="kw-2">&amp;</span><span class="ident">log</span>::<span class="ident">Metadata</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">bool</span> {
<span class="bool-val">true</span>
<span class="doccomment">/// ## On native: uses env_log</span>
<span class="doccomment">///</span>
<span class="doccomment">/// You can adjust the log level without recompiling with the RUST_LOG env variable.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// RUST_LOG=debug cargo run --bin game</span>
<span class="doccomment">///</span>
<span class="doccomment">/// This can be done on a per lib basis:</span>
<span class="doccomment">///</span>
<span class="doccomment">/// RUST_LOG=my_lib=debug cargo run --bin game</span>
<span class="doccomment">///</span>
<span class="doccomment">/// Or a module-by-module basis:</span>
<span class="doccomment">///</span>
<span class="doccomment">/// RUST_LOG=my_lib::module=debug cargo run --bin game</span>
<span class="doccomment">///</span>
<span class="doccomment">/// You can mix and match:</span>
<span class="doccomment">///</span>
<span class="doccomment">/// # error logging by default, except the foo:bar module at debug level</span>
<span class="doccomment">/// # and the entire baz crate at info level</span>
<span class="doccomment">/// RUST_LOG=error,foo::bar=debug,baz=info cargo run --bin game</span>
<span class="doccomment">///</span>
<span class="doccomment">/// For some special cases, you might want to use regex matching by specifying a pattern with the</span>
<span class="doccomment">/// &quot;/&quot;:</span>
<span class="doccomment">///</span>
<span class="doccomment">/// # only log once every 10k</span>
<span class="doccomment">/// RUST_LOG=&quot;fast_paths=debug/contracted node [0-9]+0000 &quot; mike import_la</span>
<span class="doccomment">///</span>
<span class="doccomment">/// ## On web: uses console_log</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">setup</span>() {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;wasm32&quot;</span>)]</span>
{
<span class="ident">console_log</span>::<span class="ident">init_with_level</span>(<span class="ident">log</span>::<span class="ident">Level</span>::<span class="ident">Info</span>).<span class="ident">unwrap</span>();
}
<span class="kw">fn</span> <span class="ident">log</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">record</span>: <span class="kw-2">&amp;</span><span class="ident">log</span>::<span class="ident">Record</span>) {
<span class="kw">let</span> <span class="ident">target</span> <span class="op">=</span> <span class="kw">if</span> <span class="ident">record</span>.<span class="ident">target</span>().<span class="ident">len</span>() <span class="op">&gt;</span> <span class="number">0</span> {
<span class="ident">record</span>.<span class="ident">target</span>()
} <span class="kw">else</span> {
<span class="ident">record</span>.<span class="ident">module_path</span>().<span class="ident">unwrap_or_default</span>()
};
<span class="comment">// Throttle these. Only triggered by the importer, by way of map_model</span>
<span class="kw">if</span> <span class="ident">target</span> <span class="op">=</span><span class="op">=</span> <span class="string">&quot;fast_paths::fast_graph_builder&quot;</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">last</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">last_fast_paths_note</span>.<span class="ident">write</span>().<span class="ident">unwrap</span>();
<span class="kw">if</span> <span class="ident">last</span>
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">start</span><span class="op">|</span> <span class="ident">elapsed_seconds</span>(<span class="ident">start</span>) <span class="op">&lt;</span> <span class="number">1.0</span>)
.<span class="ident">unwrap_or</span>(<span class="bool-val">false</span>)
{
<span class="kw">return</span>;
}
<span class="kw-2">*</span><span class="ident">last</span> <span class="op">=</span> <span class="prelude-val">Some</span>(<span class="ident">Instant</span>::<span class="ident">now</span>());
}
<span class="kw">let</span> <span class="ident">contents</span> <span class="op">=</span> <span class="macro">format</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">record</span>.<span class="ident">args</span>());
<span class="comment">// Silence these; they&#39;re expected on any map using simplified Chinese or kanji. Triggered</span>
<span class="comment">// by anything using widgetry.</span>
<span class="kw">if</span> <span class="ident">target</span> <span class="op">=</span><span class="op">=</span> <span class="string">&quot;usvg::convert::text::shaper&quot;</span> <span class="op">&amp;&amp;</span> <span class="ident">contents</span>.<span class="ident">contains</span>(<span class="string">&quot;Fallback&quot;</span>) {
<span class="kw">return</span>;
}
<span class="comment">// Silence byte counts from hyper.</span>
<span class="kw">if</span> <span class="ident">target</span> <span class="op">=</span><span class="op">=</span> <span class="string">&quot;hyper::proto::h1::io&quot;</span> {
<span class="kw">return</span>;
}
<span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;[{}] {}: {}&quot;</span>, <span class="ident">record</span>.<span class="ident">level</span>(), <span class="ident">target</span>, <span class="ident">contents</span>);
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;wasm32&quot;</span>))]</span>
{
<span class="kw">use</span> <span class="ident">env_logger</span>::{<span class="ident">Builder</span>, <span class="ident">Env</span>};
<span class="ident">Builder</span>::<span class="ident">from_env</span>(<span class="ident">Env</span>::<span class="ident">default</span>().<span class="ident">default_filter_or</span>(<span class="string">&quot;info&quot;</span>)).<span class="ident">init</span>();
}
<span class="kw">fn</span> <span class="ident">flush</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) {}
}
</pre></div>
</section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "abstutil";</script><script src="../../main.js"></script><script src="../../source-script.js"></script><script src="../../source-files.js"></script><script defer src="../../search-index.js"></script></body></html>

View File

@ -114,7 +114,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.48.0 (7eac88abb 2020-11-16)&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;Mon, 07 Dec 2020 20:00:11 +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;Mon, 07 Dec 2020 21:12:28 +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>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long