1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
//! Iterators over text in morse code. //! //! ```rust //! fn wait_for(duration: u8) { //! // ... //! } //! fn beep_for(duration: u8) { //! // ... //! } //! //! for action in small_morse::encode("Hello in morse code!") { //! if action.state == small_morse::State::On { //! beep_for(action.duration); //! } else { //! wait_for(action.duration); //! } //! } //! ``` //! //! This library is for encoding text into morse code (not the other way around yet). //! //! It works without the standard library. #![cfg_attr(not(test), no_std)] #![warn( missing_docs, missing_debug_implementations, trivial_casts, trivial_numeric_casts, unused_import_braces, unused_qualifications )] pub(crate) mod char_map; mod morse_iter; pub use crate::morse_iter::{Action, DelayType, MorseIter, State}; /// Creates an iterator over the `Action`s necessary to send the message pub fn encode(message: &str) -> MorseIter<'_> { MorseIter::new(message) } #[derive(Clone, Copy, Debug, PartialEq, Eq)] pub(crate) enum Signal { Dot, Dash, }