libdaw 0.2.0

A library for Rust for making programmable DAWs
Documentation
use crate::{
    notation::{Item, Overlapped},
    parse::IResult,
};
use nom::{
    branch::alt,
    bytes::complete::tag,
    character::complete::{multispace0, multispace1},
    combinator::cut,
    multi::separated_list1,
};

pub fn overlapped(input: &str) -> IResult<&str, Overlapped> {
    let (input, _) = alt((tag("*"), tag("overlapped")))(input)?;
    let (input, _) = multispace0(input)?;
    let (input, _) = cut(tag("("))(input)?;
    let (input, _) = multispace0(input)?;
    let (input, items) = cut(separated_list1(multispace1, Item::parse))(input)?;
    let (input, _) = multispace0(input)?;
    let (input, _) = cut(tag(")"))(input)?;
    Ok((input, Overlapped(items)))
}