Get

Struct Get 

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

A pending fuchsia.pkg/PackageCache.Get() request. Clients must, in order:

  1. open/write the meta blob, if Some(NeededBlob) is provided by that API
  2. enumerate all missing content blobs
  3. open/write all missing content blobs, if Some(NeededBlob) is provided by that API
  4. finish() to complete the Get() request.

Implementations§

Source§

impl Get

Source

pub fn make_open_meta_blob(&mut self) -> DeferredOpenBlob

Returns an independent object that can be used to open the meta blob for write. See Self::open_meta_blob.

Source

pub async fn open_meta_blob( &mut self, ) -> Result<Option<NeededBlob>, OpenBlobError>

Opens the meta blob for write, if it is still needed. The blob’s data can be provided using the returned NeededBlob.

Source

pub fn get_missing_blobs( &mut self, ) -> impl Stream<Item = Result<Vec<BlobInfo>, ListMissingBlobsError>> + Unpin

Determines the set of blobs that the caller must open/write to complete this Get() operation. The returned stream will never yield an empty Vec. Callers should process the missing blobs (via make_open_blob or open_blob) concurrently with reading the stream to guarantee stream termination.

Source

pub fn make_open_blob(&mut self, content_blob: BlobId) -> DeferredOpenBlob

Returns an independent object that can be used to open the content_blob for write. See Self::open_blob.

Source

pub async fn open_blob( &mut self, content_blob: BlobId, ) -> Result<Option<NeededBlob>, OpenBlobError>

Opens content_blob for write, if it is still needed. The blob’s data can be provided using the returned NeededBlob.

Source

pub async fn finish(self) -> Result<PackageDirectory, GetError>

Notifies the endpoint that all blobs have been written and wait for the response to the pending Get() request, returning the cached PackageDirectory.

Source

pub async fn abort(self)

Aborts this caching operation for the package.

Trait Implementations§

Source§

impl Debug for Get

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Get

§

impl !RefUnwindSafe for Get

§

impl Send for Get

§

impl Sync for Get

§

impl Unpin for Get

§

impl !UnwindSafe for Get

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