smartstring

Struct LazyCompact

Source
pub struct LazyCompact;
Expand description

A representation similar to Compact but which doesn’t re-inline strings.

This is a variant of Compact which doesn’t aggressively inline strings. Where Compact automatically turns a heap allocated string back into an inlined string if it should become short enough, LazyCompact keeps it heap allocated once heap allocation has occurred. If your aim is to defer heap allocation as much as possible, rather than to ensure cache locality, this is the variant you want - it won’t allocate until the inline capacity is exceeded, and it also won’t deallocate once allocation has occurred, which risks reallocation if the string exceeds its inline capacity in the future.

Trait Implementations§

Source§

impl Debug for LazyCompact

Source§

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

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

impl SmartStringMode for LazyCompact

Source§

const DEALLOC: bool = false

A constant to decide whether to turn a wrapped string back into an inlined string whenever possible (true) or leave it as a wrapped string once wrapping has occurred (false).
Source§

type InlineArray = [u8; 23]

The inline string type for this layout.

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