(function() {var implementors = {};
implementors["mio"] = [{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"mio/struct.Interest.html\" title=\"struct mio::Interest\">Interest</a>","synthetic":false,"types":["mio::interest::Interest"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"mio/struct.Token.html\" title=\"struct mio::Token\">Token</a>","synthetic":false,"types":["mio::token::Token"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"mio/event/struct.Event.html\" title=\"struct mio::event::Event\">Event</a>","synthetic":false,"types":["mio::event::event::Event"]},{"text":"impl&lt;'a&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"mio/event/struct.Iter.html\" title=\"struct mio::event::Iter\">Iter</a>&lt;'a&gt;","synthetic":false,"types":["mio::event::events::Iter"]},{"text":"impl <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"mio/net/struct.TcpKeepalive.html\" title=\"struct mio::net::TcpKeepalive\">TcpKeepalive</a>","synthetic":false,"types":["mio::net::tcp::socket::TcpKeepalive"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()