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 update_attributes
), 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 update_attributes(
&self,
_attributes: MutableNodeAttributes,
) -> Result<(), Status>
async fn update_attributes( &self, _attributes: MutableNodeAttributes, ) -> Result<(), Status>
Set the mutable attributes of this file based on the values in
attributes
. If the file
does not support updating all of the specified attributes, implementations should fail
with ZX_ERR_NOT_SUPPORTED
.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.
fn writable(&self) -> bool
Source§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.
Source§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.
Source§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.
Source§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.
Source§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.
Source§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 GetEntryInfo for VmoBlob
impl GetEntryInfo for VmoBlob
Source§fn entry_info(&self) -> EntryInfo
fn entry_info(&self) -> EntryInfo
This method is used to populate ReadDirents() output.
Source§impl Node for VmoBlob
impl Node for VmoBlob
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.
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.
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