在Rust中实现图形结构

在Rust中实现图形结构,rust,borrow-checker,Rust,Borrow Checker,我尝试使用以下类型表示Rust中的图形: struct Node=Vec()->Graph=Vec::new(); push(节点{edges:Vec::new()}); 退货项目; } 但当我尝试创建一个包含两个节点的图形时,其中一个节点指向另一个节点: fn创建链接{ 让mut items:Graph一旦多个结构可以指向一个节点,您将失去“一个所有者”锈迹斑斑的世界保证了你的记忆,你要么需要一个Rc,要么更深奥地说,需要一个weakref。我完全建议你通过阅读来了解这个领域的很多细节。你不

我尝试使用以下类型表示Rust中的图形:

struct Node=Vec()->Graph=Vec::new();
push(节点{edges:Vec::new()});
退货项目;
}
但当我尝试创建一个包含两个节点的图形时,其中一个节点指向另一个节点:

fn创建链接{

让mut items:Graph一旦多个结构可以指向一个节点,您将失去“一个所有者”锈迹斑斑的世界保证了你的记忆,你要么需要一个Rc,要么更深奥地说,需要一个weakref。我完全建议你通过阅读来了解这个领域的很多细节。

你不能这样做。使用
Vec
@FrenchBoiethios-谢谢-作为
图形类型或
边缘类型?或者它们应该是机器人吗h有那种类型吗?还有任何不去
RefCell
的方法,我相信它会失去我想要的生锈带来的安全保证吗?另请参见@NeilMitchell
RefCell
不会失去安全保证,但它会将它们从编译时转移到运行时。这是一个很好的链接!
cannot borrow `items` as mutable because it is also borrowed as immutable