pub struct DirEntry { /* private fields */ }Implementations§
Source§impl DirEntry
impl DirEntry
Sourcepub fn builder() -> DirEntryBuilder<((), (), (), ())>
pub fn builder() -> DirEntryBuilder<((), (), (), ())>
Create a builder for building DirEntry.
On the builder, call .name(...), .inode(...), .typ(...), .offset(...) to set the values of the fields.
Finally, call .build() to create the instance of DirEntry.
Examples found in repository?
examples/memfs.rs (line 117)
112 fn readdir(&mut self, dir_ino: INode, offset: u64) -> Result<Vec<DirEntry>> {
113 let dir_main = self.inodes.get(dir_ino).ok_or(FSError::NoEntry)?;
114 let dir = dir_main.as_dir().ok_or(FSError::NotDirectory)?;
115
116 let dots = [
117 DirEntry::builder()
118 .name(".".into())
119 .inode(dir_ino)
120 .typ(FileType::Directory)
121 .offset(1)
122 .build(),
123 DirEntry::builder()
124 .name("..".into())
125 .inode(dir_main.parent().unwrap_or(ROOT_INODE))
126 .typ(FileType::Directory)
127 .offset(2)
128 .build(),
129 ];
130
131 Ok(dots
132 .into_iter()
133 .chain(
134 dir.children()
135 .enumerate()
136 .map(
137 |(off, v)| (off + 3, v), // add 3 to skip 0 and the two dots
138 )
139 .map(|(offset, (name, inode))| {
140 DirEntry::builder()
141 .name(name.clone())
142 .offset(offset as u64)
143 .inode(inode)
144 .typ(self.inodes.get(inode).unwrap().file_type())
145 .build()
146 }),
147 )
148 .skip(offset as usize)
149 .collect())
150 }Trait Implementations§
Auto Trait Implementations§
impl Freeze for DirEntry
impl RefUnwindSafe for DirEntry
impl Send for DirEntry
impl Sync for DirEntry
impl Unpin for DirEntry
impl UnsafeUnpin for DirEntry
impl UnwindSafe for DirEntry
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more