我试图在嵌套的层次结构中保存引用向量(不可以选择克隆),但是我很难把握生命周期。
我试图在这里总结我的代码:
struct A {
b: B,c: C,}
impl A {
fn add(&mut self) {
for i in self.b.d.iter() {
self.c.e.push(&i);
}
}
}
struct B {
d: Vec<E>,}
struct C {
e: Vec<&E>,}
struct E {}
我正在运行一个模拟并将单个结果存储在B
中,然后仅拾取其中的一部分进行可视化,因此Vec
中的C
被编译,渲染和丢弃每一帧。
我的实际层次结构比这要复杂得多,但是我希望,如果我理解了这个问题,便可以扩大规模。
在这里如何设置生命周期?这甚至是惯用的Rust方式还是我应该重新组织实体?