pub struct VmoBlob { /* private fields */ }
Expand description
VmoBlob
is a wrapper around the fuchsia.io/File protocol. Represents an immutable blob on
Fxfs. Clients will use this library to read and execute blobs.
Implementations§
Trait Implementations§
source§impl File for VmoBlob
impl File for VmoBlob
Implement VFS trait so blobs can be accessed as files.
fn executable(&self) -> bool
source§async fn open_file(&self, _options: &FileOptions) -> Result<(), Status>
async fn open_file(&self, _options: &FileOptions) -> Result<(), Status>
Called when the file is going to be accessed, typically by a new connection.
Flags is the same as the flags passed to
fidl_fuchsia_io.Node/Open
.
The following flags are handled by the connection and do not need to be handled inside
open(): Read moresource§async fn truncate(&self, _length: u64) -> Result<(), Status>
async fn truncate(&self, _length: u64) -> Result<(), Status>
Truncate the file to |length|.
If there are pending attributes to update (see set_attrs), they should also be flushed at
this time. Otherwise, no attributes should be updated, other than size as needed.
source§async fn get_size(&self) -> Result<u64, Status>
async fn get_size(&self) -> Result<u64, Status>
Get the size of this file.
This is used to calculate seek offset relative to the end.
source§async fn get_backing_memory(&self, flags: VmoFlags) -> Result<Vmo, Status>
async fn get_backing_memory(&self, flags: VmoFlags) -> Result<Vmo, Status>
Get a VMO representing this file.
If not supported by the underlying filesystem, should return Err(NOT_SUPPORTED).
source§async fn set_attrs(
&self,
_flags: NodeAttributeFlags,
_attrs: NodeAttributes
) -> Result<(), Status>
async fn set_attrs( &self, _flags: NodeAttributeFlags, _attrs: NodeAttributes ) -> Result<(), Status>
Set the attributes of this file based on the values in
attrs
.source§async fn update_attributes(
&self,
_attributes: MutableNodeAttributes
) -> Result<(), Status>
async fn update_attributes( &self, _attributes: MutableNodeAttributes ) -> Result<(), Status>
Set the attributes of this file based on the values in
attributes
.source§async fn sync(&self, _mode: SyncMode) -> Result<(), Status>
async fn sync(&self, _mode: SyncMode) -> Result<(), Status>
Sync this file’s contents to the storage medium (probably disk).
This does not necessarily guarantee that the file will be completely written to disk once
the call returns. It merely guarantees that any changes to the file have been propagated
to the next layer in the storage stack.
source§fn event(&self) -> Result<Option<Event>, Status>
fn event(&self) -> Result<Option<Event>, Status>
Returns an optional event for the file which signals
fuchsia.io2.FileSignal
events to
clients (e.g. when a file becomes readable). See fuchsia.io2.File.Describe
.fn writable(&self) -> bool
§fn list_extended_attributes(
&self
) -> impl Future<Output = Result<Vec<Vec<u8>>, Status>> + Send
fn list_extended_attributes( &self ) -> impl Future<Output = Result<Vec<Vec<u8>>, Status>> + Send
List this files extended attributes.
§fn get_extended_attribute(
&self,
_name: Vec<u8>
) -> impl Future<Output = Result<Vec<u8>, Status>> + Send
fn get_extended_attribute( &self, _name: Vec<u8> ) -> impl Future<Output = Result<Vec<u8>, Status>> + Send
Get the value for an extended attribute.
§fn set_extended_attribute(
&self,
_name: Vec<u8>,
_value: Vec<u8>,
_mode: SetExtendedAttributeMode
) -> impl Future<Output = Result<(), Status>> + Send
fn set_extended_attribute( &self, _name: Vec<u8>, _value: Vec<u8>, _mode: SetExtendedAttributeMode ) -> impl Future<Output = Result<(), Status>> + Send
Set the value for an extended attribute.
§fn remove_extended_attribute(
&self,
_name: Vec<u8>
) -> impl Future<Output = Result<(), Status>> + Send
fn remove_extended_attribute( &self, _name: Vec<u8> ) -> impl Future<Output = Result<(), Status>> + Send
Remove the value for an extended attribute.
§fn allocate(
&self,
_offset: u64,
_length: u64,
_mode: AllocateMode
) -> impl Future<Output = Result<(), Status>> + Send
fn allocate( &self, _offset: u64, _length: u64, _mode: AllocateMode ) -> impl Future<Output = Result<(), Status>> + Send
Preallocate disk space for this range.
§fn enable_verity(
&self,
_options: VerificationOptions
) -> impl Future<Output = Result<(), Status>> + Send
fn enable_verity( &self, _options: VerificationOptions ) -> impl Future<Output = Result<(), Status>> + Send
Set the merkle tree and the descriptor for this file and mark the file as fsverity-enabled.
source§impl Node for VmoBlob
impl Node for VmoBlob
source§fn get_attrs<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<NodeAttributes, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_attrs<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<NodeAttributes, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get this node’s attributes.
source§fn get_attributes<'life0, 'async_trait>(
&'life0 self,
requested_attributes: NodeAttributesQuery
) -> Pin<Box<dyn Future<Output = Result<NodeAttributes2, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_attributes<'life0, 'async_trait>(
&'life0 self,
requested_attributes: NodeAttributesQuery
) -> Pin<Box<dyn Future<Output = Result<NodeAttributes2, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns node attributes (io2).
§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.
§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<'async_trait>(
self: Arc<Self>,
_destination_dir: Arc<dyn MutableDirectory>,
_name: Name
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
§fn query_filesystem(&self) -> Result<FilesystemInfo, Status>
fn query_filesystem(&self) -> Result<FilesystemInfo, Status>
Returns information about the filesystem.
Auto Trait Implementations§
impl Freeze for VmoBlob
impl RefUnwindSafe for VmoBlob
impl Send for VmoBlob
impl Sync for VmoBlob
impl Unpin for VmoBlob
impl UnwindSafe for VmoBlob
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