pub trait Tuple<I, O, E> { fn parse(&self, input: I) -> IResult<I, O, E>; }
helper trait for the tuple combinator
this trait is implemented for tuples of parsers of up to 21 elements
parses the input and returns a tuple of results of each parser