morse-lib 0.4.3

Library for coding/decoding Morse Code with multilanguage support
Documentation
use crate::{MorseChar, MorseCustom};

pub struct MorseIterator<'a> {
    morse: &'a MorseCustom,
    index: usize,
}

impl<'a> MorseIterator<'a> {
    pub fn init(morse: &'a MorseCustom) -> MorseIterator<'a> {
        MorseIterator { morse, index: 0 }
    }
}

impl<'a> Iterator for MorseIterator<'a> {
    type Item = &'a MorseChar;

    fn next(&mut self) -> Option<Self::Item> {
        if self.index < self.morse.morse_str.len() {
            let result = Some(&self.morse.morse_str[self.index]);
            self.index += 1;
            result
        } else {
            None
        }
    }
}

pub struct MorseIntoIterator {
    pub morse: MorseCustom,
}

impl Iterator for MorseIntoIterator {
    type Item = MorseChar;

    fn next(&mut self) -> Option<Self::Item> {
        if self.morse.morse_str.len() == 0 {
            return None;
        }
        let result = self.morse.morse_str.remove(0);
        Some(result)
    }
}