我有一个这样的数据结构:
mod nodes {
struct Node {
predecessors: Vec<Rc<Node>>
}
}
我显然不需要该模块中节点的可变性。我这里也没有循环引用。
但我有另一个模块,其中包含节点,我需要可变性:
pub mod network {
mod nodes {...}
struct Network {
nodes: Vec<Vec<Rc<RefCell<Node>>>>
}
}
我只是想不出一种方法来Rc<Node>
为节点本身创建 s 以及Rc<RefCell<Node>>
为Network
.
您对如何在nodes
模块中可变节点旁边的模块中实现不变性有任何想法network
吗?
Node
或者除了将结构内的前任节点的引用声明为 之外没有其他方法Rc<RefCell<Node>>
,即使我在这里不需要可变性(我想避免这种情况)?