lecture 3 stuff

This commit is contained in:
SowinskiBraeden committed 2026-09-29 11:57:40 -07:00
1 parent d54c1aa04a
commit 6ab13bfafa
9 files changed
+400

No files matched your search

+39
View File
@@ -0,0 +1,39 @@
// example to show how to implement an iterator
struct VecIntoIter {
v: Vec<i32>,
len: usize,
i: usize,
}
impl VecIntoIter {
fn new(v: Vec<i32>) -> VecIntoIter {
Self {
len: v.len(),
v,
i: 0
}
}
}
impl Iterator for VecIntoIter {
type Item = i32;
fn next(&mut self) -> Option<Self::Item> {
if self.i >= self.len {
return None;
}
let n = self.i;
self.i += 1;
Some(self.v[n])
}
}
fn main() {
let v = vec![1, 2, 3];
let mut it = VecIntoIter::new(v);
while let Some(x) = it.next() {
println!("{x}");
}
// println!("{v:?}"); // v is consumed
}