<!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 `intersection` mod in crate `sim`."><metaname="keywords"content="rust, rustlang, rust-lang, intersection"><title>sim::mechanics::intersection - 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="shortcut icon"href="../../../favicon.ico"><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='../../../sim/index.html'><divclass='logo-container rust-logo'><imgsrc='../../../rust-logo.png'alt='logo'></div></a><pclass='location'>Module intersection</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'>sim</a>::<wbr><ahref='../index.html'>mechanics</a></p><script>window.sidebarCurrent={name:'intersection',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="struct"href="struct.IntersectionSimState.html"title='sim::mechanics::intersection::IntersectionSimState struct'>IntersectionSimState</a></td><tdclass='docblock-short'><p>Manages conflicts at intersections. When an agent has reached the end of a lane, they call
maybe_start_turn to make a Request. Based on the intersection type (stop sign, traffic signal,
or a "freeform policy"), the Request gets queued or immediately accepted. When agents finish
turns or when some time passes (for traffic signals), the intersection also gets a chance to
react, maybe granting one of the pending requests.</p>