/// Trait to extends the defaultable types. See its method documentation.
pubtraitTake: Sized {/// Replace `self` with its default value and returns the old one.
fntake(&mutself)->Self;}impl<T> Take forTwhere
T: Default + Sized,
{fntake(&mutself)->Self{std::mem::replace(self,T::default())}}