fn read_lines + Sized>()

in src/reader.rs [519:559]


    fn read_lines<E: Endian, T: GcovReader<E> + Sized>(
        fun: &mut GcovFunction,
        version: u32,
        reader: &mut T,
    ) -> Result<(), GcovReaderError> {
        let block_no = reader.read_u32()? as usize;
        let mut must_take = true;
        if block_no <= fun.blocks.len() {
            let block = &mut fun.blocks[block_no];
            let lines = &mut block.lines;
            loop {
                let line = reader.read_u32()?;
                if line != 0 {
                    if !must_take
                        || (version >= 80 && (line < fun.start_line || line > fun.end_line))
                    {
                        continue;
                    }

                    lines.push(line);
                    if line > block.line_max {
                        block.line_max = line;
                    }
                } else {
                    let filename = reader.read_string()?;
                    if filename.is_empty() {
                        break;
                    }
                    must_take = filename == fun.file_name;
                    // some lines in the block can come from an other file
                    // TODO
                }
            }
        } else {
            return Err(GcovReaderError::Str(format!(
                "Unexpected block number: {} (in {}).",
                block_no, fun.name
            )));
        }
        Ok(())
    }