nom_midi/parser/event/
sysex.rs1use crate::parser::util::parse_var_length_bytes;
4use crate::types::{EscapeSequence, SystemExclusiveEvent};
5use nom::IResult;
6
7pub fn parse_sysex_message(i: &[u8]) -> IResult<&[u8], SystemExclusiveEvent> {
8 use nom::bytes::streaming::tag;
9 let (i, _) = tag([0xF0])(i)?;
10 let (i, data) = parse_var_length_bytes(i)?;
11 Ok((i, SystemExclusiveEvent(data)))
12}
13
14pub fn parse_escape_sequence(i: &[u8]) -> IResult<&[u8], EscapeSequence> {
15 use nom::bytes::streaming::tag;
16 let (i, _) = tag([0xF7])(i)?;
17 let (i, data) = parse_var_length_bytes(i)?;
18 Ok((i, EscapeSequence(data)))
19}