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