pub struct LazyPseudoDirectoryAsync<T>(/* private fields */);Expand description
A pseudo directory that delays constructing a PseudoDirectory until a request is received.
The intended purpose of LazyPseudoDirectoryAsync is to save memory when presenting data in a
filesystem structure for debug purposes. The directory should not be accessed during regular
system usage otherwise no memory savings will occur.
This is functionally identical to LazyPseudoDirectory, except it is compatible with
ToPseudoDirectoryAsync (i.e. directories with asynchronous initializers). As a tradeoff,
any time the contents are accessed, an async lock must be acquired, which will be less
performant. As such, this should only be used when needed.
Implementations§
Trait Implementations§
Source§impl<T: ToPseudoDirectoryAsync> DirectoryEntry for LazyPseudoDirectoryAsync<T>
impl<T: ToPseudoDirectoryAsync> DirectoryEntry for LazyPseudoDirectoryAsync<T>
Source§fn open_entry(self: Arc<Self>, request: OpenRequest<'_>) -> Result<(), Status>
fn open_entry(self: Arc<Self>, request: OpenRequest<'_>) -> Result<(), Status>
Opens this entry.
Source§impl<T: ToPseudoDirectoryAsync> DirectoryEntryAsync for LazyPseudoDirectoryAsync<T>
impl<T: ToPseudoDirectoryAsync> DirectoryEntryAsync for LazyPseudoDirectoryAsync<T>
Source§async fn open_entry_async(
self: Arc<Self>,
request: OpenRequest<'_>,
) -> Result<(), Status>
async fn open_entry_async( self: Arc<Self>, request: OpenRequest<'_>, ) -> Result<(), Status>
Implementers may use this if desired by using the
spawn method below.Source§impl<T> GetEntryInfo for LazyPseudoDirectoryAsync<T>
impl<T> GetEntryInfo for LazyPseudoDirectoryAsync<T>
Source§fn entry_info(&self) -> EntryInfo
fn entry_info(&self) -> EntryInfo
This method is used to populate ReadDirents() output.
Auto Trait Implementations§
impl<T> !Freeze for LazyPseudoDirectoryAsync<T>
impl<T> !RefUnwindSafe for LazyPseudoDirectoryAsync<T>
impl<T> Send for LazyPseudoDirectoryAsync<T>where
T: Send,
impl<T> Sync for LazyPseudoDirectoryAsync<T>where
T: Send,
impl<T> Unpin for LazyPseudoDirectoryAsync<T>where
T: Unpin,
impl<T> UnsafeUnpin for LazyPseudoDirectoryAsync<T>where
T: UnsafeUnpin,
impl<T> !UnwindSafe for LazyPseudoDirectoryAsync<T>
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
§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
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