Skip to main content

ErofsDirectory

Struct ErofsDirectory 

Source
pub struct ErofsDirectory { /* private fields */ }
Expand description

A directory in the EROFS filesystem.

Implementations§

Source§

impl ErofsDirectory

Source

pub fn new(volume: Arc<ErofsVolume>, node: DirectoryNode) -> Self

Trait Implementations§

Source§

impl Directory for ErofsDirectory

Source§

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 more
Source§

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>

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)

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>> + Send
where 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>, )

DEPRECATED - Do not implement unless required for backwards compatibility. Called when handling a fuchsia.io/Directory.DeprecatedOpen request.
Source§

impl DirectoryEntry for ErofsDirectory

Source§

fn open_entry(self: Arc<Self>, request: OpenRequest<'_>) -> Result<(), Status>

Opens this entry.
Source§

fn scope(&self) -> Option<ExecutionScope>

The scope that should own connections to this directory entry, or None if parent scope should be used (the default). Read more
Source§

impl GetEntryInfo for ErofsDirectory

Source§

fn entry_info(&self) -> EntryInfo

This method is used to populate ReadDirents() output.
Source§

impl Node for ErofsDirectory

Source§

async fn get_attributes( &self, requested_attributes: NodeAttributesQuery, ) -> Result<NodeAttributes2, Status>

Returns node attributes (io2).
Source§

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)

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.
Source§

fn close(self: Arc<Self>)

Called when the node is closed.
Source§

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,

Opens the node using the node protocol.
Source§

fn list_extended_attributes( &self, ) -> impl Future<Output = Result<Vec<Vec<u8>>, Status>> + Send
where Self: Sized,

List extended attributes.
Source§

fn get_extended_attribute( &self, _name: Vec<u8>, ) -> impl Future<Output = Result<Vec<u8>, Status>> + Send
where Self: Sized,

Get the value for an extended attribute.
Source§

fn set_extended_attribute( &self, _name: Vec<u8>, _value: Vec<u8>, _mode: SetExtendedAttributeMode, ) -> impl Future<Output = Result<(), Status>> + Send
where Self: Sized,

Set the value for an extended attribute.
Source§

fn remove_extended_attribute( &self, _name: Vec<u8>, ) -> impl Future<Output = Result<(), Status>> + Send
where Self: Sized,

Remove the value for an extended attribute.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T, D> Encode<Ambiguous1, D> for T
where D: ResourceDialect,

Source§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl<T, D> Encode<Ambiguous2, D> for T
where D: ResourceDialect,

Source§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoAny for T
where T: 'static + Send + Sync,

Source§

fn into_any(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Cast the given object into a dyn std::any::Any.
Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V