diff --git a/src/lib.rs b/src/lib.rs index fff84a5..aca9ed2 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -47,13 +47,13 @@ impl OwnRef<'_, T> { } impl OwnRef<'_, dyn std::any::Any> { - pub fn take(mut self) -> Option { + pub fn take(mut self) -> Result { if !self.is::() { - return None; + return Err(self); } let p = self.0.take().unwrap(); let p = p.cast::(); - Some(unsafe { p.read() }) + Ok(unsafe { p.read() }) } }