我有这个工作代码:
struct Layer<'a> {
parent: Option<Box<Layer<'a>>>,
value: Box<dyn Renderable + 'a>,
}
我想要一个使用静态调度的版本:
struct Layer<'a, R: Renderable> {
parent: Option<&'a Layer<'a, /* ? */>>,
value: R,
}
替换问号的类型实现Renderable,但不一定R,T: Renderable例如可以。我想避免使用任何解决方案dyn Renderable来保持静态调度。
该类型T: Renderable在实例化时是已知的Layer并且不会改变。