Blob

Struct Blob 

Source
pub struct Blob<S> { /* private fields */ }
Expand description

A blob in the process of being written.

Implementations§

Source§

impl Blob<NeedsTruncate>

Source

pub async fn truncate( self, size: u64, ) -> Result<TruncateBlobSuccess, TruncateBlobError>

Truncates the blob to the given size. On success, the blob enters the writable state.

Source

pub fn deconstruct( self, ) -> (NeededBlobsProxy, BlobId, ClientEnd<BlobWriterMarker>)

Return the fields for manual handling of the protocol.

The returned BlobWriter client end is in the initial state of the protocol (GetVmo has not been called).

Once the blob has been written through the BlobWriter, BlobWritten should be called on the returned NeededBlobs proxy. The returned NeededBlobs proxy should not otherwise be used.

Source§

impl Blob<NeedsData>

Source

pub fn write( self, buf: &[u8], ) -> impl Future<Output = Result<BlobWriteSuccess, WriteBlobError>> + '_

Writes all of the given buffer to the blob.

§Panics

Panics if a write is attempted with a buf larger than the remaining blob size.

Source

pub async fn write_with_trace_callbacks( self, buf: &[u8], after_write: &(dyn Fn(u64) + Send + Sync), after_write_ack: &(dyn Fn() + Send + Sync), ) -> Result<BlobWriteSuccess, WriteBlobError>

Writes all of the given buffer to the blob.

after_write and after_write_ack are called before and after, respectively, waiting for the server to acknowledge writes. They may be called multiple times if the write of buf is chunked. after_write is given the size of each write in bytes. Useful for creating trace spans.

§Panics

Panics if a write is attempted with a buf larger than the remaining blob size.

Source§

impl Blob<NeedsBlobWritten>

Source

pub async fn blob_written(self) -> Result<(), BlobWrittenError>

Tells pkg-cache that the blob has been successfully written and can now be read.

Trait Implementations§

Source§

impl<S: Debug> Debug for Blob<S>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<S> Freeze for Blob<S>
where S: Freeze,

§

impl<S> !RefUnwindSafe for Blob<S>

§

impl<S> Send for Blob<S>
where S: Send,

§

impl<S> Sync for Blob<S>
where S: Sync,

§

impl<S> Unpin for Blob<S>
where S: Unpin,

§

impl<S> !UnwindSafe for Blob<S>

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