pub trait Resource: Any {
type Error;
// Required methods
fn deep_clone(&self) -> Result<Self, Self::Error>
where Self: Sized;
fn deep_boxed_clone(
&self
) -> Result<Box<dyn Resource<Error = Self::Error>>, Self::Error>;
unsafe fn sync_drop(&mut self) -> Result<(), Self::Error>;
}