1
0
Fork 0
forked from wry/wry
wry/src/it/test_utils/test_object_ext.rs
2025-04-03 17:03:32 +02:00

17 lines
464 B
Rust

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