Struct ReadDir

#[must_use = "streams do nothing unless polled"]
pub struct ReadDir(/* private field */);

Reads the entries in a directory.

This struct is returned from the read_dir function of this module and will yield instances of DirEntry. Through a DirEntry information like the entry's path and possibly other metadata can be learned.

A ReadDir can be turned into a Stream with ReadDirStream.

Errors

This stream will return an Err if there's some sort of intermittent IO error during iteration.

Implementations

impl ReadDir

async fn next_entry(&mut self) -> Result<Option<DirEntry>>

Returns the next entry in the directory stream.

Cancel safety

This method is cancel safe.

fn poll_next_entry(&mut self, cx: &mut Context<'_>) -> Poll<Result<Option<DirEntry>>>

Polls for the next directory entry in the stream.

This method returns:

  • Poll::Pending if the next directory entry is not yet available.
  • Poll::Ready(Ok(Some(entry))) if the next directory entry is available.
  • Poll::Ready(Ok(None)) if there are no more directory entries in this stream.
  • Poll::Ready(Err(err)) if an IO error occurred while reading the next directory entry.

When the method returns Poll::Pending, the Waker in the provided Context is scheduled to receive a wakeup when the next directory entry becomes available on the underlying IO resource.

Note that on multiple calls to poll_next_entry, only the Waker from the Context passed to the most recent call is scheduled to receive a wakeup.

Trait Implementations

impl Debug for ReadDir

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Auto Trait Implementations

impl !RefUnwindSafe for ReadDir

impl !UnwindSafe for ReadDir

impl Freeze for ReadDir

impl Send for ReadDir

impl Sync for ReadDir

impl Unpin for ReadDir

impl UnsafeUnpin for ReadDir

Blanket Implementations

impl<T> Any for ReadDir where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

impl<T> Borrow<T> for ReadDir where T: ?Sized,

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for ReadDir where T: ?Sized,

fn borrow_mut(&mut self) -> &mut T

impl<T> From<T> for ReadDir

fn from(t: T) -> T

Returns the argument unchanged.

impl<T, U> Into<U> for ReadDir where U: From<T>,

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom<U> for ReadDir where U: Into<T>,

type Error = never;
fn try_from(value: U) -> Result<T, never>

impl<T, U> TryInto<U> for ReadDir where U: TryFrom<T>,

type Error = <U as TryFrom<T>>::Error;
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>