mentat/tokio_timer/timer/struct.Timer.html

235 lines
25 KiB
HTML
Raw Permalink Normal View History

2018-08-22 17:04:13 +00:00
<!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 `Timer` struct in crate `tokio_timer`.">
<meta name="keywords" content="rust, rustlang, rust-lang, Timer">
<title>tokio_timer::timer::Timer - 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="../../dark.css">
<link rel="stylesheet" type="text/css" href="../../main.css" id="themeStyle">
<script src="../../storage.js"></script>
</head>
<body class="rustdoc struct">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
<div class="sidebar-menu">&#9776;</div>
<p class='location'>Struct Timer</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.new">new</a><a href="#method.get_park">get_park</a><a href="#method.get_park_mut">get_park_mut</a><a href="#method.new_with_now">new_with_now</a><a href="#method.handle">handle</a><a href="#method.turn">turn</a></div><a class="sidebar-title" href="#implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-Debug">Debug</a><a href="#impl-Default">Default</a><a href="#impl-Park">Park</a><a href="#impl-Drop">Drop</a></div></div><p class='location'><a href='../index.html'>tokio_timer</a>::<wbr><a href='index.html'>timer</a></p><script>window.sidebarCurrent = {name: 'Timer', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script></div>
</nav>
<div class="theme-picker">
<button id="theme-picker" aria-label="Pick another theme!">
<img src="../../brush.svg" width="18" alt="Pick another theme!">
</button>
<div id="theme-choices"></div>
</div>
<script src="../../theme.js"></script>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content">
<h1 class='fqn'><span class='in-band'>Struct <a href='../index.html'>tokio_timer</a>::<wbr><a href='index.html'>timer</a>::<wbr><a class="struct" href=''>Timer</a></span><span class='out-of-band'><span id='render-detail'>
<a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">
[<span class='inner'>&#x2212;</span>]
</a>
</span><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#123-147' title='goto source code'>[src]</a></span></h1>
<pre class='rust struct'>pub struct Timer&lt;T, N&nbsp;=&nbsp;<a class="struct" href="../../tokio_timer/clock/struct.Clock.html" title="struct tokio_timer::clock::Clock">SystemNow</a>&gt; { /* fields omitted */ }</pre><div class='docblock'><p>Timer implementation that drives <a href="../struct.Delay.html"><code>Delay</code></a>, <a href="../struct.Interval.html"><code>Interval</code></a>, and <a href="../struct.Deadline.html"><code>Deadline</code></a>.</p>
<p>A <code>Timer</code> instance tracks the state necessary for managing time and
notifying the <a href="../struct.Delay.html"><code>Delay</code></a> instances once their deadlines are reached.</p>
<p>It is expected that a single <code>Timer</code> instance manages many individual
<code>Delay</code> instances. The <code>Timer</code> implementation is thread-safe and, as such,
is able to handle callers from across threads.</p>
<p>Callers do not use <code>Timer</code> directly to create <code>Delay</code> instances. Instead,
<a href="#method.handle"><code>Handle</code></a> is used. A handle for the timer instance is obtained by calling
<a href="#method.handle"><code>handle</code></a>. <a href="#method.handle"><code>Handle</code></a> is the type that implements <code>Clone</code> and is <code>Send + Sync</code>.</p>
<p>After creating the <code>Timer</code> instance, the caller must repeatedly call
<a href="#method.turn"><code>turn</code></a>. The timer will perform no work unless <a href="#method.turn"><code>turn</code></a> is called
repeatedly.</p>
<p>The <code>Timer</code> has a resolution of one millisecond. Any unit of time that falls
between milliseconds are rounded up to the next millisecond.</p>
<p>When the <code>Timer</code> instance is dropped, any outstanding <code>Delay</code> instance that
has not elapsed will be notified with an error. At this point, calling
<code>poll</code> on the <code>Delay</code> instance will result in <code>Err</code> being returned.</p>
<h1 id="implementation" class="section-header"><a href="#implementation">Implementation</a></h1>
<p><code>Timer</code> is based on the <a href="http://www.cs.columbia.edu/%7Enahum/w6998/papers/ton97-timing-wheels.pdf">paper by Varghese and Lauck</a>.</p>
<p>A hashed timing wheel is a vector of slots, where each slot handles a time
slice. As time progresses, the timer walks over the slot for the current
instant, and processes each entry for that slot. When the timer reaches the
end of the wheel, it starts again at the beginning.</p>
<p>The <code>Timer</code> implementation maintains six wheels arranged in a set of levels.
As the levels go up, the slots of the associated wheel represent larger
intervals of time. At each level, the wheel has 64 slots. Each slot covers a
range of time equal to the wheel at the lower level. At level zero, each
slot represents one millisecond of time.</p>
<p>The wheels are:</p>
<ul>
<li>Level 0: 64 x 1 millisecond slots.</li>
<li>Level 1: 64 x 64 millisecond slots.</li>
<li>Level 2: 64 x ~4 second slots.</li>
<li>Level 3: 64 x ~4 minute slots.</li>
<li>Level 4: 64 x ~4 hour slots.</li>
<li>Level 5: 64 x ~12 day slots.</li>
</ul>
<p>When the timer processes entries at level zero, it will notify all the
<a href="../struct.Delay.html"><code>Delay</code></a> instances as their deadlines have been reached. For all higher
levels, all entries will be redistributed across the wheel at the next level
down. Eventually, as time progresses, entries will <code>Delay</code> instances will
either be canceled (dropped) or their associated entries will reach level
zero and be notified.</p>
</div>
<h2 id='methods' class='small-section-header'>
Methods<a href='#methods' class='anchor'></a>
</h2>
<h3 id='impl' class='impl'><span class='in-band'><code>impl&lt;T&gt; <a class="struct" href="../../tokio_timer/timer/struct.Timer.html" title="struct tokio_timer::timer::Timer">Timer</a>&lt;T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../tokio_executor/park/trait.Park.html" title="trait tokio_executor::park::Park">Park</a>,&nbsp;</span></code><a href='#impl' class='anchor'></a></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#187-203' title='goto source code'>[src]</a></span></h3>
<div class='impl-items'><h4 id='method.new' class="method"><span id='new.v' class='invisible'><code>pub fn <a href='#method.new' class='fnname'>new</a>(park: T) -&gt; Self</code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#200-202' title='goto source code'>[src]</a></span></h4>
<div class='docblock'><p>Create a new <code>Timer</code> instance that uses <code>park</code> to block the current
thread.</p>
<p>Once the timer has been created, a handle can be obtained using
<a href="#method.handle"><code>handle</code></a>. The handle is used to create <code>Delay</code> instances.</p>
<p>Use <code>default</code> when constructing a <code>Timer</code> using the default <code>park</code>
instance.</p>
</div></div><h3 id='impl-1' class='impl'><span class='in-band'><code>impl&lt;T, N&gt; <a class="struct" href="../../tokio_timer/timer/struct.Timer.html" title="struct tokio_timer::timer::Timer">Timer</a>&lt;T, N&gt;</code><a href='#impl-1' class='anchor'></a></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#205-215' title='goto source code'>[src]</a></span></h3>
<div class='impl-items'><h4 id='method.get_park' class="method"><span id='get_park.v' class='invisible'><code>pub fn <a href='#method.get_park' class='fnname'>get_park</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#207-209' title='goto source code'>[src]</a></span></h4>
<div class='docblock'><p>Returns a reference to the underlying <code>Park</code> instance.</p>
</div><h4 id='method.get_park_mut' class="method"><span id='get_park_mut.v' class='invisible'><code>pub fn <a href='#method.get_park_mut' class='fnname'>get_park_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#212-214' title='goto source code'>[src]</a></span></h4>
<div class='docblock'><p>Returns a mutable reference to the underlying <code>Park</code> instance.</p>
</div></div><h3 id='impl-2' class='impl'><span class='in-band'><code>impl&lt;T, N&gt; <a class="struct" href="../../tokio_timer/timer/struct.Timer.html" title="struct tokio_timer::timer::Timer">Timer</a>&lt;T, N&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../tokio_executor/park/trait.Park.html" title="trait tokio_executor::park::Park">Park</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: Now,&nbsp;</span></code><a href='#impl-2' class='anchor'></a></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#217-446' title='goto source code'>[src]</a></span></h3>
<div class='impl-items'><h4 id='method.new_with_now' class="method"><span id='new_with_now.v' class='invisible'><code>pub fn <a href='#method.new_with_now' class='fnname'>new_with_now</a>(park: T, now: N) -&gt; Self</code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#225-239' title='goto source code'>[src]</a></span></h4>
<div class='docblock'><p>Create a new <code>Timer</code> instance that uses <code>park</code> to block the current
thread and <code>now</code> to get the current <code>Instant</code>.</p>
<p>Specifying the source of time is useful when testing.</p>
</div><h4 id='method.handle' class="method"><span id='handle.v' class='invisible'><code>pub fn <a href='#method.handle' class='fnname'>handle</a>(&amp;self) -&gt; <a class="struct" href="../../tokio_timer/timer/struct.Handle.html" title="struct tokio_timer::timer::Handle">Handle</a></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#247-249' title='goto source code'>[src]</a></span></h4>
<div class='docblock'><p>Returns a handle to the timer.</p>
<p>The <code>Handle</code> is how <code>Delay</code> instances are created. The <code>Delay</code> instances
can either be created directly or the <code>Handle</code> instance can be passed to
<code>with_default</code>, setting the timer as the default timer for the execution
context.</p>
</div><h4 id='method.turn' class="method"><span id='turn.v' class='invisible'><code>pub fn <a href='#method.turn' class='fnname'>turn</a>(&amp;mut self, max_wait: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../tokio_timer/timer/struct.Turn.html" title="struct tokio_timer::timer::Turn">Turn</a>, T::<a class="type" href="../../tokio_executor/park/trait.Park.html#associatedtype.Error" title="type tokio_executor::park::Park::Error">Error</a>&gt;</code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#270-277' title='goto source code'>[src]</a></span></h4>
<div class='docblock'><p>Performs one iteration of the timer loop.</p>
<p>This function must be called repeatedly in order for the <code>Timer</code>
instance to make progress. This is where the work happens.</p>
<p>The <code>Timer</code> will use the <code>Park</code> instance that was specified in <a href="#method.new"><code>new</code></a>
to block the current thread until the next <code>Delay</code> instance elapses. One
call to <code>turn</code> results in at most one call to <code>park.park()</code>.</p>
<h1 id="return" class="section-header"><a href="#return">Return</a></h1>
<p>On success, <code>Ok(Turn)</code> is returned, where <code>Turn</code> is a placeholder type
that currently does nothing but may, in the future, have functions add
to provide information about the call to <code>turn</code>.</p>
<p>If the call to <code>park.park()</code> fails, then <code>Err</code> is returned with the
error.</p>
</div></div>
<h2 id='implementations' class='small-section-header'>
Trait Implementations<a href='#implementations' class='anchor'></a>
</h2>
<h3 id='impl-Debug' class='impl'><span class='in-band'><code>impl&lt;T:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>, N:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="../../tokio_timer/timer/struct.Timer.html" title="struct tokio_timer::timer::Timer">Timer</a>&lt;T, N&gt;</code><a href='#impl-Debug' class='anchor'></a></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#122' title='goto source code'>[src]</a></span></h3>
<div class='impl-items'><h4 id='method.fmt' class="method"><span id='fmt.v' class='invisible'><code>fn <a href='https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt' class='fnname'>fmt</a>(&amp;self, __arg_0: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#122' title='goto source code'>[src]</a></span></h4>
<div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></div><h3 id='impl-Default' class='impl'><span class='in-band'><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="../../tokio_timer/timer/struct.Timer.html" title="struct tokio_timer::timer::Timer">Timer</a>&lt;<a class="struct" href="../../tokio_executor/park/struct.ParkThread.html" title="struct tokio_executor::park::ParkThread">ParkThread</a>, <a class="struct" href="../../tokio_timer/clock/struct.Clock.html" title="struct tokio_timer::clock::Clock">SystemNow</a>&gt;</code><a href='#impl-Default' class='anchor'></a></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#458-462' title='goto source code'>[src]</a></span></h3>
<div class='impl-items'><h4 id='method.default' class="method"><span id='default.v' class='invisible'><code>fn <a href='https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default' class='fnname'>default</a>() -&gt; Self</code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#459-461' title='goto source code'>[src]</a></span></h4>
<div class='docblock'><p>Returns the &quot;default value&quot; for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></p>
</div></div><h3 id='impl-Park' class='impl'><span class='in-band'><code>impl&lt;T, N&gt; <a class="trait" href="../../tokio_executor/park/trait.Park.html" title="trait tokio_executor::park::Park">Park</a> for <a class="struct" href="../../tokio_timer/timer/struct.Timer.html" title="struct tokio_timer::timer::Timer">Timer</a>&lt;T, N&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../tokio_executor/park/trait.Park.html" title="trait tokio_executor::park::Park">Park</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;N: Now,&nbsp;</span></code><a href='#impl-Park' class='anchor'></a></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#464-522' title='goto source code'>[src]</a></span></h3>
<div class='impl-items'><h4 id='associatedtype.Unpark' class="type"><span id='Unpark.t' class='invisible'><code>type <a href='../../tokio_executor/park/trait.Park.html#associatedtype.Unpark' class="type">Unpark</a> = T::<a class="type" href="../../tokio_executor/park/trait.Park.html#associatedtype.Unpark" title="type tokio_executor::park::Park::Unpark">Unpark</a></code></span></h4>
<div class='docblock'><p>Unpark handle type for the <code>Park</code> implementation.</p>
</div><h4 id='associatedtype.Error' class="type"><span id='Error.t' class='invisible'><code>type <a href='../../tokio_executor/park/trait.Park.html#associatedtype.Error' class="type">Error</a> = T::<a class="type" href="../../tokio_executor/park/trait.Park.html#associatedtype.Error" title="type tokio_executor::park::Park::Error">Error</a></code></span></h4>
<div class='docblock'><p>Error returned by <code>park</code></p>
</div><h4 id='method.unpark' class="method"><span id='unpark.v' class='invisible'><code>fn <a href='../../tokio_executor/park/trait.Park.html#tymethod.unpark' class='fnname'>unpark</a>(&amp;self) -&gt; Self::<a class="type" href="../../tokio_executor/park/trait.Park.html#associatedtype.Unpark" title="type tokio_executor::park::Park::Unpark">Unpark</a></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#471-473' title='goto source code'>[src]</a></span></h4>
<div class='docblock'><p>Get a new <code>Unpark</code> handle associated with this <code>Park</code> instance.</p>
</div><h4 id='method.park' class="method"><span id='park.v' class='invisible'><code>fn <a href='../../tokio_executor/park/trait.Park.html#tymethod.park' class='fnname'>park</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, Self::<a class="type" href="../../tokio_executor/park/trait.Park.html#associatedtype.Error" title="type tokio_executor::park::Park::Error">Error</a>&gt;</code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#475-497' title='goto source code'>[src]</a></span></h4>
<div class='docblock'><p>Block the current thread unless or until the token is available. <a href="../../tokio_executor/park/trait.Park.html#tymethod.park">Read more</a></p>
</div><h4 id='method.park_timeout' class="method"><span id='park_timeout.v' class='invisible'><code>fn <a href='../../tokio_executor/park/trait.Park.html#tymethod.park_timeout' class='fnname'>park_timeout</a>(&amp;mut self, duration: <a class="struct" href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, Self::<a class="type" href="../../tokio_executor/park/trait.Park.html#associatedtype.Error" title="type tokio_executor::park::Park::Error">Error</a>&gt;</code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#499-521' title='goto source code'>[src]</a></span></h4>
<div class='docblock'><p>Park the current thread for at most <code>duration</code>. <a href="../../tokio_executor/park/trait.Park.html#tymethod.park_timeout">Read more</a></p>
</div></div><h3 id='impl-Drop' class='impl'><span class='in-band'><code>impl&lt;T, N&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html" title="trait core::ops::drop::Drop">Drop</a> for <a class="struct" href="../../tokio_timer/timer/struct.Timer.html" title="struct tokio_timer::timer::Timer">Timer</a>&lt;T, N&gt;</code><a href='#impl-Drop' class='anchor'></a></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#524-530' title='goto source code'>[src]</a></span></h3>
<div class='impl-items'><h4 id='method.drop' class="method"><span id='drop.v' class='invisible'><code>fn <a href='https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html#tymethod.drop' class='fnname'>drop</a>(&amp;mut self)</code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#525-529' title='goto source code'>[src]</a></span></h4>
<div class='docblock'><p>Executes the destructor for this type. <a href="https://doc.rust-lang.org/nightly/core/ops/drop/trait.Drop.html#tymethod.drop">Read more</a></p>
</div></div></section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt><kbd>?</kbd></dt>
<dd>Show this help dialog</dd>
<dt><kbd>S</kbd></dt>
<dd>Focus the search field</dd>
<dt><kbd></kbd></dt>
<dd>Move up in search results</dd>
<dt><kbd></kbd></dt>
<dd>Move down in search results</dd>
<dt><kbd></kbd></dt>
<dd>Switch tab</dd>
<dt><kbd>&#9166;</kbd></dt>
<dd>Go to active search result</dd>
<dt><kbd>+</kbd></dt>
<dd>Expand all sections</dd>
<dt><kbd>-</kbd></dt>
<dd>Collapse all sections</dd>
</dl>
</div>
<div class="infos">
<h2>Search Tricks</h2>
<p>
Prefix searches with a type followed by a colon (e.g.
<code>fn:</code>) to restrict the search to a given type.
</p>
<p>
Accepted types are: <code>fn</code>, <code>mod</code>,
<code>struct</code>, <code>enum</code>,
<code>trait</code>, <code>type</code>, <code>macro</code>,
and <code>const</code>.
</p>
<p>
Search functions by type signature (e.g.
<code>vec -> usize</code> or <code>* -> vec</code>)
</p>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "tokio_timer";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>