1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
#[cfg(feature = "bytes")]
use bytes::Bytes;
/// anything that can be cleared
pub trait Clear {
/// Clear this make, make it equivalent to newly created object.
fn clear(&mut self);
}
impl<T> Clear for Option<T> {
fn clear(&mut self) {
self.take();
}
}
impl Clear for String {
fn clear(&mut self) {
String::clear(self);
}
}
impl<T> Clear for Vec<T> {
fn clear(&mut self) {
Vec::clear(self);
}
}
#[cfg(feature = "bytes")]
impl Clear for Bytes {
fn clear(&mut self) {
Bytes::clear(self);
}
}