恢复特征对象的具体类型

时间:2015-12-11 19:03:36

标签: casting rust traits

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但仍然无法弄清楚如何做到这一点。

0 个答案:

没有答案