Function binrw::file_ptr::parse_from_iter

source ·
pub fn parse_from_iter<Ptr, Value, Ret, Args, It, Reader>(
    it: It,
) -> impl FnOnce(&mut Reader, Endian, Args) -> BinResult<Ret>
where Ptr: IntoSeekFrom, Value: for<'a> BinRead<Args<'a> = Args>, Ret: FromIterator<Value>, Args: Clone, It: IntoIterator<Item = Ptr>, Reader: Read + Seek,
Expand description

Creates a parser that reads a collection of values from an iterator of file offsets using the BinRead implementation of Value.

Offsets are treated as relative to the position of the reader when parsing begins. Use the seek_before directive to reposition the stream in this case.

See the module documentation for more information on how use parse_from_iter.

§Examples

#[derive(BinRead)]
#[br(big)]
struct Header {
    count: u16,

    #[br(args { count: count.into() })]
    offsets: Vec<u16>,
}

#[derive(BinRead)]
#[br(big)]
struct Object {
    header: Header,
    #[br(parse_with = binrw::file_ptr::parse_from_iter(header.offsets.iter().copied()))]
    values: Vec<u8>,
}