pub enum GrowthStrategy {
Fixed,
Double,
Linear(usize),
Custom(fn(usize) -> usize),
}Expand description
Growth strategy for resizable arenas
Deliberately does not derive PartialEq: Custom carries a raw fn
pointer, and comparing fn pointers for equality is unreliable (their
addresses are not guaranteed unique across codegen units and identical
functions can be merged). Nothing in this crate compares two
GrowthStrategy values, so the honest fix is to not offer a comparison
that cannot mean what it appears to mean, rather than derive one anyway.
Variants§
Fixed
Fixed size arena (no growth)
Double
Double the size when full
Linear(usize)
Linear growth by fixed amount
Custom(fn(usize) -> usize)
Custom growth function
Trait Implementations§
Source§impl Clone for GrowthStrategy
impl Clone for GrowthStrategy
Source§fn clone(&self) -> GrowthStrategy
fn clone(&self) -> GrowthStrategy
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for GrowthStrategy
impl RefUnwindSafe for GrowthStrategy
impl Send for GrowthStrategy
impl Sync for GrowthStrategy
impl Unpin for GrowthStrategy
impl UnsafeUnpin for GrowthStrategy
impl UnwindSafe for GrowthStrategy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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