Struct object_store::PutPayloadMut

source ·
pub struct PutPayloadMut { /* private fields */ }
Expand description

A builder for PutPayload that avoids reallocating memory

Data is allocated in fixed blocks, which are flushed to Bytes once full. Unlike Vec this avoids needing to repeatedly reallocate blocks of memory, which typically involves copying all the previously written data to a new contiguous memory region.

Implementations§

source§

impl PutPayloadMut

source

pub fn new() -> Self

Create a new PutPayloadMut

source

pub fn with_block_size(self, block_size: usize) -> Self

Configures the minimum allocation size

Defaults to 8KB

source

pub fn extend_from_slice(&mut self, slice: &[u8])

Write bytes into this PutPayloadMut

If there is an in-progress block, data will be first written to it, flushing it to Bytes once full. If data remains to be written, a new block of memory of at least the configured block size will be allocated, to hold the remaining data.

source

pub fn push(&mut self, bytes: Bytes)

Append a Bytes to this PutPayloadMut without copying

This will close any currently buffered block populated by Self::extend_from_slice, and append bytes to this payload without copying.

source

pub fn is_empty(&self) -> bool

Returns true if this PutPayloadMut contains no bytes

source

pub fn content_length(&self) -> usize

Returns the total length of the Bytes in this payload

source

pub fn freeze(self) -> PutPayload

Convert into PutPayload

Trait Implementations§

source§

impl Debug for PutPayloadMut

source§

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

Formats the value using the given formatter. Read more
source§

impl Default for PutPayloadMut

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl From<PutPayloadMut> for PutPayload

source§

fn from(value: PutPayloadMut) -> Self

Converts to this type from the input type.

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

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

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

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

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.

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

impl<T> Same for T

§

type Output = T

Should always be Self
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.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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