(function() {var implementors = {};
implementors["nix"] = ["impl&lt;'a&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/convert/trait.Into.html\" title=\"trait core::convert::Into\">Into</a>&lt;&amp;'a mut <a class=\"struct\" href=\"nix/sys/epoll/struct.EpollEvent.html\" title=\"struct nix::sys::epoll::EpollEvent\">EpollEvent</a>&gt; for <a class=\"enum\" href=\"https://doc.rust-lang.org/nightly/core/option/enum.Option.html\" title=\"enum core::option::Option\">Option</a>&lt;&amp;'a mut <a class=\"struct\" href=\"nix/sys/epoll/struct.EpollEvent.html\" title=\"struct nix::sys::epoll::EpollEvent\">EpollEvent</a>&gt;",];

            if (window.register_implementors) {
                window.register_implementors(implementors);
            } else {
                window.pending_implementors = implementors;
            }
        
})()
