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