use { crate::{it::test_error::TestError, object::Object}, std::{any::Any, rc::Rc}, }; pub trait TestObjectExt { fn downcast(self: Rc) -> Result, TestError>; } impl TestObjectExt for dyn Object { fn downcast(self: Rc) -> Result, TestError> { match (self as Rc).downcast() { Ok(t) => Ok(t), _ => bail!("Object has an incompatible type id"), } } }