我有一个Vec<Box<dyn Parent>>
。 P
结构实现Parent
,并具有一个data
字段,该字段是实现Child
的泛型。有什么方法可以从data
特征返回Parent
吗?
trait Child: Clone {
type Msg;
}
trait Parent {
// fn get_child(&self) -> ?;
}
struct P<T> {
data: T,
}
impl<T: Child> Parent for P<T> {}
#[derive(Clone)]
struct A;
#[derive(Clone)]
struct B;
impl Child for A {
type Msg = ();
}
impl Child for B {
type Msg = ();
}
fn main() {
let p: Vec<Box<dyn Parent>> = vec![
Box::new(P { data: A {} }),
Box::new(P { data: B {} })
];
}