mirror of https://github.com/rust-lang/rust
23 lines
413 B
Rust
23 lines
413 B
Rust
use std::ops::Index;
|
|
|
|
struct MyVec<T> {
|
|
data: Vec<T>,
|
|
}
|
|
|
|
impl<T> Index<usize> for MyVec<T> {
|
|
type Output = T;
|
|
|
|
fn index(&self, i: usize) -> &T {
|
|
&self.data[i]
|
|
}
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
let v = MyVec::<Box<_>> { data: vec![Box::new(1), Box::new(2), Box::new(3)] };
|
|
let good = &v[0]; // Shouldn't fail here
|
|
let bad = v[0];
|
|
//~^ ERROR cannot move out of index of `MyVec<Box<i32>>`
|
|
}
|