Trait sharded_slab::Clear

source ·
pub trait Clear {
    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§

Clear all data in self, retaining the allocated capacithy.

Implementations on Foreign Types§

Implementors§