这真的很难简明扼要地解释。但我想要的是一个结构,它有一个 Vec“A”字段,其中包含一个线程向量,在 Vec“A”内有另一个 Vec“B”。Vec "A" 拥有 Vec "B" 和线程句柄。Vec "B" 有一个统一的类型,不需要 trait 对象,但是 Vec "A" 使用 trait 对象拥有多个不同类型的 Vec "B"。基本上我不想对 Vec“B”使用特征对象,而是对 Vec“A”使用特征对象。
我试图实现上述内容,但并不总是感觉正确和错误。是否有任何实际实现或任何直接解决方法?
我确实尝试过搜索它,但我觉得如果不给谷歌写一段简短的文字,我就无法简洁地表达它。
这是我认为应该是什么样的(伪)代码:
trait Tag {}
impl Tag for u32 {}
impl Tag for i64 {}
// Vec "B"
type InnerVec<T: Tag> = Vec<T>;
struct ThreadPool {
// Vec "A"
threads: Vec<(JoinHandle<()>, InnerVec<dyn Tag>)>,
}