pub trait Permit<T> {
// Required methods
fn new(&mut self, value: T) -> Option<Protect<T>>;
fn get<'protect>(
&mut self,
value: &'protect Protect<T>,
) -> Option<&'protect T>;
fn get_mut<'protect>(
&mut self,
value: &'protect mut Protect<T>,
) -> Option<&'protect mut T>;
fn into_inner(&mut self, value: Protect<T>) -> Option<T>;
}