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