Rust 结构中迭代器的可窥视性

Rust 结构中迭代器的可窥视性,rust,Rust,我有一个结构: struct Quads<'a> { mx: &'a Vec<Vec<u32>>, xs: &'a mut Peekable<Range<i32>>, ys: &'a mut Peekable<Range<i32>>, dx: i32, dy: i32, } struct QuadsUse装箱的trait对象:Peekable。为什么不呢?@

我有一个结构:

struct Quads<'a> {
   mx: &'a Vec<Vec<u32>>,
   xs: &'a mut Peekable<Range<i32>>,
   ys: &'a mut Peekable<Range<i32>>,
   dx: i32,
   dy: i32,
}

struct QuadsUse装箱的trait对象:
Peekable
。为什么不呢?@edwardw
Iterator.Peekable()
返回
Peekable
。所以我真的需要能够说“任何
迭代器
的实现都可以”@Stargateur,因为
T
在调用站点是未知的,它是由实现使用的。在这种情况下,我可以指定它始终是一个
范围
,但我正在学习其他语言中自然的东西是如何在Rust中表达的。