mirror of
https://github.com/a-b-street/abstreet.git
synced 2024-12-24 23:15:24 +03:00
deploy: 29da713903
This commit is contained in:
parent
33d5e241e3
commit
4eafc67da5
File diff suppressed because one or more lines are too long
@ -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 `deserialize_multimap` fn in crate `abstutil`."><meta name="keywords" content="rust, rustlang, rust-lang, deserialize_multimap"><title>abstutil::deserialize_multimap - 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">☰</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: 'deserialize_multimap', 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'>−</span>]</a></span><a class='srclink' href='../src/abstutil/serde.rs.html#113-129' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='index.html'>abstutil</a>::<wbr><a class="fn" href=''>deserialize_multimap</a></span></h1><pre class='rust fn'>pub fn deserialize_multimap<'de, D: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>, K: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, V: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> d: D<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../abstutil/struct.MultiMap.html" title="struct abstutil::MultiMap">MultiMap</a><K, V>, D::<a class="type" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>></pre><div class='docblock'><p>Deserializes a MultiMap.</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'>−</span>]</a></span><a class='srclink' href='../src/abstutil/serde.rs.html#112-128' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='index.html'>abstutil</a>::<wbr><a class="fn" href=''>deserialize_multimap</a></span></h1><pre class='rust fn'>pub fn deserialize_multimap<'de, D: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>, K: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, V: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> d: D<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../abstutil/struct.MultiMap.html" title="struct abstutil::MultiMap">MultiMap</a><K, V>, D::<a class="type" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>></pre><div class='docblock'><p>Deserializes a MultiMap.</p>
|
||||
</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>
|
@ -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 `deserialize_usize` fn in crate `abstutil`."><meta name="keywords" content="rust, rustlang, rust-lang, deserialize_usize"><title>abstutil::deserialize_usize - 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">☰</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: 'deserialize_usize', 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'>−</span>]</a></span><a class='srclink' href='../src/abstutil/serde.rs.html#142-145' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='index.html'>abstutil</a>::<wbr><a class="fn" href=''>deserialize_usize</a></span></h1><pre class='rust fn'>pub fn deserialize_usize<'de, D: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>>(<br> d: D<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, D::<a class="type" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>></pre><div class='docblock'><p>Deserializes a <code>usize</code> from a <code>u32</code>.</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'>−</span>]</a></span><a class='srclink' href='../src/abstutil/serde.rs.html#141-144' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='index.html'>abstutil</a>::<wbr><a class="fn" href=''>deserialize_usize</a></span></h1><pre class='rust fn'>pub fn deserialize_usize<'de, D: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>>(<br> d: D<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, D::<a class="type" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>></pre><div class='docblock'><p>Deserializes a <code>usize</code> from a <code>u32</code>.</p>
|
||||
</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>
|
@ -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 `serialize_multimap` fn in crate `abstutil`."><meta name="keywords" content="rust, rustlang, rust-lang, serialize_multimap"><title>abstutil::serialize_multimap - 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">☰</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: 'serialize_multimap', 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'>−</span>]</a></span><a class='srclink' href='../src/abstutil/serde.rs.html#100-110' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='index.html'>abstutil</a>::<wbr><a class="fn" href=''>serialize_multimap</a></span></h1><pre class='rust fn'>pub fn serialize_multimap<S: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>, K: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, V: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> map: &<a class="struct" href="../abstutil/struct.MultiMap.html" title="struct abstutil::MultiMap">MultiMap</a><K, V>, <br> s: S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><S::<a class="type" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, S::<a class="type" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>></pre><div class='docblock'><p>Serializes a MultiMap.</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'>−</span>]</a></span><a class='srclink' href='../src/abstutil/serde.rs.html#100-109' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='index.html'>abstutil</a>::<wbr><a class="fn" href=''>serialize_multimap</a></span></h1><pre class='rust fn'>pub fn serialize_multimap<S: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>, K: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, V: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> map: &<a class="struct" href="../abstutil/struct.MultiMap.html" title="struct abstutil::MultiMap">MultiMap</a><K, V>, <br> s: S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><S::<a class="type" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, S::<a class="type" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>></pre><div class='docblock'><p>Serializes a MultiMap.</p>
|
||||
</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>
|
@ -1,6 +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 `serialize_usize` fn in crate `abstutil`."><meta name="keywords" content="rust, rustlang, rust-lang, serialize_usize"><title>abstutil::serialize_usize - 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">☰</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: 'serialize_usize', 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'>−</span>]</a></span><a class='srclink' href='../src/abstutil/serde.rs.html#133-139' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='index.html'>abstutil</a>::<wbr><a class="fn" href=''>serialize_usize</a></span></h1><pre class='rust fn'>pub fn serialize_usize<S: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>(<br> x: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br> s: S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><S::<a class="type" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, S::<a class="type" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>></pre><div class='docblock'><p>Serializes a <code>usize</code> as a <code>u32</code> to save space. Useful when you need <code>usize</code> for indexing, but
|
||||
<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'>−</span>]</a></span><a class='srclink' href='../src/abstutil/serde.rs.html#132-138' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='index.html'>abstutil</a>::<wbr><a class="fn" href=''>serialize_usize</a></span></h1><pre class='rust fn'>pub fn serialize_usize<S: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>(<br> x: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br> s: S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><S::<a class="type" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, S::<a class="type" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>></pre><div class='docblock'><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>
|
||||
</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>
|
@ -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 `deserialize_multimap` fn in crate `abstutil`."><meta name="keywords" content="rust, rustlang, rust-lang, deserialize_multimap"><title>abstutil::serde::deserialize_multimap - 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">☰</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'>serde</a></p><script>window.sidebarCurrent = {name: 'deserialize_multimap', 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'>−</span>]</a></span><a class='srclink' href='../../src/abstutil/serde.rs.html#113-129' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>abstutil</a>::<wbr><a href='index.html'>serde</a>::<wbr><a class="fn" href=''>deserialize_multimap</a></span></h1><pre class='rust fn'>pub fn deserialize_multimap<'de, D: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>, K: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, V: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> d: D<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../abstutil/struct.MultiMap.html" title="struct abstutil::MultiMap">MultiMap</a><K, V>, D::<a class="type" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>></pre><div class='docblock'><p>Deserializes a MultiMap.</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'>−</span>]</a></span><a class='srclink' href='../../src/abstutil/serde.rs.html#112-128' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>abstutil</a>::<wbr><a href='index.html'>serde</a>::<wbr><a class="fn" href=''>deserialize_multimap</a></span></h1><pre class='rust fn'>pub fn deserialize_multimap<'de, D: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>, K: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, V: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a><'de> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> d: D<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../../abstutil/struct.MultiMap.html" title="struct abstutil::MultiMap">MultiMap</a><K, V>, D::<a class="type" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>></pre><div class='docblock'><p>Deserializes a MultiMap.</p>
|
||||
</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>
|
@ -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 `deserialize_usize` fn in crate `abstutil`."><meta name="keywords" content="rust, rustlang, rust-lang, deserialize_usize"><title>abstutil::serde::deserialize_usize - 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">☰</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'>serde</a></p><script>window.sidebarCurrent = {name: 'deserialize_usize', 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'>−</span>]</a></span><a class='srclink' href='../../src/abstutil/serde.rs.html#142-145' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>abstutil</a>::<wbr><a href='index.html'>serde</a>::<wbr><a class="fn" href=''>deserialize_usize</a></span></h1><pre class='rust fn'>pub fn deserialize_usize<'de, D: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>>(<br> d: D<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, D::<a class="type" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>></pre><div class='docblock'><p>Deserializes a <code>usize</code> from a <code>u32</code>.</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'>−</span>]</a></span><a class='srclink' href='../../src/abstutil/serde.rs.html#141-144' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>abstutil</a>::<wbr><a href='index.html'>serde</a>::<wbr><a class="fn" href=''>deserialize_usize</a></span></h1><pre class='rust fn'>pub fn deserialize_usize<'de, D: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>>(<br> d: D<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, D::<a class="type" href="https://docs.rs/serde/1.0.117/serde/de/trait.Deserializer.html#associatedtype.Error" title="type serde::de::Deserializer::Error">Error</a>></pre><div class='docblock'><p>Deserializes a <code>usize</code> from a <code>u32</code>.</p>
|
||||
</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>
|
@ -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 `serialize_multimap` fn in crate `abstutil`."><meta name="keywords" content="rust, rustlang, rust-lang, serialize_multimap"><title>abstutil::serde::serialize_multimap - 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">☰</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'>serde</a></p><script>window.sidebarCurrent = {name: 'serialize_multimap', 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'>−</span>]</a></span><a class='srclink' href='../../src/abstutil/serde.rs.html#100-110' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>abstutil</a>::<wbr><a href='index.html'>serde</a>::<wbr><a class="fn" href=''>serialize_multimap</a></span></h1><pre class='rust fn'>pub fn serialize_multimap<S: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>, K: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, V: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> map: &<a class="struct" href="../../abstutil/struct.MultiMap.html" title="struct abstutil::MultiMap">MultiMap</a><K, V>, <br> s: S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><S::<a class="type" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, S::<a class="type" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>></pre><div class='docblock'><p>Serializes a MultiMap.</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'>−</span>]</a></span><a class='srclink' href='../../src/abstutil/serde.rs.html#100-109' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>abstutil</a>::<wbr><a href='index.html'>serde</a>::<wbr><a class="fn" href=''>serialize_multimap</a></span></h1><pre class='rust fn'>pub fn serialize_multimap<S: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>, K: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, V: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serialize.html" title="trait serde::ser::Serialize">Serialize</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>>(<br> map: &<a class="struct" href="../../abstutil/struct.MultiMap.html" title="struct abstutil::MultiMap">MultiMap</a><K, V>, <br> s: S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><S::<a class="type" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, S::<a class="type" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>></pre><div class='docblock'><p>Serializes a MultiMap.</p>
|
||||
</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>
|
@ -1,6 +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 `serialize_usize` fn in crate `abstutil`."><meta name="keywords" content="rust, rustlang, rust-lang, serialize_usize"><title>abstutil::serde::serialize_usize - 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">☰</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'>serde</a></p><script>window.sidebarCurrent = {name: 'serialize_usize', 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'>−</span>]</a></span><a class='srclink' href='../../src/abstutil/serde.rs.html#133-139' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>abstutil</a>::<wbr><a href='index.html'>serde</a>::<wbr><a class="fn" href=''>serialize_usize</a></span></h1><pre class='rust fn'>pub fn serialize_usize<S: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>(<br> x: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br> s: S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><S::<a class="type" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, S::<a class="type" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>></pre><div class='docblock'><p>Serializes a <code>usize</code> as a <code>u32</code> to save space. Useful when you need <code>usize</code> for indexing, but
|
||||
<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'>−</span>]</a></span><a class='srclink' href='../../src/abstutil/serde.rs.html#132-138' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../index.html'>abstutil</a>::<wbr><a href='index.html'>serde</a>::<wbr><a class="fn" href=''>serialize_usize</a></span></h1><pre class='rust fn'>pub fn serialize_usize<S: <a class="trait" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>>(<br> x: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br> s: S<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><S::<a class="type" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html#associatedtype.Ok" title="type serde::ser::Serializer::Ok">Ok</a>, S::<a class="type" href="https://docs.rs/serde/1.0.117/serde/ser/trait.Serializer.html#associatedtype.Error" title="type serde::ser::Serializer::Error">Error</a>></pre><div class='docblock'><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>
|
||||
</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>
|
@ -1,7 +1,7 @@
|
||||
<!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 `serde` mod in crate `abstutil`."><meta name="keywords" content="rust, rustlang, rust-lang, serde"><title>abstutil::serde - 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">☰</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 serde</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: 'serde', 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'>−</span>]</a></span><a class='srclink' href='../../src/abstutil/serde.rs.html#1-145' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../index.html'>abstutil</a>::<wbr><a class="mod" href=''>serde</a></span></h1><h2 id='functions' class='section-header'><a href="#functions">Functions</a></h2>
|
||||
<a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../../src/abstutil/serde.rs.html#1-144' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../index.html'>abstutil</a>::<wbr><a class="mod" href=''>serde</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.deserialize_btreemap.html" title='abstutil::serde::deserialize_btreemap fn'>deserialize_btreemap</a></td><td class='docblock-short'><p>Deserializes a BTreeMap from a list of tuples. Necessary when the keys are structs; see
|
||||
https://github.com/serde-rs/json/issues/402.</p>
|
||||
</td></tr><tr class='module-item'><td><a class="fn" href="fn.deserialize_hashmap.html" title='abstutil::serde::deserialize_hashmap fn'>deserialize_hashmap</a></td><td class='docblock-short'><p>Deserializes a HashMap from a list of tuples.</p>
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -62,8 +62,8 @@
|
||||
</div><h4 id='method.draw-19' class="method hidden"><code>fn <a href='#method.draw' class='fnname'>draw</a>(&self, g: &mut GfxCtx<'_>, app: &<a class="struct" href="../../game/app/struct.App.html" title="struct game::app::App">App</a>)</code><a class='srclink' href='../../src/game/devtools/destinations.rs.html#145-164' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Draw</p>
|
||||
</div><h4 id='method.draw_baselayer-18' class="method hidden"><code>fn <a href='#method.draw_baselayer' class='fnname'>draw_baselayer</a>(&self) -> DrawBaselayer</code></h4><div class='docblock hidden'><p>Specifies what to draw before draw()</p>
|
||||
</div><h4 id='method.on_destroy-18' class="method hidden"><code>fn <a href='#method.on_destroy' class='fnname'>on_destroy</a>(&mut self, &mut EventCtx<'_>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>A)</code></h4><div class='docblock hidden'><p>Before this state is popped or replaced, call this.</p>
|
||||
</div></div><h3 id='impl-State%3CApp%3E-19' class='impl'><code class='in-band'>impl State<<a class="struct" href="../../game/app/struct.App.html" title="struct game::app::App">App</a>> for <a class="struct" href="../../game/devtools/fifteen_min/struct.Viewer.html" title="struct game::devtools::fifteen_min::Viewer">Viewer</a></code><a href='#impl-State%3CApp%3E-19' class='anchor'></a><a class='srclink' href='../../src/game/devtools/fifteen_min/mod.rs.html#68-91' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.event-19' class="method hidden"><code>fn <a href='#method.event' class='fnname'>event</a>(&mut self, ctx: &mut EventCtx<'_>, _: &mut <a class="struct" href="../../game/app/struct.App.html" title="struct game::app::App">App</a>) -> Transition<<a class="struct" href="../../game/app/struct.App.html" title="struct game::app::App">App</a>></code><a class='srclink' href='../../src/game/devtools/fifteen_min/mod.rs.html#69-84' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Respond to a UI event, such as input or time passing.</p>
|
||||
</div><h4 id='method.draw-20' class="method hidden"><code>fn <a href='#method.draw' class='fnname'>draw</a>(&self, g: &mut GfxCtx<'_>, _: &<a class="struct" href="../../game/app/struct.App.html" title="struct game::app::App">App</a>)</code><a class='srclink' href='../../src/game/devtools/fifteen_min/mod.rs.html#86-90' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Draw</p>
|
||||
</div></div><h3 id='impl-State%3CApp%3E-19' class='impl'><code class='in-band'>impl State<<a class="struct" href="../../game/app/struct.App.html" title="struct game::app::App">App</a>> for <a class="struct" href="../../game/devtools/fifteen_min/struct.Viewer.html" title="struct game::devtools::fifteen_min::Viewer">Viewer</a></code><a href='#impl-State%3CApp%3E-19' class='anchor'></a><a class='srclink' href='../../src/game/devtools/fifteen_min/mod.rs.html#73-96' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.event-19' class="method hidden"><code>fn <a href='#method.event' class='fnname'>event</a>(&mut self, ctx: &mut EventCtx<'_>, _: &mut <a class="struct" href="../../game/app/struct.App.html" title="struct game::app::App">App</a>) -> Transition<<a class="struct" href="../../game/app/struct.App.html" title="struct game::app::App">App</a>></code><a class='srclink' href='../../src/game/devtools/fifteen_min/mod.rs.html#74-89' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Respond to a UI event, such as input or time passing.</p>
|
||||
</div><h4 id='method.draw-20' class="method hidden"><code>fn <a href='#method.draw' class='fnname'>draw</a>(&self, g: &mut GfxCtx<'_>, _: &<a class="struct" href="../../game/app/struct.App.html" title="struct game::app::App">App</a>)</code><a class='srclink' href='../../src/game/devtools/fifteen_min/mod.rs.html#91-95' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Draw</p>
|
||||
</div><h4 id='method.draw_baselayer-19' class="method hidden"><code>fn <a href='#method.draw_baselayer' class='fnname'>draw_baselayer</a>(&self) -> DrawBaselayer</code></h4><div class='docblock hidden'><p>Specifies what to draw before draw()</p>
|
||||
</div><h4 id='method.on_destroy-19' class="method hidden"><code>fn <a href='#method.on_destroy' class='fnname'>on_destroy</a>(&mut self, &mut EventCtx<'_>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>A)</code></h4><div class='docblock hidden'><p>Before this state is popped or replaced, call this.</p>
|
||||
</div></div><h3 id='impl-State%3CApp%3E-2' class='impl'><code class='in-band'>impl State<<a class="struct" href="../../game/app/struct.App.html" title="struct game::app::App">App</a>> for <a class="struct" href="../../game/common/city_picker/struct.AllCityPicker.html" title="struct game::common::city_picker::AllCityPicker">AllCityPicker</a></code><a href='#impl-State%3CApp%3E-2' class='anchor'></a><a class='srclink' href='../../src/game/common/city_picker.rs.html#293-333' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.event-2' class="method hidden"><code>fn <a href='#method.event' class='fnname'>event</a>(&mut self, ctx: &mut EventCtx<'_>, app: &mut <a class="struct" href="../../game/app/struct.App.html" title="struct game::app::App">App</a>) -> Transition<<a class="struct" href="../../game/app/struct.App.html" title="struct game::app::App">App</a>></code><a class='srclink' href='../../src/game/common/city_picker.rs.html#294-323' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Respond to a UI event, such as input or time passing.</p>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!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 `fifteen_min` mod in crate `game`."><meta name="keywords" content="rust, rustlang, rust-lang, fifteen_min"><title>game::devtools::fifteen_min - 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">☰</div><a href='../../../game/index.html'><div class='logo-container rust-logo'><img src='../../../rust-logo.png' alt='logo'></div></a><p class='location'>Module fifteen_min</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#modules">Modules</a></li><li><a href="#structs">Structs</a></li></ul></div><p class='location'><a href='../../index.html'>game</a>::<wbr><a href='../index.html'>devtools</a></p><script>window.sidebarCurrent = {name: 'fifteen_min', 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'>−</span>]</a></span><a class='srclink' href='../../../src/game/devtools/fifteen_min/mod.rs.html#1-91' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../../index.html'>game</a>::<wbr><a href='../index.html'>devtools</a>::<wbr><a class="mod" href=''>fifteen_min</a></span></h1><div class='docblock'><p>This is a tool to experiment with the concept of 15-minute neighborhoods. Can you access your
|
||||
<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'>−</span>]</a></span><a class='srclink' href='../../../src/game/devtools/fifteen_min/mod.rs.html#1-96' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../../index.html'>game</a>::<wbr><a href='../index.html'>devtools</a>::<wbr><a class="mod" href=''>fifteen_min</a></span></h1><div class='docblock'><p>This is a tool to experiment with the concept of 15-minute neighborhoods. Can you access your
|
||||
daily needs (like groceries, a cafe, a library) within a 15-minute walk, bike ride, or public
|
||||
transit ride of your home?</p>
|
||||
<p>See https://github.com/dabreegster/abstreet/issues/393 for more context.</p>
|
||||
|
@ -0,0 +1,4 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `draw_isochrone` fn in crate `game`."><meta name="keywords" content="rust, rustlang, rust-lang, draw_isochrone"><title>game::devtools::fifteen_min::isochrone::draw_isochrone - 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">☰</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'>devtools</a>::<wbr><a href='../index.html'>fifteen_min</a>::<wbr><a href='index.html'>isochrone</a></p><script>window.sidebarCurrent = {name: 'draw_isochrone', 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'>−</span>]</a></span><a class='srclink' href='../../../../src/game/devtools/fifteen_min/isochrone.rs.html#46-111' title='goto source code'>[src]</a></span><span class='in-band'>Function <a href='../../../index.html'>game</a>::<wbr><a href='../../index.html'>devtools</a>::<wbr><a href='../index.html'>fifteen_min</a>::<wbr><a href='index.html'>isochrone</a>::<wbr><a class="fn" href=''>draw_isochrone</a></span></h1><pre class='rust fn'>fn draw_isochrone(<br> app: &<a class="struct" href="../../../../game/app/struct.App.html" title="struct game::app::App">App</a>, <br> time_to_reach_building: &<a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a><<a class="struct" href="../../../../map_model/objects/building/struct.BuildingID.html" title="struct map_model::objects::building::BuildingID">BuildingID</a>, <a class="struct" href="../../../../geom/duration/struct.Duration.html" title="struct geom::duration::Duration">Duration</a>><br>) -> GeomBatch</pre></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../../../";window.currentCrate = "game";</script><script src="../../../../main.js"></script><script defer src="../../../../search-index.js"></script></body></html>
|
@ -1,6 +1,7 @@
|
||||
<!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 `isochrone` mod in crate `game`."><meta name="keywords" content="rust, rustlang, rust-lang, isochrone"><title>game::devtools::fifteen_min::isochrone - 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">☰</div><a href='../../../../game/index.html'><div class='logo-container rust-logo'><img src='../../../../rust-logo.png' alt='logo'></div></a><p class='location'>Module isochrone</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'>game</a>::<wbr><a href='../../index.html'>devtools</a>::<wbr><a href='../index.html'>fifteen_min</a></p><script>window.sidebarCurrent = {name: 'isochrone', 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'>−</span>]</a></span><a class='srclink' href='../../../../src/game/devtools/fifteen_min/isochrone.rs.html#1-87' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../../../index.html'>game</a>::<wbr><a href='../../index.html'>devtools</a>::<wbr><a href='../index.html'>fifteen_min</a>::<wbr><a class="mod" href=''>isochrone</a></span></h1><h2 id='structs' class='section-header'><a href="#structs">Structs</a></h2>
|
||||
<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">☰</div><a href='../../../../game/index.html'><div class='logo-container rust-logo'><img src='../../../../rust-logo.png' alt='logo'></div></a><p class='location'>Module isochrone</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#structs">Structs</a></li><li><a href="#functions">Functions</a></li></ul></div><p class='location'><a href='../../../index.html'>game</a>::<wbr><a href='../../index.html'>devtools</a>::<wbr><a href='../index.html'>fifteen_min</a></p><script>window.sidebarCurrent = {name: 'isochrone', 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'>−</span>]</a></span><a class='srclink' href='../../../../src/game/devtools/fifteen_min/isochrone.rs.html#1-111' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../../../index.html'>game</a>::<wbr><a href='../../index.html'>devtools</a>::<wbr><a href='../index.html'>fifteen_min</a>::<wbr><a class="mod" href=''>isochrone</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.Isochrone.html" title='game::devtools::fifteen_min::isochrone::Isochrone struct'>Isochrone</a></td><td class='docblock-short'><p>Represents the area reachable from a single building.</p>
|
||||
</td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../../../";window.currentCrate = "game";</script><script src="../../../../main.js"></script><script defer src="../../../../search-index.js"></script></body></html>
|
||||
</td></tr></table><h2 id='functions' class='section-header'><a href="#functions">Functions</a></h2>
|
||||
<table><tr class='module-item'><td><a class="fn" href="fn.draw_isochrone.html" title='game::devtools::fifteen_min::isochrone::draw_isochrone fn'>draw_isochrone</a></td><td class='docblock-short'></td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../../../";window.currentCrate = "game";</script><script src="../../../../main.js"></script><script defer src="../../../../search-index.js"></script></body></html>
|
@ -1 +1 @@
|
||||
initSidebarItems({"struct":[["Isochrone","Represents the area reachable from a single building."]]});
|
||||
initSidebarItems({"fn":[["draw_isochrone",""]],"struct":[["Isochrone","Represents the area reachable from a single building."]]});
|
File diff suppressed because one or more lines are too long
@ -7,9 +7,9 @@
|
||||
isochrone: <a class="struct" href="../../../game/devtools/fifteen_min/isochrone/struct.Isochrone.html" title="struct game::devtools::fifteen_min::isochrone::Isochrone">Isochrone</a>,
|
||||
}</pre></div><div class='docblock'><p>This is the UI state for exploring the isochrone/walkshed from a single building.</p>
|
||||
</div><h2 id='fields' class='fields small-section-header'>
|
||||
Fields<a href='#fields' class='anchor'></a></h2><span id="structfield.panel" class="structfield small-section-header"><a href="#structfield.panel" class="anchor field"></a><code>panel: Panel</code></span><span id="structfield.highlight_start" class="structfield small-section-header"><a href="#structfield.highlight_start" class="anchor field"></a><code>highlight_start: Drawable</code></span><span id="structfield.isochrone" class="structfield small-section-header"><a href="#structfield.isochrone" class="anchor field"></a><code>isochrone: <a class="struct" href="../../../game/devtools/fifteen_min/isochrone/struct.Isochrone.html" title="struct game::devtools::fifteen_min::isochrone::Isochrone">Isochrone</a></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="../../../game/devtools/fifteen_min/struct.Viewer.html" title="struct game::devtools::fifteen_min::Viewer">Viewer</a></code><a href='#impl' class='anchor'></a><a class='srclink' href='../../../src/game/devtools/fifteen_min/mod.rs.html#28-66' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.random_start' class="method"><code>pub fn <a href='#method.random_start' class='fnname'>random_start</a>(ctx: &mut EventCtx<'_>, app: &<a class="struct" href="../../../game/app/struct.App.html" title="struct game::app::App">App</a>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn State<<a class="struct" href="../../../game/app/struct.App.html" title="struct game::app::App">App</a>>></code><a class='srclink' href='../../../src/game/devtools/fifteen_min/mod.rs.html#30-34' title='goto source code'>[src]</a></h4><div class='docblock'><p>Start with a random building</p>
|
||||
</div><h4 id='method.new' class="method"><code>pub fn <a href='#method.new' class='fnname'>new</a>(<br> ctx: &mut EventCtx<'_>, <br> app: &<a class="struct" href="../../../game/app/struct.App.html" title="struct game::app::App">App</a>, <br> start: <a class="struct" href="../../../map_model/objects/building/struct.BuildingID.html" title="struct map_model::objects::building::BuildingID">BuildingID</a><br>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn State<<a class="struct" href="../../../game/app/struct.App.html" title="struct game::app::App">App</a>>></code><a class='srclink' href='../../../src/game/devtools/fifteen_min/mod.rs.html#36-65' title='goto source code'>[src]</a></h4></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-State%3CApp%3E' class='impl'><code class='in-band'>impl State<<a class="struct" href="../../../game/app/struct.App.html" title="struct game::app::App">App</a>> for <a class="struct" href="../../../game/devtools/fifteen_min/struct.Viewer.html" title="struct game::devtools::fifteen_min::Viewer">Viewer</a></code><a href='#impl-State%3CApp%3E' class='anchor'></a><a class='srclink' href='../../../src/game/devtools/fifteen_min/mod.rs.html#68-91' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.event' class="method hidden"><code>fn <a href='#method.event' class='fnname'>event</a>(&mut self, ctx: &mut EventCtx<'_>, _: &mut <a class="struct" href="../../../game/app/struct.App.html" title="struct game::app::App">App</a>) -> Transition<<a class="struct" href="../../../game/app/struct.App.html" title="struct game::app::App">App</a>></code><a class='srclink' href='../../../src/game/devtools/fifteen_min/mod.rs.html#69-84' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Respond to a UI event, such as input or time passing.</p>
|
||||
</div><h4 id='method.draw' class="method hidden"><code>fn <a href='#method.draw' class='fnname'>draw</a>(&self, g: &mut GfxCtx<'_>, _: &<a class="struct" href="../../../game/app/struct.App.html" title="struct game::app::App">App</a>)</code><a class='srclink' href='../../../src/game/devtools/fifteen_min/mod.rs.html#86-90' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Draw</p>
|
||||
Fields<a href='#fields' class='anchor'></a></h2><span id="structfield.panel" class="structfield small-section-header"><a href="#structfield.panel" class="anchor field"></a><code>panel: Panel</code></span><span id="structfield.highlight_start" class="structfield small-section-header"><a href="#structfield.highlight_start" class="anchor field"></a><code>highlight_start: Drawable</code></span><span id="structfield.isochrone" class="structfield small-section-header"><a href="#structfield.isochrone" class="anchor field"></a><code>isochrone: <a class="struct" href="../../../game/devtools/fifteen_min/isochrone/struct.Isochrone.html" title="struct game::devtools::fifteen_min::isochrone::Isochrone">Isochrone</a></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="../../../game/devtools/fifteen_min/struct.Viewer.html" title="struct game::devtools::fifteen_min::Viewer">Viewer</a></code><a href='#impl' class='anchor'></a><a class='srclink' href='../../../src/game/devtools/fifteen_min/mod.rs.html#28-71' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.random_start' class="method"><code>pub fn <a href='#method.random_start' class='fnname'>random_start</a>(ctx: &mut EventCtx<'_>, app: &<a class="struct" href="../../../game/app/struct.App.html" title="struct game::app::App">App</a>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn State<<a class="struct" href="../../../game/app/struct.App.html" title="struct game::app::App">App</a>>></code><a class='srclink' href='../../../src/game/devtools/fifteen_min/mod.rs.html#30-34' title='goto source code'>[src]</a></h4><div class='docblock'><p>Start with a random building</p>
|
||||
</div><h4 id='method.new' class="method"><code>pub fn <a href='#method.new' class='fnname'>new</a>(<br> ctx: &mut EventCtx<'_>, <br> app: &<a class="struct" href="../../../game/app/struct.App.html" title="struct game::app::App">App</a>, <br> start: <a class="struct" href="../../../map_model/objects/building/struct.BuildingID.html" title="struct map_model::objects::building::BuildingID">BuildingID</a><br>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a><dyn State<<a class="struct" href="../../../game/app/struct.App.html" title="struct game::app::App">App</a>>></code><a class='srclink' href='../../../src/game/devtools/fifteen_min/mod.rs.html#36-70' title='goto source code'>[src]</a></h4></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-State%3CApp%3E' class='impl'><code class='in-band'>impl State<<a class="struct" href="../../../game/app/struct.App.html" title="struct game::app::App">App</a>> for <a class="struct" href="../../../game/devtools/fifteen_min/struct.Viewer.html" title="struct game::devtools::fifteen_min::Viewer">Viewer</a></code><a href='#impl-State%3CApp%3E' class='anchor'></a><a class='srclink' href='../../../src/game/devtools/fifteen_min/mod.rs.html#73-96' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.event' class="method hidden"><code>fn <a href='#method.event' class='fnname'>event</a>(&mut self, ctx: &mut EventCtx<'_>, _: &mut <a class="struct" href="../../../game/app/struct.App.html" title="struct game::app::App">App</a>) -> Transition<<a class="struct" href="../../../game/app/struct.App.html" title="struct game::app::App">App</a>></code><a class='srclink' href='../../../src/game/devtools/fifteen_min/mod.rs.html#74-89' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Respond to a UI event, such as input or time passing.</p>
|
||||
</div><h4 id='method.draw' class="method hidden"><code>fn <a href='#method.draw' class='fnname'>draw</a>(&self, g: &mut GfxCtx<'_>, _: &<a class="struct" href="../../../game/app/struct.App.html" title="struct game::app::App">App</a>)</code><a class='srclink' href='../../../src/game/devtools/fifteen_min/mod.rs.html#91-95' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Draw</p>
|
||||
</div><h4 id='method.draw_baselayer' class="method hidden"><code>fn <a href='#method.draw_baselayer' class='fnname'>draw_baselayer</a>(&self) -> DrawBaselayer</code></h4><div class='docblock hidden'><p>Specifies what to draw before draw()</p>
|
||||
</div><h4 id='method.on_destroy' class="method hidden"><code>fn <a href='#method.on_destroy' class='fnname'>on_destroy</a>(&mut self, &mut EventCtx<'_>, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>A)</code></h4><div class='docblock hidden'><p>Before this state is popped or replaced, call this.</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="../../../game/devtools/fifteen_min/struct.Viewer.html" title="struct game::devtools::fifteen_min::Viewer">Viewer</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="../../../game/devtools/fifteen_min/struct.Viewer.html" title="struct game::devtools::fifteen_min::Viewer">Viewer</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="../../../game/devtools/fifteen_min/struct.Viewer.html" title="struct game::devtools::fifteen_min::Viewer">Viewer</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="../../../game/devtools/fifteen_min/struct.Viewer.html" title="struct game::devtools::fifteen_min::Viewer">Viewer</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="../../../game/devtools/fifteen_min/struct.Viewer.html" title="struct game::devtools::fifteen_min::Viewer">Viewer</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<T> <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> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, </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>(&self) -> <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>
|
||||
|
@ -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">☰</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'>−</span>]</a></span><a class='srclink' href='../../../src/game/home/runner/work/abstreet/abstreet/target/debug/build/game-bbdb22a3d9582b8a/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: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a> = "Sat, 21 Nov 2020 18:29:32 +0000";</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'>−</span>]</a></span><a class='srclink' href='../../../src/game/home/runner/work/abstreet/abstreet/target/debug/build/game-bbdb22a3d9582b8a/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: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a> = "Sat, 21 Nov 2020 19:41:52 +0000";</pre><div class='docblock'><p>The built-time in RFC2822, UTC</p>
|
||||
</div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../../";window.currentCrate = "game";</script><script src="../../../main.js"></script><script defer src="../../../search-index.js"></script></body></html>
|
File diff suppressed because one or more lines are too long
@ -376,7 +376,7 @@
|
||||
<span class="self">self</span>.<span class="ident">map</span>.<span class="ident">len</span>()
|
||||
}
|
||||
|
||||
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn</span> <span class="ident">raw_map</span>(<span class="kw-2">&</span><span class="self">self</span>) <span class="op">-</span><span class="op">></span> <span class="kw-2">&</span><span class="ident">BTreeMap</span><span class="op"><</span><span class="ident">K</span>, <span class="ident">BTreeSet</span><span class="op"><</span><span class="ident">V</span><span class="op">></span><span class="op">></span> {
|
||||
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">borrow</span>(<span class="kw-2">&</span><span class="self">self</span>) <span class="op">-</span><span class="op">></span> <span class="kw-2">&</span><span class="ident">BTreeMap</span><span class="op"><</span><span class="ident">K</span>, <span class="ident">BTreeSet</span><span class="op"><</span><span class="ident">V</span><span class="op">></span><span class="op">></span> {
|
||||
<span class="kw-2">&</span><span class="self">self</span>.<span class="ident">map</span>
|
||||
}
|
||||
|
||||
|
@ -145,7 +145,6 @@
|
||||
<span id="142">142</span>
|
||||
<span id="143">143</span>
|
||||
<span id="144">144</span>
|
||||
<span id="145">145</span>
|
||||
</pre><div class="example-wrap"><pre class="rust ">
|
||||
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">MultiMap</span>;
|
||||
<span class="kw">use</span> <span class="ident">serde</span>::<span class="ident">de</span>::<span class="ident">DeserializeOwned</span>;
|
||||
@ -254,8 +253,7 @@
|
||||
<span class="ident">map</span>: <span class="kw-2">&</span><span class="ident">MultiMap</span><span class="op"><</span><span class="ident">K</span>, <span class="ident">V</span><span class="op">></span>,
|
||||
<span class="ident">s</span>: <span class="ident">S</span>,
|
||||
) <span class="op">-</span><span class="op">></span> <span class="prelude-ty">Result</span><span class="op"><</span><span class="ident">S</span>::<span class="prelude-val">Ok</span>, <span class="ident">S</span>::<span class="ident">Error</span><span class="op">></span> {
|
||||
<span class="comment">// TODO maybe need to sort to have deterministic output</span>
|
||||
<span class="ident">map</span>.<span class="ident">raw_map</span>().<span class="ident">iter</span>().<span class="ident">collect</span>::<span class="op"><</span><span class="ident">Vec</span><span class="op"><</span>(<span class="kw">_</span>, <span class="kw">_</span>)<span class="op">></span><span class="op">></span>().<span class="ident">serialize</span>(<span class="ident">s</span>)
|
||||
<span class="ident">map</span>.<span class="ident">borrow</span>().<span class="ident">iter</span>().<span class="ident">collect</span>::<span class="op"><</span><span class="ident">Vec</span><span class="op"><</span>(<span class="kw">_</span>, <span class="kw">_</span>)<span class="op">></span><span class="op">></span>().<span class="ident">serialize</span>(<span class="ident">s</span>)
|
||||
}
|
||||
|
||||
<span class="doccomment">/// Deserializes a MultiMap.</span>
|
||||
|
@ -1,180 +1,228 @@
|
||||
<!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="Source to the Rust file `game/src/devtools/fifteen_min/isochrone.rs`."><meta name="keywords" content="rust, rustlang, rust-lang"><title>isochrone.rs.html -- source</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 source"><!--[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">☰</div><a href='../../../../game/index.html'><div class='logo-container rust-logo'><img src='../../../../rust-logo.png' alt='logo'></div></a></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"><pre class="line-numbers"><span id="1"> 1</span>
|
||||
<span id="2"> 2</span>
|
||||
<span id="3"> 3</span>
|
||||
<span id="4"> 4</span>
|
||||
<span id="5"> 5</span>
|
||||
<span id="6"> 6</span>
|
||||
<span id="7"> 7</span>
|
||||
<span id="8"> 8</span>
|
||||
<span id="9"> 9</span>
|
||||
<span id="10">10</span>
|
||||
<span id="11">11</span>
|
||||
<span id="12">12</span>
|
||||
<span id="13">13</span>
|
||||
<span id="14">14</span>
|
||||
<span id="15">15</span>
|
||||
<span id="16">16</span>
|
||||
<span id="17">17</span>
|
||||
<span id="18">18</span>
|
||||
<span id="19">19</span>
|
||||
<span id="20">20</span>
|
||||
<span id="21">21</span>
|
||||
<span id="22">22</span>
|
||||
<span id="23">23</span>
|
||||
<span id="24">24</span>
|
||||
<span id="25">25</span>
|
||||
<span id="26">26</span>
|
||||
<span id="27">27</span>
|
||||
<span id="28">28</span>
|
||||
<span id="29">29</span>
|
||||
<span id="30">30</span>
|
||||
<span id="31">31</span>
|
||||
<span id="32">32</span>
|
||||
<span id="33">33</span>
|
||||
<span id="34">34</span>
|
||||
<span id="35">35</span>
|
||||
<span id="36">36</span>
|
||||
<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>
|
||||
<span id="75">75</span>
|
||||
<span id="76">76</span>
|
||||
<span id="77">77</span>
|
||||
<span id="78">78</span>
|
||||
<span id="79">79</span>
|
||||
<span id="80">80</span>
|
||||
<span id="81">81</span>
|
||||
<span id="82">82</span>
|
||||
<span id="83">83</span>
|
||||
<span id="84">84</span>
|
||||
<span id="85">85</span>
|
||||
<span id="86">86</span>
|
||||
<span id="87">87</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"><pre class="line-numbers"><span id="1"> 1</span>
|
||||
<span id="2"> 2</span>
|
||||
<span id="3"> 3</span>
|
||||
<span id="4"> 4</span>
|
||||
<span id="5"> 5</span>
|
||||
<span id="6"> 6</span>
|
||||
<span id="7"> 7</span>
|
||||
<span id="8"> 8</span>
|
||||
<span id="9"> 9</span>
|
||||
<span id="10"> 10</span>
|
||||
<span id="11"> 11</span>
|
||||
<span id="12"> 12</span>
|
||||
<span id="13"> 13</span>
|
||||
<span id="14"> 14</span>
|
||||
<span id="15"> 15</span>
|
||||
<span id="16"> 16</span>
|
||||
<span id="17"> 17</span>
|
||||
<span id="18"> 18</span>
|
||||
<span id="19"> 19</span>
|
||||
<span id="20"> 20</span>
|
||||
<span id="21"> 21</span>
|
||||
<span id="22"> 22</span>
|
||||
<span id="23"> 23</span>
|
||||
<span id="24"> 24</span>
|
||||
<span id="25"> 25</span>
|
||||
<span id="26"> 26</span>
|
||||
<span id="27"> 27</span>
|
||||
<span id="28"> 28</span>
|
||||
<span id="29"> 29</span>
|
||||
<span id="30"> 30</span>
|
||||
<span id="31"> 31</span>
|
||||
<span id="32"> 32</span>
|
||||
<span id="33"> 33</span>
|
||||
<span id="34"> 34</span>
|
||||
<span id="35"> 35</span>
|
||||
<span id="36"> 36</span>
|
||||
<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>
|
||||
<span id="75"> 75</span>
|
||||
<span id="76"> 76</span>
|
||||
<span id="77"> 77</span>
|
||||
<span id="78"> 78</span>
|
||||
<span id="79"> 79</span>
|
||||
<span id="80"> 80</span>
|
||||
<span id="81"> 81</span>
|
||||
<span id="82"> 82</span>
|
||||
<span id="83"> 83</span>
|
||||
<span id="84"> 84</span>
|
||||
<span id="85"> 85</span>
|
||||
<span id="86"> 86</span>
|
||||
<span id="87"> 87</span>
|
||||
<span id="88"> 88</span>
|
||||
<span id="89"> 89</span>
|
||||
<span id="90"> 90</span>
|
||||
<span id="91"> 91</span>
|
||||
<span id="92"> 92</span>
|
||||
<span id="93"> 93</span>
|
||||
<span id="94"> 94</span>
|
||||
<span id="95"> 95</span>
|
||||
<span id="96"> 96</span>
|
||||
<span id="97"> 97</span>
|
||||
<span id="98"> 98</span>
|
||||
<span id="99"> 99</span>
|
||||
<span id="100">100</span>
|
||||
<span id="101">101</span>
|
||||
<span id="102">102</span>
|
||||
<span id="103">103</span>
|
||||
<span id="104">104</span>
|
||||
<span id="105">105</span>
|
||||
<span id="106">106</span>
|
||||
<span id="107">107</span>
|
||||
<span id="108">108</span>
|
||||
<span id="109">109</span>
|
||||
<span id="110">110</span>
|
||||
<span id="111">111</span>
|
||||
</pre><div class="example-wrap"><pre class="rust ">
|
||||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">HashMap</span>;
|
||||
|
||||
<span class="kw">use</span> <span class="ident">abstutil</span>::<span class="ident">MultiMap</span>;
|
||||
<span class="kw">use</span> <span class="ident">geom</span>::{<span class="ident">Duration</span>, <span class="ident">Polygon</span>};
|
||||
<span class="kw">use</span> <span class="ident">map_model</span>::{<span class="ident">connectivity</span>, <span class="ident">BuildingID</span>};
|
||||
<span class="kw">use</span> <span class="ident">widgetry</span>::{<span class="ident">Color</span>, <span class="ident">Drawable</span>, <span class="ident">EventCtx</span>, <span class="ident">GeomBatch</span>};
|
||||
|
||||
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">app</span>::<span class="ident">App</span>;
|
||||
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">common</span>::<span class="ident">Grid</span>;
|
||||
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">helpers</span>::<span class="ident">amenity_type</span>;
|
||||
|
||||
<span class="doccomment">/// Represents the area reachable from a single building.</span>
|
||||
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Isochrone</span> {
|
||||
<span class="doccomment">/// Colored polygon contours, uploaded to the GPU and ready for drawing</span>
|
||||
<span class="kw">pub</span> <span class="ident">draw</span>: <span class="ident">Drawable</span>,
|
||||
<span class="comment">/* TODO This is a good place to store the buildings within 5 mins, 10 mins, etc
|
||||
* and maybe some summary of the types of amenities within these ranges */</span>
|
||||
<span class="doccomment">/// How far away is each building from the start?</span>
|
||||
<span class="kw">pub</span> <span class="ident">time_to_reach_building</span>: <span class="ident">HashMap</span><span class="op"><</span><span class="ident">BuildingID</span>, <span class="ident">Duration</span><span class="op">></span>,
|
||||
<span class="doccomment">/// Per category of amenity (defined by helpers::amenity_type), what buildings have that?</span>
|
||||
<span class="kw">pub</span> <span class="ident">amenities_reachable</span>: <span class="ident">MultiMap</span><span class="op"><</span><span class="kw-2">&</span><span class="lifetime">'static</span> <span class="ident">str</span>, <span class="ident">BuildingID</span><span class="op">></span>,
|
||||
}
|
||||
|
||||
<span class="kw">impl</span> <span class="ident">Isochrone</span> {
|
||||
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">ctx</span>: <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">EventCtx</span>, <span class="ident">app</span>: <span class="kw-2">&</span><span class="ident">App</span>, <span class="ident">start</span>: <span class="ident">BuildingID</span>) <span class="op">-</span><span class="op">></span> <span class="ident">Isochrone</span> {
|
||||
<span class="comment">// To generate the polygons covering areas between 0-5 mins, 5-10 mins, etc, we have to feed</span>
|
||||
<span class="comment">// in a 2D grid of costs. Use a 100x100 meter resolution.</span>
|
||||
<span class="kw">let</span> <span class="ident">bounds</span> <span class="op">=</span> <span class="ident">app</span>.<span class="ident">primary</span>.<span class="ident">map</span>.<span class="ident">get_bounds</span>();
|
||||
<span class="kw">let</span> <span class="ident">resolution_m</span> <span class="op">=</span> <span class="number">100.0</span>;
|
||||
<span class="comment">// The costs we're storing are currenly durations, but the contour crate needs f64, so</span>
|
||||
<span class="comment">// just store the number of seconds.</span>
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">grid</span>: <span class="ident">Grid</span><span class="op"><</span><span class="ident">f64</span><span class="op">></span> <span class="op">=</span> <span class="ident">Grid</span>::<span class="ident">new</span>(
|
||||
(<span class="ident">bounds</span>.<span class="ident">width</span>() <span class="op">/</span> <span class="ident">resolution_m</span>).<span class="ident">ceil</span>() <span class="kw">as</span> <span class="ident">usize</span>,
|
||||
(<span class="ident">bounds</span>.<span class="ident">height</span>() <span class="op">/</span> <span class="ident">resolution_m</span>).<span class="ident">ceil</span>() <span class="kw">as</span> <span class="ident">usize</span>,
|
||||
<span class="number">0.0</span>,
|
||||
);
|
||||
<span class="kw">let</span> <span class="ident">time_to_reach_building</span> <span class="op">=</span>
|
||||
<span class="ident">connectivity</span>::<span class="ident">all_costs_from</span>(<span class="kw-2">&</span><span class="ident">app</span>.<span class="ident">primary</span>.<span class="ident">map</span>, <span class="ident">start</span>, <span class="ident">Duration</span>::<span class="ident">minutes</span>(<span class="number">15</span>));
|
||||
<span class="kw">let</span> <span class="ident">draw</span> <span class="op">=</span> <span class="ident">draw_isochrone</span>(<span class="ident">app</span>, <span class="kw-2">&</span><span class="ident">time_to_reach_building</span>).<span class="ident">upload</span>(<span class="ident">ctx</span>);
|
||||
|
||||
<span class="comment">// Calculate the cost from the start building to every other building in the map</span>
|
||||
<span class="kw">for</span> (<span class="ident">b</span>, <span class="ident">cost</span>) <span class="kw">in</span>
|
||||
<span class="ident">connectivity</span>::<span class="ident">all_costs_from</span>(<span class="kw-2">&</span><span class="ident">app</span>.<span class="ident">primary</span>.<span class="ident">map</span>, <span class="ident">start</span>, <span class="ident">Duration</span>::<span class="ident">minutes</span>(<span class="number">15</span>))
|
||||
{
|
||||
<span class="comment">// What grid cell does the building belong to?</span>
|
||||
<span class="kw">let</span> <span class="ident">pt</span> <span class="op">=</span> <span class="ident">app</span>.<span class="ident">primary</span>.<span class="ident">map</span>.<span class="ident">get_b</span>(<span class="ident">b</span>).<span class="ident">polygon</span>.<span class="ident">center</span>();
|
||||
<span class="kw">let</span> <span class="ident">idx</span> <span class="op">=</span> <span class="ident">grid</span>.<span class="ident">idx</span>(
|
||||
((<span class="ident">pt</span>.<span class="ident">x</span>() <span class="op">-</span> <span class="ident">bounds</span>.<span class="ident">min_x</span>) <span class="op">/</span> <span class="ident">resolution_m</span>) <span class="kw">as</span> <span class="ident">usize</span>,
|
||||
((<span class="ident">pt</span>.<span class="ident">y</span>() <span class="op">-</span> <span class="ident">bounds</span>.<span class="ident">min_y</span>) <span class="op">/</span> <span class="ident">resolution_m</span>) <span class="kw">as</span> <span class="ident">usize</span>,
|
||||
);
|
||||
<span class="comment">// Don't add! If two buildings map to the same cell, we should pick a finer resolution.</span>
|
||||
<span class="ident">grid</span>.<span class="ident">data</span>[<span class="ident">idx</span>] <span class="op">=</span> <span class="ident">cost</span>.<span class="ident">inner_seconds</span>();
|
||||
}
|
||||
|
||||
<span class="comment">// Generate polygons covering the contour line where the cost in the grid crosses these</span>
|
||||
<span class="comment">// threshold values.</span>
|
||||
<span class="kw">let</span> <span class="ident">thresholds</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[
|
||||
<span class="number">0.1</span>,
|
||||
<span class="ident">Duration</span>::<span class="ident">minutes</span>(<span class="number">5</span>).<span class="ident">inner_seconds</span>(),
|
||||
<span class="ident">Duration</span>::<span class="ident">minutes</span>(<span class="number">10</span>).<span class="ident">inner_seconds</span>(),
|
||||
<span class="ident">Duration</span>::<span class="ident">minutes</span>(<span class="number">15</span>).<span class="ident">inner_seconds</span>(),
|
||||
];
|
||||
<span class="comment">// And color the polygon for each threshold</span>
|
||||
<span class="kw">let</span> <span class="ident">colors</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[
|
||||
<span class="ident">Color</span>::<span class="ident">GREEN</span>.<span class="ident">alpha</span>(<span class="number">0.5</span>),
|
||||
<span class="ident">Color</span>::<span class="ident">ORANGE</span>.<span class="ident">alpha</span>(<span class="number">0.5</span>),
|
||||
<span class="ident">Color</span>::<span class="ident">RED</span>.<span class="ident">alpha</span>(<span class="number">0.5</span>),
|
||||
];
|
||||
<span class="kw">let</span> <span class="ident">smooth</span> <span class="op">=</span> <span class="bool-val">false</span>;
|
||||
<span class="kw">let</span> <span class="ident">c</span> <span class="op">=</span> <span class="ident">contour</span>::<span class="ident">ContourBuilder</span>::<span class="ident">new</span>(<span class="ident">grid</span>.<span class="ident">width</span> <span class="kw">as</span> <span class="ident">u32</span>, <span class="ident">grid</span>.<span class="ident">height</span> <span class="kw">as</span> <span class="ident">u32</span>, <span class="ident">smooth</span>);
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">batch</span> <span class="op">=</span> <span class="ident">GeomBatch</span>::<span class="ident">new</span>();
|
||||
<span class="comment">// The last feature returned will be larger than the last threshold value. We don't want to</span>
|
||||
<span class="comment">// display that at all. zip() will omit this last pair, since colors.len() ==</span>
|
||||
<span class="comment">// thresholds.len() - 1.</span>
|
||||
<span class="comment">//</span>
|
||||
<span class="comment">// TODO Actually, this still isn't working. I think each polygon is everything > the</span>
|
||||
<span class="comment">// threshold, not everything between two thresholds?</span>
|
||||
<span class="kw">for</span> (<span class="ident">feature</span>, <span class="ident">color</span>) <span class="kw">in</span> <span class="ident">c</span>
|
||||
.<span class="ident">contours</span>(<span class="kw-2">&</span><span class="ident">grid</span>.<span class="ident">data</span>, <span class="kw-2">&</span><span class="ident">thresholds</span>)
|
||||
.<span class="ident">unwrap</span>()
|
||||
.<span class="ident">into_iter</span>()
|
||||
.<span class="ident">zip</span>(<span class="ident">colors</span>)
|
||||
{
|
||||
<span class="kw">match</span> <span class="ident">feature</span>.<span class="ident">geometry</span>.<span class="ident">unwrap</span>().<span class="ident">value</span> {
|
||||
<span class="ident">geojson</span>::<span class="ident">Value</span>::<span class="ident">MultiPolygon</span>(<span class="ident">polygons</span>) <span class="op">=</span><span class="op">></span> {
|
||||
<span class="kw">for</span> <span class="ident">p</span> <span class="kw">in</span> <span class="ident">polygons</span> {
|
||||
<span class="ident">batch</span>.<span class="ident">push</span>(<span class="ident">color</span>, <span class="ident">Polygon</span>::<span class="ident">from_geojson</span>(<span class="kw-2">&</span><span class="ident">p</span>).<span class="ident">scale</span>(<span class="ident">resolution_m</span>));
|
||||
}
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">amenities_reachable</span> <span class="op">=</span> <span class="ident">MultiMap</span>::<span class="ident">new</span>();
|
||||
<span class="kw">for</span> <span class="ident">b</span> <span class="kw">in</span> <span class="ident">time_to_reach_building</span>.<span class="ident">keys</span>() {
|
||||
<span class="kw">let</span> <span class="ident">bldg</span> <span class="op">=</span> <span class="ident">app</span>.<span class="ident">primary</span>.<span class="ident">map</span>.<span class="ident">get_b</span>(<span class="kw-2">*</span><span class="ident">b</span>);
|
||||
<span class="kw">for</span> <span class="ident">amenity</span> <span class="kw">in</span> <span class="kw-2">&</span><span class="ident">bldg</span>.<span class="ident">amenities</span> {
|
||||
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">category</span>) <span class="op">=</span> <span class="ident">amenity_type</span>(<span class="kw-2">&</span><span class="ident">amenity</span>.<span class="ident">amenity_type</span>) {
|
||||
<span class="ident">amenities_reachable</span>.<span class="ident">insert</span>(<span class="ident">category</span>, <span class="ident">bldg</span>.<span class="ident">id</span>);
|
||||
}
|
||||
<span class="kw">_</span> <span class="op">=</span><span class="op">></span> <span class="macro">unreachable</span><span class="macro">!</span>(),
|
||||
}
|
||||
}
|
||||
|
||||
<span class="ident">Isochrone</span> {
|
||||
<span class="ident">draw</span>: <span class="ident">batch</span>.<span class="ident">upload</span>(<span class="ident">ctx</span>),
|
||||
<span class="ident">draw</span>,
|
||||
<span class="ident">time_to_reach_building</span>,
|
||||
<span class="ident">amenities_reachable</span>,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
<span class="kw">fn</span> <span class="ident">draw_isochrone</span>(<span class="ident">app</span>: <span class="kw-2">&</span><span class="ident">App</span>, <span class="ident">time_to_reach_building</span>: <span class="kw-2">&</span><span class="ident">HashMap</span><span class="op"><</span><span class="ident">BuildingID</span>, <span class="ident">Duration</span><span class="op">></span>) <span class="op">-</span><span class="op">></span> <span class="ident">GeomBatch</span> {
|
||||
<span class="comment">// To generate the polygons covering areas between 0-5 mins, 5-10 mins, etc, we have to feed</span>
|
||||
<span class="comment">// in a 2D grid of costs. Use a 100x100 meter resolution.</span>
|
||||
<span class="kw">let</span> <span class="ident">bounds</span> <span class="op">=</span> <span class="ident">app</span>.<span class="ident">primary</span>.<span class="ident">map</span>.<span class="ident">get_bounds</span>();
|
||||
<span class="kw">let</span> <span class="ident">resolution_m</span> <span class="op">=</span> <span class="number">100.0</span>;
|
||||
<span class="comment">// The costs we're storing are currenly durations, but the contour crate needs f64, so</span>
|
||||
<span class="comment">// just store the number of seconds.</span>
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">grid</span>: <span class="ident">Grid</span><span class="op"><</span><span class="ident">f64</span><span class="op">></span> <span class="op">=</span> <span class="ident">Grid</span>::<span class="ident">new</span>(
|
||||
(<span class="ident">bounds</span>.<span class="ident">width</span>() <span class="op">/</span> <span class="ident">resolution_m</span>).<span class="ident">ceil</span>() <span class="kw">as</span> <span class="ident">usize</span>,
|
||||
(<span class="ident">bounds</span>.<span class="ident">height</span>() <span class="op">/</span> <span class="ident">resolution_m</span>).<span class="ident">ceil</span>() <span class="kw">as</span> <span class="ident">usize</span>,
|
||||
<span class="number">0.0</span>,
|
||||
);
|
||||
|
||||
<span class="comment">// Calculate the cost from the start building to every other building in the map</span>
|
||||
<span class="kw">for</span> (<span class="ident">b</span>, <span class="ident">cost</span>) <span class="kw">in</span> <span class="ident">time_to_reach_building</span> {
|
||||
<span class="comment">// What grid cell does the building belong to?</span>
|
||||
<span class="kw">let</span> <span class="ident">pt</span> <span class="op">=</span> <span class="ident">app</span>.<span class="ident">primary</span>.<span class="ident">map</span>.<span class="ident">get_b</span>(<span class="kw-2">*</span><span class="ident">b</span>).<span class="ident">polygon</span>.<span class="ident">center</span>();
|
||||
<span class="kw">let</span> <span class="ident">idx</span> <span class="op">=</span> <span class="ident">grid</span>.<span class="ident">idx</span>(
|
||||
((<span class="ident">pt</span>.<span class="ident">x</span>() <span class="op">-</span> <span class="ident">bounds</span>.<span class="ident">min_x</span>) <span class="op">/</span> <span class="ident">resolution_m</span>) <span class="kw">as</span> <span class="ident">usize</span>,
|
||||
((<span class="ident">pt</span>.<span class="ident">y</span>() <span class="op">-</span> <span class="ident">bounds</span>.<span class="ident">min_y</span>) <span class="op">/</span> <span class="ident">resolution_m</span>) <span class="kw">as</span> <span class="ident">usize</span>,
|
||||
);
|
||||
<span class="comment">// Don't add! If two buildings map to the same cell, we should pick a finer resolution.</span>
|
||||
<span class="ident">grid</span>.<span class="ident">data</span>[<span class="ident">idx</span>] <span class="op">=</span> <span class="ident">cost</span>.<span class="ident">inner_seconds</span>();
|
||||
}
|
||||
|
||||
<span class="comment">// Generate polygons covering the contour line where the cost in the grid crosses these</span>
|
||||
<span class="comment">// threshold values.</span>
|
||||
<span class="kw">let</span> <span class="ident">thresholds</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[
|
||||
<span class="number">0.1</span>,
|
||||
<span class="ident">Duration</span>::<span class="ident">minutes</span>(<span class="number">5</span>).<span class="ident">inner_seconds</span>(),
|
||||
<span class="ident">Duration</span>::<span class="ident">minutes</span>(<span class="number">10</span>).<span class="ident">inner_seconds</span>(),
|
||||
<span class="ident">Duration</span>::<span class="ident">minutes</span>(<span class="number">15</span>).<span class="ident">inner_seconds</span>(),
|
||||
];
|
||||
<span class="comment">// And color the polygon for each threshold</span>
|
||||
<span class="kw">let</span> <span class="ident">colors</span> <span class="op">=</span> <span class="macro">vec</span><span class="macro">!</span>[
|
||||
<span class="ident">Color</span>::<span class="ident">GREEN</span>.<span class="ident">alpha</span>(<span class="number">0.5</span>),
|
||||
<span class="ident">Color</span>::<span class="ident">ORANGE</span>.<span class="ident">alpha</span>(<span class="number">0.5</span>),
|
||||
<span class="ident">Color</span>::<span class="ident">RED</span>.<span class="ident">alpha</span>(<span class="number">0.5</span>),
|
||||
];
|
||||
<span class="kw">let</span> <span class="ident">smooth</span> <span class="op">=</span> <span class="bool-val">false</span>;
|
||||
<span class="kw">let</span> <span class="ident">c</span> <span class="op">=</span> <span class="ident">contour</span>::<span class="ident">ContourBuilder</span>::<span class="ident">new</span>(<span class="ident">grid</span>.<span class="ident">width</span> <span class="kw">as</span> <span class="ident">u32</span>, <span class="ident">grid</span>.<span class="ident">height</span> <span class="kw">as</span> <span class="ident">u32</span>, <span class="ident">smooth</span>);
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">batch</span> <span class="op">=</span> <span class="ident">GeomBatch</span>::<span class="ident">new</span>();
|
||||
<span class="comment">// The last feature returned will be larger than the last threshold value. We don't want to</span>
|
||||
<span class="comment">// display that at all. zip() will omit this last pair, since colors.len() ==</span>
|
||||
<span class="comment">// thresholds.len() - 1.</span>
|
||||
<span class="comment">//</span>
|
||||
<span class="comment">// TODO Actually, this still isn't working. I think each polygon is everything > the</span>
|
||||
<span class="comment">// threshold, not everything between two thresholds?</span>
|
||||
<span class="kw">for</span> (<span class="ident">feature</span>, <span class="ident">color</span>) <span class="kw">in</span> <span class="ident">c</span>
|
||||
.<span class="ident">contours</span>(<span class="kw-2">&</span><span class="ident">grid</span>.<span class="ident">data</span>, <span class="kw-2">&</span><span class="ident">thresholds</span>)
|
||||
.<span class="ident">unwrap</span>()
|
||||
.<span class="ident">into_iter</span>()
|
||||
.<span class="ident">zip</span>(<span class="ident">colors</span>)
|
||||
{
|
||||
<span class="kw">match</span> <span class="ident">feature</span>.<span class="ident">geometry</span>.<span class="ident">unwrap</span>().<span class="ident">value</span> {
|
||||
<span class="ident">geojson</span>::<span class="ident">Value</span>::<span class="ident">MultiPolygon</span>(<span class="ident">polygons</span>) <span class="op">=</span><span class="op">></span> {
|
||||
<span class="kw">for</span> <span class="ident">p</span> <span class="kw">in</span> <span class="ident">polygons</span> {
|
||||
<span class="ident">batch</span>.<span class="ident">push</span>(<span class="ident">color</span>, <span class="ident">Polygon</span>::<span class="ident">from_geojson</span>(<span class="kw-2">&</span><span class="ident">p</span>).<span class="ident">scale</span>(<span class="ident">resolution_m</span>));
|
||||
}
|
||||
}
|
||||
<span class="kw">_</span> <span class="op">=</span><span class="op">></span> <span class="macro">unreachable</span><span class="macro">!</span>(),
|
||||
}
|
||||
}
|
||||
|
||||
<span class="ident">batch</span>
|
||||
}
|
||||
</pre></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 src="../../../../source-script.js"></script><script src="../../../../source-files.js"></script><script defer src="../../../../search-index.js"></script></body></html>
|
@ -92,6 +92,11 @@
|
||||
<span id="89">89</span>
|
||||
<span id="90">90</span>
|
||||
<span id="91">91</span>
|
||||
<span id="92">92</span>
|
||||
<span id="93">93</span>
|
||||
<span id="94">94</span>
|
||||
<span id="95">95</span>
|
||||
<span id="96">96</span>
|
||||
</pre><div class="example-wrap"><pre class="rust ">
|
||||
<span class="doccomment">//! This is a tool to experiment with the concept of 15-minute neighborhoods. Can you access your</span>
|
||||
<span class="doccomment">//! daily needs (like groceries, a cafe, a library) within a 15-minute walk, bike ride, or public</span>
|
||||
@ -130,22 +135,27 @@
|
||||
|
||||
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">ctx</span>: <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">EventCtx</span>, <span class="ident">app</span>: <span class="kw-2">&</span><span class="ident">App</span>, <span class="ident">start</span>: <span class="ident">BuildingID</span>) <span class="op">-</span><span class="op">></span> <span class="ident">Box</span><span class="op"><</span><span class="ident">dyn</span> <span class="ident">State</span><span class="op"><</span><span class="ident">App</span><span class="op">></span><span class="op">></span> {
|
||||
<span class="kw">let</span> <span class="ident">start</span> <span class="op">=</span> <span class="ident">app</span>.<span class="ident">primary</span>.<span class="ident">map</span>.<span class="ident">get_b</span>(<span class="ident">start</span>);
|
||||
<span class="kw">let</span> <span class="ident">isochrone</span> <span class="op">=</span> <span class="ident">Isochrone</span>::<span class="ident">new</span>(<span class="ident">ctx</span>, <span class="ident">app</span>, <span class="ident">start</span>.<span class="ident">id</span>);
|
||||
|
||||
<span class="kw">let</span> <span class="ident">panel</span> <span class="op">=</span> <span class="ident">Panel</span>::<span class="ident">new</span>(<span class="ident">Widget</span>::<span class="ident">col</span>(<span class="macro">vec</span><span class="macro">!</span>[
|
||||
<span class="ident">Widget</span>::<span class="ident">row</span>(<span class="macro">vec</span><span class="macro">!</span>[
|
||||
<span class="ident">Line</span>(<span class="string">"15-minute neighborhood explorer"</span>)
|
||||
.<span class="ident">small_heading</span>()
|
||||
.<span class="ident">draw</span>(<span class="ident">ctx</span>),
|
||||
<span class="ident">Btn</span>::<span class="ident">close</span>(<span class="ident">ctx</span>),
|
||||
]),
|
||||
<span class="ident">Text</span>::<span class="ident">from_all</span>(<span class="macro">vec</span><span class="macro">!</span>[
|
||||
<span class="ident">Line</span>(<span class="string">"Starting from: "</span>).<span class="ident">secondary</span>(),
|
||||
<span class="ident">Line</span>(<span class="kw-2">&</span><span class="ident">start</span>.<span class="ident">address</span>),
|
||||
])
|
||||
.<span class="ident">draw</span>(<span class="ident">ctx</span>),
|
||||
]))
|
||||
.<span class="ident">aligned</span>(<span class="ident">HorizontalAlignment</span>::<span class="ident">Center</span>, <span class="ident">VerticalAlignment</span>::<span class="ident">Top</span>)
|
||||
.<span class="ident">build</span>(<span class="ident">ctx</span>);
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">rows</span> <span class="op">=</span> <span class="ident">Vec</span>::<span class="ident">new</span>();
|
||||
<span class="ident">rows</span>.<span class="ident">push</span>(<span class="ident">Widget</span>::<span class="ident">row</span>(<span class="macro">vec</span><span class="macro">!</span>[
|
||||
<span class="ident">Line</span>(<span class="string">"15-minute neighborhood explorer"</span>)
|
||||
.<span class="ident">small_heading</span>()
|
||||
.<span class="ident">draw</span>(<span class="ident">ctx</span>),
|
||||
<span class="ident">Btn</span>::<span class="ident">close</span>(<span class="ident">ctx</span>),
|
||||
]));
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">txt</span> <span class="op">=</span> <span class="ident">Text</span>::<span class="ident">from_all</span>(<span class="macro">vec</span><span class="macro">!</span>[
|
||||
<span class="ident">Line</span>(<span class="string">"Starting from: "</span>).<span class="ident">secondary</span>(),
|
||||
<span class="ident">Line</span>(<span class="kw-2">&</span><span class="ident">start</span>.<span class="ident">address</span>),
|
||||
]);
|
||||
<span class="kw">for</span> (<span class="ident">amenity</span>, <span class="ident">buildings</span>) <span class="kw">in</span> <span class="ident">isochrone</span>.<span class="ident">amenities_reachable</span>.<span class="ident">borrow</span>() {
|
||||
<span class="ident">txt</span>.<span class="ident">add</span>(<span class="ident">Line</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">"{}: {}"</span>, <span class="ident">amenity</span>, <span class="ident">buildings</span>.<span class="ident">len</span>())));
|
||||
}
|
||||
<span class="ident">rows</span>.<span class="ident">push</span>(<span class="ident">txt</span>.<span class="ident">draw</span>(<span class="ident">ctx</span>));
|
||||
|
||||
<span class="kw">let</span> <span class="ident">panel</span> <span class="op">=</span> <span class="ident">Panel</span>::<span class="ident">new</span>(<span class="ident">Widget</span>::<span class="ident">col</span>(<span class="ident">rows</span>))
|
||||
.<span class="ident">aligned</span>(<span class="ident">HorizontalAlignment</span>::<span class="ident">Center</span>, <span class="ident">VerticalAlignment</span>::<span class="ident">Top</span>)
|
||||
.<span class="ident">build</span>(<span class="ident">ctx</span>);
|
||||
|
||||
<span class="comment">// Draw a star on the start building.</span>
|
||||
<span class="kw">let</span> <span class="ident">highlight_start</span> <span class="op">=</span> <span class="ident">GeomBatch</span>::<span class="ident">load_svg</span>(<span class="ident">ctx</span>.<span class="ident">prerender</span>, <span class="string">"system/assets/tools/star.svg"</span>)
|
||||
@ -155,7 +165,7 @@
|
||||
<span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">Viewer</span> {
|
||||
<span class="ident">panel</span>,
|
||||
<span class="ident">highlight_start</span>: <span class="ident">ctx</span>.<span class="ident">upload</span>(<span class="ident">highlight_start</span>),
|
||||
<span class="ident">isochrone</span>: <span class="ident">Isochrone</span>::<span class="ident">new</span>(<span class="ident">ctx</span>, <span class="ident">app</span>, <span class="ident">start</span>.<span class="ident">id</span>),
|
||||
<span class="ident">isochrone</span>,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -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">&</span><span class="ident">str</span> <span class="op">=</span> <span class="string">"rustdoc 1.48.0 (7eac88abb 2020-11-16)"</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">&</span><span class="ident">str</span> <span class="op">=</span> <span class="string">"Sat, 21 Nov 2020 18:29:32 +0000"</span>;
|
||||
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">BUILT_TIME_UTC</span>: <span class="kw-2">&</span><span class="ident">str</span> <span class="op">=</span> <span class="string">"Sat, 21 Nov 2020 19:41:52 +0000"</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">&</span><span class="ident">str</span> <span class="op">=</span> <span class="string">"x86_64"</span>;
|
||||
<span class="doccomment">/// The endianness, given by `cfg!(target_endian)`.</span>
|
||||
|
Loading…
Reference in New Issue
Block a user