morse-lib 0.4.3

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

use super::Morse;
use crate::morse::TMorse;

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

impl<'a> MorseIterator<'a> {
    pub fn init(morse: &'a Morse) -> 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.len() {
            let result = Some(&self.morse[self.index]);
            self.index += 1;
            result
        } else {
            None
        }
    }
}

pub struct MorseIntoIterator {
    pub morse: Morse,
}

impl Iterator for MorseIntoIterator {
    type Item = MorseChar;

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