pub struct ScratchTracker<T> { /* private fields */ }
Expand description

A passthrough scratch space allocator that tracks scratch space usage.

Implementations§

source§

impl<T> ScratchTracker<T>

source

pub fn new(inner: T) -> Self

Creates a new scratch tracker from the given inner scratch space.

source

pub fn max_bytes_allocated(&self) -> usize

Returns the maximum number of bytes that were concurrently allocated during serialization.

source

pub fn max_allocations(&self) -> usize

Returns the maximum number of concurrent allocations during serialization.

source

pub fn max_alignment(&self) -> usize

Returns the maximum alignment of scratch space requested during serialization.

source

pub fn min_buffer_size(&self) -> usize

Returns the minimum buffer size required to serialize the same data.

This calculation takes into account packing efficiency for slab allocated scratch space. It is not exact, and has an error bound of max_allocations * (max_alignment - 1) bytes. This should be suitably small for most use cases.

source

pub fn min_buffer_size_max_error(&self) -> usize

Returns the maximum error term for the minimum buffer size calculation.

Trait Implementations§

source§

impl<T: Debug> Debug for ScratchTracker<T>

source§

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

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

impl<T: Fallible> Fallible for ScratchTracker<T>

§

type Error = <T as Fallible>::Error

The error produced by any failing methods.
source§

impl<T> From<T> for ScratchTracker<T>

source§

fn from(inner: T) -> Self

Converts to this type from the input type.
source§

impl<T: ScratchSpace> ScratchSpace for ScratchTracker<T>

source§

unsafe fn push_scratch( &mut self, layout: Layout ) -> Result<NonNull<[u8]>, Self::Error>

Allocates scratch space of the requested size. Read more
source§

unsafe fn pop_scratch( &mut self, ptr: NonNull<u8>, layout: Layout ) -> Result<(), Self::Error>

Deallocates previously allocated scratch space. Read more

Auto Trait Implementations§

§

impl<T> RefUnwindSafe for ScratchTracker<T>where T: RefUnwindSafe,

§

impl<T> Send for ScratchTracker<T>where T: Send,

§

impl<T> Sync for ScratchTracker<T>where T: Sync,

§

impl<T> Unpin for ScratchTracker<T>where T: Unpin,

§

impl<T> UnwindSafe for ScratchTracker<T>where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,

source§

fn deserialize( &self, deserializer: &mut D ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
source§

impl<T> From<!> for T

const: unstable · source§

fn from(t: !) -> T

Converts to this type from the input type.
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · 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> LayoutRaw for T

source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
source§

impl<T> Pointee for T

§

type Metadata = ()

The type for metadata in pointers and references to Self.
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.