我有一个数据结构,它可以表示为一些与链接对象链接的结构之间的单向图,因为链接包含元数据。
看起来像这样:
struct StateMachine {
resources: Vec<Resource>,
links: Vec<Link>,
}
struct Resource {
kind: ResourceType,
// ...
}
enum LinkTarget {
ResourceList(Vec<&Resource>),
LabelSelector(HashMap<String, String>),
}
struct Link {
from: LinkTarget,
to: LinkTarget,
metadata: SomeMetadataStruct,
}
整个结构需要可变,因为我需要能够在运行时添加和删除链接和资源。因此,我无法使用正常的生命周期模型并将资源绑定(bind)到父结构的生命周期。
我知道我需要 to "choose my own guarantee"通过选择适当的类型,但我不确定解决此问题的最佳方法是什么。
最佳答案
在 Rust 中建模类图结构不是一个简单的问题。 这里有来自 Nick Cameron 和 Niko Matsakis(Mozilla 的两位主要 Rust 开发人员)的两个有值(value)的讨论。
关于data-structures - 在 Rust 中实现类图数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34747464/