libdaw 0.2.0

A library for Rust for making programmable DAWs
Documentation
use super::Step;
use crate::parse::{numeric_adjustment, octave_shift, IResult};
use nom::{
    character::complete::u64,
    combinator::{map_res, opt},
};

pub fn step(input: &str) -> IResult<&str, Step> {
    let (input, step) = map_res(u64, usize::try_from)(input)?;
    let (input, numeric_adjustment) = opt(numeric_adjustment)(input)?;
    let (input, octave_shift) = opt(octave_shift)(input)?;
    Ok((
        input,
        Step {
            step,
            octave_shift: octave_shift.unwrap_or_default(),
            adjustment: numeric_adjustment.unwrap_or_default(),
        },
    ))
}