nom
macro_rules! take_until { ($i:expr, $substr:expr) => { ... }; }
take_until!(tag) => &[T] -> IResult<&[T], &[T]> consumes data until it finds the specified tag
take_until!(tag) => &[T] -> IResult<&[T], &[T]>