33 lines
445 B
Rust
33 lines
445 B
Rust
|
//@ check-pass
|
||
|
|
||
|
trait Data {
|
||
|
type Elem;
|
||
|
}
|
||
|
|
||
|
impl<F, S: Data<Elem = F>> Data for ArrayBase<S> {
|
||
|
type Elem = F;
|
||
|
}
|
||
|
|
||
|
struct DatasetIter<'a, R: Data> {
|
||
|
data: &'a R::Elem,
|
||
|
}
|
||
|
|
||
|
pub struct ArrayBase<S> {
|
||
|
data: S,
|
||
|
}
|
||
|
|
||
|
trait Trait {
|
||
|
type Item;
|
||
|
fn next() -> Option<Self::Item>;
|
||
|
}
|
||
|
|
||
|
impl<'a, D: Data> Trait for DatasetIter<'a, ArrayBase<D>> {
|
||
|
type Item = ();
|
||
|
|
||
|
fn next() -> Option<Self::Item> {
|
||
|
None
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn main() {}
|