<!DOCTYPE html><htmllang="en"><head><metacharset="utf-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><metaname="generator"content="rustdoc"><metaname="description"content="API documentation for the Rust `connectivity` mod in crate `map_model`."><metaname="keywords"content="rust, rustlang, rust-lang, connectivity"><title>map_model::connectivity - Rust</title><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../SourceSerif4-Regular.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../FiraSans-Regular.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../FiraSans-Medium.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../SourceCodePro-Regular.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../SourceSerif4-Bold.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../SourceCodePro-Semibold.ttf.woff2"><linkrel="stylesheet"type="text/css"href="../../normalize.css"><linkrel="stylesheet"type="text/css"href="../../rustdoc.css"id="mainThemeStyle"><linkrel="stylesheet"type="text/css"href="../../ayu.css"disabled><linkrel="stylesheet"type="text/css"href="../../dark.css"disabled><linkrel="stylesheet"type="text/css"href="../../light.css"id="themeStyle"><scriptid="default-settings"></script><scriptsrc="../../storage.js"></script><scriptsrc="../../crates.js"></script><scriptdefersrc="../../main.js"></script>
<noscript><linkrel="stylesheet"href="../../noscript.css"></noscript><linkrel="alternate icon"type="image/png"href="../../favicon-16x16.png"><linkrel="alternate icon"type="image/png"href="../../favicon-32x32.png"><linkrel="icon"type="image/svg+xml"href="../../favicon.svg"></head><bodyclass="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="mobile-topbar"><buttonclass="sidebar-menu-toggle">☰</button><aclass="sidebar-logo"href="../../map_model/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></div>
</a><h2class="location"><ahref="#">Module connectivity</a></h2><divclass="sidebar-elems"><section><divclass="block"><ul><li><ahref="#modules">Modules</a></li><li><ahref="#structs">Structs</a></li><li><ahref="#enums">Enums</a></li><li><ahref="#functions">Functions</a></li></ul></div></section><divid="sidebar-vars"data-name="connectivity"data-ty="mod"data-relpath="./"></div><scriptdefersrc="./sidebar-items.js"></script></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../map_model/index.html"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></a><navclass="sub"><divclass="theme-picker hidden"><buttonid="theme-picker"aria-label="Pick another theme!"aria-haspopup="menu"title="themes"><imgwidth="22"height="22"alt="Pick another theme!"src="../../brush.svg"></button><divid="theme-choices"role="menu"></div></div><formclass="search-form"><divclass="search-container"><span></span><inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"><buttontype="button"id="help-button"title="help">?</button><aid="settings-menu"href="../../settings.html"title="settings"><imgwidth="22"height="22"alt="Change settings"src="../../wheel.svg"></a></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading">
<h1class="fqn"><spanclass="in-band">Module <ahref="../index.html">map_model</a>::<wbr><aclass="mod"href="#">connectivity</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../src/map_model/connectivity/mod.rs.html#3-174">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><h2id="modules"class="small-section-header"><ahref="#modules">Modules</a></h2>
<divclass="item-table"><divclass="item-row"><divclass="item-left module-item"><aclass="fn"href="fn.all_vehicle_costs_from.html"title="map_model::connectivity::all_vehicle_costs_from fn">all_vehicle_costs_from</a></div><divclass="item-right docblock-short"><p>Starting from some initial spot, calculate the cost to all buildings. If a destination isn’t
</div></div><divclass="item-row"><divclass="item-left module-item"><aclass="fn"href="fn.all_walking_costs_from.html"title="map_model::connectivity::all_walking_costs_from fn">all_walking_costs_from</a></div><divclass="item-right docblock-short"><p>Starting from some initial buildings, calculate the cost to all others. If a destination isn’t
</div></div><divclass="item-row"><divclass="item-left module-item"><aclass="fn"href="fn.find_scc.html"title="map_model::connectivity::find_scc fn">find_scc</a></div><divclass="item-right docblock-short"><p>Calculate the strongly connected components (SCC) of the part of the map accessible by
</div></div><divclass="item-row"><divclass="item-left module-item"><aclass="fn"href="fn.vehicle_cost.html"title="map_model::connectivity::vehicle_cost fn">vehicle_cost</a></div><divclass="item-right docblock-short"><p>This returns the pathfinding cost of crossing one road and turn, in units of time. It factors
in the ideal time to cross the space and penalties for entering an access-restricted zone,
taking an unprotected turn, or going up a steep hill for some vehicle types. If this returns
<code>None</code>, then the movement isn’t actually allowed.</p>