You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Trac3r-rust/doc/inotify/struct.Inotify.html

159 lines
38 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!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 `Inotify` struct in crate `inotify`."><meta name="keywords" content="rust, rustlang, rust-lang, Inotify"><title>inotify::Inotify - 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='../inotify/index.html'><div class='logo-container'><img src='../rust-logo.png' alt='logo'></div></a><p class='location'>Struct Inotify</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.add_watch">add_watch</a><a href="#method.close">close</a><a href="#method.init">init</a><a href="#method.read_events">read_events</a><a href="#method.read_events_blocking">read_events_blocking</a><a href="#method.rm_watch">rm_watch</a></div><a class="sidebar-title" href="#implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-AsRawFd">AsRawFd</a><a href="#impl-FromRawFd">FromRawFd</a><a href="#impl-IntoRawFd">IntoRawFd</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'>inotify</a></p><script>window.sidebarCurrent = {name: 'Inotify', 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"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" 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/inotify/inotify.rs.html#51-53' title='goto source code'>[src]</a></span><span class='in-band'>Struct <a href='index.html'>inotify</a>::<wbr><a class="struct" href=''>Inotify</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class='rust struct'>pub struct Inotify { /* fields omitted */ }</pre></div><div class='docblock'><p>Idiomatic Rust wrapper around Linux's inotify API</p>
<p><code>Inotify</code> is a wrapper around an inotify instance. It generally tries to
adhere to the underlying inotify API closely, while making access to it
safe and convenient.</p>
<p>Please refer to the <a href="index.html">top-level documentation</a> for further details and a
usage example.</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 <a class="struct" href="../inotify/struct.Inotify.html" title="struct inotify::Inotify">Inotify</a></code><a href='#impl' class='anchor'></a><a class='srclink' href='../src/inotify/inotify.rs.html#55-466' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.init' class="method"><code id='init.v'>pub fn <a href='#method.init' class='fnname'>init</a>() -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="struct" href="../inotify/struct.Inotify.html" title="struct inotify::Inotify">Inotify</a>&gt;</code><a class='srclink' href='../src/inotify/inotify.rs.html#86-116' title='goto source code'>[src]</a></h4><div class='docblock'><p>Creates an <a href="struct.Inotify.html"><code>Inotify</code></a> instance</p>
<p>Initializes an inotify instance by calling <a href="../inotify_sys/fn.inotify_init1.html"><code>inotify_init1</code></a>.</p>
<p>This method passes both flags accepted by <a href="../inotify_sys/fn.inotify_init1.html"><code>inotify_init1</code></a>, not giving
the user any choice in the matter, as not passing the flags would be
inappropriate in the context of this wrapper:</p>
<ul>
<li><a href="../inotify_sys/constant.IN_CLOEXEC.html"><code>IN_CLOEXEC</code></a> prevents leaking file descriptors to other processes.</li>
<li><a href="../inotify_sys/constant.IN_NONBLOCK.html"><code>IN_NONBLOCK</code></a> controls the blocking behavior of the inotify API,
which is entirely managed by this wrapper.</li>
</ul>
<h1 id="errors" class="section-header"><a href="#errors">Errors</a></h1>
<p>Directly returns the error from the call to <a href="../inotify_sys/fn.inotify_init1.html"><code>inotify_init1</code></a>, without
adding any error conditions of its own.</p>
<h1 id="examples" class="section-header"><a href="#examples">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">inotify</span>::<span class="ident">Inotify</span>;
<span class="kw">let</span> <span class="ident">inotify</span> <span class="op">=</span> <span class="ident">Inotify</span>::<span class="ident">init</span>()
.<span class="ident">expect</span>(<span class="string">&quot;Failed to initialize an inotify instance&quot;</span>);</pre></div>
</div><h4 id='method.add_watch' class="method"><code id='add_watch.v'>pub fn <a href='#method.add_watch' class='fnname'>add_watch</a>&lt;P&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;path: P, <br>&nbsp;&nbsp;&nbsp;&nbsp;mask: <a class="struct" href="../inotify/struct.WatchMask.html" title="struct inotify::WatchMask">WatchMask</a><br>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="struct" href="../inotify/struct.WatchDescriptor.html" title="struct inotify::WatchDescriptor">WatchDescriptor</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/std/path/struct.Path.html" title="struct std::path::Path">Path</a>&gt;,&nbsp;</span></code><a class='srclink' href='../src/inotify/inotify.rs.html#183-201' title='goto source code'>[src]</a></h4><div class='docblock'><p>Adds or updates a watch for the given path</p>
<p>Adds a new watch or updates an existing one for the file referred to by
<code>path</code>. Returns a watch descriptor that can be used to refer to this
watch later.</p>
<p>The <code>mask</code> argument defines what kind of changes the file should be
watched for, and how to do that. See the documentation of <a href="struct.WatchMask.html"><code>WatchMask</code></a>
for details.</p>
<p>If this method is used to add a new watch, a new <a href="struct.WatchDescriptor.html"><code>WatchDescriptor</code></a> is
returned. If it is used to update an existing watch, a
<a href="struct.WatchDescriptor.html"><code>WatchDescriptor</code></a> that equals the previously returned
<a href="struct.WatchDescriptor.html"><code>WatchDescriptor</code></a> for that watch is returned instead.</p>
<p>Under the hood, this method just calls <a href="../inotify_sys/fn.inotify_add_watch.html"><code>inotify_add_watch</code></a> and does
some trivial translation between the types on the Rust side and the C
side.</p>
<h1 id="attention-updating-watches-and-hardlinks" class="section-header"><a href="#attention-updating-watches-and-hardlinks">Attention: Updating watches and hardlinks</a></h1>
<p>As mentioned above, this method can be used to update an existing watch.
This is usually done by calling this method with the same <code>path</code>
argument that it has been called with before. But less obviously, it can
also happen if the method is called with a different path that happens
to link to the same inode.</p>
<p>You can detect this by keeping track of <a href="struct.WatchDescriptor.html"><code>WatchDescriptor</code></a>s and the
paths they have been returned for. If the same <a href="struct.WatchDescriptor.html"><code>WatchDescriptor</code></a> is
returned for a different path (and you haven't freed the
<a href="struct.WatchDescriptor.html"><code>WatchDescriptor</code></a> by removing the watch), you know you have two paths
pointing to the same inode, being watched by the same watch.</p>
<h1 id="errors-1" class="section-header"><a href="#errors-1">Errors</a></h1>
<p>Directly returns the error from the call to
<a href="../inotify_sys/fn.inotify_add_watch.html"><code>inotify_add_watch</code></a> (translated into an
<code>io::Error</code>), without adding any error conditions of
its own.</p>
<h1 id="examples-1" class="section-header"><a href="#examples-1">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">inotify</span>::{
<span class="ident">Inotify</span>,
<span class="ident">WatchMask</span>,
};
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">inotify</span> <span class="op">=</span> <span class="ident">Inotify</span>::<span class="ident">init</span>()
.<span class="ident">expect</span>(<span class="string">&quot;Failed to initialize an inotify instance&quot;</span>);
<span class="ident">inotify</span>.<span class="ident">add_watch</span>(<span class="string">&quot;/tmp/inotify-rs-test-file&quot;</span>, <span class="ident">WatchMask</span>::<span class="ident">MODIFY</span>)
.<span class="ident">expect</span>(<span class="string">&quot;Failed to add file watch&quot;</span>);
<span class="comment">// Handle events for the file here</span></pre></div>
</div><h4 id='method.rm_watch' class="method"><code id='rm_watch.v'>pub fn <a href='#method.rm_watch' class='fnname'>rm_watch</a>(&amp;mut self, wd: <a class="struct" href="../inotify/struct.WatchDescriptor.html" title="struct inotify::WatchDescriptor">WatchDescriptor</a>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code><a class='srclink' href='../src/inotify/inotify.rs.html#254-269' title='goto source code'>[src]</a></h4><div class='docblock'><p>Stops watching a file</p>
<p>Removes the watch represented by the provided <a href="struct.WatchDescriptor.html"><code>WatchDescriptor</code></a> by
calling <a href="../inotify_sys/fn.inotify_rm_watch.html"><code>inotify_rm_watch</code></a>. <a href="struct.WatchDescriptor.html"><code>WatchDescriptor</code></a>s can be obtained via
<a href="struct.Inotify.html#method.add_watch"><code>Inotify::add_watch</code></a>, or from the <code>wd</code> field of <a href="struct.Event.html"><code>Event</code></a>.</p>
<h1 id="errors-2" class="section-header"><a href="#errors-2">Errors</a></h1>
<p>Directly returns the error from the call to <a href="../inotify_sys/fn.inotify_rm_watch.html"><code>inotify_rm_watch</code></a>.
Returns an <a href="https://doc.rust-lang.org/std/io/struct.Error.html"><code>io::Error</code></a> with <a href="https://doc.rust-lang.org/std/io/enum.ErrorKind.html"><code>ErrorKind</code></a><code>::InvalidInput</code>, if the given
<a href="struct.WatchDescriptor.html"><code>WatchDescriptor</code></a> did not originate from this <a href="struct.Inotify.html"><code>Inotify</code></a> instance.</p>
<h1 id="examples-2" class="section-header"><a href="#examples-2">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">inotify</span>::<span class="ident">Inotify</span>;
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">inotify</span> <span class="op">=</span> <span class="ident">Inotify</span>::<span class="ident">init</span>()
.<span class="ident">expect</span>(<span class="string">&quot;Failed to initialize an inotify instance&quot;</span>);
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">buffer</span> <span class="op">=</span> [<span class="number">0</span>; <span class="number">1024</span>];
<span class="kw">let</span> <span class="ident">events</span> <span class="op">=</span> <span class="ident">inotify</span>
.<span class="ident">read_events_blocking</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">buffer</span>)
.<span class="ident">expect</span>(<span class="string">&quot;Error while waiting for events&quot;</span>);
<span class="kw">for</span> <span class="ident">event</span> <span class="kw">in</span> <span class="ident">events</span> {
<span class="ident">inotify</span>.<span class="ident">rm_watch</span>(<span class="ident">event</span>.<span class="ident">wd</span>);
}</pre></div>
</div><h4 id='method.read_events_blocking' class="method"><code id='read_events_blocking.v'>pub fn <a href='#method.read_events_blocking' class='fnname'>read_events_blocking</a>&lt;'a&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self, <br>&nbsp;&nbsp;&nbsp;&nbsp;buffer: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a mut [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a><br>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="struct" href="../inotify/struct.Events.html" title="struct inotify::Events">Events</a>&lt;'a&gt;&gt;</code><a class='srclink' href='../src/inotify/inotify.rs.html#282-294' title='goto source code'>[src]</a></h4><div class='docblock'><p>Waits until events are available, then returns them</p>
<p>Blocks the current thread until at least one event is available. If this
is not desirable, please consider <a href="struct.Inotify.html#method.read_events"><code>Inotify::read_events</code></a>.</p>
<p>This method calls <a href="struct.Inotify.html#method.read_events"><code>Inotify::read_events</code></a> internally and behaves
essentially the same, apart from the blocking behavior. Please refer to
the documentation of <a href="struct.Inotify.html#method.read_events"><code>Inotify::read_events</code></a> for more information.</p>
</div><h4 id='method.read_events' class="method"><code id='read_events.v'>pub fn <a href='#method.read_events' class='fnname'>read_events</a>&lt;'a&gt;(&amp;mut self, buffer: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a mut [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="struct" href="../inotify/struct.Events.html" title="struct inotify::Events">Events</a>&lt;'a&gt;&gt;</code><a class='srclink' href='../src/inotify/inotify.rs.html#342-390' title='goto source code'>[src]</a></h4><div class='docblock'><p>Returns any available events</p>
<p>Returns an iterator over all events that are currently available. If no
events are available, an iterator is still returned. If you need a
method that will block until at least one event is available, please
consider <a href="struct.Inotify.html#method.read_events_blocking"><code>read_events_blocking</code></a>.</p>
<p>Please note that inotify will merge identical unread events into a
single event. This means this method can not be used to count the number
of file system events.</p>
<p>The <code>buffer</code> argument, as the name indicates, is used as a buffer for
the inotify events. Its contents may be overwritten.</p>
<h1 id="errors-3" class="section-header"><a href="#errors-3">Errors</a></h1>
<p>This function directly returns all errors from the call to <a href="../libc/fn.read.html"><code>read</code></a>
(except EGAIN/EWOULDBLOCK, which result in an empty iterator). In
addition, <a href="https://doc.rust-lang.org/std/io/enum.ErrorKind.html#variant.UnexpectedEof"><code>ErrorKind::UnexpectedEof</code></a> is returned, if the call to
<a href="../libc/fn.read.html"><code>read</code></a> returns <code>0</code>, signaling end-of-file.</p>
<p>If <code>buffer</code> is too small, this will result in an error with
<a href="https://doc.rust-lang.org/std/io/enum.ErrorKind.html#variant.InvalidInput"><code>ErrorKind::InvalidInput</code></a>. On very old Linux kernels,
<a href="https://doc.rust-lang.org/std/io/enum.ErrorKind.html#variant.UnexpectedEof"><code>ErrorKind::UnexpectedEof</code></a> will be returned instead.</p>
<h1 id="examples-3" class="section-header"><a href="#examples-3">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">inotify</span>::<span class="ident">Inotify</span>;
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">inotify</span> <span class="op">=</span> <span class="ident">Inotify</span>::<span class="ident">init</span>()
.<span class="ident">expect</span>(<span class="string">&quot;Failed to initialize an inotify instance&quot;</span>);
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">buffer</span> <span class="op">=</span> [<span class="number">0</span>; <span class="number">1024</span>];
<span class="kw">let</span> <span class="ident">events</span> <span class="op">=</span> <span class="ident">inotify</span>.<span class="ident">read_events</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">buffer</span>)
.<span class="ident">expect</span>(<span class="string">&quot;Error while reading events&quot;</span>);
<span class="kw">for</span> <span class="ident">event</span> <span class="kw">in</span> <span class="ident">events</span> {
<span class="comment">// Handle event</span>
}</pre></div>
</div><h4 id='method.close' class="method"><code id='close.v'>pub fn <a href='#method.close' class='fnname'>close</a>(self) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code><a class='srclink' href='../src/inotify/inotify.rs.html#454-465' title='goto source code'>[src]</a></h4><div class='docblock'><p>Closes the inotify instance</p>
<p>Closes the file descriptor referring to the inotify instance. The user
usually doesn't have to call this function, as the underlying inotify
instance is closed automatically, when <a href="struct.Inotify.html"><code>Inotify</code></a> is dropped.</p>
<h1 id="errors-4" class="section-header"><a href="#errors-4">Errors</a></h1>
<p>Directly returns the error from the call to <a href="../libc/fn.close.html"><code>close</code></a>, without adding any
error conditions of its own.</p>
<h1 id="examples-4" class="section-header"><a href="#examples-4">Examples</a></h1>
<div class="example-wrap"><pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">inotify</span>::<span class="ident">Inotify</span>;
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">inotify</span> <span class="op">=</span> <span class="ident">Inotify</span>::<span class="ident">init</span>()
.<span class="ident">expect</span>(<span class="string">&quot;Failed to initialize an inotify instance&quot;</span>);
<span class="ident">inotify</span>.<span class="ident">close</span>()
.<span class="ident">expect</span>(<span class="string">&quot;Failed to close inotify instance&quot;</span>);</pre></div>
</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-IntoRawFd' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/sys/unix/ext/io/trait.IntoRawFd.html" title="trait std::sys::unix::ext::io::IntoRawFd">IntoRawFd</a> for <a class="struct" href="../inotify/struct.Inotify.html" title="struct inotify::Inotify">Inotify</a></code><a href='#impl-IntoRawFd' class='anchor'></a><a class='srclink' href='../src/inotify/inotify.rs.html#483-489' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.into_raw_fd' class="method hidden"><code id='into_raw_fd.v'>fn <a href='https://doc.rust-lang.org/nightly/std/sys/unix/ext/io/trait.IntoRawFd.html#tymethod.into_raw_fd' class='fnname'>into_raw_fd</a>(self) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/sys/unix/ext/io/type.RawFd.html" title="type std::sys::unix::ext::io::RawFd">RawFd</a></code><a class='srclink' href='../src/inotify/inotify.rs.html#485-488' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Consumes this object, returning the raw underlying file descriptor. <a href="https://doc.rust-lang.org/nightly/std/sys/unix/ext/io/trait.IntoRawFd.html#tymethod.into_raw_fd">Read more</a></p>
</div></div><h3 id='impl-AsRawFd' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/sys/unix/ext/io/trait.AsRawFd.html" title="trait std::sys::unix::ext::io::AsRawFd">AsRawFd</a> for <a class="struct" href="../inotify/struct.Inotify.html" title="struct inotify::Inotify">Inotify</a></code><a href='#impl-AsRawFd' class='anchor'></a><a class='srclink' href='../src/inotify/inotify.rs.html#468-473' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.as_raw_fd' class="method hidden"><code id='as_raw_fd.v'>fn <a href='https://doc.rust-lang.org/nightly/std/sys/unix/ext/io/trait.AsRawFd.html#tymethod.as_raw_fd' class='fnname'>as_raw_fd</a>(&amp;self) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/sys/unix/ext/io/type.RawFd.html" title="type std::sys::unix::ext::io::RawFd">RawFd</a></code><a class='srclink' href='../src/inotify/inotify.rs.html#470-472' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Extracts the raw file descriptor. <a href="https://doc.rust-lang.org/nightly/std/sys/unix/ext/io/trait.AsRawFd.html#tymethod.as_raw_fd">Read more</a></p>
</div></div><h3 id='impl-FromRawFd' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/sys/unix/ext/io/trait.FromRawFd.html" title="trait std::sys::unix::ext::io::FromRawFd">FromRawFd</a> for <a class="struct" href="../inotify/struct.Inotify.html" title="struct inotify::Inotify">Inotify</a></code><a href='#impl-FromRawFd' class='anchor'></a><a class='srclink' href='../src/inotify/inotify.rs.html#475-481' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from_raw_fd' class="method hidden"><code id='from_raw_fd.v'>unsafe fn <a href='https://doc.rust-lang.org/nightly/std/sys/unix/ext/io/trait.FromRawFd.html#tymethod.from_raw_fd' class='fnname'>from_raw_fd</a>(fd: <a class="type" href="https://doc.rust-lang.org/nightly/std/sys/unix/ext/io/type.RawFd.html" title="type std::sys::unix::ext::io::RawFd">RawFd</a>) -&gt; Self</code><a class='srclink' href='../src/inotify/inotify.rs.html#476-480' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Constructs a new instance of <code>Self</code> from the given raw file descriptor. <a href="https://doc.rust-lang.org/nightly/std/sys/unix/ext/io/trait.FromRawFd.html#tymethod.from_raw_fd">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-Send' class='impl'><code class='in-band'>impl <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="../inotify/struct.Inotify.html" title="struct inotify::Inotify">Inotify</a></code><a href='#impl-Send' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Unpin' class='impl'><code class='in-band'>impl <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="../inotify/struct.Inotify.html" title="struct inotify::Inotify">Inotify</a></code><a href='#impl-Unpin' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Sync' class='impl'><code class='in-band'>impl <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="../inotify/struct.Inotify.html" title="struct inotify::Inotify">Inotify</a></code><a href='#impl-Sync' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-UnwindSafe' class='impl'><code class='in-band'>impl <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="../inotify/struct.Inotify.html" title="struct inotify::Inotify">Inotify</a></code><a href='#impl-UnwindSafe' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-RefUnwindSafe' class='impl'><code class='in-band'>impl <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="../inotify/struct.Inotify.html" title="struct inotify::Inotify">Inotify</a></code><a href='#impl-RefUnwindSafe' 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-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.rs.html#544-549' 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.rs.html#546-548' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</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.rs.html#553-555' 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.rs.html#554' 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.rs.html#572-578' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Error' class="type"><code id='Error.t'>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.rs.html#575-577' 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.rs.html#560-567' 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.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.rs.html#564-566' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</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#218-220' 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#219' 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-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-215' 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' 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-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#100-102' 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#101' 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></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><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../";window.currentCrate = "inotify";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>