<!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 `traffic_signals` mod in crate `map_model`."><metaname="keywords"content="rust, rustlang, rust-lang, traffic_signals"><title>map_model::make::traffic_signals - Rust</title><linkrel="stylesheet"type="text/css"href="../../../normalize.css"><linkrel="stylesheet"type="text/css"href="../../../rustdoc.css"id="mainThemeStyle"><linkrel="stylesheet"type="text/css"href="../../../light.css"id="themeStyle"><linkrel="stylesheet"type="text/css"href="../../../dark.css"disabled><linkrel="stylesheet"type="text/css"href="../../../ayu.css"disabled><scriptsrc="../../../storage.js"></script><noscript><linkrel="stylesheet"href="../../../noscript.css"></noscript><linkrel="icon"type="image/svg+xml"href="../../../favicon.svg">
<linkrel="alternate icon"type="image/png"href="../../../favicon-32x32.png"><styletype="text/css">#crate-search{background-image:url("../../../down-arrow.svg");}</style></head><bodyclass="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="sidebar"><divclass="sidebar-menu">☰</div><ahref='../../../map_model/index.html'><divclass='logo-container rust-logo'><imgsrc='../../../rust-logo.png'alt='logo'></div></a><pclass='location'>Module traffic_signals</p><divclass="sidebar-elems"><divclass="block items"><ul><li><ahref="#structs">Structs</a></li><li><ahref="#constants">Constants</a></li><li><ahref="#functions">Functions</a></li></ul></div><pclass='location'><ahref='../../index.html'>map_model</a>::<wbr><ahref='../index.html'>make</a></p><script>window.sidebarCurrent={name:'traffic_signals',ty:'mod',relpath:'../'};</script><scriptdefersrc="../sidebar-items.js"></script></div></nav><divclass="theme-picker"><buttonid="theme-picker"aria-label="Pick another theme!"><imgsrc="../../../brush.svg"width="18"alt="Pick another theme!"></button><divid="theme-choices"></div></div><scriptsrc="../../../theme.js"></script><navclass="sub"><formclass="search-form"><divclass="search-container"><div><selectid="crate-search"><optionvalue="All crates">All crates</option></select><inputclass="search-input"name="search"disabledautocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"></div><spanclass="help-button">?</span>
<table><trclass='module-item'><td><aclass="fn"href="fn.all_walk_all_yield.html"title='map_model::make::traffic_signals::all_walk_all_yield fn'>all_walk_all_yield</a></td><tdclass='docblock-short'></td></tr><trclass='module-item'><td><aclass="fn"href="fn.brute_force.html"title='map_model::make::traffic_signals::brute_force fn'>brute_force</a></td><tdclass='docblock-short'><p>Temporary experiment to group all movements into the smallest number of stages.</p>
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.degenerate.html"title='map_model::make::traffic_signals::degenerate fn'>degenerate</a></td><tdclass='docblock-short'></td></tr><trclass='module-item'><td><aclass="fn"href="fn.expand_all_stages.html"title='map_model::make::traffic_signals::expand_all_stages fn'>expand_all_stages</a></td><tdclass='docblock-short'></td></tr><trclass='module-item'><td><aclass="fn"href="fn.four_way_four_stage.html"title='map_model::make::traffic_signals::four_way_four_stage fn'>four_way_four_stage</a></td><tdclass='docblock-short'></td></tr><trclass='module-item'><td><aclass="fn"href="fn.four_way_two_stage.html"title='map_model::make::traffic_signals::four_way_two_stage fn'>four_way_two_stage</a></td><tdclass='docblock-short'></td></tr><trclass='module-item'><td><aclass="fn"href="fn.get_possible_policies.html"title='map_model::make::traffic_signals::get_possible_policies fn'>get_possible_policies</a></td><tdclass='docblock-short'><p>Applies a bunch of heuristics to a single intersection, returning the valid results in
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.get_sorted_incoming_roads.html"title='map_model::make::traffic_signals::get_sorted_incoming_roads fn'>get_sorted_incoming_roads</a></td><tdclass='docblock-short'><p>Return all incoming roads to an intersection, sorted by angle. This skips one-way roads
outbound from the intersection, since no turns originate from those anyway. This allows
heuristics for a 3-way intersection to not care if one of the roads happens to be a dual
</td></tr><trclass='module-item'><td><aclass="fn"href="fn.greedy_assignment.html"title='map_model::make::traffic_signals::greedy_assignment fn'>greedy_assignment</a></td><tdclass='docblock-short'></td></tr><trclass='module-item'><td><aclass="fn"href="fn.half_signal.html"title='map_model::make::traffic_signals::half_signal fn'>half_signal</a></td><tdclass='docblock-short'></td></tr><trclass='module-item'><td><aclass="fn"href="fn.helper.html"title='map_model::make::traffic_signals::helper fn'>helper</a></td><tdclass='docblock-short'></td></tr><trclass='module-item'><td><aclass="fn"href="fn.make_stages.html"title='map_model::make::traffic_signals::make_stages fn'>make_stages</a></td><tdclass='docblock-short'></td></tr><trclass='module-item'><td><aclass="fn"href="fn.new.html"title='map_model::make::traffic_signals::new fn'>new</a></td><tdclass='docblock-short'></td></tr><trclass='module-item'><td><aclass="fn"href="fn.okay_partition.html"title='map_model::make::traffic_signals::okay_partition fn'>okay_partition</a></td><tdclass='docblock-short'></td></tr><trclass='module-item'><td><aclass="fn"href="fn.stage_per_road.html"title='map_model::make::traffic_signals::stage_per_road fn'>stage_per_road</a></td><tdclass='docblock-short'></td></tr><trclass='module-item'><td><aclass="fn"href="fn.synchronize.html"title='map_model::make::traffic_signals::synchronize fn'>synchronize</a></td><tdclass='docblock-short'><p>Simple second-pass after generating all signals. Find pairs of traffic signals very close to
each other with 2 stages each, see if the primary movement of the first stages lead to each
other, and flip the order of stages if not. This is often wrong when the most common movement is
actually turning left then going straight (near Mercer for example), but not sure how we could