我有一个数据结构,可以表示为一些结构体之间的单向图,这些结构体通过链接对象相互连接,因为链接包含元数据。
它看起来像这样:
它看起来像这样:
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,
}
整个结构需要是可变的,因为我需要能够在运行时添加和删除链接和资源。因此,我不能使用正常的生命周期模型,并将资源绑定到父结构体的生命周期。
我明白我需要通过选择适当的类型来选择我的担保, 但不确定解决这个问题的最佳方法是什么。