rustbook-learning-guide 0.1.0

A comprehensive Rust learning guide with practical examples covering ownership, traits, polymorphism, and more
Documentation
//! Iterator examples

pub fn iterator_examples() {
    println!("\n🔄 Iterator Examples");
    println!("{}", "-".repeat(21));
    
    let vec = vec![1, 2, 3, 4, 5];
    let doubled: Vec<i32> = vec.iter().map(|x| x * 2).collect();
    println!("Doubled: {:?}", doubled);
    
    let sum: i32 = vec.iter().sum();
    println!("Sum: {}", sum);
}

pub fn manual_iterator_demo() {
    println!("\n🔧 Manual Iterator Demo");
    println!("{}", "-".repeat(25));
    
    struct Counter {
        current: usize,
        max: usize,
    }
    
    impl Counter {
        fn new(max: usize) -> Counter {
            Counter { current: 0, max }
        }
    }
    
    impl Iterator for Counter {
        type Item = usize;
        
        fn next(&mut self) -> Option<Self::Item> {
            if self.current < self.max {
                let current = self.current;
                self.current += 1;
                Some(current)
            } else {
                None
            }
        }
    }
    
    let counter = Counter::new(3);
    for num in counter {
        println!("Count: {}", num);
    }
}

pub use crate::smart_pointers::{Shoe, shoes_in_size};