arta_async_std/fs/
dir_entry.rs

1use arta::fs::RuntimeDirEntry;
2use futures::prelude::Future;
3use std::{
4    ffi::OsString,
5    fs::{FileType, Metadata},
6    path::PathBuf,
7};
8
9/// Async-std specific [`RuntimeDirEntry`] implementation.
10pub struct AsyncStdDirEntry {
11    pub(super) inner: async_std::fs::DirEntry,
12}
13
14impl RuntimeDirEntry for AsyncStdDirEntry {
15    #[cfg(unix)]
16    fn ino(&self) -> u64 {
17        async_std::os::unix::fs::DirEntryExt::ino(&self.inner)
18    }
19
20    fn file_name(&self) -> OsString {
21        self.inner.file_name()
22    }
23
24    fn file_type(&self) -> impl Future<Output = std::io::Result<FileType>> + Send {
25        self.inner.file_type()
26    }
27
28    fn metadata(&self) -> impl Future<Output = std::io::Result<Metadata>> + Send {
29        self.inner.metadata()
30    }
31
32    fn path(&self) -> PathBuf {
33        self.inner.path().into()
34    }
35}