pub struct ErofsDirectory { /* private fields */ }Expand description
A directory in the EROFS filesystem.
Implementations§
Source§impl ErofsDirectory
impl ErofsDirectory
pub fn new(volume: Arc<ErofsVolume>, node: DirectoryNode) -> Self
Trait Implementations§
Source§impl Directory for ErofsDirectory
impl Directory for ErofsDirectory
Source§fn open(
self: Arc<Self>,
scope: ExecutionScope,
path: Path,
flags: Flags,
object_request: ObjectRequestRef<'_>,
) -> Result<(), Status>
fn open( self: Arc<Self>, scope: ExecutionScope, path: Path, flags: Flags, object_request: ObjectRequestRef<'_>, ) -> Result<(), Status>
Opens a connection to this item if the
path is “.” or a connection to an item inside
this one otherwise. path will not contain any “.” or “..” components. Read moreSource§async fn read_dirents(
&self,
pos: &TraversalPosition,
sink: Box<dyn Sink>,
) -> Result<(TraversalPosition, Box<dyn Sealed>), Status>
async fn read_dirents( &self, pos: &TraversalPosition, sink: Box<dyn Sink>, ) -> Result<(TraversalPosition, Box<dyn Sealed>), Status>
Reads directory entries starting from
pos by adding them to sink.
Once finished, should return a sealed sink.Source§fn register_watcher(
self: Arc<Self>,
scope: ExecutionScope,
mask: WatchMask,
watcher: DirectoryWatcher,
) -> Result<(), Status>
fn register_watcher( self: Arc<Self>, scope: ExecutionScope, mask: WatchMask, watcher: DirectoryWatcher, ) -> Result<(), Status>
Register a watcher for this directory.
Implementations will probably want to use a
Watcher to manage watchers.Source§fn unregister_watcher(self: Arc<Self>, key: usize)
fn unregister_watcher(self: Arc<Self>, key: usize)
Unregister a watcher from this directory. The watcher should no longer
receive events.
Source§fn open_async(
self: Arc<Self>,
scope: ExecutionScope,
path: Path,
flags: Flags,
object_request: &mut ObjectRequest,
) -> impl Future<Output = Result<(), Status>> + Sendwhere
Self: Sized,
fn open_async(
self: Arc<Self>,
scope: ExecutionScope,
path: Path,
flags: Flags,
object_request: &mut ObjectRequest,
) -> impl Future<Output = Result<(), Status>> + Sendwhere
Self: Sized,
Same as
Self::open but the implementation is async. This may be more efficient if the
directory needs to do async work to open the connection.Source§fn deprecated_open(
self: Arc<Self>,
_scope: ExecutionScope,
flags: OpenFlags,
_path: Path,
server_end: ServerEnd<NodeMarker>,
)
fn deprecated_open( self: Arc<Self>, _scope: ExecutionScope, flags: OpenFlags, _path: Path, server_end: ServerEnd<NodeMarker>, )
DEPRECATED - Do not implement unless required for backwards compatibility. Called when
handling a fuchsia.io/Directory.DeprecatedOpen request.
Source§impl DirectoryEntry for ErofsDirectory
impl DirectoryEntry for ErofsDirectory
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 GetEntryInfo for ErofsDirectory
impl GetEntryInfo for ErofsDirectory
Source§fn entry_info(&self) -> EntryInfo
fn entry_info(&self) -> EntryInfo
This method is used to populate ReadDirents() output.
Source§impl Node for ErofsDirectory
impl Node for ErofsDirectory
Source§async fn get_attributes(
&self,
requested_attributes: NodeAttributesQuery,
) -> Result<NodeAttributes2, Status>
async fn get_attributes( &self, requested_attributes: NodeAttributesQuery, ) -> Result<NodeAttributes2, Status>
Returns node attributes (io2).
Source§fn will_open_as_node(&self) -> Result<(), Status>
fn will_open_as_node(&self) -> Result<(), Status>
Called when the node is about to be opened as the node protocol. Implementers can use this
to perform any initialization or reference counting. Errors here will result in the open
failing. By default, this forwards to the infallible will_clone.
Source§fn will_clone(&self)
fn will_clone(&self)
Called when the node is about to be cloned (and also by the default implementation of
will_open_as_node). Implementations that perform their own open count can use this. Each
call to
will_clone will be accompanied by an eventual call to close.fn link_into(
self: Arc<Self>,
_destination_dir: Arc<dyn MutableDirectory>,
_name: Name,
) -> impl Future<Output = Result<(), Status>> + Sendwhere
Self: Sized,
Source§fn query_filesystem(&self) -> Result<FilesystemInfo, Status>
fn query_filesystem(&self) -> Result<FilesystemInfo, Status>
Returns information about the filesystem and/or volume.
Source§fn open_as_node(
self: Arc<Self>,
scope: ExecutionScope,
options: NodeOptions,
object_request: &mut ObjectRequest,
) -> Result<(), Status>where
Self: Sized,
fn open_as_node(
self: Arc<Self>,
scope: ExecutionScope,
options: NodeOptions,
object_request: &mut ObjectRequest,
) -> Result<(), Status>where
Self: Sized,
Opens the node using the node protocol.
Source§fn list_extended_attributes(
&self,
) -> impl Future<Output = Result<Vec<Vec<u8>>, Status>> + Sendwhere
Self: Sized,
fn list_extended_attributes(
&self,
) -> impl Future<Output = Result<Vec<Vec<u8>>, Status>> + Sendwhere
Self: Sized,
List extended attributes.
Source§fn get_extended_attribute(
&self,
_name: Vec<u8>,
) -> impl Future<Output = Result<Vec<u8>, Status>> + Sendwhere
Self: Sized,
fn get_extended_attribute(
&self,
_name: Vec<u8>,
) -> impl Future<Output = Result<Vec<u8>, Status>> + Sendwhere
Self: Sized,
Get the value for an extended attribute.
Auto Trait Implementations§
impl !Freeze for ErofsDirectory
impl !RefUnwindSafe for ErofsDirectory
impl Send for ErofsDirectory
impl Sync for ErofsDirectory
impl Unpin for ErofsDirectory
impl UnsafeUnpin for ErofsDirectory
impl !UnwindSafe for ErofsDirectory
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, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
Source§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