Files
mercator_service/tokio_timer/timer/struct.Timer.html

89 lines
36 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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="../../light.css" id="themeStyle"><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="shortcut icon" href="../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></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><a href='../../tokio_timer/index.html'><div class='logo-container'><img src='../../rust-logo.png' alt='logo'></div></a><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.get_park">get_park</a><a href="#method.get_park_mut">get_park_mut</a><a href="#method.handle">handle</a><a href="#method.new">new</a><a href="#method.new_with_now">new_with_now</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-Drop">Drop</a><a href="#impl-Park">Park</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-RefUnwindSafe">!RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">!UnwindSafe</a></div><a class="sidebar-title" href="#blanket-implementations">Blanket Implementations</a><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</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"><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><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'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#129-141' title='goto source code'>[src]</a></span><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></h1><div class="docblock type-decl hidden-by-usual-hider"><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><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.Timeout.html"><code>Timeout</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
<a href="../struct.Delay.html"><code>Delay</code></a> 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 <a href="../struct.Delay.html"><code>Delay</code></a> instances. Instead,
<a href="struct.Handle.html"><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="struct.Handle.html"><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 <a href="../struct.Delay.html"><code>Delay</code></a> instance that
has not elapsed will be notified with an error. At this point, calling
<code>poll</code> on the <a href="../struct.Delay.html"><code>Delay</code></a> 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 <a href="../struct.Delay.html"><code>Delay</code></a> 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'><code class='in-band'>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><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#173-190' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.new' class="method"><code id='new.v'>pub fn <a href='#method.new' class='fnname'>new</a>(park: T) -&gt; Self</code><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#187-189' title='goto source code'>[src]</a></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'><code class='in-band'>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><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#192-202' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.get_park' class="method"><code id='get_park.v'>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><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#194-196' title='goto source code'>[src]</a></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"><code id='get_park_mut.v'>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><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#199-201' title='goto source code'>[src]</a></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'><code class='in-band'>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><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#204-340' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.new_with_now' class="method"><code id='new_with_now.v'>pub fn <a href='#method.new_with_now' class='fnname'>new_with_now</a>(park: T, now: N) -&gt; Self</code><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#213-222' title='goto source code'>[src]</a></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"><code id='handle.v'>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><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#230-232' title='goto source code'>[src]</a></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"><code id='turn.v'>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><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#253-260' title='goto source code'>[src]</a></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><div id='implementations-list'><h3 id='impl-Debug' class='impl'><code class='in-band'>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><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#128' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.fmt' class="method hidden"><code id='fmt.v'>fn <a href='https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt' class='fnname'>fmt</a>(&amp;self, f: &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><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#128' title='goto source code'>[src]</a></h4><div class='docblock hidden'><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'><code class='in-band'>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><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#342-346' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.default' class="method hidden"><code id='default.v'>fn <a href='https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default' class='fnname'>default</a>() -&gt; Self</code><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#343-345' title='goto source code'>[src]</a></h4><div class='docblock hidden'><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-Drop' class='impl'><code class='in-band'>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><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#409-424' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.drop' class="method hidden"><code id='drop.v'>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><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#410-423' title='goto source code'>[src]</a></h4><div class='docblock hidden'><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><h3 id='impl-Park' class='impl'><code class='in-band'>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><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#348-407' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Unpark' class="type"><code id='Unpark.t'>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></h4><div class='docblock'><p>Unpark handle type for the <code>Park</code> implementation.</p>
</div><h4 id='associatedtype.Error' class="type"><code id='Error.t'>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></h4><div class='docblock'><p>Error returned by <code>park</code></p>
</div><h4 id='method.unpark' class="method hidden"><code id='unpark.v'>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><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#356-358' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Get a new <code>Unpark</code> handle associated with this <code>Park</code> instance.</p>
</div><h4 id='method.park' class="method hidden"><code id='park.v'>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><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#360-382' title='goto source code'>[src]</a></h4><div class='docblock hidden'><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 hidden"><code id='park_timeout.v'>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><a class='srclink' href='../../src/tokio_timer/timer/mod.rs.html#384-406' title='goto source code'>[src]</a></h4><div class='docblock hidden'><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></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&lt;T, N&nbsp;=&nbsp;<a class="struct" href="../../tokio_timer/clock/struct.Clock.html" title="struct tokio_timer::clock::Clock">Clock</a>&gt; !<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="../../tokio_timer/timer/struct.Timer.html" title="struct tokio_timer::timer::Timer">Timer</a>&lt;T, N&gt;</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&lt;T, N&gt; <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="../../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;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,&nbsp;</span></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&lt;T, N&gt; <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="../../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;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,&nbsp;</span></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&lt;T, N&gt; <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="../../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;N: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,&nbsp;</span></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&lt;T, N&nbsp;=&nbsp;<a class="struct" href="../../tokio_timer/clock/struct.Clock.html" title="struct tokio_timer::clock::Clock">Clock</a>&gt; !<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="../../tokio_timer/timer/struct.Timer.html" title="struct tokio_timer::timer::Timer">Timer</a>&lt;T, N&gt;</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&lt;T&gt; <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>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</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 id='type_id.v'>fn <a href='https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id' class='fnname'>type_id</a>(&amp;self) -&gt; <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>
</div></div><h3 id='impl-Borrow%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href='#impl-Borrow%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213-217' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.borrow' class="method hidden"><code id='borrow.v'>fn <a href='https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow' class='fnname'>borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#214-216' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></div><h3 id='impl-BorrowMut%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a href='#impl-BorrowMut%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220-224' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.borrow_mut' class="method hidden"><code id='borrow_mut.v'>fn <a href='https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut' class='fnname'>borrow_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><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221-223' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
</div></div><h3 id='impl-From%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</code><a href='#impl-From%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#564-568' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from' class="method hidden"><code id='from.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from' class='fnname'>from</a>(t: T) -&gt; T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#565-567' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-Into%3CU%3E' class='impl'><code class='in-band'>impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,&nbsp;</span></code><a href='#impl-Into%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#553-560' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.into' class="method hidden"><code id='into.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into' class='fnname'>into</a>(self) -&gt; U</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#557-559' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-TryFrom%3CU%3E' class='impl'><code class='in-band'>impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,&nbsp;</span></code><a href='#impl-TryFrom%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#601-610' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Error-1' class="type"><code id='Error.t-1'>type <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error' class="type">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></code></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4 id='method.try_from' class="method hidden"><code id='try_from.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from' class='fnname'>try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#607-609' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div><h3 id='impl-TryInto%3CU%3E' class='impl'><code class='in-band'>impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,&nbsp;</span></code><a href='#impl-TryInto%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#587-596' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Error-2' class="type"><code id='Error.t-2'>type <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error' class="type">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></code></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div><h4 id='method.try_into' class="method hidden"><code id='try_into.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into' class='fnname'>try_into</a>(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;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#593-595' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
</div></div></div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "tokio_timer";</script><script src="../../aliases.js"></script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>