【发布时间】:2020-06-23 02:42:37
【问题描述】:
我有多个现有结构,我想使用具有共享“主题”(每个主题发布一个类型)的 pubsub 机制在代码上下文之间共享它们。许多主题重用相同的结构类型,因此我想以某种方式标记原始结构以将它们重用于这些主题。比如:
trait TopicMeta {
const TOPIC: &'static str;
}
struct Point {
x: u32,
y: u32,
}
impl TopicMeta for Point as HomeLocation {
const TOPIC: &'static str = "home";
}
impl TopicMeta for Point as RoverLocation {
const TOPIC: &'static str = "rover";
}
但是,据我所知,没有办法做到这一点?
其他选项:
- 我可以为每个主题创建一个新类型,与原来的 Point 结构相同,只是名称不同。
- 我可以为每个主题创建一个包装对象,其中包含一个包含点的内部字段。
有什么建议吗?
【问题讨论】: