[−][src]Struct jwalk::DirEntry
Representation of a file or directory.
This representation does not wrap a std::fs::DirEntry
. Instead it copies
file_name
, file_type
, and optionaly metadata
out of the underlying
std::fs::DirEntry
. This allows it to quickly drop the underlying file
descriptor.
Fields
depth: usize
Depth of this entry relative to the root directory where the walk started.
file_name: OsString
File name of this entry without leading path component.
file_type: FileType
File type for the file/directory that this entry points at.
client_state: C::DirEntryState
Field where clients can store state from within the The
process_read_dir
callback.
parent_path: Arc<Path>
Path used by this entry's parent to read this entry.
read_children_path: Option<Arc<Path>>
Path that will be used to read child entries. This is automatically set
for directories. The
process_read_dir
callback
may set this field to None
to skip reading the contents of a
particular directory.
read_children_error: Option<Error>
If read_children_path
is set and resulting fs::read_dir
generates an error
then that error is stored here.
Implementations
impl<C: ClientState> DirEntry<C>
[src]
pub fn file_type(&self) -> FileType
[src]
Return the file type for the file that this entry points to.
If this is a symbolic link and follow_links
is true
, then this
returns the type of the target.
This never makes any system calls.
pub fn file_name(&self) -> &OsStr
[src]
Return the file name of this entry.
If this entry has no file name (e.g., /
), then the full path is
returned.
pub fn depth(&self) -> usize
[src]
Returns the depth at which this entry was created relative to the root.
The smallest depth is 0
and always corresponds to the path given
to the new
function on WalkDir
. Its direct descendents have depth
1
, and their descendents have depth 2
, and so on.
pub fn path(&self) -> PathBuf
[src]
Path to the file/directory represented by this entry.
The path is created by joining parent_path
with file_name
.
pub fn path_is_symlink(&self) -> bool
[src]
Returns true
if and only if this entry was created from a symbolic
link. This is unaffected by the follow_links
setting.
When true
, the value returned by the path
method is a
symbolic link name. To get the full target path, you must call
std::fs::read_link(entry.path())
.
pub fn metadata(&self) -> Result<Metadata>
[src]
Return the metadata for the file that this entry points to.
This will follow symbolic links if and only if the WalkDir
value
has follow_links
enabled.
Platform behavior
This always calls std::fs::symlink_metadata
.
If this entry is a symbolic link and follow_links
is enabled, then
std::fs::metadata
is called instead.
Errors
Similar to std::fs::metadata
, returns errors for path values that
the program does not have permissions to access or if the path does not
exist.
pub fn parent_path(&self) -> &Path
[src]
Reference to the path of the directory containing this entry.
Trait Implementations
impl<C: ClientState> Debug for DirEntry<C>
[src]
Auto Trait Implementations
impl<C> !RefUnwindSafe for DirEntry<C>
[src]
impl<C> Send for DirEntry<C> where
<C as ClientState>::DirEntryState: Send,
[src]
<C as ClientState>::DirEntryState: Send,
impl<C> Sync for DirEntry<C> where
<C as ClientState>::DirEntryState: Sync,
[src]
<C as ClientState>::DirEntryState: Sync,
impl<C> Unpin for DirEntry<C> where
<C as ClientState>::DirEntryState: Unpin,
[src]
<C as ClientState>::DirEntryState: Unpin,
impl<C> !UnwindSafe for DirEntry<C>
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,