#![warn(clippy::copy_iterator)]
#![expect(clippy::manual_inspect)]

#[derive(Copy, Clone)]
struct Countdown(u8);

impl Iterator for Countdown {
    //~^ copy_iterator

    type Item = u8;

    fn next(&mut self) -> Option<u8> {
        self.0.checked_sub(1).map(|c| {
            self.0 = c;
            c
        })
    }
}

fn main() {
    let my_iterator = Countdown(5);
    assert_eq!(my_iterator.take(1).count(), 1);
    assert_eq!(my_iterator.count(), 5);
}
