Struct vmo_blob::VmoBlob

source ·
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§

source§

impl VmoBlob

source

pub fn new(vmo: Vmo) -> Arc<Self>

Trait Implementations§

source§

impl File for VmoBlob

Implement VFS trait so blobs can be accessed as files.

source§

fn executable(&self) -> bool

source§

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

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>

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>

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>

Set the attributes of this file based on the values in attrs.
source§

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>

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>

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 readable(&self) -> bool

Capabilities:
§

fn writable(&self) -> bool

§

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

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

Set the value for an extended attribute.
§

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

Preallocate disk space for this range.
§

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 GetVmo for VmoBlob

source§

fn get_vmo(&self) -> &Vmo

Returns the underlying VMO for the node.
§

const PAGER_ON_FIDL_EXECUTOR: bool = false

True if the vmo is pager backed and the pager is serviced by the same executor as the StreamIoConnection. Read more
source§

impl IsDirectory for VmoBlob

source§

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,

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,

Returns node attributes (io2).
§

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)

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 close(self: Arc<Self>)

Called when the node is closed.
§

fn query_filesystem(&self) -> Result<FilesystemInfo, Status>

Returns information about the filesystem.
§

fn open_as_node( self: Arc<Self>, scope: ExecutionScope, options: NodeOptions, object_request: &mut ObjectRequest ) -> Result<(), Status>

Opens the node using the node protocol.

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> Encode<Ambiguous1> for T

source§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _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> Encode<Ambiguous2> for T

source§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.

§

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

§

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

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

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>,

§

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>,

§

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<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more