[−][src]Function exifsd::segment_data
pub fn segment_data<'a, I: 'a>(
) -> impl Parser<Input = I, Output = &'a [u8]> + 'a where
I: RangeStream<Item = u8, Range = &'a [u8]>,
I::Error: ParseError<I::Item, I::Range, I::Position>,
Parses out an entropy-encoded data section, including 0xFF
padding.
use exifsd::*; use combine::*; let result = segment_data().parse(&[0x01, 0xFF, 0x00, 0x02, 0xFF, 0xFF, 0xD9][..]); // Note that the marker `[0xFF, 0xD9]` is not consumed. assert_eq!(result, Ok(((&[0x01, 0xFF, 0x00, 0x02, 0xFF][..]), &[0xFF, 0xD9][..]))); let result = segment_data().parse(&[0x01, 0xFF, 0x00, 0x02, 0xFF, 0xFF, 0x00][..]); // Note that the marker `[0xFF, 0x00]` is not consumed because it follows the padding. assert_eq!(result, Ok(((&[0x01, 0xFF, 0x00, 0x02, 0xFF][..]), &[0xFF, 0x00][..])));