INNER CODE UNIT · Rust
opt_field
informationsea/transanno · liftover-rs/src/bedparse/mod.rs:101
pub fn opt_field<'a, O, E, F>(
opt_parser: F,
) -> impl FnMut(&'a [u8]) -> IResult<&'a [u8], Option<(&'a [u8], O)>, E>
where
F: nom::Parser<&'a [u8], O, E>,
E: nom::error::ParseError<&'a [u8]>,
{
opt(map(
tuple((
tag(b"\t"),
take_while1(|x| x != b'\t' && x != b'\n'),
opt_parser,
)),
|(_, x, y)| (x, y),
))
}
pub fn parse_bed_line<'a>(input: &'a [u8]) -> IResult<&'a [u8], BedEntry<'a>> {