trait T {}
struct S;
impl T for S {}
fn use_trait_obj(o: Box<T>) -> Box<T> {
// does some stuff ...
o
}
fn main(){
let s = S;
let t: Box<T> = use_trait_obj(Box::new(s));
let s: Box<S> = ...; // ?
}
我可以将特征对象恢复为具体类型吗?
在我的用例中,T
是一个固定的特征,S
是一个用于测试目的的特殊实现,在调用该函数之后我希望检查对象的内部字段作为测试。
我尝试将T
改编为&#34;扩展&#34;特殊特征std::any::Any
但仍然无法弄清楚如何做到这一点。