У меня есть этот рабочий код:
struct Layer<'a> {
parent: Option<Box<Layer<'a>>>,
value: Box<dyn Renderable + 'a>,
}
Я хотел бы иметь версию, используя вместо этого stati c dispatch:
struct Layer<'a, R: Renderable> {
parent: Option<&'a Layer<'a, /* ? */>>,
value: R,
}
Тип, заменяющий знак вопроса, реализует Renderable
, но это не обязательно R
, это может быть, например, T: Renderable
. Я хотел бы избежать любого решения, использующего dyn Renderable
, для сохранения отправки c.
Тип T: Renderable
известен в Layer
экземпляре и не изменится.