【发布时间】:2021-07-19 06:39:41
【问题描述】:
我正在尝试使用索引容器的向量,例如任何实现std::ops::Index 的类型,但我找不到在实现部分为type Output 分配类型的解决方案。
据我所知,它应该是这样的:
pub struct Holder<C: Index<usize> + ExactSizeIterator> {
containers: Vec<C>
}
impl<C: Index<usize>, T> Index<usize> for Holder<C> {
type Output = T;
fn index(&self, index: usize) -> &Self::Output {
todo!();
}
}
但这显然以
结尾类型参数
T不受 impl trait、self 类型或谓词的约束 无约束类型参数 rustc(E0207)
(为了澄清,错误指向impl<C: Index<usize>, T>中的T)
但是我不知道如何将另一个泛型类型添加到 Holder 的定义中,这不仅仅是一个未使用的字段。
Holder 的目的是包含其他可索引的容器,Holder 的索引函数应该从其中一个容器中返回一个项目。
如果帖子中缺少任何内容,请告诉我。任何帮助或指点将不胜感激,谢谢!
【问题讨论】: