我有这个工作代码:
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
并且不会改变。