Trait sharded_slab::Clear

source ·
pub trait Clear {
    // Required method
    fn clear(&mut self);
}
Expand description

Trait implemented by types which can be cleared in place, retaining any allocated memory.

This is essentially a generalization of methods on standard library collection types, including as Vec::clear, String::clear, and HashMap::clear. These methods drop all data stored in the collection, but retain the collection’s heap allocation for future use. Types such as BTreeMap, whose clear methods drops allocations, should not implement this trait.

When implemented for types which do not own a heap allocation, Clear should reset the type in place if possible. If the type has an empty state or stores Options, those values should be reset to the empty state. For “plain old data” types, which hold no pointers to other data and do not have an empty or initial state, it’s okay for a Clear implementation to be a no-op. In that case, it essentially serves as a marker indicating that the type may be reused to store new data.

Required Methods§

source

fn clear(&mut self)

Clear all data in self, retaining the allocated capacithy.

Implementations on Foreign Types§

source§

impl Clear for String

source§

fn clear(&mut self)

source§

impl<K, V, S> Clear for HashMap<K, V, S>
where K: Hash + Eq, S: BuildHasher,

source§

fn clear(&mut self)

source§

impl<T> Clear for Option<T>

source§

fn clear(&mut self)

source§

impl<T> Clear for Box<T>
where T: Clear,

source§

fn clear(&mut self)

source§

impl<T> Clear for Vec<T>

source§

fn clear(&mut self)

source§

impl<T, S> Clear for HashSet<T, S>
where T: Hash + Eq, S: BuildHasher,

source§

fn clear(&mut self)

source§

impl<T: Clear> Clear for Mutex<T>

source§

fn clear(&mut self)

source§

impl<T: Clear> Clear for RwLock<T>

source§

fn clear(&mut self)

Implementors§