balsa 0.3.2

Reference implementation for the Balsa molecular line notation.
Documentation
use lyn::Scanner;

use super::nonzero;

pub fn digit(scanner: &mut Scanner) -> Option<u8> {
    if scanner.take(&'0') {
        Some(0)
    } else {
        nonzero(scanner)
    }
}

#[cfg(test)]
mod tests {
    use super::*;
    use pretty_assertions::assert_eq;

    #[test]
    fn not_found() {
        let mut scanner = Scanner::new("x");

        assert_eq!(digit(&mut scanner), None)
    }

    #[test]
    fn zero() {
        let mut scanner = Scanner::new("0");

        assert_eq!(digit(&mut scanner), Some(0))
    }

    #[test]
    fn non_zero() {
        let mut scanner = Scanner::new("1");

        assert_eq!(digit(&mut scanner), Some(1))
    }
}