pub struct DirTable {
streams: FxHashMap<u64, OpenDir>,
next_id: u64,
}
Expand description
The table of open directories. Curiously, Unix/POSIX does not unify this into the “file descriptor” concept… everything is a file, except a directory is not?
Fields§
§streams: FxHashMap<u64, OpenDir>
Directory iterators used to emulate libc “directory streams”, as used in opendir, readdir, and closedir.
When opendir is called, a directory iterator is created on the host for the target directory, and an entry is stored in this hash map, indexed by an ID which represents the directory stream. When readdir is called, the directory stream ID is used to look up the corresponding ReadDir iterator from this map, and information from the next directory entry is returned. When closedir is called, the ReadDir iterator is removed from the map.
next_id: u64
ID number to be used by the next call to opendir
Implementations§
Trait Implementations§
source§impl VisitProvenance for DirTable
impl VisitProvenance for DirTable
fn visit_provenance(&self, visit: &mut VisitWith<'_>)
Auto Trait Implementations§
impl Freeze for DirTable
impl RefUnwindSafe for DirTable
impl Send for DirTable
impl Sync for DirTable
impl Unpin for DirTable
impl UnwindSafe for DirTable
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
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 40 bytes