pub struct Reader<'buf, Fd: AsFd> {
fd: Fd,
buf: &'buf mut [MaybeUninit<u8>],
initialized: usize,
offset: usize,
}
Expand description
An inotify event iterator implemented with the read syscall.
See the RawDir
API for more details and usage examples as this API is
based on it.
Fields§
§fd: Fd
§buf: &'buf mut [MaybeUninit<u8>]
§initialized: usize
§offset: usize
Implementations§
source§impl<'buf, Fd: AsFd> Reader<'buf, Fd>
impl<'buf, Fd: AsFd> Reader<'buf, Fd>
sourcepub fn new(fd: Fd, buf: &'buf mut [MaybeUninit<u8>]) -> Self
pub fn new(fd: Fd, buf: &'buf mut [MaybeUninit<u8>]) -> Self
Create a new iterator from the given file descriptor and buffer.
source§impl<'buf, Fd: AsFd> Reader<'buf, Fd>
impl<'buf, Fd: AsFd> Reader<'buf, Fd>
sourcepub fn next(&mut self) -> Result<InotifyEvent<'_>>
pub fn next(&mut self) -> Result<InotifyEvent<'_>>
Read the next inotify event.
This is similar to [Iterator::next
] except that it doesn’t return an
Option
, because the stream doesn’t have an ending. It always returns
events or errors.
If there are no events in the buffer and none ready to be read:
- If the file descriptor was opened with
inotify::CreateFlags::NONBLOCK
, this will fail withErrno::AGAIN
. - Otherwise this will block until at least one event is ready or an error occurs.
sourcepub fn is_buffer_empty(&self) -> bool
pub fn is_buffer_empty(&self) -> bool
Returns true if the internal buffer is empty and will be refilled when
calling next
. This is useful to avoid further blocking reads.
Auto Trait Implementations§
impl<'buf, Fd> Freeze for Reader<'buf, Fd>where
Fd: Freeze,
impl<'buf, Fd> RefUnwindSafe for Reader<'buf, Fd>where
Fd: RefUnwindSafe,
impl<'buf, Fd> Send for Reader<'buf, Fd>where
Fd: Send,
impl<'buf, Fd> Sync for Reader<'buf, Fd>where
Fd: Sync,
impl<'buf, Fd> Unpin for Reader<'buf, Fd>where
Fd: Unpin,
impl<'buf, Fd> !UnwindSafe for Reader<'buf, Fd>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more