All functions:
  Elements:
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::open
      Src: /src/image-png/tests/bugfixes.rs:7,1
    - Dst: unwrap
      Src: /src/image-png/tests/bugfixes.rs:7,1
    - Dst: DecodeOptions::default
      Src: /src/image-png/tests/bugfixes.rs:9,1
    - Dst: Self::set_skip_ancillary_crc_failures
      Src: /src/image-png/tests/bugfixes.rs:10,1
    - Dst: Decoder::new_with_options
      Src: /src/image-png/tests/bugfixes.rs:12,1
    - Dst: BufReader::new
      Src: /src/image-png/tests/bugfixes.rs:12,1
    - Dst: Decoder::read_info
      Src: /src/image-png/tests/bugfixes.rs:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 18
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 18
    functionName: issue_430
    functionSourceFile: /src/image-png/tests/bugfixes.rs
    functionUses: 0
    functionsReached:
    - Self::set_skip_ancillary_crc_failures
    - DecodeOptions::default
    - Decoder::read_info
    - File::open
    - Decoder::new_with_options
    - BufReader::new
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn issue_430()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image-png/tests/check_testimages.rs:17,1
    - Dst: collect
      Src: /src/image-png/tests/check_testimages.rs:17,1
    - Dst: BTreeMap::new
      Src: /src/image-png/tests/check_testimages.rs:18,1
    - Dst: clone
      Src: /src/image-png/tests/check_testimages.rs:21,1
    - Dst: PathBuf::push
      Src: /src/image-png/tests/check_testimages.rs:22,1
    - Dst: PathBuf::push
      Src: /src/image-png/tests/check_testimages.rs:23,1
    - Dst: glob::glob
      Src: /src/image-png/tests/check_testimages.rs:26,1
    - Dst: unwrap
      Src: /src/image-png/tests/check_testimages.rs:26,1
    - Dst: filter_map
      Src: /src/image-png/tests/check_testimages.rs:26,1
    - Dst: func
      Src: /src/image-png/tests/check_testimages.rs:28,1
    - Dst: PathBuf::clone
      Src: /src/image-png/tests/check_testimages.rs:28,1
    - Dst: Self::insert
      Src: /src/image-png/tests/check_testimages.rs:30,1
    - Dst: PathBuf::file_name
      Src: /src/image-png/tests/check_testimages.rs:33,1
    - Dst: unwrap
      Src: /src/image-png/tests/check_testimages.rs:33,1
    - Dst: to_str
      Src: /src/image-png/tests/check_testimages.rs:33,1
    - Dst: unwrap
      Src: /src/image-png/tests/check_testimages.rs:33,1
    - Dst: starts_with
      Src: /src/image-png/tests/check_testimages.rs:33,1
    - Dst: push
      Src: /src/image-png/tests/check_testimages.rs:34,1
    - Dst: PathBuf::push
      Src: /src/image-png/tests/check_testimages.rs:42,1
    - Dst: BTreeMap::new
      Src: /src/image-png/tests/check_testimages.rs:43,1
    - Dst: BufReader::new
      Src: /src/image-png/tests/check_testimages.rs:45,1
    - Dst: File::open
      Src: /src/image-png/tests/check_testimages.rs:45,1
    - Dst: unwrap
      Src: /src/image-png/tests/check_testimages.rs:45,1
    - Dst: Self::lines
      Src: /src/image-png/tests/check_testimages.rs:45,1
    - Dst: unwrap
      Src: /src/image-png/tests/check_testimages.rs:46,1
    - Dst: split
      Src: /src/image-png/tests/check_testimages.rs:47,1
    - Dst: collect
      Src: /src/image-png/tests/check_testimages.rs:47,1
    - Dst: is_empty
      Src: /src/image-png/tests/check_testimages.rs:48,1
    - Dst: push
      Src: /src/image-png/tests/check_testimages.rs:55,1
    - Dst: Self::insert
      Src: /src/image-png/tests/check_testimages.rs:61,1
    - Dst: to_string
      Src: /src/image-png/tests/check_testimages.rs:61,1
    - Dst: Self::iter
      Src: /src/image-png/tests/check_testimages.rs:82,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 87
    argCount: 3
    argNames:
    - results_path
    - test_suites
    - func
    argTypes:
    - '&str'
    - '&[&str]'
    - F
    constantsTouched: []
    func_position:
      end: 92
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 92
    functionName: process_images
    functionSourceFile: /src/image-png/tests/check_testimages.rs
    functionUses: 0
    functionsReached:
    - filter_map
    - Self::insert
    - PathBuf::file_name
    - glob::glob
    - File::open
    - BufReader::new
    - split
    - is_empty
    - clone
    - to_string
    - push
    - to_str
    - collect
    - func
    - iter
    - PathBuf::clone
    - BTreeMap::new
    - starts_with
    - PathBuf::push
    - unwrap
    - Self::lines
    - Self::iter
    linkageType: ''
    returnType: void
    signature: 'fn process_images<F>(results_path: &str, test_suites: &[&str], func:
      F)whereF: Fn(PathBuf) -> Result<u32, png::DecodingError>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: process_images
      Src: /src/image-png/tests/check_testimages.rs:96,1
    - Dst: png::Decoder::new
      Src: /src/image-png/tests/check_testimages.rs:97,1
    - Dst: BufReader::new
      Src: /src/image-png/tests/check_testimages.rs:97,1
    - Dst: File::open
      Src: /src/image-png/tests/check_testimages.rs:97,1
    - Dst: Self::set_transformations
      Src: /src/image-png/tests/check_testimages.rs:98,1
    - Dst: png::Transformations::normalize_to_color8
      Src: /src/image-png/tests/check_testimages.rs:98,1
    - Dst: Self::read_info
      Src: /src/image-png/tests/check_testimages.rs:99,1
    - Dst: Reader::next_frame
      Src: /src/image-png/tests/check_testimages.rs:101,1
    - Dst: Crc32::new
      Src: /src/image-png/tests/check_testimages.rs:111,1
    - Dst: update
      Src: /src/image-png/tests/check_testimages.rs:112,1
    - Dst: Ok
      Src: /src/image-png/tests/check_testimages.rs:113,1
    - Dst: finalize
      Src: /src/image-png/tests/check_testimages.rs:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 115
    functionName: render_images
    functionSourceFile: /src/image-png/tests/check_testimages.rs
    functionUses: 0
    functionsReached:
    - Self::set_transformations
    - png::Decoder::new
    - process_images
    - png::Transformations::normalize_to_color8
    - Reader::next_frame
    - finalize
    - File::open
    - BufReader::new
    - Ok
    - update
    - Self::read_info
    - Crc32::new
    linkageType: ''
    returnType: void
    signature: fn render_images()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: process_images
      Src: /src/image-png/tests/check_testimages.rs:119,1
    - Dst: png::Decoder::new
      Src: /src/image-png/tests/check_testimages.rs:120,1
    - Dst: BufReader::new
      Src: /src/image-png/tests/check_testimages.rs:120,1
    - Dst: File::open
      Src: /src/image-png/tests/check_testimages.rs:120,1
    - Dst: Self::read_info
      Src: /src/image-png/tests/check_testimages.rs:121,1
    - Dst: Reader::next_frame
      Src: /src/image-png/tests/check_testimages.rs:123,1
    - Dst: samples
      Src: /src/image-png/tests/check_testimages.rs:125,1
    - Dst: Crc32::new
      Src: /src/image-png/tests/check_testimages.rs:136,1
    - Dst: update
      Src: /src/image-png/tests/check_testimages.rs:137,1
    - Dst: Ok
      Src: /src/image-png/tests/check_testimages.rs:138,1
    - Dst: finalize
      Src: /src/image-png/tests/check_testimages.rs:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 140
    functionName: render_images_identity
    functionSourceFile: /src/image-png/tests/check_testimages.rs
    functionUses: 0
    functionsReached:
    - png::Decoder::new
    - process_images
    - samples
    - Reader::next_frame
    - finalize
    - File::open
    - BufReader::new
    - Ok
    - update
    - Self::read_info
    - Crc32::new
    linkageType: ''
    returnType: void
    signature: fn render_images_identity()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: process_images
      Src: /src/image-png/tests/check_testimages.rs:144,1
    - Dst: png::Decoder::new
      Src: /src/image-png/tests/check_testimages.rs:145,1
    - Dst: BufReader::new
      Src: /src/image-png/tests/check_testimages.rs:145,1
    - Dst: File::open
      Src: /src/image-png/tests/check_testimages.rs:145,1
    - Dst: Self::set_transformations
      Src: /src/image-png/tests/check_testimages.rs:146,1
    - Dst: Self::read_info
      Src: /src/image-png/tests/check_testimages.rs:147,1
    - Dst: Reader::next_frame
      Src: /src/image-png/tests/check_testimages.rs:149,1
    - Dst: samples
      Src: /src/image-png/tests/check_testimages.rs:151,1
    - Dst: Crc32::new
      Src: /src/image-png/tests/check_testimages.rs:162,1
    - Dst: update
      Src: /src/image-png/tests/check_testimages.rs:163,1
    - Dst: Ok
      Src: /src/image-png/tests/check_testimages.rs:164,1
    - Dst: finalize
      Src: /src/image-png/tests/check_testimages.rs:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 166
    functionName: render_images_alpha
    functionSourceFile: /src/image-png/tests/check_testimages.rs
    functionUses: 0
    functionsReached:
    - Self::set_transformations
    - png::Decoder::new
    - process_images
    - samples
    - Reader::next_frame
    - finalize
    - File::open
    - BufReader::new
    - Ok
    - update
    - Self::read_info
    - Crc32::new
    linkageType: ''
    returnType: void
    signature: fn render_images_alpha()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: process_images
      Src: /src/image-png/tests/check_testimages.rs:170,1
    - Dst: PathBuf::file_stem
      Src: /src/image-png/tests/check_testimages.rs:172,1
    - Dst: expect
      Src: /src/image-png/tests/check_testimages.rs:172,1
    - Dst: to_str
      Src: /src/image-png/tests/check_testimages.rs:172,1
    - Dst: expect
      Src: /src/image-png/tests/check_testimages.rs:172,1
    - Dst: rsplit
      Src: /src/image-png/tests/check_testimages.rs:177,1
    - Dst: next
      Src: /src/image-png/tests/check_testimages.rs:177,1
    - Dst: expect
      Src: /src/image-png/tests/check_testimages.rs:177,1
    - Dst: parse
      Src: /src/image-png/tests/check_testimages.rs:177,1
    - Dst: expect
      Src: /src/image-png/tests/check_testimages.rs:177,1
    - Dst: png::Decoder::new
      Src: /src/image-png/tests/check_testimages.rs:186,1
    - Dst: BufReader::new
      Src: /src/image-png/tests/check_testimages.rs:186,1
    - Dst: File::open
      Src: /src/image-png/tests/check_testimages.rs:186,1
    - Dst: Self::set_transformations
      Src: /src/image-png/tests/check_testimages.rs:187,1
    - Dst: png::Transformations::normalize_to_color8
      Src: /src/image-png/tests/check_testimages.rs:187,1
    - Dst: Self::read_info
      Src: /src/image-png/tests/check_testimages.rs:188,1
    - Dst: Reader::info
      Src: /src/image-png/tests/check_testimages.rs:190,1
    - Dst: '&Info::animation_control'
      Src: /src/image-png/tests/check_testimages.rs:190,1
    - Dst: Option::unwrap
      Src: /src/image-png/tests/check_testimages.rs:190,1
    - Dst: Crc32::new
      Src: /src/image-png/tests/check_testimages.rs:199,1
    - Dst: Reader::next_frame
      Src: /src/image-png/tests/check_testimages.rs:201,1
    - Dst: update
      Src: /src/image-png/tests/check_testimages.rs:202,1
    - Dst: Ok
      Src: /src/image-png/tests/check_testimages.rs:204,1
    - Dst: finalize
      Src: /src/image-png/tests/check_testimages.rs:204,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 206
    functionName: apng_images
    functionSourceFile: /src/image-png/tests/check_testimages.rs
    functionUses: 0
    functionsReached:
    - png::Decoder::new
    - Option::unwrap
    - png::Transformations::normalize_to_color8
    - finalize
    - File::open
    - PathBuf::file_stem
    - BufReader::new
    - Reader::info
    - Self::read_info
    - '&Info::animation_control'
    - next
    - to_str
    - process_images
    - Reader::next_frame
    - expect
    - Self::set_transformations
    - Ok
    - parse
    - rsplit
    - update
    - Crc32::new
    linkageType: ''
    returnType: void
    signature: fn apng_images()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::components
      Src: /src/image-png/tests/check_testimages.rs:210,1
    - Dst: peekable
      Src: /src/image-png/tests/check_testimages.rs:210,1
    - Dst: peek
      Src: /src/image-png/tests/check_testimages.rs:211,1
    - Dst: cloned
      Src: /src/image-png/tests/check_testimages.rs:211,1
    - Dst: next
      Src: /src/image-png/tests/check_testimages.rs:212,1
    - Dst: PathBuf::from
      Src: /src/image-png/tests/check_testimages.rs:213,1
    - Dst: as_os_str
      Src: /src/image-png/tests/check_testimages.rs:213,1
    - Dst: PathBuf::new
      Src: /src/image-png/tests/check_testimages.rs:215,1
    - Dst: push
      Src: /src/image-png/tests/check_testimages.rs:222,1
    - Dst: as_os_str
      Src: /src/image-png/tests/check_testimages.rs:222,1
    - Dst: pop
      Src: /src/image-png/tests/check_testimages.rs:226,1
    - Dst: push
      Src: /src/image-png/tests/check_testimages.rs:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&Path'
    constantsTouched: []
    func_position:
      end: 234
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 234
    functionName: normalize_path
    functionSourceFile: /src/image-png/tests/check_testimages.rs
    functionUses: 0
    functionsReached:
    - as_os_str
    - push
    - pop
    - peek
    - peekable
    - PathBuf::from
    - PathBuf::new
    - PathBuf::components
    - cloned
    - next
    linkageType: ''
    returnType: PathBuf
    signature: 'fn normalize_path(path: &Path) -> PathBuf'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rc::new
      Src: /src/image-png/tests/partial_decode.rs:11,1
    - Dst: RefCell::new
      Src: /src/image-png/tests/partial_decode.rs:11,1
    - Dst: Cursor::new
      Src: /src/image-png/tests/partial_decode.rs:11,1
    - Dst: Vec::new
      Src: /src/image-png/tests/partial_decode.rs:11,1
    - Dst: Vec::new
      Src: /src/image-png/tests/partial_decode.rs:12,1
    - Dst: clone
      Src: /src/image-png/tests/partial_decode.rs:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 16
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 16
    functionName: pipe::create
    functionSourceFile: /src/image-png/tests/partial_decode.rs
    functionUses: 0
    functionsReached:
    - clone
    - Vec::new
    - Cursor::new
    - RefCell::new
    - Rc::new
    linkageType: ''
    returnType: (impl BufRead + Seek, impl Write)
    signature: pub fn create() -> (impl BufRead + Seek, impl Write)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create
      Src: /src/image-png/tests/partial_decode.rs:68,1
    - Dst: unwrap
      Src: /src/image-png/tests/partial_decode.rs:69,1
    - Dst: std::io::read_to_string
      Src: /src/image-png/tests/partial_decode.rs:71,1
    - Dst: unwrap
      Src: /src/image-png/tests/partial_decode.rs:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: pipe::test_pipe
    functionSourceFile: /src/image-png/tests/partial_decode.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - std::io::read_to_string
    - create
    linkageType: ''
    returnType: void
    signature: fn test_pipe()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pipe::create
      Src: /src/image-png/tests/partial_decode.rs:123,1
    - Dst: split_at
      Src: /src/image-png/tests/partial_decode.rs:124,1
    - Dst: write_all
      Src: /src/image-png/tests/partial_decode.rs:125,1
    - Dst: unwrap
      Src: /src/image-png/tests/partial_decode.rs:125,1
    - Dst: Decoder::new
      Src: /src/image-png/tests/partial_decode.rs:128,1
    - Dst: Decoder::read_info
      Src: /src/image-png/tests/partial_decode.rs:128,1
    - Dst: Result::unwrap
      Src: /src/image-png/tests/partial_decode.rs:128,1
    - Dst: Reader::next_frame
      Src: /src/image-png/tests/partial_decode.rs:130,1
    - Dst: Result::unwrap_err
      Src: /src/image-png/tests/partial_decode.rs:131,1
    - Dst: write_all
      Src: /src/image-png/tests/partial_decode.rs:138,1
    - Dst: unwrap
      Src: /src/image-png/tests/partial_decode.rs:138,1
    - Dst: Reader::next_frame
      Src: /src/image-png/tests/partial_decode.rs:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 141
    functionName: test_partial_decode_with_unterminated_redundant_zlib_tail
    functionSourceFile: /src/image-png/tests/partial_decode.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Decoder::new
    - split_at
    - Reader::next_frame
    - Decoder::read_info
    - Result::unwrap_err
    - write_all
    - pipe::create
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_partial_decode_with_unterminated_redundant_zlib_tail()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Decoder::new
      Src: /src/image-png/tests/partial_decode.rs:161,1
    - Dst: std::io::Cursor::new
      Src: /src/image-png/tests/partial_decode.rs:161,1
    - Dst: Decoder::read_info
      Src: /src/image-png/tests/partial_decode.rs:161,1
    - Dst: Result::unwrap
      Src: /src/image-png/tests/partial_decode.rs:161,1
    - Dst: Reader::read_row
      Src: /src/image-png/tests/partial_decode.rs:169,1
    - Dst: Reader::read_row
      Src: /src/image-png/tests/partial_decode.rs:174,1
    - Dst: Result::unwrap_err
      Src: /src/image-png/tests/partial_decode.rs:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 179
    functionName: test_partial_decode_success
    functionSourceFile: /src/image-png/tests/partial_decode.rs
    functionUses: 0
    functionsReached:
    - Reader::read_row
    - Result::unwrap
    - Decoder::new
    - Result::unwrap_err
    - Decoder::read_info
    - std::io::Cursor::new
    linkageType: ''
    returnType: void
    signature: fn test_partial_decode_success()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::count_samples
      Src: /src/image-png/src/adam7.rs:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - pass
    - line
    - width
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: Adam7Info::new
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - Result::count_samples
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(pass: u8, line: u32, width: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Adam7Info::pass_constants
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PassConstants
    signature: fn pass_constants(&self) -> PassConstants
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Adam7Info::pass_constants
      Src: /src/image-png/src/adam7.rs:72,1
    - Dst: u32::from
      Src: /src/image-png/src/adam7.rs:73,1
    - Dst: u32::from
      Src: /src/image-png/src/adam7.rs:73,1
    - Dst: min
      Src: /src/image-png/src/adam7.rs:74,1
    - Dst: splat_x_repeat
      Src: /src/image-png/src/adam7.rs:74,1
    - Dst: u8::into
      Src: /src/image-png/src/adam7.rs:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: Adam7Info::splat_pixel_repeat
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - u32::from
    - min
    - u8::into
    - splat_x_repeat
    - Adam7Info::pass_constants
    linkageType: ''
    returnType: u8
    signature: 'fn splat_pixel_repeat(self, idx: usize) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Adam7Info::pass_constants
      Src: /src/image-png/src/adam7.rs:78,1
    - Dst: u32::from
      Src: /src/image-png/src/adam7.rs:79,1
    - Dst: u32::from
      Src: /src/image-png/src/adam7.rs:79,1
    - Dst: min
      Src: /src/image-png/src/adam7.rs:80,1
    - Dst: splat_y_repeat
      Src: /src/image-png/src/adam7.rs:80,1
    - Dst: u8::into
      Src: /src/image-png/src/adam7.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - height
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: Adam7Info::splat_line_repeat
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - u32::from
    - min
    - u8::into
    - Adam7Info::pass_constants
    - splat_y_repeat
    linkageType: ''
    returnType: u8
    signature: 'fn splat_line_repeat(self, height: u32) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: PassConstants::splat_x_repeat
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: const fn splat_x_repeat(self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: PassConstants::splat_y_repeat
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: const fn splat_y_repeat(self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: saturating_sub
      Src: /src/image-png/src/adam7.rs:102,1
    - Dst: u32::from
      Src: /src/image-png/src/adam7.rs:103,1
    - Dst: div_ceil
      Src: /src/image-png/src/adam7.rs:102,1
    - Dst: u32::from
      Src: /src/image-png/src/adam7.rs:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - width
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: PassConstants::count_samples
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - u32::from
    - div_ceil
    - saturating_sub
    linkageType: ''
    returnType: u32
    signature: 'pub fn count_samples(self, width: u32) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::saturating_sub
      Src: /src/image-png/src/adam7.rs:108,1
    - Dst: u32::from
      Src: /src/image-png/src/adam7.rs:109,1
    - Dst: div_ceil
      Src: /src/image-png/src/adam7.rs:108,1
    - Dst: u32::from
      Src: /src/image-png/src/adam7.rs:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - height
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: PassConstants::count_lines
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - Vec::saturating_sub
    - u32::from
    - div_ceil
    linkageType: ''
    returnType: u32
    signature: 'pub fn count_lines(self, height: u32) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_pass
      Src: /src/image-png/src/adam7.rs:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 172
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 172
    functionName: Adam7Iterator::new
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - init_pass
    linkageType: ''
    returnType: Adam7Iterator
    signature: 'pub fn new(width: u32, height: u32) -> Adam7Iterator'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::count_samples
      Src: /src/image-png/src/adam7.rs:177,1
    - Dst: Result::count_lines
      Src: /src/image-png/src/adam7.rs:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: Adam7Iterator::init_pass
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - Result::count_lines
    - Result::count_samples
    linkageType: ''
    returnType: void
    signature: fn init_pass(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/adam7.rs:190,1
    - Dst: Adam7Iterator::init_pass
      Src: /src/image-png/src/adam7.rs:198,1
    - Dst: Adam7Iterator::next
      Src: /src/image-png/src/adam7.rs:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 203
    functionName: Adam7Iterator::next
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 1
    functionsReached:
    - Adam7Iterator::next
    - Adam7Iterator::init_pass
    - Some
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<Self::Item>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::iter'
      Src: /src/image-png/src/adam7.rs:248,1
    - Dst: Result::copied
      Src: /src/image-png/src/adam7.rs:248,1
    - Dst: flat_map
      Src: /src/image-png/src/adam7.rs:248,1
    - Dst: '[u8; N]::map'
      Src: /src/image-png/src/adam7.rs:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - scanline
    - bit_pos
    - mask
    argTypes:
    - '&[u8]'
    - '[u8; N]'
    - u8
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: subbyte_values
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - '[u8; N]::map'
    - '&[u8]::iter'
    - flat_map
    - Result::copied
    linkageType: ''
    returnType: impl Iterator
    signature: 'fn subbyte_values<const N: usize>(scanline: &[u8],bit_pos: [u8; N],mask:
      u8,) -> impl Iterator<Item = u8> + ''_'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::pass_constants
      Src: /src/image-png/src/adam7.rs:263,1
    - Dst: usize::from
      Src: /src/image-png/src/adam7.rs:266,1
    - Dst: usize::from
      Src: /src/image-png/src/adam7.rs:267,1
    - Dst: u64::from
      Src: /src/image-png/src/adam7.rs:268,1
    - Dst: u64::from
      Src: /src/image-png/src/adam7.rs:269,1
    - Dst: u64::from
      Src: /src/image-png/src/adam7.rs:278,1
    - Dst: map
      Src: /src/image-png/src/adam7.rs:278,1
    - Dst: u64::from
      Src: /src/image-png/src/adam7.rs:280,1
    - Dst: map
      Src: /src/image-png/src/adam7.rs:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 3
    argNames:
    - row_stride_in_bytes
    - info
    - bits_pp
    argTypes:
    - usize
    - '&Adam7Info'
    - u8
    constantsTouched: []
    func_position:
      end: 286
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 286
    functionName: expand_adam7_bits
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - Result::pass_constants
    - u64::from
    - usize::from
    - map
    linkageType: ''
    returnType: impl Iterator
    signature: 'fn expand_adam7_bits(row_stride_in_bytes: usize,info: &Adam7Info,bits_pp:
      u8,) -> impl Iterator<Item = BitPostion>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::pass_constants
      Src: /src/image-png/src/adam7.rs:294,1
    - Dst: usize::from
      Src: /src/image-png/src/adam7.rs:297,1
    - Dst: usize::from
      Src: /src/image-png/src/adam7.rs:298,1
    - Dst: u64::from
      Src: /src/image-png/src/adam7.rs:299,1
    - Dst: u64::from
      Src: /src/image-png/src/adam7.rs:300,1
    - Dst: u64::from
      Src: /src/image-png/src/adam7.rs:308,1
    - Dst: map
      Src: /src/image-png/src/adam7.rs:308,1
    - Dst: u64::from
      Src: /src/image-png/src/adam7.rs:309,1
    - Dst: map
      Src: /src/image-png/src/adam7.rs:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 3
    argNames:
    - row_stride_in_bytes
    - info
    - bytes_pp
    argTypes:
    - usize
    - '&Adam7Info'
    - u8
    constantsTouched: []
    func_position:
      end: 312
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 312
    functionName: expand_adam7_bytes
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - Result::pass_constants
    - u64::from
    - usize::from
    - map
    linkageType: ''
    returnType: impl Iterator
    signature: 'fn expand_adam7_bytes(row_stride_in_bytes: usize,info: &Adam7Info,bytes_pp:
      u8,) -> impl Iterator<Item = usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: expand_adam7_bits
      Src: /src/image-png/src/adam7.rs:361,1
    - Dst: impl Iterator::zip
      Src: /src/image-png/src/adam7.rs:362,1
    - Dst: subbyte_values
      Src: /src/image-png/src/adam7.rs:362,1
    - Dst: expand_adam7_bits
      Src: /src/image-png/src/adam7.rs:369,1
    - Dst: impl Iterator::zip
      Src: /src/image-png/src/adam7.rs:371,1
    - Dst: subbyte_values
      Src: /src/image-png/src/adam7.rs:371,1
    - Dst: expand_adam7_bits
      Src: /src/image-png/src/adam7.rs:378,1
    - Dst: impl Iterator::zip
      Src: /src/image-png/src/adam7.rs:380,1
    - Dst: subbyte_values
      Src: /src/image-png/src/adam7.rs:380,1
    - Dst: expand_adam7_bytes
      Src: /src/image-png/src/adam7.rs:389,1
    - Dst: impl Iterator::zip
      Src: /src/image-png/src/adam7.rs:391,1
    - Dst: expand_adam7_bytes
      Src: /src/image-png/src/adam7.rs:396,1
    - Dst: impl Iterator::zip
      Src: /src/image-png/src/adam7.rs:398,1
    - Dst: Result::chunks
      Src: /src/image-png/src/adam7.rs:398,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/adam7.rs:399,1
    - Dst: expand_adam7_bytes
      Src: /src/image-png/src/adam7.rs:405,1
    - Dst: impl Iterator::zip
      Src: /src/image-png/src/adam7.rs:407,1
    - Dst: Result::chunks
      Src: /src/image-png/src/adam7.rs:407,1
    - Dst: into
      Src: /src/image-png/src/adam7.rs:407,1
    - Dst: len
      Src: /src/image-png/src/adam7.rs:408,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/adam7.rs:408,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 86
    argCount: 5
    argNames:
    - img
    - img_row_stride
    - interlaced_row
    - interlace_info
    - bits_per_pixel
    argTypes:
    - '&mut [u8]'
    - usize
    - '&[u8]'
    - '&Adam7Info'
    - u8
    constantsTouched: []
    func_position:
      end: 412
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 412
    functionName: expand_pass
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - copy_from_slice
    - into
    - len
    - subbyte_values
    - impl Iterator::zip
    - expand_adam7_bits
    - expand_adam7_bytes
    - Result::chunks
    linkageType: ''
    returnType: void
    signature: 'pub fn expand_pass(img: &mut [u8],img_row_stride: usize,interlaced_row:
      &[u8],interlace_info: &Adam7Info,bits_per_pixel: u8,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: split_first_mut
      Src: /src/image-png/src/adam7.rs:460,1
    - Dst: unwrap
      Src: /src/image-png/src/adam7.rs:460,1
    - Dst: split_first_mut
      Src: /src/image-png/src/adam7.rs:468,1
    - Dst: unwrap
      Src: /src/image-png/src/adam7.rs:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 5
    argNames:
    - img
    - px
    - pos
    - repeat
    - bpp
    argTypes:
    - '&mut [u8]'
    - u8
    - BitPostion
    - RangeTo<u8>
    - u8
    constantsTouched: []
    func_position:
      end: 478
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 478
    functionName: e::x::p::a::n::d::_::p::a::s::s::_::s::p::l::a::t::expand_bits_to_img
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - split_first_mut
    linkageType: ''
    returnType: void
    signature: 'fn expand_bits_to_img(img: &mut [u8],px: u8,mut pos: BitPostion,repeat:
      RangeTo<u8>,bpp: u8,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image-png/src/adam7.rs:480,1
    - Dst: usize::splat_line_repeat
      Src: /src/image-png/src/adam7.rs:481,1
    - Dst: expand_adam7_bits
      Src: /src/image-png/src/adam7.rs:492,1
    - Dst: usize::from
      Src: /src/image-png/src/adam7.rs:493,1
    - Dst: impl Iterator::zip
      Src: /src/image-png/src/adam7.rs:495,1
    - Dst: subbyte_values
      Src: /src/image-png/src/adam7.rs:496,1
    - Dst: enumerate
      Src: /src/image-png/src/adam7.rs:495,1
    - Dst: usize::splat_pixel_repeat
      Src: /src/image-png/src/adam7.rs:499,1
    - Dst: expand_bits_to_img
      Src: /src/image-png/src/adam7.rs:502,1
    - Dst: expand_adam7_bits
      Src: /src/image-png/src/adam7.rs:510,1
    - Dst: usize::from
      Src: /src/image-png/src/adam7.rs:511,1
    - Dst: impl Iterator::zip
      Src: /src/image-png/src/adam7.rs:513,1
    - Dst: subbyte_values
      Src: /src/image-png/src/adam7.rs:514,1
    - Dst: enumerate
      Src: /src/image-png/src/adam7.rs:513,1
    - Dst: usize::splat_pixel_repeat
      Src: /src/image-png/src/adam7.rs:517,1
    - Dst: expand_bits_to_img
      Src: /src/image-png/src/adam7.rs:519,1
    - Dst: expand_adam7_bits
      Src: /src/image-png/src/adam7.rs:527,1
    - Dst: usize::from
      Src: /src/image-png/src/adam7.rs:528,1
    - Dst: impl Iterator::zip
      Src: /src/image-png/src/adam7.rs:530,1
    - Dst: subbyte_values
      Src: /src/image-png/src/adam7.rs:531,1
    - Dst: enumerate
      Src: /src/image-png/src/adam7.rs:530,1
    - Dst: usize::splat_pixel_repeat
      Src: /src/image-png/src/adam7.rs:534,1
    - Dst: expand_bits_to_img
      Src: /src/image-png/src/adam7.rs:536,1
    - Dst: expand_adam7_bytes
      Src: /src/image-png/src/adam7.rs:545,1
    - Dst: usize::from
      Src: /src/image-png/src/adam7.rs:546,1
    - Dst: impl Iterator::zip
      Src: /src/image-png/src/adam7.rs:548,1
    - Dst: enumerate
      Src: /src/image-png/src/adam7.rs:548,1
    - Dst: usize::from
      Src: /src/image-png/src/adam7.rs:549,1
    - Dst: usize::splat_pixel_repeat
      Src: /src/image-png/src/adam7.rs:549,1
    - Dst: fill
      Src: /src/image-png/src/adam7.rs:551,1
    - Dst: usize::from
      Src: /src/image-png/src/adam7.rs:558,1
    - Dst: expand_adam7_bytes
      Src: /src/image-png/src/adam7.rs:561,1
    - Dst: usize::from
      Src: /src/image-png/src/adam7.rs:562,1
    - Dst: impl Iterator::zip
      Src: /src/image-png/src/adam7.rs:564,1
    - Dst: Result::chunks_exact
      Src: /src/image-png/src/adam7.rs:565,1
    - Dst: enumerate
      Src: /src/image-png/src/adam7.rs:564,1
    - Dst: usize::from
      Src: /src/image-png/src/adam7.rs:568,1
    - Dst: usize::splat_pixel_repeat
      Src: /src/image-png/src/adam7.rs:568,1
    - Dst: chunks_exact_mut
      Src: /src/image-png/src/adam7.rs:571,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/adam7.rs:572,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 176
    argCount: 5
    argNames:
    - img
    - img_row_stride
    - interlaced_row
    - interlace_info
    - bits_per_pixel
    argTypes:
    - '&mut [u8]'
    - usize
    - '&[u8]'
    - '&Adam7Info'
    - u8
    constantsTouched: []
    func_position:
      end: 578
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 578
    functionName: expand_pass_splat
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - chunks_exact_mut
    - copy_from_slice
    - usize::splat_pixel_repeat
    - enumerate
    - fill
    - Result::chunks_exact
    - len
    - expand_bits_to_img
    - usize::from
    - impl Iterator::zip
    - usize::splat_line_repeat
    - expand_adam7_bits
    - expand_adam7_bytes
    - subbyte_values
    linkageType: ''
    returnType: void
    signature: 'pub fn expand_pass_splat(img: &mut [u8],img_row_stride: usize,interlaced_row:
      &[u8],interlace_info: &Adam7Info,bits_per_pixel: u8,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Adam7Iterator::new
      Src: /src/image-png/src/adam7.rs:592,1
    - Dst: Result::collect
      Src: /src/image-png/src/adam7.rs:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 641
      start: 585
    functionDepth: 4
    functionLinenumber: 585
    functionLinenumberEnd: 641
    functionName: tests::test_adam7
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - Result::collect
    - Adam7Iterator::new
    linkageType: ''
    returnType: void
    signature: fn test_adam7()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: subbyte_values
      Src: /src/image-png/src/adam7.rs:648,1
    - Dst: collect::<Vec<_>>
      Src: /src/image-png/src/adam7.rs:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 652
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 652
    functionName: tests::test_subbyte_pixels
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - collect::<Vec<_>>
    - subbyte_values
    linkageType: ''
    returnType: void
    signature: fn test_subbyte_pixels()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_adam7_info_for_tests
      Src: /src/image-png/src/adam7.rs:660,1
    - Dst: map
      Src: /src/image-png/src/adam7.rs:663,1
    - Dst: map
      Src: /src/image-png/src/adam7.rs:663,1
    - Dst: ".count)\n                .map(move |i| step * i + offset)\n          \
        \      .map(|i| BitPostion {\n                    byte: i / 8,\n         \
        \           bit: (i % 8) as u8,\n                })\n                .collect::<Vec<_>>"
      Src: /src/image-png/src/adam7.rs:663,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 728
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 728
    functionName: tests::test_expand_adam7_bits
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - ".count)\n                .map(move |i| step * i + offset)\n               \
      \ .map(|i| BitPostion {\n                    byte: i / 8,\n                \
      \    bit: (i % 8) as u8,\n                })\n                .collect::<Vec<_>>"
    - create_adam7_info_for_tests
    - map
    linkageType: ''
    returnType: void
    signature: fn test_expand_adam7_bits()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 752
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 752
    functionName: tests::test_expand_adam7_bits_independent_row_stride
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_expand_adam7_bits_independent_row_stride()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: expand_pass
      Src: /src/image-png/src/adam7.rs:762,1
    - Dst: info
      Src: /src/image-png/src/adam7.rs:762,1
    - Dst: expand_pass
      Src: /src/image-png/src/adam7.rs:765,1
    - Dst: info
      Src: /src/image-png/src/adam7.rs:765,1
    - Dst: expand_pass
      Src: /src/image-png/src/adam7.rs:768,1
    - Dst: info
      Src: /src/image-png/src/adam7.rs:768,1
    - Dst: expand_pass
      Src: /src/image-png/src/adam7.rs:771,1
    - Dst: info
      Src: /src/image-png/src/adam7.rs:771,1
    - Dst: expand_pass
      Src: /src/image-png/src/adam7.rs:774,1
    - Dst: info
      Src: /src/image-png/src/adam7.rs:774,1
    - Dst: expand_pass
      Src: /src/image-png/src/adam7.rs:777,1
    - Dst: info
      Src: /src/image-png/src/adam7.rs:777,1
    - Dst: expand_pass
      Src: /src/image-png/src/adam7.rs:780,1
    - Dst: info
      Src: /src/image-png/src/adam7.rs:780,1
    - Dst: expand_pass
      Src: /src/image-png/src/adam7.rs:786,1
    - Dst: info
      Src: /src/image-png/src/adam7.rs:786,1
    - Dst: expand_pass
      Src: /src/image-png/src/adam7.rs:792,1
    - Dst: info
      Src: /src/image-png/src/adam7.rs:792,1
    - Dst: expand_pass
      Src: /src/image-png/src/adam7.rs:798,1
    - Dst: info
      Src: /src/image-png/src/adam7.rs:798,1
    - Dst: expand_pass
      Src: /src/image-png/src/adam7.rs:804,1
    - Dst: info
      Src: /src/image-png/src/adam7.rs:804,1
    - Dst: expand_pass
      Src: /src/image-png/src/adam7.rs:810,1
    - Dst: info
      Src: /src/image-png/src/adam7.rs:810,1
    - Dst: expand_pass
      Src: /src/image-png/src/adam7.rs:825,1
    - Dst: info
      Src: /src/image-png/src/adam7.rs:825,1
    - Dst: expand_pass
      Src: /src/image-png/src/adam7.rs:840,1
    - Dst: info
      Src: /src/image-png/src/adam7.rs:840,1
    - Dst: expand_pass
      Src: /src/image-png/src/adam7.rs:855,1
    - Dst: info
      Src: /src/image-png/src/adam7.rs:855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 869
      start: 755
    functionDepth: 3
    functionLinenumber: 755
    functionLinenumberEnd: 869
    functionName: tests::test_expand_pass_subbyte
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - expand_pass
    - info
    linkageType: ''
    returnType: void
    signature: fn test_expand_pass_subbyte()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Adam7Iterator::new
      Src: /src/image-png/src/adam7.rs:897,1
    - Dst: iter
      Src: /src/image-png/src/adam7.rs:898,1
    - Dst: zip
      Src: /src/image-png/src/adam7.rs:898,1
    - Dst: expand_pass_splat
      Src: /src/image-png/src/adam7.rs:899,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 902
      start: 874
    functionDepth: 4
    functionLinenumber: 874
    functionLinenumberEnd: 902
    functionName: tests::test_expand_pass_splat_4bpp
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - iter
    - expand_pass_splat
    - zip
    - Adam7Iterator::new
    linkageType: ''
    returnType: void
    signature: fn test_expand_pass_splat_4bpp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/image-png/src/adam7.rs:912,1
    - Dst: collect
      Src: /src/image-png/src/adam7.rs:912,1
    - Dst: u32::from
      Src: /src/image-png/src/adam7.rs:915,1
    - Dst: next_multiple_of
      Src: /src/image-png/src/adam7.rs:915,1
    - Dst: bytes_of
      Src: /src/image-png/src/adam7.rs:917,1
    - Dst: Adam7Iterator::new
      Src: /src/image-png/src/adam7.rs:925,1
    - Dst: bytes_of
      Src: /src/image-png/src/adam7.rs:926,1
    - Dst: expand_pass
      Src: /src/image-png/src/adam7.rs:929,1
    - Dst: expand_pass_splat
      Src: /src/image-png/src/adam7.rs:930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 938
      start: 907
    functionDepth: 4
    functionLinenumber: 907
    functionLinenumberEnd: 938
    functionName: tests::adam7_equivalence
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - u32::from
    - take
    - collect
    - next_multiple_of
    - expand_pass
    - Adam7Iterator::new
    - expand_pass_splat
    - bytes_of
    linkageType: ''
    returnType: void
    signature: fn adam7_equivalence()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Adam7Iterator::new
      Src: /src/image-png/src/adam7.rs:969,1
    - Dst: iter
      Src: /src/image-png/src/adam7.rs:970,1
    - Dst: zip
      Src: /src/image-png/src/adam7.rs:970,1
    - Dst: expand_pass_splat
      Src: /src/image-png/src/adam7.rs:971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 974
      start: 941
    functionDepth: 4
    functionLinenumber: 941
    functionLinenumberEnd: 974
    functionName: tests::test_expand_pass_splat_1bpp
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - iter
    - expand_pass_splat
    - zip
    - Adam7Iterator::new
    linkageType: ''
    returnType: void
    signature: fn test_expand_pass_splat_1bpp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Adam7Iterator::new
      Src: /src/image-png/src/adam7.rs:988,1
    - Dst: Adam7Iterator::into_iter
      Src: /src/image-png/src/adam7.rs:988,1
    - Dst: map
      Src: /src/image-png/src/adam7.rs:1000,1
    - Dst: collect
      Src: /src/image-png/src/adam7.rs:1000,1
    - Dst: expand_pass
      Src: /src/image-png/src/adam7.rs:1002,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 3
    argNames:
    - width
    - height
    - bits_pp
    argTypes:
    - usize
    - usize
    - u8
    constantsTouched: []
    func_position:
      end: 1006
      start: 982
    functionDepth: 4
    functionLinenumber: 982
    functionLinenumberEnd: 1006
    functionName: t::e::s::t::s::::::::r::e::g::r::e::s::s::i::o::n::_::o::v::e::r::f::l::o::w::_::a::d::a::m::7::_::b::i::t::f::i::l::l::multibyte_expand_pass_test_helper
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - map
    - Adam7Iterator::into_iter
    - collect
    - expand_pass
    - Adam7Iterator::new
    linkageType: ''
    returnType: Vec
    signature: 'fn multibyte_expand_pass_test_helper(width: usize, height: usize,
      bits_pp: u8) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: multibyte_expand_pass_test_helper
      Src: /src/image-png/src/adam7.rs:1008,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 981
    functionDepth: 5
    functionLinenumber: 981
    functionLinenumberEnd: 1010
    functionName: tests::regression_overflow_adam7_bitfill
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - multibyte_expand_pass_test_helper
    linkageType: ''
    returnType: void
    signature: fn regression_overflow_adam7_bitfill()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Adam7Iterator::new
      Src: /src/image-png/src/adam7.rs:1016,1
    - Dst: Adam7Iterator::filter
      Src: /src/image-png/src/adam7.rs:1016,1
    - Dst: map
      Src: /src/image-png/src/adam7.rs:1016,1
    - Dst: next
      Src: /src/image-png/src/adam7.rs:1016,1
    - Dst: unwrap
      Src: /src/image-png/src/adam7.rs:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 3
    argNames:
    - pass
    - line
    - img_width
    argTypes:
    - u8
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 1029
      start: 1013
    functionDepth: 4
    functionLinenumber: 1013
    functionLinenumberEnd: 1029
    functionName: tests::create_adam7_info_for_tests
    functionSourceFile: /src/image-png/src/adam7.rs
    functionUses: 0
    functionsReached:
    - map
    - Adam7Iterator::new
    - Adam7Iterator::filter
    - unwrap
    - next
    linkageType: ''
    returnType: Adam7Info
    signature: 'fn create_adam7_info_for_tests(pass: u8, line: u32, img_width: usize)
      -> Adam7Info'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_png_sig
      Src: /src/image-png/src/test_utils.rs:30,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/test_utils.rs:31,1
    - Dst: write_rgba8_idats
      Src: /src/image-png/src/test_utils.rs:32,1
    - Dst: write_iend
      Src: /src/image-png/src/test_utils.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - w
    - size
    - idat_bytes
    argTypes:
    - '&mut impl Write'
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: write_noncompressed_png
    functionSourceFile: /src/image-png/src/test_utils.rs
    functionUses: 0
    functionsReached:
    - write_png_sig
    - write_rgba8_idats
    - write_rgba8_ihdr_with_width
    - write_iend
    linkageType: ''
    returnType: void
    signature: 'pub fn write_noncompressed_png(w: &mut impl Write, size: u32, idat_bytes:
      usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::write_all
      Src: /src/image-png/src/test_utils.rs:40,1
    - Dst: unwrap
      Src: /src/image-png/src/test_utils.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - w
    argTypes:
    - '&mut impl Write'
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: write_png_sig
    functionSourceFile: /src/image-png/src/test_utils.rs
    functionUses: 1
    functionsReached:
    - unwrap
    - Self::write_all
    linkageType: ''
    returnType: void
    signature: 'pub fn write_png_sig(w: &mut impl Write)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::write_be
      Src: /src/image-png/src/encoder.rs:528,1
    - Dst: Result::len
      Src: /src/image-png/src/encoder.rs:528,1
    - Dst: Self::write_all
      Src: /src/image-png/src/encoder.rs:529,1
    - Dst: Self::write_all
      Src: /src/image-png/src/encoder.rs:530,1
    - Dst: Crc32::new
      Src: /src/image-png/src/encoder.rs:531,1
    - Dst: update
      Src: /src/image-png/src/encoder.rs:532,1
    - Dst: update
      Src: /src/image-png/src/encoder.rs:533,1
    - Dst: Self::write_be
      Src: /src/image-png/src/encoder.rs:534,1
    - Dst: finalize
      Src: /src/image-png/src/encoder.rs:534,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 3
    argNames:
    - w
    - name
    - data
    argTypes:
    - W
    - chunk::ChunkType
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 536
      start: 527
    functionDepth: 3
    functionLinenumber: 527
    functionLinenumberEnd: 536
    functionName: write_chunk
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Result::len
    - finalize
    - Self::write_be
    - Ok
    - update
    - Crc32::new
    - Self::write_all
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn write_chunk<W: Write>(mut w: W, name: chunk::ChunkType,
      data: &[u8]) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/test_utils.rs:64,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/test_utils.rs:65,1
    - Dst: unwrap
      Src: /src/image-png/src/test_utils.rs:65,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/test_utils.rs:66,1
    - Dst: unwrap
      Src: /src/image-png/src/test_utils.rs:66,1
    - Dst: Result::write_u8
      Src: /src/image-png/src/test_utils.rs:67,1
    - Dst: unwrap
      Src: /src/image-png/src/test_utils.rs:67,1
    - Dst: Result::write_u8
      Src: /src/image-png/src/test_utils.rs:68,1
    - Dst: unwrap
      Src: /src/image-png/src/test_utils.rs:68,1
    - Dst: Result::write_u8
      Src: /src/image-png/src/test_utils.rs:69,1
    - Dst: unwrap
      Src: /src/image-png/src/test_utils.rs:69,1
    - Dst: Result::write_u8
      Src: /src/image-png/src/test_utils.rs:70,1
    - Dst: unwrap
      Src: /src/image-png/src/test_utils.rs:70,1
    - Dst: Result::write_u8
      Src: /src/image-png/src/test_utils.rs:71,1
    - Dst: unwrap
      Src: /src/image-png/src/test_utils.rs:71,1
    - Dst: write_chunk
      Src: /src/image-png/src/test_utils.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 2
    argNames:
    - w
    - width
    argTypes:
    - '&mut impl Write'
    - u32
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: write_rgba8_ihdr_with_width
    functionSourceFile: /src/image-png/src/test_utils.rs
    functionUses: 1
    functionsReached:
    - Vec::new
    - write_chunk
    - write_u32::<byteorder::BigEndian>
    - Result::write_u8
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'pub fn write_rgba8_ihdr_with_width(w: &mut impl Write, width: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/test_utils.rs:79,1
    - Dst: write_u8
      Src: /src/image-png/src/test_utils.rs:80,1
    - Dst: unwrap
      Src: /src/image-png/src/test_utils.rs:80,1
    - Dst: flat_map
      Src: /src/image-png/src/test_utils.rs:82,1
    - Dst: extend
      Src: /src/image-png/src/test_utils.rs:87,1
    - Dst: std::iter::repeat
      Src: /src/image-png/src/test_utils.rs:89,1
    - Dst: u8::take
      Src: /src/image-png/src/test_utils.rs:89,1
    - Dst: Wrapper::flatten
      Src: /src/image-png/src/test_utils.rs:89,1
    - Dst: "take(height as usize)\n            .flatten()\n            .collect::<Vec<_>>"
      Src: /src/image-png/src/test_utils.rs:89,1
    - Dst: Vec::new
      Src: /src/image-png/src/test_utils.rs:95,1
    - Dst: fdeflate::StoredOnlyCompressor::new
      Src: /src/image-png/src/test_utils.rs:97,1
    - Dst: std::io::Cursor::new
      Src: /src/image-png/src/test_utils.rs:97,1
    - Dst: Self::unwrap
      Src: /src/image-png/src/test_utils.rs:97,1
    - Dst: write_data
      Src: /src/image-png/src/test_utils.rs:98,1
    - Dst: unwrap
      Src: /src/image-png/src/test_utils.rs:98,1
    - Dst: finish
      Src: /src/image-png/src/test_utils.rs:99,1
    - Dst: unwrap
      Src: /src/image-png/src/test_utils.rs:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 102
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 102
    functionName: generate_rgba8_with_width_and_height
    functionSourceFile: /src/image-png/src/test_utils.rs
    functionUses: 0
    functionsReached:
    - flat_map
    - write_data
    - Vec::new
    - u8::take
    - "take(height as usize)\n            .flatten()\n            .collect::<Vec<_>>"
    - write_u8
    - finish
    - extend
    - Wrapper::flatten
    - std::io::Cursor::new
    - fdeflate::StoredOnlyCompressor::new
    - std::iter::repeat
    - unwrap
    - Self::unwrap
    linkageType: ''
    returnType: Vec
    signature: 'pub fn generate_rgba8_with_width_and_height(width: u32, height: u32)
      -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/test_utils.rs:106,1
    - Dst: Result::chunks
      Src: /src/image-png/src/test_utils.rs:108,1
    - Dst: write_chunk
      Src: /src/image-png/src/test_utils.rs:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - w
    - size
    - idat_bytes
    argTypes:
    - '&mut impl Write'
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: write_rgba8_idats
    functionSourceFile: /src/image-png/src/test_utils.rs
    functionUses: 1
    functionsReached:
    - generate_rgba8_with_width_and_height
    - write_chunk
    - Result::chunks
    linkageType: ''
    returnType: void
    signature: 'pub fn write_rgba8_idats(w: &mut impl Write, size: u32, idat_bytes:
      usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_chunk
      Src: /src/image-png/src/test_utils.rs:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - w
    argTypes:
    - '&mut impl Write'
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 4
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: write_iend
    functionSourceFile: /src/image-png/src/test_utils.rs
    functionUses: 1
    functionsReached:
    - write_chunk
    linkageType: ''
    returnType: void
    signature: 'pub fn write_iend(w: &mut impl Write)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::size_of::<$output_type>
      Src: /src/image-png/src/traits.rs:5,1
    - Dst: read_bytes_ext::read_exact
      Src: /src/image-png/src/traits.rs:6,1
    - Dst: Ok
      Src: /src/image-png/src/traits.rs:7,1
    - Dst: <$output_type>::from_be_bytes
      Src: /src/image-png/src/traits.rs:7,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 14
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 14
    functionName: read_bytes_ext
    functionSourceFile: /src/image-png/src/traits.rs
    functionUses: 0
    functionsReached:
    - std::mem::size_of::<$output_type>
    - <$output_type>::from_be_bytes
    - read_bytes_ext::read_exact
    - Ok
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_bytes_ext::write_all
      Src: /src/image-png/src/traits.rs:5,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/traits.rs:5,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: write_bytes_ext
    functionSourceFile: /src/image-png/src/traits.rs
    functionUses: 0
    functionsReached:
    - write_bytes_ext::write_all
    - to_be_bytes
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: EncodingError::cause
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn cause(&self) -> Option<&(dyn error::Error + 'static)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: EncodingError::fmt
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: result::Result
    signature: 'fn fmt(&self, fmt: &mut fmt::Formatter) -> result::Result<(), fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 427
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 427
    functionName: FormatError::fmt
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:141,1
    - Dst: FormatErrorKind::BadTextEncoding
      Src: /src/image-png/src/encoder.rs:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tee
    argTypes:
    - TextEncodingError
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: EncodingError::from
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - FormatErrorKind::BadTextEncoding
    - EncodingError::Format
    linkageType: ''
    returnType: Self
    signature: 'fn from(tee: TextEncodingError) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Error::new
      Src: /src/image-png/src/decoder/stream.rs:452,1
    - Dst: DecodingError::to_string
      Src: /src/image-png/src/decoder/stream.rs:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - err
    argTypes:
    - DecodingError
    constantsTouched: []
    func_position:
      end: 454
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 454
    functionName: io::Error::from
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - DecodingError::to_string
    - io::Error::new
    linkageType: ''
    returnType: io::Error
    signature: 'fn from(err: DecodingError) -> io::Error'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - inner
    argTypes:
    - FormatErrorInner
    constantsTouched: []
    func_position:
      end: 445
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 445
    functionName: FormatError::from
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(inner: FormatErrorInner) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Info::with_size
      Src: /src/image-png/src/encoder.rs:173,1
    - Dst: Options::default
      Src: /src/image-png/src/encoder.rs:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - w
    - width
    - height
    argTypes:
    - W
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 176
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 176
    functionName: Encoder::new
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Options::default
    - Info::with_size
    linkageType: ''
    returnType: Encoder
    signature: 'pub fn new(w: W, width: u32, height: u32) -> Encoder<''static, W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/image-png/src/encoder.rs:179,1
    - Dst: is_some
      Src: /src/image-png/src/encoder.rs:179,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:180,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:180,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:180,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:185,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:185,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:185,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:189,1
    - Dst: Options::default
      Src: /src/image-png/src/encoder.rs:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 2
    argNames:
    - w
    - info
    argTypes:
    - W
    - Info<'a>
    constantsTouched: []
    func_position:
      end: 194
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 194
    functionName: Encoder::with_info
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Options::default
    - into
    - EncodingError::Format
    - Err
    - Ok
    - is_some
    linkageType: ''
    returnType: Result
    signature: 'pub fn with_info(w: W, info: Info<''a>) -> Result<Encoder<''a, W>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:210,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:210,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:210,1
    - Dst: Default::default
      Src: /src/image-png/src/encoder.rs:222,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:225,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:226,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 2
    argNames:
    - num_frames
    - num_plays
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 228
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 228
    functionName: Encoder::set_animated
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - into
    - EncodingError::Format
    - Default::default
    - Err
    - Ok
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_animated(&mut self, num_frames: u32, num_plays: u32) ->
      Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/image-png/src/encoder.rs:240,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:242,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:244,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:244,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - sep_def_img
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: Encoder::set_sep_def_img
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - into
    - EncodingError::Format
    - Err
    - Ok
    - is_some
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_sep_def_img(&mut self, sep_def_img: bool) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:251,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - palette
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: Encoder::set_palette
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - into
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub fn set_palette<T: Into<Cow<''a, [u8]>>>(&mut self, palette: T)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:257,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - trns
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: Encoder::set_trns
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - into
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub fn set_trns<T: Into<Cow<''a, [u8]>>>(&mut self, trns: T)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - source_gamma
    argTypes:
    - ScaledFloat
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    functionName: Encoder::set_source_gamma
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub fn set_source_gamma(&mut self, source_gamma: ScaledFloat)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - source_chromaticities
    argTypes:
    - super::SourceChromaticities
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 272
    functionName: Encoder::set_source_chromaticities
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub fn set_source_chromaticities(&mut self,source_chromaticities:
      super::SourceChromaticities,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_source_srgb
      Src: /src/image-png/src/encoder.rs:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - rendering_intent
    argTypes:
    - super::SrgbRenderingIntent
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: Encoder::set_source_srgb
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - set_source_srgb
    linkageType: ''
    returnType: void
    signature: 'pub fn set_source_srgb(&mut self, rendering_intent: super::SrgbRenderingIntent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::new
      Src: /src/image-png/src/encoder.rs:288,1
    - Dst: PartialInfo::new
      Src: /src/image-png/src/encoder.rs:288,1
    - Dst: Writer::init
      Src: /src/image-png/src/encoder.rs:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: Encoder::write_header
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - PartialInfo::new
    - Writer::init
    - Writer::new
    linkageType: ''
    returnType: Result
    signature: pub fn write_header(self) -> Result<Writer<W>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - color
    argTypes:
    - ColorType
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: Encoder::set_color
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_color(&mut self, color: ColorType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - depth
    argTypes:
    - BitDepth
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: Encoder::set_depth
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_depth(&mut self, depth: BitDepth)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::set_deflate_compression
      Src: /src/image-png/src/encoder.rs:307,1
    - Dst: DeflateCompression::from_simple
      Src: /src/image-png/src/encoder.rs:307,1
    - Dst: Encoder::set_filter
      Src: /src/image-png/src/encoder.rs:308,1
    - Dst: Filter::from_simple
      Src: /src/image-png/src/encoder.rs:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - compression
    argTypes:
    - Compression
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: Encoder::set_compression
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Filter::from_simple
    - Encoder::set_filter
    - Encoder::set_deflate_compression
    - DeflateCompression::from_simple
    linkageType: ''
    returnType: void
    signature: 'pub fn set_compression(&mut self, compression: Compression)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - compression
    argTypes:
    - DeflateCompression
    constantsTouched: []
    func_position:
      end: 318
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 318
    functionName: Encoder::set_deflate_compression
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_deflate_compression(&mut self, compression: DeflateCompression)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - filter
    argTypes:
    - Filter
    constantsTouched: []
    func_position:
      end: 329
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 329
    functionName: Encoder::set_filter
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_filter(&mut self, filter: Filter)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:352,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:354,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:354,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - u16
    - u16
    constantsTouched: []
    func_position:
      end: 356
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 356
    functionName: Encoder::set_frame_delay
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - EncodingError::Format
    - Err
    - into
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_frame_delay(&mut self, numerator: u16, denominator: u16)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:383,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:385,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:385,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - BlendOp
    constantsTouched: []
    func_position:
      end: 387
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 387
    functionName: Encoder::set_blend_op
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - EncodingError::Format
    - Err
    - into
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_blend_op(&mut self, op: BlendOp) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:412,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:414,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:414,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - DisposeOp
    constantsTouched: []
    func_position:
      end: 416
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 416
    functionName: Encoder::set_dispose_op
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - EncodingError::Format
    - Err
    - into
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_dispose_op(&mut self, op: DisposeOp) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pixel_dims
    argTypes:
    - Option<PixelDimensions>
    constantsTouched: []
    func_position:
      end: 419
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 419
    functionName: Encoder::set_pixel_dims
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_pixel_dims(&mut self, pixel_dims: Option<PixelDimensions>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TEXtChunk::new
      Src: /src/image-png/src/encoder.rs:422,1
    - Dst: push
      Src: /src/image-png/src/encoder.rs:423,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - keyword
    - text
    argTypes:
    - String
    - String
    constantsTouched: []
    func_position:
      end: 425
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 425
    functionName: Encoder::add_text_chunk
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - push
    - TEXtChunk::new
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_text_chunk(&mut self, keyword: String, text: String) ->
      Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZTXtChunk::new
      Src: /src/image-png/src/encoder.rs:429,1
    - Dst: push
      Src: /src/image-png/src/encoder.rs:430,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - keyword
    - text
    argTypes:
    - String
    - String
    constantsTouched: []
    func_position:
      end: 432
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 432
    functionName: Encoder::add_ztxt_chunk
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - ZTXtChunk::new
    - push
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_ztxt_chunk(&mut self, keyword: String, text: String) ->
      Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ITXtChunk::new
      Src: /src/image-png/src/encoder.rs:439,1
    - Dst: push
      Src: /src/image-png/src/encoder.rs:440,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - keyword
    - text
    argTypes:
    - String
    - String
    constantsTouched: []
    func_position:
      end: 442
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 442
    functionName: Encoder::add_itxt_chunk
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - push
    - ITXtChunk::new
    linkageType: ''
    returnType: Result
    signature: 'pub fn add_itxt_chunk(&mut self, keyword: String, text: String) ->
      Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - validate
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 456
    functionName: Encoder::validate_sequence
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn validate_sequence(&mut self, validate: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/image-png/src/encoder.rs:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - info
    argTypes:
    - '&Info'
    constantsTouched: []
    func_position:
      end: 505
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 505
    functionName: PartialInfo::new
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - is_some
    linkageType: ''
    returnType: Self
    signature: 'fn new(info: &Info) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesPerPixel::from_usize
      Src: /src/image-png/src/encoder.rs:508,1
    - Dst: PartialInfo::bytes_per_pixel
      Src: /src/image-png/src/encoder.rs:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 509
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 509
    functionName: PartialInfo::bpp_in_prediction
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - PartialInfo::bytes_per_pixel
    - BytesPerPixel::from_usize
    linkageType: ''
    returnType: BytesPerPixel
    signature: fn bpp_in_prediction(&self) -> BytesPerPixel
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytes_per_pixel
      Src: /src/image-png/src/encoder.rs:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 513
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 513
    functionName: PartialInfo::bytes_per_pixel
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - bytes_per_pixel
    linkageType: ''
    returnType: usize
    signature: fn bytes_per_pixel(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PartialInfo::raw_row_length_from_width
      Src: /src/image-png/src/encoder.rs:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 517
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 517
    functionName: PartialInfo::raw_row_length
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - PartialInfo::raw_row_length_from_width
    linkageType: ''
    returnType: usize
    signature: fn raw_row_length(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: raw_row_length_from_width
      Src: /src/image-png/src/encoder.rs:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - width
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 522
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 522
    functionName: PartialInfo::raw_row_length_from_width
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - raw_row_length_from_width
    linkageType: ''
    returnType: usize
    signature: 'fn raw_row_length_from_width(&self, width: u32) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - w
    - info
    - options
    argTypes:
    - W
    - PartialInfo
    - Options
    constantsTouched: []
    func_position:
      end: 548
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 548
    functionName: Writer::new
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Writer
    signature: 'fn new(w: W, info: PartialInfo, options: Options) -> Writer<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:552,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:552,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:552,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:556,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:556,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:556,1
    - Dst: is_combination_invalid
      Src: /src/image-png/src/encoder.rs:559,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:564,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:564,1
    - Dst: FormatErrorKind::InvalidColorCombination
      Src: /src/image-png/src/encoder.rs:565,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:565,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:577,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:577,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:578,1
    - Dst: Writer::encode_header
      Src: /src/image-png/src/encoder.rs:582,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:584,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 55
    argCount: 1
    argNames:
    - info
    argTypes:
    - '&Info<''_>'
    constantsTouched: []
    func_position:
      end: 585
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 585
    functionName: Writer::init
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - Writer::encode_header
    - into
    - FormatErrorKind::InvalidColorCombination
    - EncodingError::Format
    - is_combination_invalid
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn init(mut self, info: &Info<''_>) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_all
      Src: /src/image-png/src/encoder.rs:589,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/encoder.rs:593,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/encoder.rs:593,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/encoder.rs:594,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/encoder.rs:594,1
    - Dst: Writer::write_chunk
      Src: /src/image-png/src/encoder.rs:598,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/encoder.rs:603,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/encoder.rs:603,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/encoder.rs:604,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/encoder.rs:604,1
    - Dst: Writer::write_chunk
      Src: /src/image-png/src/encoder.rs:609,1
    - Dst: encode
      Src: /src/image-png/src/encoder.rs:614,1
    - Dst: crate::srgb::substitute_gamma
      Src: /src/image-png/src/encoder.rs:617,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:618,1
    - Dst: ScaledFloat::encode_gama
      Src: /src/image-png/src/encoder.rs:619,1
    - Dst: crate::srgb::substitute_chromaticities
      Src: /src/image-png/src/encoder.rs:621,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:622,1
    - Dst: SourceChromaticities::encode
      Src: /src/image-png/src/encoder.rs:623,1
    - Dst: encode_gama
      Src: /src/image-png/src/encoder.rs:627,1
    - Dst: encode
      Src: /src/image-png/src/encoder.rs:630,1
    - Dst: Writer::write_iccp_chunk
      Src: /src/image-png/src/encoder.rs:633,1
    - Dst: Writer::write_chunk
      Src: /src/image-png/src/encoder.rs:638,1
    - Dst: Result::encode
      Src: /src/image-png/src/encoder.rs:642,1
    - Dst: Writer::write_chunk
      Src: /src/image-png/src/encoder.rs:648,1
    - Dst: Writer::write_chunk
      Src: /src/image-png/src/encoder.rs:652,1
    - Dst: Writer::write_text_chunk
      Src: /src/image-png/src/encoder.rs:656,1
    - Dst: Writer::write_text_chunk
      Src: /src/image-png/src/encoder.rs:660,1
    - Dst: Writer::write_text_chunk
      Src: /src/image-png/src/encoder.rs:664,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:667,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 196
    argCount: 1
    argNames:
    - info
    argTypes:
    - '&Info<''_>'
    constantsTouched: []
    func_position:
      end: 668
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 668
    functionName: Writer::encode_header
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - Writer::write_text_chunk
    - copy_from_slice
    - encode
    - Writer::write_chunk
    - crate::srgb::substitute_chromaticities
    - Writer::write_iccp_chunk
    - SourceChromaticities::encode
    - crate::srgb::substitute_gamma
    - Ok
    - write_all
    - encode_gama
    - ScaledFloat::encode_gama
    - Result::encode
    - to_be_bytes
    - Some
    linkageType: ''
    returnType: Result
    signature: 'fn encode_header(&mut self, info: &Info<''_>) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::try_from
      Src: /src/image-png/src/encoder.rs:679,1
    - Dst: Result::len
      Src: /src/image-png/src/encoder.rs:679,1
    - Dst: map_or
      Src: /src/image-png/src/encoder.rs:679,1
    - Dst: FormatErrorKind::WrittenTooMuch
      Src: /src/image-png/src/encoder.rs:680,1
    - Dst: Result::len
      Src: /src/image-png/src/encoder.rs:680,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:681,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:681,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:681,1
    - Dst: write_chunk
      Src: /src/image-png/src/encoder.rs:684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - name
    - data
    argTypes:
    - ChunkType
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 685
      start: 676
    functionDepth: 4
    functionLinenumber: 676
    functionLinenumberEnd: 685
    functionName: Writer::write_chunk
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - into
    - write_chunk
    - Result::len
    - EncodingError::Format
    - FormatErrorKind::WrittenTooMuch
    - Err
    - map_or
    - u32::try_from
    linkageType: ''
    returnType: Result
    signature: 'pub fn write_chunk(&mut self, name: ChunkType, data: &[u8]) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::encode
      Src: /src/image-png/src/encoder.rs:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - text_chunk
    argTypes:
    - '&T'
    constantsTouched: []
    func_position:
      end: 689
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 689
    functionName: Writer::write_text_chunk
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - Result::encode
    linkageType: ''
    returnType: Result
    signature: 'pub fn write_text_chunk<T: EncodableTextChunk>(&mut self, text_chunk:
      &T) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode_iso_8859_1
      Src: /src/image-png/src/encoder.rs:692,1
    - Dst: '&str::is_empty'
      Src: /src/image-png/src/encoder.rs:693,1
    - Dst: '&str::len'
      Src: /src/image-png/src/encoder.rs:693,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:694,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:694,1
    - Dst: '&[u8]::len'
      Src: /src/image-png/src/encoder.rs:697,1
    - Dst: '&str::len'
      Src: /src/image-png/src/encoder.rs:698,1
    - Dst: Result::checked_add
      Src: /src/image-png/src/encoder.rs:698,1
    - Dst: and_then
      Src: /src/image-png/src/encoder.rs:698,1
    - Dst: checked_add
      Src: /src/image-png/src/encoder.rs:701,1
    - Dst: ok_or
      Src: /src/image-png/src/encoder.rs:698,1
    - Dst: Vec::new
      Src: /src/image-png/src/encoder.rs:704,1
    - Dst: Result::try_reserve_exact
      Src: /src/image-png/src/encoder.rs:705,1
    - Dst: map_err
      Src: /src/image-png/src/encoder.rs:705,1
    - Dst: Result::extend
      Src: /src/image-png/src/encoder.rs:708,1
    - Dst: '&str::into_iter'
      Src: /src/image-png/src/encoder.rs:708,1
    - Dst: chain
      Src: /src/image-png/src/encoder.rs:708,1
    - Dst: ZlibEncoder::new
      Src: /src/image-png/src/encoder.rs:710,1
    - Dst: flate2::Compression::default
      Src: /src/image-png/src/encoder.rs:710,1
    - Dst: Self::write_all
      Src: /src/image-png/src/encoder.rs:711,1
    - Dst: Writer::write_chunk
      Src: /src/image-png/src/encoder.rs:713,1
    - Dst: Self::finish
      Src: /src/image-png/src/encoder.rs:713,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 59
    argCount: 2
    argNames:
    - profile_name
    - icc_profile
    argTypes:
    - '&str'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 714
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 714
    functionName: Writer::write_iccp_chunk
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - map_err
    - checked_add
    - Result::extend
    - '&str::len'
    - Result::checked_add
    - Err
    - '&str::is_empty'
    - Self::finish
    - '&[u8]::len'
    - Writer::write_chunk
    - chain
    - encode_iso_8859_1
    - flate2::Compression::default
    - Result::try_reserve_exact
    - Vec::new
    - into
    - ok_or
    - ZlibEncoder::new
    - and_then
    - '&str::into_iter'
    - Self::write_all
    linkageType: ''
    returnType: Result
    signature: 'fn write_iccp_chunk(&mut self, profile_name: &str, icc_profile: &[u8])
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:719,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:725,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:727,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:727,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:727,1
    - Dst: is_some
      Src: /src/image-png/src/encoder.rs:731,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:732,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:734,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:734,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:734,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 738
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 738
    functionName: Writer::validate_new_image
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - into
    - EncodingError::Format
    - Err
    - Ok
    - is_some
    linkageType: ''
    returnType: Result
    signature: fn validate_new_image(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:742,1
    - Dst: is_some
      Src: /src/image-png/src/encoder.rs:745,1
    - Dst: is_some
      Src: /src/image-png/src/encoder.rs:745,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:748,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:748,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:748,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:750,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 752
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 752
    functionName: Writer::validate_sequence_done
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - into
    - EncodingError::Format
    - Err
    - Ok
    - is_some
    linkageType: ''
    returnType: Result
    signature: fn validate_sequence_done(&self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:761,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:761,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:761,1
    - Dst: Writer::validate_new_image
      Src: /src/image-png/src/encoder.rs:764,1
    - Dst: raw_row_length_from_width
      Src: /src/image-png/src/encoder.rs:776,1
    - Dst: Result::len
      Src: /src/image-png/src/encoder.rs:778,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:779,1
    - Dst: EncodingError::Parameter
      Src: /src/image-png/src/encoder.rs:779,1
    - Dst: Result::len
      Src: /src/image-png/src/encoder.rs:782,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:780,1
    - Dst: as_slice
      Src: /src/image-png/src/encoder.rs:789,1
    - Dst: bpp_in_prediction
      Src: /src/image-png/src/encoder.rs:791,1
    - Dst: fdeflate::StoredOnlyCompressor::new
      Src: /src/image-png/src/encoder.rs:797,1
    - Dst: std::io::Cursor::new
      Src: /src/image-png/src/encoder.rs:797,1
    - Dst: Vec::new
      Src: /src/image-png/src/encoder.rs:797,1
    - Dst: Result::chunks
      Src: /src/image-png/src/encoder.rs:798,1
    - Dst: write_data
      Src: /src/image-png/src/encoder.rs:799,1
    - Dst: write_data
      Src: /src/image-png/src/encoder.rs:800,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:802,1
    - Dst: into_inner
      Src: /src/image-png/src/encoder.rs:802,1
    - Dst: fdeflate::Compressor::new
      Src: /src/image-png/src/encoder.rs:805,1
    - Dst: std::io::Cursor::new
      Src: /src/image-png/src/encoder.rs:805,1
    - Dst: Vec::new
      Src: /src/image-png/src/encoder.rs:805,1
    - Dst: Result::chunks
      Src: /src/image-png/src/encoder.rs:808,1
    - Dst: filter::filter
      Src: /src/image-png/src/encoder.rs:809,1
    - Dst: write_data
      Src: /src/image-png/src/encoder.rs:812,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:816,1
    - Dst: into_inner
      Src: /src/image-png/src/encoder.rs:816,1
    - Dst: len
      Src: /src/image-png/src/encoder.rs:817,1
    - Dst: fdeflate::StoredOnlyCompressor::<()>::compressed_size
      Src: /src/image-png/src/encoder.rs:818,1
    - Dst: fdeflate::StoredOnlyCompressor::new
      Src: /src/image-png/src/encoder.rs:825,1
    - Dst: std::io::Cursor::new
      Src: /src/image-png/src/encoder.rs:825,1
    - Dst: Vec::new
      Src: /src/image-png/src/encoder.rs:825,1
    - Dst: Result::chunks
      Src: /src/image-png/src/encoder.rs:826,1
    - Dst: write_data
      Src: /src/image-png/src/encoder.rs:827,1
    - Dst: write_data
      Src: /src/image-png/src/encoder.rs:828,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:830,1
    - Dst: into_inner
      Src: /src/image-png/src/encoder.rs:830,1
    - Dst: ZlibEncoder::new
      Src: /src/image-png/src/encoder.rs:839,1
    - Dst: Vec::new
      Src: /src/image-png/src/encoder.rs:839,1
    - Dst: flate2::Compression::new
      Src: /src/image-png/src/encoder.rs:839,1
    - Dst: u32::from
      Src: /src/image-png/src/encoder.rs:839,1
    - Dst: Result::chunks
      Src: /src/image-png/src/encoder.rs:840,1
    - Dst: filter::filter
      Src: /src/image-png/src/encoder.rs:841,1
    - Dst: Self::write_all
      Src: /src/image-png/src/encoder.rs:843,1
    - Dst: Self::write_all
      Src: /src/image-png/src/encoder.rs:844,1
    - Dst: Self::finish
      Src: /src/image-png/src/encoder.rs:847,1
    - Dst: Writer::write_zlib_encoded_idat
      Src: /src/image-png/src/encoder.rs:853,1
    - Dst: Writer::should_skip_frame_control_on_default_image
      Src: /src/image-png/src/encoder.rs:855,1
    - Dst: Writer::write_zlib_encoded_idat
      Src: /src/image-png/src/encoder.rs:856,1
    - Dst: encode
      Src: /src/image-png/src/encoder.rs:859,1
    - Dst: wrapping_add
      Src: /src/image-png/src/encoder.rs:860,1
    - Dst: Writer::write_zlib_encoded_idat
      Src: /src/image-png/src/encoder.rs:865,1
    - Dst: len
      Src: /src/image-png/src/encoder.rs:867,1
    - Dst: min
      Src: /src/image-png/src/encoder.rs:867,1
    - Dst: chunks
      Src: /src/image-png/src/encoder.rs:869,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/encoder.rs:870,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/encoder.rs:870,1
    - Dst: Result::len
      Src: /src/image-png/src/encoder.rs:871,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/encoder.rs:871,1
    - Dst: write_chunk
      Src: /src/image-png/src/encoder.rs:872,1
    - Dst: Result::len
      Src: /src/image-png/src/encoder.rs:872,1
    - Dst: wrapping_add
      Src: /src/image-png/src/encoder.rs:873,1
    - Dst: Writer::increment_images_written
      Src: /src/image-png/src/encoder.rs:879,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:881,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 270
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 882
      start: 759
    functionDepth: 3
    functionLinenumber: 759
    functionLinenumberEnd: 882
    functionName: Writer::write_image_data
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - fdeflate::Compressor::new
    - Writer::increment_images_written
    - write_chunk
    - len
    - raw_row_length_from_width
    - Err
    - fdeflate::StoredOnlyCompressor::new
    - EncodingError::Parameter
    - Writer::should_skip_frame_control_on_default_image
    - u32::from
    - Self::finish
    - min
    - bpp_in_prediction
    - fdeflate::StoredOnlyCompressor::<()>::compressed_size
    - wrapping_add
    - Writer::write_zlib_encoded_idat
    - copy_from_slice
    - filter::filter
    - encode
    - into_inner
    - EncodingError::Format
    - Result::len
    - std::io::Cursor::new
    - Writer::validate_new_image
    - Ok
    - as_slice
    - to_be_bytes
    - Result::chunks
    - write_data
    - Vec::new
    - into
    - finish
    - ZlibEncoder::new
    - flate2::Compression::new
    - chunks
    - Self::write_all
    linkageType: ''
    returnType: Result
    signature: 'pub fn write_image_data(&mut self, data: &[u8]) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: saturating_add
      Src: /src/image-png/src/encoder.rs:885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 893
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 893
    functionName: Writer::increment_images_written
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - saturating_add
    linkageType: ''
    returnType: void
    signature: fn increment_images_written(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::write_chunk
      Src: /src/image-png/src/encoder.rs:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 898
      start: 895
    functionDepth: 5
    functionLinenumber: 895
    functionLinenumberEnd: 898
    functionName: Writer::write_iend
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Writer::write_chunk
    linkageType: ''
    returnType: Result
    signature: fn write_iend(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 902
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 902
    functionName: Writer::should_skip_frame_control_on_default_image
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn should_skip_frame_control_on_default_image(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::chunks'
      Src: /src/image-png/src/encoder.rs:905,1
    - Dst: Writer::write_chunk
      Src: /src/image-png/src/encoder.rs:906,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - zlib_encoded
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 909
      start: 904
    functionDepth: 5
    functionLinenumber: 904
    functionLinenumberEnd: 909
    functionName: Writer::write_zlib_encoded_idat
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Writer::write_chunk
    - '&[u8]::chunks'
    linkageType: ''
    returnType: Result
    signature: 'fn write_zlib_encoded_idat(&mut self, zlib_encoded: &[u8]) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - filter
    argTypes:
    - Filter
    constantsTouched: []
    func_position:
      end: 920
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 920
    functionName: Writer::set_filter
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_filter(&mut self, filter: Filter)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:935,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:937,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:937,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - u16
    - u16
    constantsTouched: []
    func_position:
      end: 939
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 939
    functionName: Writer::set_frame_delay
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - EncodingError::Format
    - Err
    - into
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_frame_delay(&mut self, numerator: u16, denominator: u16)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:955,1
    - Dst: checked_sub
      Src: /src/image-png/src/encoder.rs:955,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:956,1
    - Dst: checked_sub
      Src: /src/image-png/src/encoder.rs:956,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:958,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:958,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:958,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:960,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:960,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:960,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:962,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:962,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:962,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:966,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:968,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:968,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:968,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 55
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 970
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 970
    functionName: Writer::set_frame_dimension
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - into
    - EncodingError::Format
    - Ok
    - Err
    - checked_sub
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_frame_dimension(&mut self, width: u32, height: u32) ->
      Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:984,1
    - Dst: checked_sub
      Src: /src/image-png/src/encoder.rs:984,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:985,1
    - Dst: checked_sub
      Src: /src/image-png/src/encoder.rs:985,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:987,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:987,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:987,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:991,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:993,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:993,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:993,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 995
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 995
    functionName: Writer::set_frame_position
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - into
    - EncodingError::Format
    - Ok
    - Err
    - checked_sub
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_frame_position(&mut self, x: u32, y: u32) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1010,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1012,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1012,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1012,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1014
    functionName: Writer::reset_frame_dimension
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - EncodingError::Format
    - Err
    - into
    linkageType: ''
    returnType: Result
    signature: pub fn reset_frame_dimension(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1027,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1029,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1029,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1029,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1023
    functionDepth: 1
    functionLinenumber: 1023
    functionLinenumberEnd: 1031
    functionName: Writer::reset_frame_position
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - EncodingError::Format
    - Err
    - into
    linkageType: ''
    returnType: Result
    signature: pub fn reset_frame_position(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1049,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1051,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1051,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - BlendOp
    constantsTouched: []
    func_position:
      end: 1053
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1053
    functionName: Writer::set_blend_op
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - EncodingError::Format
    - Err
    - into
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_blend_op(&mut self, op: BlendOp) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1069,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1071,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1071,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1071,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - DisposeOp
    constantsTouched: []
    func_position:
      end: 1073
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1073
    functionName: Writer::set_dispose_op
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - EncodingError::Format
    - Err
    - into
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_dispose_op(&mut self, op: DisposeOp) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::stream_writer_with_size
      Src: /src/image-png/src/encoder.rs:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1085
    functionName: Writer::stream_writer
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Writer::stream_writer_with_size
    linkageType: ''
    returnType: Result
    signature: pub fn stream_writer(&mut self) -> Result<StreamWriter<'_, W>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamWriter::new
      Src: /src/image-png/src/encoder.rs:1093,1
    - Dst: ChunkOutput::Borrowed
      Src: /src/image-png/src/encoder.rs:1093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 1094
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1094
    functionName: Writer::stream_writer_with_size
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - StreamWriter::new
    - ChunkOutput::Borrowed
    linkageType: ''
    returnType: Result
    signature: 'pub fn stream_writer_with_size(&mut self, size: usize) -> Result<StreamWriter<''_,
      W>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::into_stream_writer_with_size
      Src: /src/image-png/src/encoder.rs:1104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1103
    functionDepth: 1
    functionLinenumber: 1103
    functionLinenumberEnd: 1105
    functionName: Writer::into_stream_writer
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Writer::into_stream_writer_with_size
    linkageType: ''
    returnType: Result
    signature: pub fn into_stream_writer(self) -> Result<StreamWriter<'static, W>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamWriter::new
      Src: /src/image-png/src/encoder.rs:1113,1
    - Dst: ChunkOutput::Owned
      Src: /src/image-png/src/encoder.rs:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 1114
      start: 1112
    functionDepth: 1
    functionLinenumber: 1112
    functionLinenumberEnd: 1114
    functionName: Writer::into_stream_writer_with_size
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - StreamWriter::new
    - ChunkOutput::Owned
    linkageType: ''
    returnType: Result
    signature: 'pub fn into_stream_writer_with_size(self, size: usize) -> Result<StreamWriter<''static,
      W>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::validate_sequence_done
      Src: /src/image-png/src/encoder.rs:1122,1
    - Dst: Writer::write_iend
      Src: /src/image-png/src/encoder.rs:1123,1
    - Dst: flush
      Src: /src/image-png/src/encoder.rs:1124,1
    - Dst: drop
      Src: /src/image-png/src/encoder.rs:1127,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1121
    functionDepth: 6
    functionLinenumber: 1121
    functionLinenumberEnd: 1129
    functionName: Writer::finish
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - flush
    - drop
    - Writer::write_iend
    - Ok
    - Writer::validate_sequence_done
    linkageType: ''
    returnType: Result
    signature: pub fn finish(mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Writer::write_iend
      Src: /src/image-png/src/encoder.rs:1135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1133
    functionDepth: 6
    functionLinenumber: 1133
    functionLinenumberEnd: 1137
    functionName: Writer::drop
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Writer::write_iend
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1149
    functionDepth: 0
    functionLinenumber: 1149
    functionLinenumberEnd: 1154
    functionName: ChunkOutput::deref
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Self::Target'
    signature: fn deref(&self) -> &Self::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1163
    functionName: ChunkOutput::deref_mut
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut Self::Target'
    signature: fn deref_mut(&mut self) -> &mut Self::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - writer
    - buf_len
    argTypes:
    - ChunkOutput<'a, W>
    - usize
    constantsTouched: []
    func_position:
      end: 1208
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1208
    functionName: ChunkWriter::new
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ChunkWriter
    signature: 'fn new(writer: ChunkOutput<''a, W>, buf_len: usize) -> ChunkWriter<''a,
      W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: deref
      Src: /src/image-png/src/encoder.rs:1217,1
    - Dst: raw_row_length_from_width
      Src: /src/image-png/src/encoder.rs:1229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1216
    functionDepth: 1
    functionLinenumber: 1216
    functionLinenumberEnd: 1233
    functionName: ChunkWriter::next_frame_info
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - raw_row_length_from_width
    - deref
    linkageType: ''
    returnType: (usize, usize)
    signature: fn next_frame_info(&self) -> (usize, usize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: deref_mut
      Src: /src/image-png/src/encoder.rs:1239,1
    - Dst: should_skip_frame_control_on_default_image
      Src: /src/image-png/src/encoder.rs:1248,1
    - Dst: encode
      Src: /src/image-png/src/encoder.rs:1250,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1256,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1257
    functionName: ChunkWriter::write_header
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - deref_mut
    - should_skip_frame_control_on_default_image
    - Ok
    - encode
    linkageType: ''
    returnType: Result
    signature: fn write_header(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - f
    argTypes:
    - FrameControl
    constantsTouched: []
    func_position:
      end: 1273
      start: 1263
    functionDepth: 0
    functionLinenumber: 1263
    functionLinenumberEnd: 1273
    functionName: ChunkWriter::set_fctl
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_fctl(&mut self, f: FrameControl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_chunk
      Src: /src/image-png/src/encoder.rs:1279,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1276
    functionDepth: 4
    functionLinenumber: 1276
    functionLinenumberEnd: 1288
    functionName: ChunkWriter::flush_inner
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - write_chunk
    linkageType: ''
    returnType: io::Result
    signature: fn flush_inner(&mut self) -> io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::is_empty
      Src: /src/image-png/src/encoder.rs:1293,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1294,1
    - Dst: deref_mut
      Src: /src/image-png/src/encoder.rs:1299,1
    - Dst: should_skip_frame_control_on_default_image
      Src: /src/image-png/src/encoder.rs:1302,1
    - Dst: is_some
      Src: /src/image-png/src/encoder.rs:1303,1
    - Dst: as_mut
      Src: /src/image-png/src/encoder.rs:1304,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1304,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/encoder.rs:1305,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/encoder.rs:1305,1
    - Dst: Result::len
      Src: /src/image-png/src/encoder.rs:1313,1
    - Dst: Result::min
      Src: /src/image-png/src/encoder.rs:1313,1
    - Dst: len
      Src: /src/image-png/src/encoder.rs:1313,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/encoder.rs:1316,1
    - Dst: len
      Src: /src/image-png/src/encoder.rs:1320,1
    - Dst: ChunkWriter::flush_inner
      Src: /src/image-png/src/encoder.rs:1321,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1324,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 82
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1325
      start: 1292
    functionDepth: 5
    functionLinenumber: 1292
    functionLinenumberEnd: 1325
    functionName: ChunkWriter::write
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - deref_mut
    - copy_from_slice
    - should_skip_frame_control_on_default_image
    - ChunkWriter::flush_inner
    - as_mut
    - Result::len
    - len
    - Result::is_empty
    - Result::min
    - Ok
    - is_some
    - unwrap
    - to_be_bytes
    linkageType: ''
    returnType: io::Result
    signature: 'fn write(&mut self, mut data: &[u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ChunkWriter::flush_inner
      Src: /src/image-png/src/encoder.rs:1328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1327
    functionDepth: 5
    functionLinenumber: 1327
    functionLinenumberEnd: 1329
    functionName: ChunkWriter::flush
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - ChunkWriter::flush_inner
    linkageType: ''
    returnType: io::Result
    signature: fn flush(&mut self) -> io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ChunkWriter::flush
      Src: /src/image-png/src/encoder.rs:1334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1333
    functionDepth: 6
    functionLinenumber: 1333
    functionLinenumberEnd: 1335
    functionName: ChunkWriter::drop
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - ChunkWriter::flush
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1366,1
    - Dst: Wrapper::Flate2
      Src: /src/image-png/src/encoder.rs:1368,1
    - Dst: ZlibEncoder::new
      Src: /src/image-png/src/encoder.rs:1368,1
    - Dst: flate2::Compression::none
      Src: /src/image-png/src/encoder.rs:1368,1
    - Dst: Wrapper::FDeflate
      Src: /src/image-png/src/encoder.rs:1371,1
    - Dst: fdeflate::Compressor::new
      Src: /src/image-png/src/encoder.rs:1371,1
    - Dst: Wrapper::Flate2
      Src: /src/image-png/src/encoder.rs:1373,1
    - Dst: ZlibEncoder::new
      Src: /src/image-png/src/encoder.rs:1373,1
    - Dst: flate2::Compression::new
      Src: /src/image-png/src/encoder.rs:1375,1
    - Dst: u32::from
      Src: /src/image-png/src/encoder.rs:1375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - writer
    - compression
    argTypes:
    - ChunkWriter<'a, W>
    - DeflateCompression
    constantsTouched: []
    func_position:
      end: 1378
      start: 1365
    functionDepth: 3
    functionLinenumber: 1365
    functionLinenumberEnd: 1378
    functionName: Wrapper::from_level
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - fdeflate::Compressor::new
    - u32::from
    - flate2::Compression::none
    - ZlibEncoder::new
    - flate2::Compression::new
    - Ok
    - Wrapper::Flate2
    - Wrapper::FDeflate
    linkageType: ''
    returnType: io::Result
    signature: 'fn from_level(writer: ChunkWriter<''a, W>, compression: DeflateCompression)
      -> io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem::swap
      Src: /src/image-png/src/encoder.rs:1384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1382
    functionDepth: 0
    functionLinenumber: 1382
    functionLinenumberEnd: 1386
    functionName: Wrapper::take
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - mem::swap
    linkageType: ''
    returnType: Wrapper
    signature: fn take(&mut self) -> Wrapper<'a, W>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bpp_in_prediction
      Src: /src/image-png/src/encoder.rs:1428,1
    - Dst: raw_row_length
      Src: /src/image-png/src/encoder.rs:1429,1
    - Dst: ChunkWriter::new
      Src: /src/image-png/src/encoder.rs:1436,1
    - Dst: ChunkWriter::next_frame_info
      Src: /src/image-png/src/encoder.rs:1437,1
    - Dst: ChunkWriter::write_header
      Src: /src/image-png/src/encoder.rs:1438,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1440,1
    - Dst: Wrapper::from_level
      Src: /src/image-png/src/encoder.rs:1441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - writer
    - buf_len
    argTypes:
    - ChunkOutput<'a, W>
    - usize
    constantsTouched: []
    func_position:
      end: 1455
      start: 1420
    functionDepth: 4
    functionLinenumber: 1420
    functionLinenumberEnd: 1455
    functionName: StreamWriter::new
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 2
    functionsReached:
    - Wrapper::from_level
    - raw_row_length
    - ChunkWriter::new
    - bpp_in_prediction
    - ChunkWriter::next_frame_info
    - Ok
    - ChunkWriter::write_header
    linkageType: ''
    returnType: Result
    signature: 'fn new(writer: ChunkOutput<''a, W>, buf_len: usize) -> Result<StreamWriter<''a,
      W>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filter
    argTypes:
    - Filter
    constantsTouched: []
    func_position:
      end: 1466
      start: 1464
    functionDepth: 0
    functionLinenumber: 1464
    functionLinenumberEnd: 1466
    functionName: StreamWriter::set_filter
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_filter(&mut self, filter: Filter)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1481,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1483,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1483,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - u16
    - u16
    constantsTouched: []
    func_position:
      end: 1485
      start: 1477
    functionDepth: 1
    functionLinenumber: 1477
    functionLinenumberEnd: 1485
    functionName: StreamWriter::set_frame_delay
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - EncodingError::Format
    - Err
    - into
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_frame_delay(&mut self, numerator: u16, denominator: u16)
      -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:1499,1
    - Dst: checked_sub
      Src: /src/image-png/src/encoder.rs:1499,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:1500,1
    - Dst: checked_sub
      Src: /src/image-png/src/encoder.rs:1500,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1502,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1502,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1502,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1504,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1504,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1504,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1506,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1506,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1506,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1510,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1512,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1512,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1512,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 52
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1514
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1514
    functionName: StreamWriter::set_frame_dimension
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - into
    - EncodingError::Format
    - Ok
    - Err
    - checked_sub
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_frame_dimension(&mut self, width: u32, height: u32) ->
      Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:1526,1
    - Dst: checked_sub
      Src: /src/image-png/src/encoder.rs:1526,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:1527,1
    - Dst: checked_sub
      Src: /src/image-png/src/encoder.rs:1527,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1529,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1529,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1529,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1533,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1535,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1535,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1537
      start: 1524
    functionDepth: 1
    functionLinenumber: 1524
    functionLinenumberEnd: 1537
    functionName: StreamWriter::set_frame_position
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - into
    - EncodingError::Format
    - Ok
    - Err
    - checked_sub
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_frame_position(&mut self, x: u32, y: u32) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1552,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1554,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1554,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1548
    functionDepth: 1
    functionLinenumber: 1548
    functionLinenumberEnd: 1556
    functionName: StreamWriter::reset_frame_dimension
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - EncodingError::Format
    - Err
    - into
    linkageType: ''
    returnType: Result
    signature: pub fn reset_frame_dimension(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1569,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1571,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1571,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1565
    functionDepth: 1
    functionLinenumber: 1565
    functionLinenumberEnd: 1573
    functionName: StreamWriter::reset_frame_position
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - EncodingError::Format
    - Err
    - into
    linkageType: ''
    returnType: Result
    signature: pub fn reset_frame_position(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1591,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1593,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1593,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - BlendOp
    constantsTouched: []
    func_position:
      end: 1595
      start: 1588
    functionDepth: 1
    functionLinenumber: 1588
    functionLinenumberEnd: 1595
    functionName: StreamWriter::set_blend_op
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - EncodingError::Format
    - Err
    - into
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_blend_op(&mut self, op: BlendOp) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1611,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1613,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1613,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - DisposeOp
    constantsTouched: []
    func_position:
      end: 1615
      start: 1608
    functionDepth: 1
    functionLinenumber: 1608
    functionLinenumberEnd: 1615
    functionName: StreamWriter::set_dispose_op
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - EncodingError::Format
    - Err
    - into
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_dispose_op(&mut self, op: DisposeOp) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamWriter::finish_mut
      Src: /src/image-png/src/encoder.rs:1624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1623
    functionDepth: 1
    functionLinenumber: 1623
    functionLinenumberEnd: 1625
    functionName: StreamWriter::finish
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - StreamWriter::finish_mut
    linkageType: ''
    returnType: Result
    signature: pub fn finish(mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FormatErrorKind::MissingData
      Src: /src/image-png/src/encoder.rs:1631,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1631,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1632,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1632,1
    - Dst: StreamWriter::flush
      Src: /src/image-png/src/encoder.rs:1635,1
    - Dst: take
      Src: /src/image-png/src/encoder.rs:1636,1
    - Dst: validate_sequence_done
      Src: /src/image-png/src/encoder.rs:1638,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:1641,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:1644,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1648,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1649,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1649,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1653,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1629
    functionDepth: 7
    functionLinenumber: 1629
    functionLinenumberEnd: 1654
    functionName: StreamWriter::finish_mut
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - take
    - into
    - EncodingError::Format
    - finish
    - Err
    - Ok
    - StreamWriter::flush
    - validate_sequence_done
    - FormatErrorKind::MissingData
    linkageType: ''
    returnType: Result
    signature: fn finish_mut(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1664,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1665,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1665,1
    - Dst: flush
      Src: /src/image-png/src/encoder.rs:1672,1
    - Dst: validate_new_image
      Src: /src/image-png/src/encoder.rs:1673,1
    - Dst: set_fctl
      Src: /src/image-png/src/encoder.rs:1676,1
    - Dst: next_frame_info
      Src: /src/image-png/src/encoder.rs:1678,1
    - Dst: write_header
      Src: /src/image-png/src/encoder.rs:1682,1
    - Dst: increment_images_written
      Src: /src/image-png/src/encoder.rs:1683,1
    - Dst: take
      Src: /src/image-png/src/encoder.rs:1686,1
    - Dst: Wrapper::from_level
      Src: /src/image-png/src/encoder.rs:1687,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1691,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1691,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1697,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1660
    functionDepth: 7
    functionLinenumber: 1660
    functionLinenumberEnd: 1698
    functionName: StreamWriter::new_frame
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Wrapper::from_level
    - validate_new_image
    - take
    - into
    - increment_images_written
    - EncodingError::Format
    - set_fctl
    - write_header
    - flush
    - Err
    - Ok
    - next_frame_info
    linkageType: ''
    returnType: Result
    signature: fn new_frame(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1704,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1705,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1705,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1705,1
    - Dst: Result::is_empty
      Src: /src/image-png/src/encoder.rs:1708,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1709,1
    - Dst: take
      Src: /src/image-png/src/encoder.rs:1713,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:1714,1
    - Dst: Wrapper::Chunk
      Src: /src/image-png/src/encoder.rs:1715,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1718,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:1721,1
    - Dst: Wrapper::Chunk
      Src: /src/image-png/src/encoder.rs:1722,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1725,1
    - Dst: StreamWriter::new_frame
      Src: /src/image-png/src/encoder.rs:1734,1
    - Dst: Result::read
      Src: /src/image-png/src/encoder.rs:1737,1
    - Dst: filter::filter
      Src: /src/image-png/src/encoder.rs:1742,1
    - Dst: write_all
      Src: /src/image-png/src/encoder.rs:1752,1
    - Dst: write_all
      Src: /src/image-png/src/encoder.rs:1753,1
    - Dst: write_data
      Src: /src/image-png/src/encoder.rs:1756,1
    - Dst: write_data
      Src: /src/image-png/src/encoder.rs:1757,1
    - Dst: mem::swap
      Src: /src/image-png/src/encoder.rs:1762,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1766,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 126
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1767
      start: 1702
    functionDepth: 7
    functionLinenumber: 1702
    functionLinenumberEnd: 1767
    functionName: StreamWriter::write
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - filter::filter
    - Result::read
    - take
    - into
    - Wrapper::Chunk
    - write_data
    - EncodingError::Format
    - mem::swap
    - finish
    - Result::is_empty
    - Err
    - write_all
    - Ok
    - StreamWriter::new_frame
    linkageType: ''
    returnType: io::Result
    signature: 'fn write(&mut self, mut data: &[u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flush
      Src: /src/image-png/src/encoder.rs:1771,1
    - Dst: flush
      Src: /src/image-png/src/encoder.rs:1772,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1777,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1778,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1778,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1778,1
    - Dst: FormatErrorKind::WrittenTooMuch
      Src: /src/image-png/src/encoder.rs:1783,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1783,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1784,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1784,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1784,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1787,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1769
    functionDepth: 6
    functionLinenumber: 1769
    functionLinenumberEnd: 1788
    functionName: StreamWriter::flush
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - into
    - EncodingError::Format
    - flush
    - FormatErrorKind::WrittenTooMuch
    - Err
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: fn flush(&mut self) -> io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamWriter::finish_mut
      Src: /src/image-png/src/encoder.rs:1793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1792
    functionDepth: 8
    functionLinenumber: 1792
    functionLinenumberEnd: 1794
    functionName: StreamWriter::drop
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - StreamWriter::finish_mut
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roundtrip_inner
      Src: /src/image-png/src/encoder.rs:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1809
    functionDepth: 1
    functionLinenumber: 1809
    functionLinenumberEnd: 1811
    functionName: tests::roundtrip1
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - roundtrip_inner
    linkageType: ''
    returnType: void
    signature: fn roundtrip1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roundtrip_inner
      Src: /src/image-png/src/encoder.rs:1815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1814
    functionDepth: 1
    functionLinenumber: 1814
    functionLinenumberEnd: 1816
    functionName: tests::roundtrip2
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - roundtrip_inner
    linkageType: ''
    returnType: void
    signature: fn roundtrip2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: glob::glob
      Src: /src/image-png/src/encoder.rs:1821,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1821,1
    - Dst: map
      Src: /src/image-png/src/encoder.rs:1821,1
    - Dst: Vec::unwrap
      Src: /src/image-png/src/encoder.rs:1823,1
    - Dst: PathBuf::file_name
      Src: /src/image-png/src/encoder.rs:1825,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1825,1
    - Dst: to_str
      Src: /src/image-png/src/encoder.rs:1825,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1825,1
    - Dst: starts_with
      Src: /src/image-png/src/encoder.rs:1825,1
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:1831,1
    - Dst: BufReader::new
      Src: /src/image-png/src/encoder.rs:1831,1
    - Dst: File::open
      Src: /src/image-png/src/encoder.rs:1831,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1831,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:1832,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1832,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/encoder.rs:1834,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1834,1
    - Dst: Level
      Src: /src/image-png/src/encoder.rs:1836,1
    - Dst: Vec::new
      Src: /src/image-png/src/encoder.rs:1838,1
    - Dst: rng
      Src: /src/image-png/src/encoder.rs:1841,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:1845,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:1846,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:1847,1
    - Dst: Encoder::set_deflate_compression
      Src: /src/image-png/src/encoder.rs:1848,1
    - Dst: Reader::info
      Src: /src/image-png/src/encoder.rs:1849,1
    - Dst: Encoder::set_palette
      Src: /src/image-png/src/encoder.rs:1850,1
    - Dst: clone
      Src: /src/image-png/src/encoder.rs:1850,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:1852,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1852,1
    - Dst: Encoder::write_image_data
      Src: /src/image-png/src/encoder.rs:1853,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1853,1
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:1856,1
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:1856,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:1857,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1857,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/encoder.rs:1859,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1859,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1818
    functionDepth: 8
    functionLinenumber: 1818
    functionLinenumberEnd: 1865
    functionName: tests::roundtrip_inner
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - PathBuf::file_name
    - map
    - rng
    - Encoder::set_deflate_compression
    - Cursor::new
    - Encoder::new
    - glob::glob
    - File::open
    - BufReader::new
    - Encoder::set_depth
    - Reader::info
    - clone
    - Vec::unwrap
    - Encoder::set_color
    - to_str
    - Decoder::new
    - Reader::next_frame
    - Decoder::read_info
    - Encoder::write_header
    - Level
    - Encoder::set_palette
    - starts_with
    - unwrap
    - Result::unwrap
    - Vec::new
    - Encoder::write_image_data
    linkageType: ''
    returnType: void
    signature: fn roundtrip_inner()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roundtrip_stream_inner
      Src: /src/image-png/src/encoder.rs:1869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1868
    functionDepth: 1
    functionLinenumber: 1868
    functionLinenumberEnd: 1870
    functionName: tests::roundtrip_stream1
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - roundtrip_stream_inner
    linkageType: ''
    returnType: void
    signature: fn roundtrip_stream1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roundtrip_stream_inner
      Src: /src/image-png/src/encoder.rs:1874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1873
    functionDepth: 1
    functionLinenumber: 1873
    functionLinenumberEnd: 1875
    functionName: tests::roundtrip_stream2
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - roundtrip_stream_inner
    linkageType: ''
    returnType: void
    signature: fn roundtrip_stream2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: glob::glob
      Src: /src/image-png/src/encoder.rs:1880,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1880,1
    - Dst: map
      Src: /src/image-png/src/encoder.rs:1880,1
    - Dst: Vec::unwrap
      Src: /src/image-png/src/encoder.rs:1882,1
    - Dst: PathBuf::file_name
      Src: /src/image-png/src/encoder.rs:1884,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1884,1
    - Dst: to_str
      Src: /src/image-png/src/encoder.rs:1884,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1884,1
    - Dst: starts_with
      Src: /src/image-png/src/encoder.rs:1884,1
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:1889,1
    - Dst: BufReader::new
      Src: /src/image-png/src/encoder.rs:1889,1
    - Dst: File::open
      Src: /src/image-png/src/encoder.rs:1889,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1889,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:1890,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1890,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/encoder.rs:1892,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1892,1
    - Dst: Level
      Src: /src/image-png/src/encoder.rs:1894,1
    - Dst: Vec::new
      Src: /src/image-png/src/encoder.rs:1896,1
    - Dst: rng
      Src: /src/image-png/src/encoder.rs:1899,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:1903,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:1904,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:1905,1
    - Dst: Encoder::set_deflate_compression
      Src: /src/image-png/src/encoder.rs:1906,1
    - Dst: Reader::info
      Src: /src/image-png/src/encoder.rs:1907,1
    - Dst: Encoder::set_palette
      Src: /src/image-png/src/encoder.rs:1908,1
    - Dst: clone
      Src: /src/image-png/src/encoder.rs:1908,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:1910,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1910,1
    - Dst: Encoder::stream_writer
      Src: /src/image-png/src/encoder.rs:1911,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1911,1
    - Dst: rng
      Src: /src/image-png/src/encoder.rs:1914,1
    - Dst: write_all
      Src: /src/image-png/src/encoder.rs:1918,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1918,1
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:1921,1
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:1921,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:1922,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1922,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/encoder.rs:1924,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1924,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 108
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1877
    functionDepth: 8
    functionLinenumber: 1877
    functionLinenumberEnd: 1930
    functionName: tests::roundtrip_stream_inner
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - PathBuf::file_name
    - map
    - rng
    - Encoder::set_deflate_compression
    - Cursor::new
    - Encoder::new
    - glob::glob
    - File::open
    - BufReader::new
    - Encoder::set_depth
    - Reader::info
    - clone
    - Vec::unwrap
    - Encoder::set_color
    - to_str
    - Decoder::new
    - Reader::next_frame
    - Decoder::read_info
    - write_all
    - Encoder::write_header
    - Level
    - Encoder::set_palette
    - starts_with
    - unwrap
    - Encoder::stream_writer
    - Result::unwrap
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn roundtrip_stream_inner()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:1937,1
    - Dst: BufReader::new
      Src: /src/image-png/src/encoder.rs:1937,1
    - Dst: File::open
      Src: /src/image-png/src/encoder.rs:1937,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1937,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:1938,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1938,1
    - Dst: Reader::info
      Src: /src/image-png/src/encoder.rs:1941,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/encoder.rs:1946,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1946,1
    - Dst: Reader::info
      Src: /src/image-png/src/encoder.rs:1949,1
    - Dst: as_ref
      Src: /src/image-png/src/encoder.rs:1949,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1949,1
    - Dst: Vec::new
      Src: /src/image-png/src/encoder.rs:1950,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:1952,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:1953,1
    - Dst: BitDepth::from_u8
      Src: /src/image-png/src/encoder.rs:1953,1
    - Dst: Option::unwrap
      Src: /src/image-png/src/encoder.rs:1953,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:1954,1
    - Dst: Encoder::set_palette
      Src: /src/image-png/src/encoder.rs:1955,1
    - Dst: as_ref
      Src: /src/image-png/src/encoder.rs:1955,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:1957,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1957,1
    - Dst: Result::write_image_data
      Src: /src/image-png/src/encoder.rs:1958,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1958,1
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:1962,1
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:1962,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:1963,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1963,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/encoder.rs:1965,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1965,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1933
    functionDepth: 8
    functionLinenumber: 1933
    functionLinenumberEnd: 1970
    functionName: tests::image_palette
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - Result::write_image_data
    - Cursor::new
    - Encoder::new
    - File::open
    - Encoder::set_depth
    - BufReader::new
    - Reader::info
    - Encoder::set_color
    - BitDepth::from_u8
    - Decoder::new
    - Reader::next_frame
    - Decoder::read_info
    - Encoder::write_header
    - Encoder::set_palette
    - as_ref
    - Ok
    - unwrap
    - Result::unwrap
    - Vec::new
    linkageType: ''
    returnType: Result
    signature: fn image_palette() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:1978,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:1979,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:1980,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:1981,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:1982,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:1986,1
    - Dst: Result::as_ref
      Src: /src/image-png/src/encoder.rs:1986,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1989,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1973
    functionDepth: 8
    functionLinenumber: 1973
    functionLinenumberEnd: 1990
    functionName: tests::expect_error_on_wrong_image_len
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_color
    - write_image_data
    - Cursor::new
    - Result::as_ref
    - Encoder::new
    - Encoder::set_depth
    - Ok
    - Encoder::write_header
    linkageType: ''
    returnType: Result
    signature: fn expect_error_on_wrong_image_len() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:1995,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:1997,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2000,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2003,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 1993
    functionDepth: 3
    functionLinenumber: 1993
    functionLinenumberEnd: 2007
    functionName: tests::expect_error_on_empty_image
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Encoder::new
    - Cursor::new
    linkageType: ''
    returnType: Result
    signature: fn expect_error_on_empty_image() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2012,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2014,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2015,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2016,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2019,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2020,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2021,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2024,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2025,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2026,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2029,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2030,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2031,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2034,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2035,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2036,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2039,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2040,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2041,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2044,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2045,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2046,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2049,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2050,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2051,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2054,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2055,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2056,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2059,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2060,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2061,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2010
    functionDepth: 3
    functionLinenumber: 2010
    functionLinenumberEnd: 2065
    functionName: tests::expect_error_on_invalid_bit_depth_color_type_combination
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_color
    - Cursor::new
    - Encoder::new
    - Encoder::set_depth
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn expect_error_on_invalid_bit_depth_color_type_combination() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Info::with_size
      Src: /src/image-png/src/encoder.rs:2075,1
    - Dst: Vec::new
      Src: /src/image-png/src/encoder.rs:2080,1
    - Dst: Encoder::with_info
      Src: /src/image-png/src/encoder.rs:2081,1
    - Dst: Result::expect
      Src: /src/image-png/src/encoder.rs:2081,1
    - Dst: write_header
      Src: /src/image-png/src/encoder.rs:2082,1
    - Dst: err
      Src: /src/image-png/src/encoder.rs:2088,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:2088,1
    - Dst: to_string
      Src: /src/image-png/src/encoder.rs:2088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2068
    functionDepth: 11
    functionLinenumber: 2068
    functionLinenumberEnd: 2093
    functionName: tests::expect_error_when_interlacing_is_requested
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - to_string
    - Vec::new
    - err
    - Info::with_size
    - write_header
    - Encoder::with_info
    - unwrap
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn expect_error_when_interlacing_is_requested()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2098,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2100,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2101,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2102,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2105,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2106,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2107,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2110,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2111,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2112,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2115,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2116,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2117,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2120,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2121,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2122,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2125,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2126,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2127,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2130,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2131,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2132,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2135,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2136,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2137,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2140,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2141,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2142,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2145,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2146,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2147,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2150,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2151,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2152,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2155,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2156,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2157,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2160,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2161,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2162,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2165,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2166,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2167,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2170,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2171,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2172,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 138
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2096
    functionDepth: 3
    functionLinenumber: 2096
    functionLinenumberEnd: 2176
    functionName: tests::can_write_header_with_valid_bit_depth_color_type_combination
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_color
    - Cursor::new
    - Encoder::new
    - Encoder::set_depth
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn can_write_header_with_valid_bit_depth_color_type_combination() ->
      Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: collect
      Src: /src/image-png/src/encoder.rs:2180,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2184,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2185,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2186,1
    - Dst: Encoder::set_filter
      Src: /src/image-png/src/encoder.rs:2187,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2188,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:2188,1
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/encoder.rs:2190,1
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2190,1
    - Dst: Self::read_info
      Src: /src/image-png/src/encoder.rs:2191,1
    - Dst: Reader::info
      Src: /src/image-png/src/encoder.rs:2192,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/encoder.rs:2196,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2199,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2202,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2203,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2204,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2205,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2206,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2208,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2179
    functionDepth: 11
    functionLinenumber: 2179
    functionLinenumberEnd: 2209
    functionName: tests::all_filters_roundtrip
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_color
    - write_image_data
    - crate::Decoder::new
    - collect
    - Cursor::new
    - roundtrip
    - Reader::next_frame
    - Encoder::new
    - Encoder::set_depth
    - Ok
    - Reader::info
    - Self::read_info
    - Encoder::set_filter
    - Encoder::write_header
    linkageType: ''
    returnType: io::Result
    signature: fn all_filters_roundtrip() -> io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: collect
      Src: /src/image-png/src/encoder.rs:2213,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2217,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2218,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2219,1
    - Dst: Encoder::set_filter
      Src: /src/image-png/src/encoder.rs:2220,1
    - Dst: Encoder::set_source_gamma
      Src: /src/image-png/src/encoder.rs:2222,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2224,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:2224,1
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/encoder.rs:2226,1
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2226,1
    - Dst: Self::read_info
      Src: /src/image-png/src/encoder.rs:2227,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/encoder.rs:2235,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2239,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2242,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2243,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:2243,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/encoder.rs:2243,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2244,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:2244,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/encoder.rs:2244,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2245,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:2245,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/encoder.rs:2245,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2246,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:2246,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/encoder.rs:2246,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2247,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:2247,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/encoder.rs:2247,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2248,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:2248,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/encoder.rs:2248,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2250,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2251
      start: 2212
    functionDepth: 11
    functionLinenumber: 2212
    functionLinenumberEnd: 2251
    functionName: tests::some_gamma_roundtrip
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Some
    - Encoder::set_color
    - write_image_data
    - crate::Decoder::new
    - collect
    - Cursor::new
    - roundtrip
    - Reader::next_frame
    - Encoder::new
    - Encoder::set_depth
    - Encoder::set_source_gamma
    - Ok
    - ScaledFloat::new
    - Self::read_info
    - Encoder::set_filter
    - Encoder::write_header
    linkageType: ''
    returnType: io::Result
    signature: fn some_gamma_roundtrip() -> io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2259,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2264,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2265,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2266,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2267,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:2272,1
    - Dst: Result::as_ref
      Src: /src/image-png/src/encoder.rs:2272,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2254
    functionDepth: 11
    functionLinenumber: 2254
    functionLinenumberEnd: 2276
    functionName: tests::write_image_chunks_beyond_first
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_color
    - write_image_data
    - Cursor::new
    - Result::as_ref
    - Encoder::new
    - Encoder::set_depth
    - Ok
    - Encoder::write_header
    linkageType: ''
    returnType: Result
    signature: fn write_image_chunks_beyond_first() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2284,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2286,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2287,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2288,1
    - Dst: Encoder::validate_sequence
      Src: /src/image-png/src/encoder.rs:2289,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2290,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:2294,1
    - Dst: Result::as_ref
      Src: /src/image-png/src/encoder.rs:2294,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2298
      start: 2279
    functionDepth: 11
    functionLinenumber: 2279
    functionLinenumberEnd: 2298
    functionName: tests::image_validate_sequence_without_animation
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_color
    - write_image_data
    - Cursor::new
    - Result::as_ref
    - Encoder::validate_sequence
    - Encoder::new
    - Encoder::set_depth
    - Ok
    - Encoder::write_header
    linkageType: ''
    returnType: Result
    signature: fn image_validate_sequence_without_animation() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2306,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2310,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2311,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2312,1
    - Dst: Encoder::set_animated
      Src: /src/image-png/src/encoder.rs:2313,1
    - Dst: Encoder::validate_sequence
      Src: /src/image-png/src/encoder.rs:2314,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2315,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:2317,1
    - Dst: Result::as_ref
      Src: /src/image-png/src/encoder.rs:2317,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2320
      start: 2301
    functionDepth: 11
    functionLinenumber: 2301
    functionLinenumberEnd: 2320
    functionName: tests::image_validate_animation
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_animated
    - Encoder::set_color
    - write_image_data
    - Cursor::new
    - Result::as_ref
    - Encoder::validate_sequence
    - Encoder::new
    - Encoder::set_depth
    - Ok
    - Encoder::write_header
    linkageType: ''
    returnType: Result
    signature: fn image_validate_animation() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2328,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2332,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2333,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2334,1
    - Dst: Encoder::set_animated
      Src: /src/image-png/src/encoder.rs:2335,1
    - Dst: Encoder::validate_sequence
      Src: /src/image-png/src/encoder.rs:2336,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2337,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:2339,1
    - Dst: Result::as_ref
      Src: /src/image-png/src/encoder.rs:2339,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:2340,1
    - Dst: Result::as_ref
      Src: /src/image-png/src/encoder.rs:2340,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:2341,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2343,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2323
    functionDepth: 11
    functionLinenumber: 2323
    functionLinenumberEnd: 2344
    functionName: tests::image_validate_animation2
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_animated
    - Encoder::set_color
    - write_image_data
    - Cursor::new
    - Result::as_ref
    - Encoder::validate_sequence
    - finish
    - Encoder::new
    - Encoder::set_depth
    - Ok
    - Encoder::write_header
    linkageType: ''
    returnType: Result
    signature: fn image_validate_animation2() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2352,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2356,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2357,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2358,1
    - Dst: Encoder::set_animated
      Src: /src/image-png/src/encoder.rs:2359,1
    - Dst: Encoder::set_sep_def_img
      Src: /src/image-png/src/encoder.rs:2360,1
    - Dst: Encoder::validate_sequence
      Src: /src/image-png/src/encoder.rs:2361,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2362,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:2364,1
    - Dst: Result::as_ref
      Src: /src/image-png/src/encoder.rs:2364,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:2365,1
    - Dst: Result::as_ref
      Src: /src/image-png/src/encoder.rs:2365,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:2366,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2368,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2347
    functionDepth: 11
    functionLinenumber: 2347
    functionLinenumberEnd: 2369
    functionName: tests::image_validate_animation_sep_def_image
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_animated
    - Encoder::set_sep_def_img
    - Encoder::set_color
    - write_image_data
    - Cursor::new
    - Result::as_ref
    - Encoder::validate_sequence
    - finish
    - Encoder::new
    - Encoder::set_depth
    - Ok
    - Encoder::write_header
    linkageType: ''
    returnType: Result
    signature: fn image_validate_animation_sep_def_image() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2377,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2379,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2380,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2381,1
    - Dst: Encoder::validate_sequence
      Src: /src/image-png/src/encoder.rs:2382,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2383,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2372
    functionDepth: 11
    functionLinenumber: 2372
    functionLinenumberEnd: 2387
    functionName: tests::image_validate_missing_image
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_color
    - Cursor::new
    - Encoder::validate_sequence
    - Encoder::new
    - Encoder::set_depth
    - Ok
    - Encoder::write_header
    linkageType: ''
    returnType: Result
    signature: fn image_validate_missing_image() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2395,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2399,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2400,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2401,1
    - Dst: Encoder::set_animated
      Src: /src/image-png/src/encoder.rs:2402,1
    - Dst: Encoder::validate_sequence
      Src: /src/image-png/src/encoder.rs:2403,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2404,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:2406,1
    - Dst: Result::as_ref
      Src: /src/image-png/src/encoder.rs:2406,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2409,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2390
    functionDepth: 11
    functionLinenumber: 2390
    functionLinenumberEnd: 2410
    functionName: tests::image_validate_missing_animated_frame
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_animated
    - Encoder::set_color
    - write_image_data
    - Cursor::new
    - Result::as_ref
    - Encoder::validate_sequence
    - Encoder::new
    - Encoder::set_depth
    - Ok
    - Encoder::write_header
    linkageType: ''
    returnType: Result
    signature: fn image_validate_missing_animated_frame() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2415,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2417,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2418,1
    - Dst: Result::stream_writer
      Src: /src/image-png/src/encoder.rs:2419,1
    - Dst: write
      Src: /src/image-png/src/encoder.rs:2421,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:2423,1
    - Dst: drop
      Src: /src/image-png/src/encoder.rs:2424,1
    - Dst: Self::set_position
      Src: /src/image-png/src/encoder.rs:2427,1
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:2428,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:2428,1
    - Dst: Result::expect
      Src: /src/image-png/src/encoder.rs:2428,1
    - Dst: next_frame
      Src: /src/image-png/src/encoder.rs:2430,1
    - Dst: expect
      Src: /src/image-png/src/encoder.rs:2430,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2434,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2435
      start: 2413
    functionDepth: 11
    functionLinenumber: 2413
    functionLinenumberEnd: 2435
    functionName: tests::issue_307_stream_validation
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - write
    - Cursor::new
    - Result::stream_writer
    - Decoder::new
    - finish
    - Self::set_position
    - Encoder::new
    - drop
    - Decoder::read_info
    - next_frame
    - Ok
    - Result::expect
    - expect
    - Encoder::write_header
    linkageType: ''
    returnType: Result
    signature: fn issue_307_stream_validation() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2440,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2442,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2443,1
    - Dst: Encoder::set_filter
      Src: /src/image-png/src/encoder.rs:2444,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2445,1
    - Dst: Result::stream_writer
      Src: /src/image-png/src/encoder.rs:2446,1
    - Dst: write
      Src: /src/image-png/src/encoder.rs:2449,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:2452,1
    - Dst: drop
      Src: /src/image-png/src/encoder.rs:2453,1
    - Dst: Self::set_position
      Src: /src/image-png/src/encoder.rs:2456,1
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:2457,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:2457,1
    - Dst: Result::expect
      Src: /src/image-png/src/encoder.rs:2457,1
    - Dst: next_frame
      Src: /src/image-png/src/encoder.rs:2459,1
    - Dst: expect
      Src: /src/image-png/src/encoder.rs:2459,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2438
    functionDepth: 11
    functionLinenumber: 2438
    functionLinenumberEnd: 2464
    functionName: tests::stream_filtering
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_color
    - write
    - Cursor::new
    - Result::stream_writer
    - Decoder::new
    - finish
    - Self::set_position
    - Encoder::new
    - drop
    - Decoder::read_info
    - Result::expect
    - next_frame
    - Ok
    - Encoder::set_filter
    - expect
    - Encoder::write_header
    linkageType: ''
    returnType: Result
    signature: fn stream_filtering() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2468,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2470,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2471,1
    - Dst: Encoder::set_compression
      Src: /src/image-png/src/encoder.rs:2472,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2473,1
    - Dst: Result::stream_writer
      Src: /src/image-png/src/encoder.rs:2474,1
    - Dst: write
      Src: /src/image-png/src/encoder.rs:2477,1
    - Dst: flush
      Src: /src/image-png/src/encoder.rs:2479,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:2481,1
    - Dst: drop
      Src: /src/image-png/src/encoder.rs:2482,1
    - Dst: Self::set_position
      Src: /src/image-png/src/encoder.rs:2485,1
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:2486,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:2486,1
    - Dst: Result::expect
      Src: /src/image-png/src/encoder.rs:2486,1
    - Dst: next_frame
      Src: /src/image-png/src/encoder.rs:2488,1
    - Dst: expect
      Src: /src/image-png/src/encoder.rs:2488,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2492,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 55
    argCount: 1
    argNames:
    - compression
    argTypes:
    - Compression
    constantsTouched: []
    func_position:
      end: 2493
      start: 2466
    functionDepth: 11
    functionLinenumber: 2466
    functionLinenumberEnd: 2493
    functionName: tests::test_stream_flushing
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_color
    - write
    - Cursor::new
    - Result::stream_writer
    - Decoder::new
    - finish
    - Self::set_position
    - Encoder::new
    - flush
    - drop
    - Decoder::read_info
    - Result::expect
    - next_frame
    - Ok
    - Encoder::set_compression
    - expect
    - Encoder::write_header
    linkageType: ''
    returnType: Result
    signature: 'fn test_stream_flushing(compression: Compression) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_stream_flushing
      Src: /src/image-png/src/encoder.rs:2497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2498
      start: 2496
    functionDepth: 12
    functionLinenumber: 2496
    functionLinenumberEnd: 2498
    functionName: tests::stream_flushing_with_high_compression
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - test_stream_flushing
    linkageType: ''
    returnType: Result
    signature: fn stream_flushing_with_high_compression() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_stream_flushing
      Src: /src/image-png/src/encoder.rs:2502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2503
      start: 2501
    functionDepth: 12
    functionLinenumber: 2501
    functionLinenumberEnd: 2503
    functionName: tests::stream_flushing_with_balanced_compression
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - test_stream_flushing
    linkageType: ''
    returnType: Result
    signature: fn stream_flushing_with_balanced_compression() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_stream_flushing
      Src: /src/image-png/src/encoder.rs:2507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2506
    functionDepth: 12
    functionLinenumber: 2506
    functionLinenumberEnd: 2508
    functionName: tests::stream_flushing_with_fast_compression
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - test_stream_flushing
    linkageType: ''
    returnType: Result
    signature: fn stream_flushing_with_fast_compression() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_stream_flushing
      Src: /src/image-png/src/encoder.rs:2512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2513
      start: 2511
    functionDepth: 12
    functionLinenumber: 2511
    functionLinenumberEnd: 2513
    functionName: tests::stream_flushing_with_fastest_compression
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - test_stream_flushing
    linkageType: ''
    returnType: Result
    signature: fn stream_flushing_with_fastest_compression() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_stream_flushing
      Src: /src/image-png/src/encoder.rs:2517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2518
      start: 2516
    functionDepth: 12
    functionLinenumber: 2516
    functionLinenumberEnd: 2518
    functionName: tests::stream_flushing_with_no_compression
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - test_stream_flushing
    linkageType: ''
    returnType: Result
    signature: fn stream_flushing_with_no_compression() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2526,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2528,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2529,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2530,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2531,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2535
      start: 2522
    functionDepth: 11
    functionLinenumber: 2522
    functionLinenumberEnd: 2535
    functionName: tests::exper_error_on_huge_chunk
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_color
    - Cursor::new
    - Encoder::new
    - Encoder::set_depth
    - Ok
    - Encoder::write_header
    linkageType: ''
    returnType: Result
    signature: fn exper_error_on_huge_chunk() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2543,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2545,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2546,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2547,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2548,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2539
    functionDepth: 11
    functionLinenumber: 2539
    functionLinenumberEnd: 2552
    functionName: tests::exper_error_on_non_u32_chunk
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_color
    - Cursor::new
    - Encoder::new
    - Encoder::set_depth
    - Ok
    - Encoder::write_header
    linkageType: ''
    returnType: Result
    signature: fn exper_error_on_non_u32_chunk() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2575,1
    - Dst: NoWriter
      Src: /src/image-png/src/encoder.rs:2575,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2576,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2577,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2579,1
    - Dst: Result::write_image_data
      Src: /src/image-png/src/encoder.rs:2580,1
    - Dst: Result::finish
      Src: /src/image-png/src/encoder.rs:2581,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2586
      start: 2555
    functionDepth: 11
    functionLinenumber: 2555
    functionLinenumberEnd: 2586
    functionName: tests::finish_drops_inner_writer
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_color
    - Result::write_image_data
    - Encoder::new
    - Encoder::set_depth
    - Ok
    - NoWriter
    - Result::finish
    - Encoder::write_header
    linkageType: ''
    returnType: Result
    signature: fn finish_drops_inner_writer() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::iter
      Src: /src/image-png/src/text_metadata.rs:158,1
    - Dst: Result::map
      Src: /src/image-png/src/text_metadata.rs:158,1
    - Dst: collect
      Src: /src/image-png/src/text_metadata.rs:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - text
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 7
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: decode_iso_8859_1
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 0
    functionsReached:
    - collect
    - Result::iter
    - Result::map
    linkageType: ''
    returnType: String
    signature: 'pub(crate) fn decode_iso_8859_1(text: &[u8]) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode_iso_8859_1_iter
      Src: /src/image-png/src/text_metadata.rs:162,1
    - Dst: impl Iterator::collect
      Src: /src/image-png/src/text_metadata.rs:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: encode_iso_8859_1
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 1
    functionsReached:
    - impl Iterator::collect
    - encode_iso_8859_1_iter
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn encode_iso_8859_1(text: &str) -> Result<Vec<u8>, TextEncodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode_iso_8859_1_iter
      Src: /src/image-png/src/text_metadata.rs:166,1
    - Dst: UnfilterBuf::push
      Src: /src/image-png/src/text_metadata.rs:167,1
    - Dst: Ok
      Src: /src/image-png/src/text_metadata.rs:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - text
    argTypes:
    - '&mut Vec<u8>'
    - '&str'
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: encode_iso_8859_1_into
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 0
    functionsReached:
    - Ok
    - encode_iso_8859_1_iter
    - UnfilterBuf::push
    linkageType: ''
    returnType: Result
    signature: 'fn encode_iso_8859_1_into(buf: &mut Vec<u8>, text: &str) -> Result<(),
      TextEncodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::chars
      Src: /src/image-png/src/text_metadata.rs:173,1
    - Dst: map
      Src: /src/image-png/src/text_metadata.rs:173,1
    - Dst: u8::try_from
      Src: /src/image-png/src/text_metadata.rs:174,1
    - Dst: map_err
      Src: /src/image-png/src/text_metadata.rs:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - text
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: encode_iso_8859_1_iter
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 2
    functionsReached:
    - u8::try_from
    - map_err
    - map
    - Result::chars
    linkageType: ''
    returnType: impl Iterator
    signature: 'fn encode_iso_8859_1_iter(text: &str) -> impl Iterator<Item = Result<u8,
      TextEncodingError>> + ''_'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::is_ascii
      Src: /src/image-png/src/text_metadata.rs:178,1
    - Dst: Ok
      Src: /src/image-png/src/text_metadata.rs:181,1
    - Dst: std::str::from_utf8
      Src: /src/image-png/src/text_metadata.rs:181,1
    - Dst: expect
      Src: /src/image-png/src/text_metadata.rs:181,1
    - Dst: Err
      Src: /src/image-png/src/text_metadata.rs:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - text
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 185
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 185
    functionName: decode_ascii
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 0
    functionsReached:
    - Result::is_ascii
    - std::str::from_utf8
    - Err
    - Ok
    - expect
    linkageType: ''
    returnType: Result
    signature: 'fn decode_ascii(text: &[u8]) -> Result<&str, TextDecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::into
      Src: /src/image-png/src/text_metadata.rs:192,1
    - Dst: Result::into
      Src: /src/image-png/src/text_metadata.rs:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - keyword
    - text
    argTypes:
    - impl Into<String>
    - impl Into<String>
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: TEXtChunk::new
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 1
    functionsReached:
    - Result::into
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(keyword: impl Into<String>, text: impl Into<String>) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::is_empty'
      Src: /src/image-png/src/text_metadata.rs:203,1
    - Dst: '&[u8]::len'
      Src: /src/image-png/src/text_metadata.rs:203,1
    - Dst: Err
      Src: /src/image-png/src/text_metadata.rs:204,1
    - Dst: Ok
      Src: /src/image-png/src/text_metadata.rs:207,1
    - Dst: decode_iso_8859_1
      Src: /src/image-png/src/text_metadata.rs:208,1
    - Dst: decode_iso_8859_1
      Src: /src/image-png/src/text_metadata.rs:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - keyword_slice
    - text_slice
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 211
      start: 199
    functionDepth: 9
    functionLinenumber: 199
    functionLinenumberEnd: 211
    functionName: TEXtChunk::decode
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 0
    functionsReached:
    - '&[u8]::len'
    - decode_iso_8859_1
    - '&[u8]::is_empty'
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn decode(keyword_slice: &[u8],text_slice: &[u8],) -> Result<Self,
      TextDecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode_iso_8859_1
      Src: /src/image-png/src/text_metadata.rs:217,1
    - Dst: Result::is_empty
      Src: /src/image-png/src/text_metadata.rs:219,1
    - Dst: Result::len
      Src: /src/image-png/src/text_metadata.rs:219,1
    - Dst: Err
      Src: /src/image-png/src/text_metadata.rs:220,1
    - Dst: into
      Src: /src/image-png/src/text_metadata.rs:220,1
    - Dst: Result::push
      Src: /src/image-png/src/text_metadata.rs:223,1
    - Dst: encode_iso_8859_1_into
      Src: /src/image-png/src/text_metadata.rs:225,1
    - Dst: encoder::write_chunk
      Src: /src/image-png/src/text_metadata.rs:227,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - w
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 228
      start: 216
    functionDepth: 9
    functionLinenumber: 216
    functionLinenumberEnd: 228
    functionName: TEXtChunk::encode
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 0
    functionsReached:
    - Result::push
    - into
    - encoder::write_chunk
    - encode_iso_8859_1
    - Result::len
    - Result::is_empty
    - Err
    - encode_iso_8859_1_into
    linkageType: ''
    returnType: Result
    signature: 'fn encode<W: Write>(&self, w: &mut W) -> Result<(), EncodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::into
      Src: /src/image-png/src/text_metadata.rs:253,1
    - Dst: OptCompressed::Uncompressed
      Src: /src/image-png/src/text_metadata.rs:254,1
    - Dst: Result::into
      Src: /src/image-png/src/text_metadata.rs:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - keyword
    - text
    argTypes:
    - impl Into<String>
    - impl Into<String>
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: ZTXtChunk::new
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 1
    functionsReached:
    - Result::into
    - OptCompressed::Uncompressed
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(keyword: impl Into<String>, text: impl Into<String>) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::is_empty'
      Src: /src/image-png/src/text_metadata.rs:263,1
    - Dst: '&[u8]::len'
      Src: /src/image-png/src/text_metadata.rs:263,1
    - Dst: Err
      Src: /src/image-png/src/text_metadata.rs:264,1
    - Dst: Err
      Src: /src/image-png/src/text_metadata.rs:268,1
    - Dst: Ok
      Src: /src/image-png/src/text_metadata.rs:271,1
    - Dst: decode_iso_8859_1
      Src: /src/image-png/src/text_metadata.rs:272,1
    - Dst: OptCompressed::Compressed
      Src: /src/image-png/src/text_metadata.rs:273,1
    - Dst: '&[u8]::to_vec'
      Src: /src/image-png/src/text_metadata.rs:273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - keyword_slice
    - compression_method
    - text_slice
    argTypes:
    - '&[u8]'
    - u8
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 275
      start: 258
    functionDepth: 9
    functionLinenumber: 258
    functionLinenumberEnd: 275
    functionName: ZTXtChunk::decode
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 0
    functionsReached:
    - '&[u8]::to_vec'
    - '&[u8]::len'
    - decode_iso_8859_1
    - OptCompressed::Compressed
    - '&[u8]::is_empty'
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn decode(keyword_slice: &[u8],compression_method: u8,text_slice:
      &[u8],) -> Result<Self, TextDecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZTXtChunk::decompress_text_with_limit
      Src: /src/image-png/src/text_metadata.rs:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 280
    functionName: ZTXtChunk::decompress_text
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 0
    functionsReached:
    - ZTXtChunk::decompress_text_with_limit
    linkageType: ''
    returnType: Result
    signature: pub fn decompress_text(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fdeflate::decompress_to_vec_bounded
      Src: /src/image-png/src/text_metadata.rs:286,1
    - Dst: Err
      Src: /src/image-png/src/text_metadata.rs:289,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/text_metadata.rs:289,1
    - Dst: Err
      Src: /src/image-png/src/text_metadata.rs:294,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/text_metadata.rs:294,1
    - Dst: OptCompressed::Uncompressed
      Src: /src/image-png/src/text_metadata.rs:297,1
    - Dst: decode_iso_8859_1
      Src: /src/image-png/src/text_metadata.rs:297,1
    - Dst: Ok
      Src: /src/image-png/src/text_metadata.rs:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - limit
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 302
      start: 283
    functionDepth: 15
    functionLinenumber: 283
    functionLinenumberEnd: 302
    functionName: ZTXtChunk::decompress_text_with_limit
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 1
    functionsReached:
    - fdeflate::decompress_to_vec_bounded
    - DecodingError::from
    - Ok
    - Err
    - decode_iso_8859_1
    - OptCompressed::Uncompressed
    linkageType: ''
    returnType: Result
    signature: 'pub fn decompress_text_with_limit(&mut self, limit: usize) -> Result<(),
      DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fdeflate::decompress_to_vec
      Src: /src/image-png/src/text_metadata.rs:309,1
    - Dst: map_err
      Src: /src/image-png/src/text_metadata.rs:309,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/text_metadata.rs:310,1
    - Dst: Ok
      Src: /src/image-png/src/text_metadata.rs:311,1
    - Dst: decode_iso_8859_1
      Src: /src/image-png/src/text_metadata.rs:311,1
    - Dst: Ok
      Src: /src/image-png/src/text_metadata.rs:313,1
    - Dst: clone
      Src: /src/image-png/src/text_metadata.rs:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 15
    functionLinenumber: 306
    functionLinenumberEnd: 315
    functionName: ZTXtChunk::get_text
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 0
    functionsReached:
    - clone
    - map_err
    - decode_iso_8859_1
    - DecodingError::from
    - fdeflate::decompress_to_vec
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn get_text(&self) -> Result<String, DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode_iso_8859_1
      Src: /src/image-png/src/text_metadata.rs:321,1
    - Dst: ZlibEncoder::new
      Src: /src/image-png/src/text_metadata.rs:322,1
    - Dst: Vec::new
      Src: /src/image-png/src/text_metadata.rs:322,1
    - Dst: Compression::fast
      Src: /src/image-png/src/text_metadata.rs:322,1
    - Dst: Self::write_all
      Src: /src/image-png/src/text_metadata.rs:323,1
    - Dst: map_err
      Src: /src/image-png/src/text_metadata.rs:323,1
    - Dst: EncodingError::from
      Src: /src/image-png/src/text_metadata.rs:325,1
    - Dst: OptCompressed::Compressed
      Src: /src/image-png/src/text_metadata.rs:326,1
    - Dst: Self::finish
      Src: /src/image-png/src/text_metadata.rs:327,1
    - Dst: Result::map_err
      Src: /src/image-png/src/text_metadata.rs:327,1
    - Dst: EncodingError::from
      Src: /src/image-png/src/text_metadata.rs:329,1
    - Dst: Ok
      Src: /src/image-png/src/text_metadata.rs:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 318
    functionDepth: 10
    functionLinenumber: 318
    functionLinenumberEnd: 336
    functionName: ZTXtChunk::compress_text
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Self::finish
    - Vec::new
    - Compression::fast
    - encode_iso_8859_1
    - OptCompressed::Compressed
    - Result::map_err
    - EncodingError::from
    - ZlibEncoder::new
    - Ok
    - Self::write_all
    linkageType: ''
    returnType: Result
    signature: pub fn compress_text(&mut self) -> Result<(), EncodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode_iso_8859_1
      Src: /src/image-png/src/text_metadata.rs:341,1
    - Dst: Result::is_empty
      Src: /src/image-png/src/text_metadata.rs:343,1
    - Dst: Result::len
      Src: /src/image-png/src/text_metadata.rs:343,1
    - Dst: Err
      Src: /src/image-png/src/text_metadata.rs:344,1
    - Dst: into
      Src: /src/image-png/src/text_metadata.rs:344,1
    - Dst: Result::push
      Src: /src/image-png/src/text_metadata.rs:348,1
    - Dst: Result::push
      Src: /src/image-png/src/text_metadata.rs:351,1
    - Dst: Result::extend_from_slice
      Src: /src/image-png/src/text_metadata.rs:355,1
    - Dst: encode_iso_8859_1
      Src: /src/image-png/src/text_metadata.rs:359,1
    - Dst: ZlibEncoder::new
      Src: /src/image-png/src/text_metadata.rs:360,1
    - Dst: Compression::fast
      Src: /src/image-png/src/text_metadata.rs:360,1
    - Dst: Self::write_all
      Src: /src/image-png/src/text_metadata.rs:361,1
    - Dst: map_err
      Src: /src/image-png/src/text_metadata.rs:361,1
    - Dst: EncodingError::from
      Src: /src/image-png/src/text_metadata.rs:363,1
    - Dst: Self::finish
      Src: /src/image-png/src/text_metadata.rs:364,1
    - Dst: Result::map_err
      Src: /src/image-png/src/text_metadata.rs:364,1
    - Dst: EncodingError::from
      Src: /src/image-png/src/text_metadata.rs:366,1
    - Dst: encoder::write_chunk
      Src: /src/image-png/src/text_metadata.rs:370,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 57
    argCount: 1
    argNames:
    - w
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 371
      start: 340
    functionDepth: 9
    functionLinenumber: 340
    functionLinenumberEnd: 371
    functionName: ZTXtChunk::encode
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 0
    functionsReached:
    - Result::extend_from_slice
    - map_err
    - Self::finish
    - Result::push
    - into
    - encoder::write_chunk
    - Compression::fast
    - encode_iso_8859_1
    - Result::len
    - Result::map_err
    - EncodingError::from
    - ZlibEncoder::new
    - Result::is_empty
    - Err
    - Self::write_all
    linkageType: ''
    returnType: Result
    signature: 'fn encode<W: Write>(&self, w: &mut W) -> Result<(), EncodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::into
      Src: /src/image-png/src/text_metadata.rs:393,1
    - Dst: '&str::to_string'
      Src: /src/image-png/src/text_metadata.rs:395,1
    - Dst: '&str::to_string'
      Src: /src/image-png/src/text_metadata.rs:396,1
    - Dst: OptCompressed::Uncompressed
      Src: /src/image-png/src/text_metadata.rs:397,1
    - Dst: Result::into
      Src: /src/image-png/src/text_metadata.rs:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - keyword
    - text
    argTypes:
    - impl Into<String>
    - impl Into<String>
    constantsTouched: []
    func_position:
      end: 399
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 399
    functionName: ITXtChunk::new
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 1
    functionsReached:
    - Result::into
    - '&str::to_string'
    - OptCompressed::Uncompressed
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(keyword: impl Into<String>, text: impl Into<String>) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::is_empty'
      Src: /src/image-png/src/text_metadata.rs:409,1
    - Dst: '&[u8]::len'
      Src: /src/image-png/src/text_metadata.rs:409,1
    - Dst: Err
      Src: /src/image-png/src/text_metadata.rs:410,1
    - Dst: decode_iso_8859_1
      Src: /src/image-png/src/text_metadata.rs:412,1
    - Dst: Err
      Src: /src/image-png/src/text_metadata.rs:417,1
    - Dst: Err
      Src: /src/image-png/src/text_metadata.rs:421,1
    - Dst: decode_ascii
      Src: /src/image-png/src/text_metadata.rs:424,1
    - Dst: to_owned
      Src: /src/image-png/src/text_metadata.rs:424,1
    - Dst: std::str::from_utf8
      Src: /src/image-png/src/text_metadata.rs:426,1
    - Dst: map_err
      Src: /src/image-png/src/text_metadata.rs:426,1
    - Dst: to_string
      Src: /src/image-png/src/text_metadata.rs:426,1
    - Dst: OptCompressed::Compressed
      Src: /src/image-png/src/text_metadata.rs:430,1
    - Dst: '&[u8]::to_vec'
      Src: /src/image-png/src/text_metadata.rs:430,1
    - Dst: OptCompressed::Uncompressed
      Src: /src/image-png/src/text_metadata.rs:432,1
    - Dst: String::from_utf8
      Src: /src/image-png/src/text_metadata.rs:433,1
    - Dst: '&[u8]::to_vec'
      Src: /src/image-png/src/text_metadata.rs:433,1
    - Dst: map_err
      Src: /src/image-png/src/text_metadata.rs:433,1
    - Dst: Ok
      Src: /src/image-png/src/text_metadata.rs:438,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 6
    argNames:
    - keyword_slice
    - compression_flag
    - compression_method
    - language_tag_slice
    - translated_keyword_slice
    - text_slice
    argTypes:
    - '&[u8]'
    - u8
    - u8
    - '&[u8]'
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 445
      start: 401
    functionDepth: 9
    functionLinenumber: 401
    functionLinenumberEnd: 445
    functionName: ITXtChunk::decode
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 0
    functionsReached:
    - to_string
    - map_err
    - '&[u8]::to_vec'
    - '&[u8]::len'
    - OptCompressed::Compressed
    - '&[u8]::is_empty'
    - decode_ascii
    - std::str::from_utf8
    - String::from_utf8
    - Err
    - Ok
    - decode_iso_8859_1
    - to_owned
    - OptCompressed::Uncompressed
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn decode(keyword_slice: &[u8],compression_flag: u8,compression_method:
      u8,language_tag_slice: &[u8],translated_keyword_slice: &[u8],text_slice: &[u8],)
      -> Result<Self, TextDecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ITXtChunk::decompress_text_with_limit
      Src: /src/image-png/src/text_metadata.rs:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 450
    functionName: ITXtChunk::decompress_text
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 0
    functionsReached:
    - ITXtChunk::decompress_text_with_limit
    linkageType: ''
    returnType: Result
    signature: pub fn decompress_text(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fdeflate::decompress_to_vec_bounded
      Src: /src/image-png/src/text_metadata.rs:456,1
    - Dst: Err
      Src: /src/image-png/src/text_metadata.rs:459,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/text_metadata.rs:459,1
    - Dst: Err
      Src: /src/image-png/src/text_metadata.rs:464,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/text_metadata.rs:464,1
    - Dst: OptCompressed::Uncompressed
      Src: /src/image-png/src/text_metadata.rs:467,1
    - Dst: String::from_utf8
      Src: /src/image-png/src/text_metadata.rs:468,1
    - Dst: map_err
      Src: /src/image-png/src/text_metadata.rs:468,1
    - Dst: Ok
      Src: /src/image-png/src/text_metadata.rs:474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - limit
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 475
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 475
    functionName: ITXtChunk::decompress_text_with_limit
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 1
    functionsReached:
    - map_err
    - fdeflate::decompress_to_vec_bounded
    - DecodingError::from
    - String::from_utf8
    - Err
    - Ok
    - OptCompressed::Uncompressed
    linkageType: ''
    returnType: Result
    signature: 'pub fn decompress_text_with_limit(&mut self, limit: usize) -> Result<(),
      DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fdeflate::decompress_to_vec
      Src: /src/image-png/src/text_metadata.rs:482,1
    - Dst: map_err
      Src: /src/image-png/src/text_metadata.rs:482,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/text_metadata.rs:483,1
    - Dst: String::from_utf8
      Src: /src/image-png/src/text_metadata.rs:484,1
    - Dst: map_err
      Src: /src/image-png/src/text_metadata.rs:484,1
    - Dst: into
      Src: /src/image-png/src/text_metadata.rs:485,1
    - Dst: Ok
      Src: /src/image-png/src/text_metadata.rs:487,1
    - Dst: clone
      Src: /src/image-png/src/text_metadata.rs:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 489
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 489
    functionName: ITXtChunk::get_text
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 0
    functionsReached:
    - clone
    - map_err
    - into
    - DecodingError::from
    - String::from_utf8
    - fdeflate::decompress_to_vec
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn get_text(&self) -> Result<String, DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_bytes
      Src: /src/image-png/src/text_metadata.rs:495,1
    - Dst: ZlibEncoder::new
      Src: /src/image-png/src/text_metadata.rs:496,1
    - Dst: Vec::new
      Src: /src/image-png/src/text_metadata.rs:496,1
    - Dst: Compression::fast
      Src: /src/image-png/src/text_metadata.rs:496,1
    - Dst: Self::write_all
      Src: /src/image-png/src/text_metadata.rs:497,1
    - Dst: map_err
      Src: /src/image-png/src/text_metadata.rs:497,1
    - Dst: EncodingError::from
      Src: /src/image-png/src/text_metadata.rs:499,1
    - Dst: OptCompressed::Compressed
      Src: /src/image-png/src/text_metadata.rs:500,1
    - Dst: Self::finish
      Src: /src/image-png/src/text_metadata.rs:501,1
    - Dst: Result::map_err
      Src: /src/image-png/src/text_metadata.rs:501,1
    - Dst: EncodingError::from
      Src: /src/image-png/src/text_metadata.rs:503,1
    - Dst: Ok
      Src: /src/image-png/src/text_metadata.rs:509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 510
      start: 492
    functionDepth: 10
    functionLinenumber: 492
    functionLinenumberEnd: 510
    functionName: ITXtChunk::compress_text
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Self::finish
    - Vec::new
    - Compression::fast
    - as_bytes
    - OptCompressed::Compressed
    - Result::map_err
    - EncodingError::from
    - ZlibEncoder::new
    - Ok
    - Self::write_all
    linkageType: ''
    returnType: Result
    signature: pub fn compress_text(&mut self) -> Result<(), EncodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode_iso_8859_1
      Src: /src/image-png/src/text_metadata.rs:516,1
    - Dst: Result::is_empty
      Src: /src/image-png/src/text_metadata.rs:518,1
    - Dst: Result::len
      Src: /src/image-png/src/text_metadata.rs:518,1
    - Dst: Err
      Src: /src/image-png/src/text_metadata.rs:519,1
    - Dst: into
      Src: /src/image-png/src/text_metadata.rs:519,1
    - Dst: Result::push
      Src: /src/image-png/src/text_metadata.rs:523,1
    - Dst: Result::push
      Src: /src/image-png/src/text_metadata.rs:527,1
    - Dst: Result::push
      Src: /src/image-png/src/text_metadata.rs:529,1
    - Dst: Result::push
      Src: /src/image-png/src/text_metadata.rs:533,1
    - Dst: is_ascii
      Src: /src/image-png/src/text_metadata.rs:536,1
    - Dst: Err
      Src: /src/image-png/src/text_metadata.rs:537,1
    - Dst: EncodingError::from
      Src: /src/image-png/src/text_metadata.rs:537,1
    - Dst: Result::extend
      Src: /src/image-png/src/text_metadata.rs:539,1
    - Dst: as_bytes
      Src: /src/image-png/src/text_metadata.rs:539,1
    - Dst: Result::push
      Src: /src/image-png/src/text_metadata.rs:542,1
    - Dst: Result::extend_from_slice
      Src: /src/image-png/src/text_metadata.rs:545,1
    - Dst: as_bytes
      Src: /src/image-png/src/text_metadata.rs:545,1
    - Dst: Result::push
      Src: /src/image-png/src/text_metadata.rs:548,1
    - Dst: Result::extend_from_slice
      Src: /src/image-png/src/text_metadata.rs:554,1
    - Dst: as_bytes
      Src: /src/image-png/src/text_metadata.rs:557,1
    - Dst: ZlibEncoder::new
      Src: /src/image-png/src/text_metadata.rs:558,1
    - Dst: Compression::fast
      Src: /src/image-png/src/text_metadata.rs:558,1
    - Dst: Self::write_all
      Src: /src/image-png/src/text_metadata.rs:559,1
    - Dst: map_err
      Src: /src/image-png/src/text_metadata.rs:559,1
    - Dst: EncodingError::from
      Src: /src/image-png/src/text_metadata.rs:561,1
    - Dst: Self::finish
      Src: /src/image-png/src/text_metadata.rs:562,1
    - Dst: Result::map_err
      Src: /src/image-png/src/text_metadata.rs:562,1
    - Dst: EncodingError::from
      Src: /src/image-png/src/text_metadata.rs:564,1
    - Dst: fdeflate::decompress_to_vec
      Src: /src/image-png/src/text_metadata.rs:570,1
    - Dst: map_err
      Src: /src/image-png/src/text_metadata.rs:570,1
    - Dst: EncodingError::from
      Src: /src/image-png/src/text_metadata.rs:571,1
    - Dst: Result::extend_from_slice
      Src: /src/image-png/src/text_metadata.rs:572,1
    - Dst: Result::extend_from_slice
      Src: /src/image-png/src/text_metadata.rs:575,1
    - Dst: as_bytes
      Src: /src/image-png/src/text_metadata.rs:575,1
    - Dst: encoder::write_chunk
      Src: /src/image-png/src/text_metadata.rs:580,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 117
    argCount: 1
    argNames:
    - w
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 581
      start: 514
    functionDepth: 9
    functionLinenumber: 514
    functionLinenumberEnd: 581
    functionName: ITXtChunk::encode
    functionSourceFile: /src/image-png/src/text_metadata.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Result::extend
    - Compression::fast
    - as_bytes
    - Result::map_err
    - Err
    - Self::finish
    - encoder::write_chunk
    - EncodingError::from
    - Result::extend_from_slice
    - Result::push
    - encode_iso_8859_1
    - Result::len
    - into
    - ZlibEncoder::new
    - Result::is_empty
    - fdeflate::decompress_to_vec
    - is_ascii
    - Self::write_all
    linkageType: ''
    returnType: Result
    signature: 'fn encode<W: Write>(&self, w: &mut W) -> Result<(), EncodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ColorType::samples_u8
      Src: /src/image-png/src/common.rs:28,1
    - Dst: u8::into
      Src: /src/image-png/src/common.rs:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: ColorType::samples
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - u8::into
    - ColorType::samples_u8
    linkageType: ''
    returnType: usize
    signature: pub fn samples(self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: ColorType::samples_u8
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub(crate) fn samples_u8(self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/common.rs:44,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:45,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:46,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:47,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 51
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 51
    functionName: ColorType::from_u8
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_u8(n: u8) -> Option<ColorType>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/image-png/src/common.rs:55,1
    - Dst: u64::from
      Src: /src/image-png/src/common.rs:55,1
    - Dst: ColorType::samples_u8
      Src: /src/image-png/src/common.rs:55,1
    - Dst: u64::from
      Src: /src/image-png/src/common.rs:55,1
    - Dst: into_u8
      Src: /src/image-png/src/common.rs:55,1
    - Dst: TryFrom::try_from
      Src: /src/image-png/src/common.rs:56,1
    - Dst: impl Iterator::div_ceil
      Src: /src/image-png/src/common.rs:56,1
    - Dst: ok
      Src: /src/image-png/src/common.rs:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - depth
    - width
    argTypes:
    - BitDepth
    - u32
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: ColorType::checked_raw_row_length
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - into_u8
    - impl Iterator::div_ceil
    - TryFrom::try_from
    - u64::from
    - ok
    - ColorType::samples_u8
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn checked_raw_row_length(self, depth: BitDepth, width:
      u32) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ColorType::samples
      Src: /src/image-png/src/common.rs:60,1
    - Dst: usize::from
      Src: /src/image-png/src/common.rs:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - depth
    - width
    argTypes:
    - BitDepth
    - u32
    constantsTouched: []
    func_position:
      end: 71
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 71
    functionName: ColorType::raw_row_length_from_width
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - usize::from
    - ColorType::samples
    linkageType: ''
    returnType: usize
    signature: 'pub(crate) fn raw_row_length_from_width(self, depth: BitDepth, width:
      u32) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - bit_depth
    argTypes:
    - BitDepth
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: ColorType::is_combination_invalid
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub(crate) fn is_combination_invalid(self, bit_depth: BitDepth) ->
      bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ColorType::samples
      Src: /src/image-png/src/common.rs:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bit_depth
    argTypes:
    - BitDepth
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 3
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: ColorType::bits_per_pixel
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - ColorType::samples
    linkageType: ''
    returnType: usize
    signature: 'pub(crate) fn bits_per_pixel(&self, bit_depth: BitDepth) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ColorType::samples
      Src: /src/image-png/src/common.rs:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - bit_depth
    argTypes:
    - BitDepth
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: ColorType::bytes_per_pixel
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - ColorType::samples
    linkageType: ''
    returnType: usize
    signature: 'pub(crate) fn bytes_per_pixel(&self, bit_depth: BitDepth) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/common.rs:125,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:126,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:127,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:128,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 132
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 132
    functionName: BitDepth::from_u8
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_u8(n: u8) -> Option<BitDepth>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: BitDepth::into_u8
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub(crate) fn into_u8(self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/common.rs:162,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: Unit::from_u8
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_u8(n: u8) -> Option<Unit>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/common.rs:185,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:186,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: DisposeOp::from_u8
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_u8(n: u8) -> Option<DisposeOp>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: DisposeOp::fmt
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/common.rs:218,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: BlendOp::from_u8
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_u8(n: u8) -> Option<BlendOp>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 232
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 232
    functionName: BlendOp::fmt
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 271
    functionName: FrameControl::default
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FrameControl
    signature: fn default() -> FrameControl
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: FrameControl::set_seq_num
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_seq_num(&mut self, s: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: FrameControl::inc_seq_num
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn inc_seq_num(&mut self, i: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/image-png/src/common.rs:285,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/common.rs:285,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/common.rs:286,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/common.rs:286,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/common.rs:287,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/common.rs:287,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/common.rs:288,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/common.rs:288,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/common.rs:289,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/common.rs:289,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/common.rs:290,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/common.rs:290,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/common.rs:291,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/common.rs:291,1
    - Dst: encoder::write_chunk
      Src: /src/image-png/src/common.rs:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 76
    argCount: 1
    argNames:
    - w
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 296
      start: 283
    functionDepth: 10
    functionLinenumber: 283
    functionLinenumberEnd: 296
    functionName: FrameControl::encode
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - copy_from_slice
    - to_be_bytes
    - encoder::write_chunk
    linkageType: ''
    returnType: encoder::Result
    signature: 'pub fn encode<W: Write>(self, w: &mut W) -> encoder::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/image-png/src/common.rs:311,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/common.rs:311,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/common.rs:312,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/common.rs:312,1
    - Dst: encoder::write_chunk
      Src: /src/image-png/src/common.rs:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - w
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 314
      start: 309
    functionDepth: 10
    functionLinenumber: 309
    functionLinenumberEnd: 314
    functionName: AnimationControl::encode
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - copy_from_slice
    - to_be_bytes
    - encoder::write_chunk
    linkageType: ''
    returnType: encoder::Result
    signature: 'pub fn encode<W: Write>(self, w: &mut W) -> encoder::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 353
    functionName: Compression::default
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_simple
      Src: /src/image-png/src/common.rs:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: DeflateCompression::default
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - Self::from_simple
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::Level
      Src: /src/image-png/src/common.rs:416,1
    - Dst: flate2::Compression::default
      Src: /src/image-png/src/common.rs:416,1
    - Dst: Self::level
      Src: /src/image-png/src/common.rs:416,1
    - Dst: Self::Level
      Src: /src/image-png/src/common.rs:417,1
    - Dst: flate2::Compression::best
      Src: /src/image-png/src/common.rs:417,1
    - Dst: level
      Src: /src/image-png/src/common.rs:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - value
    argTypes:
    - Compression
    constantsTouched: []
    func_position:
      end: 419
      start: 411
    functionDepth: 4
    functionLinenumber: 411
    functionLinenumberEnd: 419
    functionName: DeflateCompression::from_simple
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 1
    functionsReached:
    - flate2::Compression::best
    - level
    - Self::level
    - flate2::Compression::default
    - Self::Level
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn from_simple(value: Compression) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: floor
      Src: /src/image-png/src/common.rs:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 433
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 433
    functionName: ScaledFloat::in_range
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - floor
    linkageType: ''
    returnType: bool
    signature: 'pub fn in_range(value: f32) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::forward
      Src: /src/image-png/src/common.rs:438,1
    - Dst: Self::reverse
      Src: /src/image-png/src/common.rs:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: ScaledFloat::exact
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - Self::reverse
    - Self::forward
    linkageType: ''
    returnType: bool
    signature: 'pub fn exact(value: f32) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f32::max
      Src: /src/image-png/src/common.rs:444,1
    - Dst: floor
      Src: /src/image-png/src/common.rs:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 445
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 445
    functionName: ScaledFloat::forward
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - floor
    - f32::max
    linkageType: ''
    returnType: u32
    signature: 'fn forward(value: f32) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoded
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 449
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 449
    functionName: ScaledFloat::reverse
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: f32
    signature: 'fn reverse(encoded: u32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/image-png/src/common.rs:454,1
    - Dst: Self::forward
      Src: /src/image-png/src/common.rs:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 455
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 455
    functionName: ScaledFloat::new
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 1
    functionsReached:
    - Self
    - Self::forward
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(value: f32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/image-png/src/common.rs:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: ScaledFloat::from_scaled
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_scaled(val: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 465
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 465
    functionName: ScaledFloat::into_scaled
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn into_scaled(self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::reverse
      Src: /src/image-png/src/common.rs:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 470
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 470
    functionName: ScaledFloat::into_value
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - Self::reverse
    linkageType: ''
    returnType: f32
    signature: pub fn into_value(self) -> f32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encoder::write_chunk
      Src: /src/image-png/src/common.rs:473,1
    - Dst: ScaledFloat::into_scaled
      Src: /src/image-png/src/common.rs:473,1
    - Dst: u32::to_be_bytes
      Src: /src/image-png/src/common.rs:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - w
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 474
      start: 472
    functionDepth: 10
    functionLinenumber: 472
    functionLinenumberEnd: 474
    functionName: ScaledFloat::encode_gama
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 1
    functionsReached:
    - encoder::write_chunk
    - u32::to_be_bytes
    - ScaledFloat::into_scaled
    linkageType: ''
    returnType: encoder::Result
    signature: 'pub(crate) fn encode_gama<W: Write>(self, w: &mut W) -> encoder::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/common.rs:489,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/common.rs:489,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/common.rs:490,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/common.rs:490,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/common.rs:491,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/common.rs:491,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/common.rs:492,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/common.rs:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 4
    argNames:
    - white
    - red
    - green
    - blue
    argTypes:
    - (f32, f32)
    - (f32, f32)
    - (f32, f32)
    - (f32, f32)
    constantsTouched: []
    func_position:
      end: 494
      start: 487
    functionDepth: 2
    functionLinenumber: 487
    functionLinenumberEnd: 494
    functionName: SourceChromaticities::new
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - ScaledFloat::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(white: (f32, f32), red: (f32, f32), green: (f32, f32),
      blue: (f32, f32)) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_scaled
      Src: /src/image-png/src/common.rs:498,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/common.rs:498,1
    - Dst: into_scaled
      Src: /src/image-png/src/common.rs:499,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/common.rs:499,1
    - Dst: into_scaled
      Src: /src/image-png/src/common.rs:500,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/common.rs:500,1
    - Dst: into_scaled
      Src: /src/image-png/src/common.rs:501,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/common.rs:501,1
    - Dst: into_scaled
      Src: /src/image-png/src/common.rs:502,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/common.rs:502,1
    - Dst: into_scaled
      Src: /src/image-png/src/common.rs:503,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/common.rs:503,1
    - Dst: into_scaled
      Src: /src/image-png/src/common.rs:504,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/common.rs:504,1
    - Dst: into_scaled
      Src: /src/image-png/src/common.rs:505,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/common.rs:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 516
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 516
    functionName: SourceChromaticities::to_be_bytes
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - into_scaled
    - to_be_bytes
    linkageType: ''
    returnType: '[u8; 32]'
    signature: pub fn to_be_bytes(self) -> [u8; 32]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encoder::write_chunk
      Src: /src/image-png/src/common.rs:519,1
    - Dst: SourceChromaticities::to_be_bytes
      Src: /src/image-png/src/common.rs:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - w
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 520
      start: 518
    functionDepth: 10
    functionLinenumber: 518
    functionLinenumberEnd: 520
    functionName: SourceChromaticities::encode
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 1
    functionsReached:
    - encoder::write_chunk
    - SourceChromaticities::to_be_bytes
    linkageType: ''
    returnType: encoder::Result
    signature: 'pub fn encode<W: Write>(self, w: &mut W) -> encoder::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 542
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 542
    functionName: SrgbRenderingIntent::into_raw
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub(crate) fn into_raw(self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/common.rs:546,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:547,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:548,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - raw
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 552
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 552
    functionName: SrgbRenderingIntent::from_raw
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn from_raw(raw: u8) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encoder::write_chunk
      Src: /src/image-png/src/common.rs:555,1
    - Dst: SrgbRenderingIntent::into_raw
      Src: /src/image-png/src/common.rs:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - w
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 556
      start: 554
    functionDepth: 10
    functionLinenumber: 554
    functionLinenumberEnd: 556
    functionName: SrgbRenderingIntent::encode
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - encoder::write_chunk
    - SrgbRenderingIntent::into_raw
    linkageType: ''
    returnType: encoder::Result
    signature: 'pub fn encode<W: Write>(self, w: &mut W) -> encoder::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/common.rs:741,1
    - Dst: Vec::new
      Src: /src/image-png/src/common.rs:742,1
    - Dst: Vec::new
      Src: /src/image-png/src/common.rs:743,1
    - Dst: Vec::new
      Src: /src/image-png/src/common.rs:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 746
      start: 716
    functionDepth: 3
    functionLinenumber: 716
    functionLinenumberEnd: 746
    functionName: Info::default
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    linkageType: ''
    returnType: Info
    signature: fn default() -> Info<'static>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/image-png/src/common.rs:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 757
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 757
    functionName: Info::with_size
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 2
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_size(width: u32, height: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 762
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 762
    functionName: Info::size
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32)
    signature: pub fn size(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/image-png/src/common.rs:766,1
    - Dst: is_some
      Src: /src/image-png/src/common.rs:766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 767
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 767
    functionName: Info::is_animated
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - is_some
    linkageType: ''
    returnType: bool
    signature: pub fn is_animated(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/image-png/src/common.rs:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 772
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 772
    functionName: Info::animation_control
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 1
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: Option
    signature: pub fn animation_control(&self) -> Option<&AnimationControl>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/image-png/src/common.rs:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 777
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 777
    functionName: Info::frame_control
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: Option
    signature: pub fn frame_control(&self) -> Option<&FrameControl>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bits_per_pixel
      Src: /src/image-png/src/common.rs:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 782
      start: 780
    functionDepth: 4
    functionLinenumber: 780
    functionLinenumberEnd: 782
    functionName: Info::bits_per_pixel
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - bits_per_pixel
    linkageType: ''
    returnType: usize
    signature: pub fn bits_per_pixel(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytes_per_pixel
      Src: /src/image-png/src/common.rs:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 789
      start: 785
    functionDepth: 2
    functionLinenumber: 785
    functionLinenumberEnd: 789
    functionName: Info::bytes_per_pixel
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 1
    functionsReached:
    - bytes_per_pixel
    linkageType: ''
    returnType: usize
    signature: pub fn bytes_per_pixel(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesPerPixel::from_usize
      Src: /src/image-png/src/common.rs:799,1
    - Dst: Info::bytes_per_pixel
      Src: /src/image-png/src/common.rs:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 800
      start: 798
    functionDepth: 3
    functionLinenumber: 798
    functionLinenumberEnd: 800
    functionName: Info::bpp_in_prediction
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - Info::bytes_per_pixel
    - BytesPerPixel::from_usize
    linkageType: ''
    returnType: BytesPerPixel
    signature: pub(crate) fn bpp_in_prediction(&self) -> BytesPerPixel
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Info::raw_row_length
      Src: /src/image-png/src/common.rs:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 805
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 805
    functionName: Info::raw_bytes
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - Info::raw_row_length
    linkageType: ''
    returnType: usize
    signature: pub fn raw_bytes(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Info::raw_row_length_from_width
      Src: /src/image-png/src/common.rs:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 810
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 810
    functionName: Info::raw_row_length
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 1
    functionsReached:
    - Info::raw_row_length_from_width
    linkageType: ''
    returnType: usize
    signature: pub fn raw_row_length(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: checked_raw_row_length
      Src: /src/image-png/src/common.rs:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 815
      start: 812
    functionDepth: 2
    functionLinenumber: 812
    functionLinenumberEnd: 815
    functionName: Info::checked_raw_row_length
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - checked_raw_row_length
    linkageType: ''
    returnType: Option
    signature: pub(crate) fn checked_raw_row_length(&self) -> Option<usize>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: raw_row_length_from_width
      Src: /src/image-png/src/common.rs:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - width
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 821
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 821
    functionName: Info::raw_row_length_from_width
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 2
    functionsReached:
    - raw_row_length_from_width
    linkageType: ''
    returnType: usize
    signature: 'pub fn raw_row_length_from_width(&self, width: u32) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/image-png/src/common.rs:825,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:826,1
    - Dst: crate::srgb::substitute_gamma
      Src: /src/image-png/src/common.rs:826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 830
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 830
    functionName: Info::gamma
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - is_some
    - crate::srgb::substitute_gamma
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn gamma(&self) -> Option<ScaledFloat>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/image-png/src/common.rs:834,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:835,1
    - Dst: crate::srgb::substitute_chromaticities
      Src: /src/image-png/src/common.rs:835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 839
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 839
    functionName: Info::chromaticities
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - is_some
    - crate::srgb::substitute_chromaticities
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn chromaticities(&self) -> Option<SourceChromaticities>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/common.rs:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - rendering_intent
    argTypes:
    - SrgbRenderingIntent
    constantsTouched: []
    func_position:
      end: 850
      start: 847
    functionDepth: 0
    functionLinenumber: 847
    functionLinenumberEnd: 850
    functionName: Info::set_source_srgb
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn set_source_srgb(&mut self, rendering_intent: SrgbRenderingIntent)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - bpp
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 864
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 864
    functionName: BytesPerPixel::from_usize
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn from_usize(bpp: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 868
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 868
    functionName: BytesPerPixel::into_usize
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub(crate) fn into_usize(self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 929
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 929
    functionName: Transformations::normalize_to_color8
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Transformations
    signature: pub fn normalize_to_color8() -> Transformations
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 936
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 936
    functionName: Transformations::default
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Transformations
    signature: fn default() -> Transformations
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - inner
    argTypes:
    - ParameterErrorKind
    constantsTouched: []
    func_position:
      end: 970
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 970
    functionName: ParameterError::from
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(inner: ParameterErrorKind) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 988
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 988
    functionName: ParameterError::fmt
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image-png/src/filter/paeth.rs:231,1
    - Dst: zip
      Src: /src/image-png/src/filter/paeth.rs:231,1
    - Dst: '&[u8]::chunks_exact'
      Src: /src/image-png/src/filter/paeth.rs:233,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/paeth.rs:236,1
    - Dst: filter_paeth_stbi
      Src: /src/image-png/src/filter/paeth.rs:236,1
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image-png/src/filter/paeth.rs:248,1
    - Dst: zip
      Src: /src/image-png/src/filter/paeth.rs:248,1
    - Dst: '&[u8]::chunks_exact'
      Src: /src/image-png/src/filter/paeth.rs:250,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/paeth.rs:253,1
    - Dst: filter_paeth_stbi
      Src: /src/image-png/src/filter/paeth.rs:253,1
    - Dst: super::simd::paeth_unfilter_3bpp
      Src: /src/image-png/src/filter/paeth.rs:266,1
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image-png/src/filter/paeth.rs:273,1
    - Dst: zip
      Src: /src/image-png/src/filter/paeth.rs:273,1
    - Dst: '&[u8]::chunks_exact'
      Src: /src/image-png/src/filter/paeth.rs:275,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/paeth.rs:278,1
    - Dst: filter_paeth_stbi
      Src: /src/image-png/src/filter/paeth.rs:278,1
    - Dst: super::simd::paeth_unfilter_4bpp
      Src: /src/image-png/src/filter/paeth.rs:290,1
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image-png/src/filter/paeth.rs:297,1
    - Dst: zip
      Src: /src/image-png/src/filter/paeth.rs:297,1
    - Dst: '&[u8]::chunks_exact'
      Src: /src/image-png/src/filter/paeth.rs:299,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/paeth.rs:302,1
    - Dst: filter_paeth_stbi
      Src: /src/image-png/src/filter/paeth.rs:302,1
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image-png/src/filter/paeth.rs:314,1
    - Dst: zip
      Src: /src/image-png/src/filter/paeth.rs:314,1
    - Dst: '&[u8]::chunks_exact'
      Src: /src/image-png/src/filter/paeth.rs:316,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/paeth.rs:319,1
    - Dst: filter_paeth_stbi
      Src: /src/image-png/src/filter/paeth.rs:319,1
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image-png/src/filter/paeth.rs:345,1
    - Dst: zip
      Src: /src/image-png/src/filter/paeth.rs:345,1
    - Dst: '&[u8]::chunks_exact'
      Src: /src/image-png/src/filter/paeth.rs:347,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/paeth.rs:350,1
    - Dst: filter_paeth_stbi
      Src: /src/image-png/src/filter/paeth.rs:350,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 288
    argCount: 3
    argNames:
    - tbpp
    - previous
    - current
    argTypes:
    - BytesPerPixel
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 376
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 376
    functionName: unfilter
    functionSourceFile: /src/image-png/src/filter/paeth.rs
    functionUses: 0
    functionsReached:
    - '&[u8]::chunks_exact'
    - filter_paeth_stbi
    - zip
    - '&mut [u8]::chunks_exact_mut'
    - super::simd::paeth_unfilter_3bpp
    - wrapping_add
    - super::simd::paeth_unfilter_4bpp
    linkageType: ''
    returnType: void
    signature: 'pub(super) fn unfilter(tbpp: BytesPerPixel, previous: &[u8], current:
      &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/image-png/src/benchable_apis.rs:19,1
    - Dst: u64::from
      Src: /src/image-png/src/benchable_apis.rs:19,1
    - Dst: div_ceil
      Src: /src/image-png/src/benchable_apis.rs:19,1
    - Dst: usize::try_from
      Src: /src/image-png/src/benchable_apis.rs:20,1
    - Dst: unwrap
      Src: /src/image-png/src/benchable_apis.rs:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - width
    - bpp
    argTypes:
    - u32
    - u8
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: a::d::a::m::7::bytes_of_width
    functionSourceFile: /src/image-png/src/benchable_apis.rs
    functionUses: 0
    functionsReached:
    - usize::try_from
    - u64::from
    - unwrap
    - div_ceil
    linkageType: ''
    returnType: usize
    signature: 'fn bytes_of_width(width: u32, bpp: u8) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytes_of_width
      Src: /src/image-png/src/benchable_apis.rs:23,1
    - Dst: Adam7Iterator::new
      Src: /src/image-png/src/benchable_apis.rs:24,1
    - Dst: Adam7Iterator::into_iter
      Src: /src/image-png/src/benchable_apis.rs:24,1
    - Dst: bytes_of_width
      Src: /src/image-png/src/benchable_apis.rs:29,1
    - Dst: adam7::expand_pass
      Src: /src/image-png/src/benchable_apis.rs:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 5
    argNames:
    - img
    - buffer
    - width
    - height
    - bpp
    argTypes:
    - '&mut [u8]'
    - '&[u8]'
    - u32
    - u32
    - u8
    constantsTouched: []
    func_position:
      end: 32
      start: 17
    functionDepth: 16
    functionLinenumber: 17
    functionLinenumberEnd: 32
    functionName: adam7
    functionSourceFile: /src/image-png/src/benchable_apis.rs
    functionUses: 0
    functionsReached:
    - Adam7Iterator::into_iter
    - adam7::expand_pass
    - bytes_of_width
    - Adam7Iterator::new
    linkageType: ''
    returnType: void
    signature: 'pub fn adam7(img: &mut [u8], buffer: &[u8], width: u32, height: u32,
      bpp: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitDepth::from_u8
      Src: /src/image-png/src/benchable_apis.rs:43,1
    - Dst: Option::unwrap
      Src: /src/image-png/src/benchable_apis.rs:43,1
    - Dst: Some
      Src: /src/image-png/src/benchable_apis.rs:44,1
    - Dst: Result::into
      Src: /src/image-png/src/benchable_apis.rs:44,1
    - Dst: map
      Src: /src/image-png/src/benchable_apis.rs:45,1
    - Dst: Info::default
      Src: /src/image-png/src/benchable_apis.rs:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - plte
    - trns
    - bit_depth
    argTypes:
    - '&''a [u8]'
    - Option<&'a [u8]>
    - u8
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: create_info_from_plte_trns_bitdepth
    functionSourceFile: /src/image-png/src/benchable_apis.rs
    functionUses: 0
    functionsReached:
    - map
    - Option::unwrap
    - BitDepth::from_u8
    - Result::into
    - Info::default
    - Some
    linkageType: ''
    returnType: Info
    signature: 'pub fn create_info_from_plte_trns_bitdepth<''a>(plte: &''a [u8],trns:
      Option<&''a [u8]>,bit_depth: u8,) -> Info<''a>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/srgb.rs:6,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7
      start: 4
    functionDepth: 1
    functionLinenumber: 4
    functionLinenumberEnd: 7
    functionName: substitute_gamma
    functionSourceFile: /src/image-png/src/srgb.rs
    functionUses: 2
    functionsReached:
    - ScaledFloat::from_scaled
    linkageType: ''
    returnType: ScaledFloat
    signature: pub fn substitute_gamma() -> ScaledFloat
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/srgb.rs:14,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/srgb.rs:15,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/srgb.rs:18,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/srgb.rs:19,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/srgb.rs:22,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/srgb.rs:23,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/srgb.rs:26,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/srgb.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 30
    functionName: substitute_chromaticities
    functionSourceFile: /src/image-png/src/srgb.rs
    functionUses: 2
    functionsReached:
    - ScaledFloat::from_scaled
    linkageType: ''
    returnType: SourceChromaticities
    signature: pub fn substitute_chromaticities() -> SourceChromaticities
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames: []
    argTypes:
    - ChunkType
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: is_critical
    functionSourceFile: /src/image-png/src/chunk.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_critical(ChunkType(type_): ChunkType) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames: []
    argTypes:
    - ChunkType
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: is_private
    functionSourceFile: /src/image-png/src/chunk.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_private(ChunkType(type_): ChunkType) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames: []
    argTypes:
    - ChunkType
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: reserved_set
    functionSourceFile: /src/image-png/src/chunk.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub fn reserved_set(ChunkType(type_): ChunkType) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames: []
    argTypes:
    - ChunkType
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: safe_to_copy
    functionSourceFile: /src/image-png/src/chunk.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub fn safe_to_copy(ChunkType(type_): ChunkType) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&Self::Target::debug_struct'
      Src: /src/image-png/src/chunk.rs:100,1
    - Dst: field
      Src: /src/image-png/src/chunk.rs:100,1
    - Dst: DebugType
      Src: /src/image-png/src/chunk.rs:101,1
    - Dst: field
      Src: /src/image-png/src/chunk.rs:100,1
    - Dst: is_critical
      Src: /src/image-png/src/chunk.rs:102,1
    - Dst: field
      Src: /src/image-png/src/chunk.rs:100,1
    - Dst: is_private
      Src: /src/image-png/src/chunk.rs:103,1
    - Dst: field
      Src: /src/image-png/src/chunk.rs:100,1
    - Dst: reserved_set
      Src: /src/image-png/src/chunk.rs:104,1
    - Dst: field
      Src: /src/image-png/src/chunk.rs:100,1
    - Dst: safe_to_copy
      Src: /src/image-png/src/chunk.rs:105,1
    - Dst: finish
      Src: /src/image-png/src/chunk.rs:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 107
      start: 88
    functionDepth: 10
    functionLinenumber: 88
    functionLinenumberEnd: 107
    functionName: ChunkType::fmt
    functionSourceFile: /src/image-png/src/chunk.rs
    functionUses: 0
    functionsReached:
    - field
    - reserved_set
    - '&Self::Target::debug_struct'
    - safe_to_copy
    - finish
    - DebugType
    - is_critical
    - is_private
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/image-png/src/decoder/transform.rs:26,1
    - Dst: Transformations::contains
      Src: /src/image-png/src/decoder/transform.rs:26,1
    - Dst: Transformations::contains
      Src: /src/image-png/src/decoder/transform.rs:28,1
    - Dst: Transformations::contains
      Src: /src/image-png/src/decoder/transform.rs:28,1
    - Dst: Transformations::contains
      Src: /src/image-png/src/decoder/transform.rs:29,1
    - Dst: is_none
      Src: /src/image-png/src/decoder/transform.rs:32,1
    - Dst: Err
      Src: /src/image-png/src/decoder/transform.rs:33,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/transform.rs:33,1
    - Dst: into
      Src: /src/image-png/src/decoder/transform.rs:34,1
    - Dst: Err
      Src: /src/image-png/src/decoder/transform.rs:38,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/transform.rs:38,1
    - Dst: into
      Src: /src/image-png/src/decoder/transform.rs:39,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/transform.rs:46,1
    - Dst: palette::create_expansion_into_rgba8
      Src: /src/image-png/src/decoder/transform.rs:47,1
    - Dst: palette::create_expansion_into_rgb8
      Src: /src/image-png/src/decoder/transform.rs:49,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/transform.rs:54,1
    - Dst: Box::new
      Src: /src/image-png/src/decoder/transform.rs:54,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/transform.rs:61,1
    - Dst: Box::new
      Src: /src/image-png/src/decoder/transform.rs:61,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/transform.rs:73,1
    - Dst: Box::new
      Src: /src/image-png/src/decoder/transform.rs:73,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/transform.rs:75,1
    - Dst: Box::new
      Src: /src/image-png/src/decoder/transform.rs:75,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 2
    argNames:
    - info
    - transform
    argTypes:
    - '&Info'
    - Transformations
    constantsTouched: []
    func_position:
      end: 77
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 77
    functionName: create_transform_fn
    functionSourceFile: /src/image-png/src/decoder/transform.rs
    functionUses: 0
    functionsReached:
    - into
    - palette::create_expansion_into_rgb8
    - is_none
    - Transformations::contains
    - DecodingError::Format
    - Err
    - Box::new
    - Ok
    - is_some
    - palette::create_expansion_into_rgba8
    linkageType: ''
    returnType: Result
    signature: 'pub fn create_transform_fn(info: &Info,transform: Transformations,)
      -> Result<TransformFn, DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [u8]::copy_from_slice'
      Src: /src/image-png/src/decoder/transform.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - row
    - output_buffer
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&Info'
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: copy_row
    functionSourceFile: /src/image-png/src/decoder/transform.rs
    functionUses: 0
    functionsReached:
    - '&mut [u8]::copy_from_slice'
    linkageType: ''
    returnType: void
    signature: 'fn copy_row(row: &[u8], output_buffer: &mut [u8], _: &Info)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image-png/src/decoder/transform.rs:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - row
    - output_buffer
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&Info'
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 9
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: transform_row_strip16
    functionSourceFile: /src/image-png/src/decoder/transform.rs
    functionUses: 0
    functionsReached:
    - len
    linkageType: ''
    returnType: void
    signature: 'fn transform_row_strip16(row: &[u8], output_buffer: &mut [u8], _:
      &Info)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image-png/src/decoder/transform.rs:100,1
    - Dst: Result::iter
      Src: /src/image-png/src/decoder/transform.rs:101,1
    - Dst: Result::zip
      Src: /src/image-png/src/decoder/transform.rs:113,1
    - Dst: func
      Src: /src/image-png/src/decoder/transform.rs:114,1
    - Dst: Result::next
      Src: /src/image-png/src/decoder/transform.rs:126,1
    - Dst: Option::expect
      Src: /src/image-png/src/decoder/transform.rs:126,1
    - Dst: func
      Src: /src/image-png/src/decoder/transform.rs:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 5
    argNames:
    - input
    - output
    - channels
    - bit_depth
    - func
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - usize
    - u8
    - F
    constantsTouched: []
    func_position:
      end: 135
      start: 90
    functionDepth: 14
    functionLinenumber: 90
    functionLinenumberEnd: 135
    functionName: unpack_bits
    functionSourceFile: /src/image-png/src/decoder/transform.rs
    functionUses: 0
    functionsReached:
    - Result::iter
    - func
    - Option::expect
    - Result::next
    - '&mut [u8]::chunks_exact_mut'
    - Result::zip
    linkageType: ''
    returnType: void
    signature: 'fn unpack_bits<F>(input: &[u8], output: &mut [u8], channels: usize,
      bit_depth: u8, func: F)whereF: Fn(u8, &mut [u8]),'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: samples
      Src: /src/image-png/src/decoder/transform.rs:138,1
    - Dst: as_deref
      Src: /src/image-png/src/decoder/transform.rs:139,1
    - Dst: Result::chunks_exact
      Src: /src/image-png/src/decoder/transform.rs:140,1
    - Dst: zip
      Src: /src/image-png/src/decoder/transform.rs:140,1
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image-png/src/decoder/transform.rs:142,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/decoder/transform.rs:144,1
    - Dst: Some
      Src: /src/image-png/src/decoder/transform.rs:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - input
    - output
    - info
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&Info'
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: expand_trns_line
    functionSourceFile: /src/image-png/src/decoder/transform.rs
    functionUses: 0
    functionsReached:
    - copy_from_slice
    - samples
    - zip
    - Result::chunks_exact
    - '&mut [u8]::chunks_exact_mut'
    - as_deref
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn expand_trns_line(input: &[u8], output: &mut [u8], info: &Info)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: samples
      Src: /src/image-png/src/decoder/transform.rs:150,1
    - Dst: as_deref
      Src: /src/image-png/src/decoder/transform.rs:151,1
    - Dst: Result::chunks_exact
      Src: /src/image-png/src/decoder/transform.rs:152,1
    - Dst: zip
      Src: /src/image-png/src/decoder/transform.rs:152,1
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image-png/src/decoder/transform.rs:154,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/decoder/transform.rs:156,1
    - Dst: Some
      Src: /src/image-png/src/decoder/transform.rs:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 3
    argNames:
    - input
    - output
    - info
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&Info'
    constantsTouched: []
    func_position:
      end: 165
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 165
    functionName: expand_trns_line16
    functionSourceFile: /src/image-png/src/decoder/transform.rs
    functionUses: 0
    functionsReached:
    - copy_from_slice
    - samples
    - zip
    - Result::chunks_exact
    - '&mut [u8]::chunks_exact_mut'
    - as_deref
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn expand_trns_line16(input: &[u8], output: &mut [u8], info: &Info)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: samples
      Src: /src/image-png/src/decoder/transform.rs:168,1
    - Dst: as_deref
      Src: /src/image-png/src/decoder/transform.rs:169,1
    - Dst: Result::chunks_exact
      Src: /src/image-png/src/decoder/transform.rs:170,1
    - Dst: zip
      Src: /src/image-png/src/decoder/transform.rs:170,1
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image-png/src/decoder/transform.rs:172,1
    - Dst: Some
      Src: /src/image-png/src/decoder/transform.rs:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 3
    argNames:
    - input
    - output
    - info
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&Info'
    constantsTouched: []
    func_position:
      end: 179
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 179
    functionName: expand_trns_and_strip_line16
    functionSourceFile: /src/image-png/src/decoder/transform.rs
    functionUses: 0
    functionsReached:
    - samples
    - zip
    - Result::chunks_exact
    - '&mut [u8]::chunks_exact_mut'
    - as_deref
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn expand_trns_and_strip_line16(input: &[u8], output: &mut [u8], info:
      &Info)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unpack_bits
      Src: /src/image-png/src/decoder/transform.rs:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - row
    - buffer
    - info
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&Info'
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 15
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: expand_gray_u8
    functionSourceFile: /src/image-png/src/decoder/transform.rs
    functionUses: 0
    functionsReached:
    - unpack_bits
    linkageType: ''
    returnType: void
    signature: 'fn expand_gray_u8(row: &[u8], buffer: &mut [u8], info: &Info)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_deref
      Src: /src/image-png/src/decoder/transform.rs:190,1
    - Dst: unpack_bits
      Src: /src/image-png/src/decoder/transform.rs:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 3
    argNames:
    - row
    - buffer
    - info
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&Info'
    constantsTouched: []
    func_position:
      end: 203
      start: 188
    functionDepth: 15
    functionLinenumber: 188
    functionLinenumberEnd: 203
    functionName: expand_gray_u8_with_trns
    functionSourceFile: /src/image-png/src/decoder/transform.rs
    functionUses: 0
    functionsReached:
    - unpack_bits
    - as_deref
    linkageType: ''
    returnType: void
    signature: 'fn expand_gray_u8_with_trns(row: &[u8], buffer: &mut [u8], info: &Info)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamingDecoder::new
      Src: /src/image-png/src/decoder/read_decoder.rs:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: ReadDecoder::new
    functionSourceFile: /src/image-png/src/decoder/read_decoder.rs
    functionUses: 0
    functionsReached:
    - StreamingDecoder::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(r: R) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamingDecoder::new_with_options
      Src: /src/image-png/src/decoder/read_decoder.rs:33,1
    - Dst: Limits::default
      Src: /src/image-png/src/decoder/read_decoder.rs:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - r
    - options
    argTypes:
    - R
    - DecodeOptions
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: ReadDecoder::with_options
    functionSourceFile: /src/image-png/src/decoder/read_decoder.rs
    functionUses: 0
    functionsReached:
    - StreamingDecoder::new_with_options
    - Limits::default
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_options(r: R, options: DecodeOptions) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - limits
    argTypes:
    - Limits
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: ReadDecoder::set_limits
    functionSourceFile: /src/image-png/src/decoder/read_decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_limits(&mut self, limits: Limits)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reserve_bytes
      Src: /src/image-png/src/decoder/read_decoder.rs:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: ReadDecoder::reserve_bytes
    functionSourceFile: /src/image-png/src/decoder/read_decoder.rs
    functionUses: 0
    functionsReached:
    - reserve_bytes
    linkageType: ''
    returnType: Result
    signature: 'pub fn reserve_bytes(&mut self, bytes: usize) -> Result<(), DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_ignore_text_chunk
      Src: /src/image-png/src/decoder/read_decoder.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ignore_text_chunk
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: ReadDecoder::set_ignore_text_chunk
    functionSourceFile: /src/image-png/src/decoder/read_decoder.rs
    functionUses: 0
    functionsReached:
    - set_ignore_text_chunk
    linkageType: ''
    returnType: void
    signature: 'pub fn set_ignore_text_chunk(&mut self, ignore_text_chunk: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_ignore_iccp_chunk
      Src: /src/image-png/src/decoder/read_decoder.rs:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ignore_iccp_chunk
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: ReadDecoder::set_ignore_iccp_chunk
    functionSourceFile: /src/image-png/src/decoder/read_decoder.rs
    functionUses: 0
    functionsReached:
    - set_ignore_iccp_chunk
    linkageType: ''
    returnType: void
    signature: 'pub fn set_ignore_iccp_chunk(&mut self, ignore_iccp_chunk: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_ignore_adler32
      Src: /src/image-png/src/decoder/read_decoder.rs:56,1
    - Dst: set_ignore_crc
      Src: /src/image-png/src/decoder/read_decoder.rs:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ignore_checksums
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: ReadDecoder::ignore_checksums
    functionSourceFile: /src/image-png/src/decoder/read_decoder.rs
    functionUses: 0
    functionsReached:
    - set_ignore_crc
    - set_ignore_adler32
    linkageType: ''
    returnType: void
    signature: 'pub fn ignore_checksums(&mut self, ignore_checksums: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fill_buf
      Src: /src/image-png/src/decoder/read_decoder.rs:67,1
    - Dst: UnfilterBuf::is_empty
      Src: /src/image-png/src/decoder/read_decoder.rs:68,1
    - Dst: Err
      Src: /src/image-png/src/decoder/read_decoder.rs:69,1
    - Dst: DecodingError::IoError
      Src: /src/image-png/src/decoder/read_decoder.rs:69,1
    - Dst: into
      Src: /src/image-png/src/decoder/read_decoder.rs:69,1
    - Dst: update
      Src: /src/image-png/src/decoder/read_decoder.rs:71,1
    - Dst: consume
      Src: /src/image-png/src/decoder/read_decoder.rs:73,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/read_decoder.rs:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - image_data
    argTypes:
    - Option<&mut UnfilterBuf<'_>>
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: ReadDecoder::decode_next
    functionSourceFile: /src/image-png/src/decoder/read_decoder.rs
    functionUses: 0
    functionsReached:
    - into
    - consume
    - DecodingError::IoError
    - Err
    - update
    - Ok
    - UnfilterBuf::is_empty
    - fill_buf
    linkageType: ''
    returnType: Result
    signature: 'fn decode_next(&mut self,image_data: Option<&mut UnfilterBuf<''_>>,)
      -> Result<Decoded, DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadDecoder::info
      Src: /src/image-png/src/decoder/read_decoder.rs:81,1
    - Dst: Option::is_none
      Src: /src/image-png/src/decoder/read_decoder.rs:81,1
    - Dst: ReadDecoder::decode_next
      Src: /src/image-png/src/decoder/read_decoder.rs:82,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/read_decoder.rs:86,1
    - Dst: ReadDecoder::info
      Src: /src/image-png/src/decoder/read_decoder.rs:86,1
    - Dst: Option::unwrap
      Src: /src/image-png/src/decoder/read_decoder.rs:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: ReadDecoder::read_header_info
    functionSourceFile: /src/image-png/src/decoder/read_decoder.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ReadDecoder::info
    - Option::is_none
    - Ok
    - ReadDecoder::decode_next
    linkageType: ''
    returnType: Result
    signature: pub fn read_header_info(&mut self) -> Result<&Info<'static>, DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadDecoder::decode_next
      Src: /src/image-png/src/decoder/read_decoder.rs:94,1
    - Dst: Err
      Src: /src/image-png/src/decoder/read_decoder.rs:97,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/read_decoder.rs:97,1
    - Dst: into
      Src: /src/image-png/src/decoder/read_decoder.rs:98,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/read_decoder.rs:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 107
    functionName: ReadDecoder::read_until_image_data
    functionSourceFile: /src/image-png/src/decoder/read_decoder.rs
    functionUses: 0
    functionsReached:
    - into
    - DecodingError::Format
    - Err
    - Ok
    - ReadDecoder::decode_next
    linkageType: ''
    returnType: Result
    signature: pub fn read_until_image_data(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadDecoder::decode_next
      Src: /src/image-png/src/decoder/read_decoder.rs:117,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/read_decoder.rs:118,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/read_decoder.rs:119,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/read_decoder.rs:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - image_data
    argTypes:
    - Option<&mut UnfilterBuf<'_>>
    constantsTouched: []
    func_position:
      end: 123
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 123
    functionName: ReadDecoder::decode_image_data
    functionSourceFile: /src/image-png/src/decoder/read_decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - ReadDecoder::decode_next
    linkageType: ''
    returnType: Result
    signature: 'pub fn decode_image_data(&mut self,image_data: Option<&mut UnfilterBuf<''_>>,)
      -> Result<ImageDataCompletionStatus, DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadDecoder::decode_image_data
      Src: /src/image-png/src/decoder/read_decoder.rs:130,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/read_decoder.rs:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 4
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: ReadDecoder::finish_decoding_image_data
    functionSourceFile: /src/image-png/src/decoder/read_decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - ReadDecoder::decode_image_data
    linkageType: ''
    returnType: Result
    signature: pub fn finish_decoding_image_data(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/decoder/read_decoder.rs:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: ReadDecoder::read_until_end_of_input
    functionSourceFile: /src/image-png/src/decoder/read_decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn read_until_end_of_input(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/image-png/src/decoder/read_decoder.rs:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: ReadDecoder::info
    functionSourceFile: /src/image-png/src/decoder/read_decoder.rs
    functionUses: 1
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: Option
    signature: pub fn info(&self) -> Option<&Info<'static>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: InterlaceInfo::line_number
    functionSourceFile: /src/image-png/src/decoder/interlace_info.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub(crate) fn line_number(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/decoder/interlace_info.rs:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: InterlaceInfo::get_adam7_info
    functionSourceFile: /src/image-png/src/decoder/interlace_info.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub(crate) fn get_adam7_info(&self) -> Option<&Adam7Info>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/image-png/src/decoder/interlace_info.rs:57,1
    - Dst: IterImpl::None
      Src: /src/image-png/src/decoder/interlace_info.rs:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: InterlaceInfoIter::empty
    functionSourceFile: /src/image-png/src/decoder/interlace_info.rs
    functionUses: 0
    functionsReached:
    - IterImpl::None
    - Self
    linkageType: ''
    returnType: Self
    signature: pub fn empty() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/image-png/src/decoder/interlace_info.rs:62,1
    - Dst: IterImpl::Adam7
      Src: /src/image-png/src/decoder/interlace_info.rs:62,1
    - Dst: Adam7Iterator::new
      Src: /src/image-png/src/decoder/interlace_info.rs:62,1
    - Dst: Self
      Src: /src/image-png/src/decoder/interlace_info.rs:64,1
    - Dst: IterImpl::None
      Src: /src/image-png/src/decoder/interlace_info.rs:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - width
    - height
    - interlaced
    argTypes:
    - u32
    - u32
    - bool
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: InterlaceInfoIter::new
    functionSourceFile: /src/image-png/src/decoder/interlace_info.rs
    functionUses: 0
    functionsReached:
    - IterImpl::None
    - IterImpl::Adam7
    - Self
    - Adam7Iterator::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(width: u32, height: u32, interlaced: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/decoder/interlace_info.rs:74,1
    - Dst: InterlaceInfo::Adam7
      Src: /src/image-png/src/decoder/interlace_info.rs:74,1
    - Dst: next
      Src: /src/image-png/src/decoder/interlace_info.rs:74,1
    - Dst: Some
      Src: /src/image-png/src/decoder/interlace_info.rs:75,1
    - Dst: InterlaceInfo::Null
      Src: /src/image-png/src/decoder/interlace_info.rs:75,1
    - Dst: Vec::next
      Src: /src/image-png/src/decoder/interlace_info.rs:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: InterlaceInfoIter::next
    functionSourceFile: /src/image-png/src/decoder/interlace_info.rs
    functionUses: 0
    functionsReached:
    - InterlaceInfo::Adam7
    - Some
    - InterlaceInfo::Null
    - Vec::next
    - next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<InterlaceInfo>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: test::null
    functionSourceFile: /src/image-png/src/decoder/interlace_info.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn null()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 117
    functionName: test::adam7
    functionSourceFile: /src/image-png/src/decoder/interlace_info.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn adam7()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: test::empty
    functionSourceFile: /src/image-png/src/decoder/interlace_info.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: OutputInfo::buffer_size
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn buffer_size(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:74,1
    - Dst: Err
      Src: /src/image-png/src/decoder/mod.rs:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    functionName: Limits::reserve_bytes
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Err
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn reserve_bytes(&mut self, bytes: usize) -> Result<(),
      DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: Limits::default
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Limits
    signature: fn default() -> Limits
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: InterlacedRow::data
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''data [u8]'
    signature: pub fn data(&self) -> &'data [u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: InterlacedRow::interlace
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&InterlaceInfo'
    signature: pub fn interlace(&self) -> &InterlaceInfo
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: Row::data
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''data [u8]'
    signature: pub fn data(&self) -> &'data [u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Decoder::new_with_limits
      Src: /src/image-png/src/decoder/mod.rs:128,1
    - Dst: Limits::default
      Src: /src/image-png/src/decoder/mod.rs:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Decoder::new
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 15
    functionsReached:
    - Limits::default
    - Decoder::new_with_limits
    linkageType: ''
    returnType: Decoder
    signature: 'pub fn new(r: R) -> Decoder<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadDecoder::new
      Src: /src/image-png/src/decoder/mod.rs:133,1
    - Dst: Self::set_limits
      Src: /src/image-png/src/decoder/mod.rs:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - r
    - limits
    argTypes:
    - R
    - Limits
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: Decoder::new_with_limits
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 1
    functionsReached:
    - Self::set_limits
    - ReadDecoder::new
    linkageType: ''
    returnType: Decoder
    signature: 'pub fn new_with_limits(r: R, limits: Limits) -> Decoder<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadDecoder::with_options
      Src: /src/image-png/src/decoder/mod.rs:144,1
    - Dst: Self::set_limits
      Src: /src/image-png/src/decoder/mod.rs:145,1
    - Dst: Limits::default
      Src: /src/image-png/src/decoder/mod.rs:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - r
    - decode_options
    argTypes:
    - R
    - DecodeOptions
    constantsTouched: []
    func_position:
      end: 151
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 151
    functionName: Decoder::new_with_options
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 2
    functionsReached:
    - Self::set_limits
    - Limits::default
    - ReadDecoder::with_options
    linkageType: ''
    returnType: Decoder
    signature: 'pub fn new_with_options(r: R, decode_options: DecodeOptions) -> Decoder<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_limits
      Src: /src/image-png/src/decoder/mod.rs:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - limits
    argTypes:
    - Limits
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: Decoder::set_limits
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached:
    - set_limits
    linkageType: ''
    returnType: void
    signature: 'pub fn set_limits(&mut self, limits: Limits)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_header_info
      Src: /src/image-png/src/decoder/mod.rs:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: Decoder::read_header_info
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached:
    - read_header_info
    linkageType: ''
    returnType: Result
    signature: pub fn read_header_info(&mut self) -> Result<&Info<'static>, DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Decoder::read_header_info
      Src: /src/image-png/src/decoder/mod.rs:193,1
    - Dst: UnfilteringBuffer::new
      Src: /src/image-png/src/decoder/mod.rs:194,1
    - Dst: SubframeInfo::not_yet_init
      Src: /src/image-png/src/decoder/mod.rs:199,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/mod.rs:204,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:215,1
    - Dst: '&Info::checked_raw_row_length'
      Src: /src/image-png/src/decoder/mod.rs:215,1
    - Dst: Option::is_none
      Src: /src/image-png/src/decoder/mod.rs:215,1
    - Dst: Err
      Src: /src/image-png/src/decoder/mod.rs:216,1
    - Dst: Reader::output_buffer_size
      Src: /src/image-png/src/decoder/mod.rs:223,1
    - Dst: Option::is_none
      Src: /src/image-png/src/decoder/mod.rs:223,1
    - Dst: Err
      Src: /src/image-png/src/decoder/mod.rs:224,1
    - Dst: Reader::read_until_image_data
      Src: /src/image-png/src/decoder/mod.rs:227,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:229,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/mod.rs:229,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:235,1
    - Dst: is_none
      Src: /src/image-png/src/decoder/mod.rs:235,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:243,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 244
    functionName: Decoder::read_info
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 9
    functionsReached:
    - SubframeInfo::not_yet_init
    - Vec::new
    - Decoder::read_header_info
    - '&Info::checked_raw_row_length'
    - UnfilteringBuffer::new
    - Option::is_none
    - is_none
    - Err
    - as_ref
    - Ok
    - Reader::info
    - Reader::read_until_image_data
    - Reader::output_buffer_size
    linkageType: ''
    returnType: Result
    signature: pub fn read_info(mut self) -> Result<Reader<R>, DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - transform
    argTypes:
    - Transformations
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: Decoder::set_transformations
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_transformations(&mut self, transform: Transformations)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_ignore_text_chunk
      Src: /src/image-png/src/decoder/mod.rs:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ignore_text_chunk
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: Decoder::set_ignore_text_chunk
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached:
    - set_ignore_text_chunk
    linkageType: ''
    returnType: void
    signature: 'pub fn set_ignore_text_chunk(&mut self, ignore_text_chunk: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_ignore_iccp_chunk
      Src: /src/image-png/src/decoder/mod.rs:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ignore_iccp_chunk
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: Decoder::set_ignore_iccp_chunk
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached:
    - set_ignore_iccp_chunk
    linkageType: ''
    returnType: void
    signature: 'pub fn set_ignore_iccp_chunk(&mut self, ignore_iccp_chunk: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ignore_checksums
      Src: /src/image-png/src/decoder/mod.rs:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ignore_checksums
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: Decoder::ignore_checksums
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached:
    - ignore_checksums
    linkageType: ''
    returnType: void
    signature: 'pub fn ignore_checksums(&mut self, ignore_checksums: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image-png/src/decoder/mod.rs:349,1
    - Dst: DecodingError::Parameter
      Src: /src/image-png/src/decoder/mod.rs:349,1
    - Dst: into
      Src: /src/image-png/src/decoder/mod.rs:350,1
    - Dst: Reader::finish_decoding
      Src: /src/image-png/src/decoder/mod.rs:356,1
    - Dst: Reader::read_until_image_data
      Src: /src/image-png/src/decoder/mod.rs:358,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:363,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:363,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/mod.rs:363,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/mod.rs:363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 364
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 364
    functionName: Reader::next_frame_info
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - into
    - Reader::finish_decoding
    - DecodingError::Parameter
    - Err
    - as_ref
    - Ok
    - Reader::info
    - Reader::read_until_image_data
    linkageType: ''
    returnType: Result
    signature: pub fn next_frame_info(&mut self) -> Result<&FrameControl, DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_until_image_data
      Src: /src/image-png/src/decoder/mod.rs:369,1
    - Dst: SubframeInfo::new
      Src: /src/image-png/src/decoder/mod.rs:371,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:371,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:372,1
    - Dst: '&Info::bpp_in_prediction'
      Src: /src/image-png/src/decoder/mod.rs:372,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:374,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:377,1
    - Dst: '&Info::raw_row_length_from_width'
      Src: /src/image-png/src/decoder/mod.rs:377,1
    - Dst: count_samples
      Src: /src/image-png/src/decoder/mod.rs:379,1
    - Dst: count_lines
      Src: /src/image-png/src/decoder/mod.rs:381,1
    - Dst: start_frame
      Src: /src/image-png/src/decoder/mod.rs:387,1
    - Dst: Reader::unguarded_output_line_size
      Src: /src/image-png/src/decoder/mod.rs:390,1
    - Dst: reserve_bytes
      Src: /src/image-png/src/decoder/mod.rs:391,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 368
    functionDepth: 4
    functionLinenumber: 368
    functionLinenumberEnd: 394
    functionName: Reader::read_until_image_data
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 2
    functionsReached:
    - start_frame
    - count_samples
    - count_lines
    - Reader::unguarded_output_line_size
    - SubframeInfo::new
    - '&Info::bpp_in_prediction'
    - reserve_bytes
    - '&Info::raw_row_length_from_width'
    - read_until_image_data
    - Ok
    - Reader::info
    linkageType: ''
    returnType: Result
    signature: fn read_until_image_data(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: info
      Src: /src/image-png/src/decoder/mod.rs:400,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/mod.rs:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 401
    functionName: Reader::info
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 8
    functionsReached:
    - unwrap
    - info
    linkageType: ''
    returnType: '&Info'
    signature: pub fn info(&self) -> &Info<'static>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image-png/src/decoder/mod.rs:418,1
    - Dst: DecodingError::Parameter
      Src: /src/image-png/src/decoder/mod.rs:418,1
    - Dst: into
      Src: /src/image-png/src/decoder/mod.rs:419,1
    - Dst: Reader::read_until_image_data
      Src: /src/image-png/src/decoder/mod.rs:424,1
    - Dst: Reader::output_buffer_size
      Src: /src/image-png/src/decoder/mod.rs:430,1
    - Dst: Option::ok_or
      Src: /src/image-png/src/decoder/mod.rs:430,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/mod.rs:434,1
    - Dst: Err
      Src: /src/image-png/src/decoder/mod.rs:435,1
    - Dst: DecodingError::Parameter
      Src: /src/image-png/src/decoder/mod.rs:435,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/mod.rs:438,1
    - Dst: into
      Src: /src/image-png/src/decoder/mod.rs:436,1
    - Dst: Reader::output_color_type
      Src: /src/image-png/src/decoder/mod.rs:444,1
    - Dst: Reader::unguarded_output_line_size
      Src: /src/image-png/src/decoder/mod.rs:450,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:453,1
    - Dst: Reader::unguarded_output_line_size
      Src: /src/image-png/src/decoder/mod.rs:454,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:454,1
    - Dst: (ColorType, BitDepth)::samples
      Src: /src/image-png/src/decoder/mod.rs:455,1
    - Dst: Reader::next_interlaced_row
      Src: /src/image-png/src/decoder/mod.rs:463,1
    - Dst: '&InterlaceInfo::get_adam7_info'
      Src: /src/image-png/src/decoder/mod.rs:466,1
    - Dst: Option::unwrap
      Src: /src/image-png/src/decoder/mod.rs:466,1
    - Dst: expand
      Src: /src/image-png/src/decoder/mod.rs:467,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/mod.rs:470,1
    - Dst: map
      Src: /src/image-png/src/decoder/mod.rs:471,1
    - Dst: Result::line_number
      Src: /src/image-png/src/decoder/mod.rs:472,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/mod.rs:471,1
    - Dst: UnfilterBuf::chunks_exact_mut
      Src: /src/image-png/src/decoder/mod.rs:475,1
    - Dst: take
      Src: /src/image-png/src/decoder/mod.rs:475,1
    - Dst: skip
      Src: /src/image-png/src/decoder/mod.rs:475,1
    - Dst: Reader::next_interlaced_row_impl
      Src: /src/image-png/src/decoder/mod.rs:480,1
    - Dst: Reader::finish_decoding
      Src: /src/image-png/src/decoder/mod.rs:485,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:487,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 111
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 488
      start: 416
    functionDepth: 9
    functionLinenumber: 416
    functionLinenumberEnd: 488
    functionName: Reader::next_frame
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 10
    functionsReached:
    - map
    - Option::unwrap
    - take
    - Err
    - '&InterlaceInfo::get_adam7_info'
    - Reader::output_buffer_size
    - Reader::info
    - Reader::read_until_image_data
    - Reader::unguarded_output_line_size
    - Reader::next_interlaced_row
    - Reader::next_interlaced_row_impl
    - DecodingError::Parameter
    - UnfilterBuf::len
    - (ColorType, BitDepth)::samples
    - Reader::finish_decoding
    - as_ref
    - Ok
    - Option::ok_or
    - unwrap_or
    - into
    - skip
    - UnfilterBuf::chunks_exact_mut
    - Reader::output_color_type
    - expand
    - Result::line_number
    linkageType: ''
    returnType: Result
    signature: 'pub fn next_frame(&mut self, buf: &mut [u8]) -> Result<OutputInfo,
      DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 495
    functionName: Reader::mark_subframe_as_consumed_and_flushed
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn mark_subframe_as_consumed_and_flushed(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: finish_decoding_image_data
      Src: /src/image-png/src/decoder/mod.rs:506,1
    - Dst: Reader::mark_subframe_as_consumed_and_flushed
      Src: /src/image-png/src/decoder/mod.rs:507,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:510,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 511
      start: 499
    functionDepth: 5
    functionLinenumber: 499
    functionLinenumberEnd: 511
    functionName: Reader::finish_decoding
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 2
    functionsReached:
    - Ok
    - finish_decoding_image_data
    - Reader::mark_subframe_as_consumed_and_flushed
    linkageType: ''
    returnType: Result
    signature: fn finish_decoding(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::next_interlaced_row
      Src: /src/image-png/src/decoder/mod.rs:517,1
    - Dst: Result::map
      Src: /src/image-png/src/decoder/mod.rs:517,1
    - Dst: Result::map
      Src: /src/image-png/src/decoder/mod.rs:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 519
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 519
    functionName: Reader::next_row
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached:
    - Reader::next_interlaced_row
    - Result::map
    linkageType: ''
    returnType: Result
    signature: pub fn next_row(&mut self) -> Result<Option<Row<'_>>, DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem::take
      Src: /src/image-png/src/decoder/mod.rs:525,1
    - Dst: Reader::output_line_size
      Src: /src/image-png/src/decoder/mod.rs:526,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:527,1
    - Dst: Option::ok_or
      Src: /src/image-png/src/decoder/mod.rs:526,1
    - Dst: Wrapper::resize
      Src: /src/image-png/src/decoder/mod.rs:529,1
    - Dst: Reader::read_row
      Src: /src/image-png/src/decoder/mod.rs:530,1
    - Dst: Result::map
      Src: /src/image-png/src/decoder/mod.rs:532,1
    - Dst: map
      Src: /src/image-png/src/decoder/mod.rs:533,1
    - Dst: Reader::output_line_size_for_interlace_info
      Src: /src/image-png/src/decoder/mod.rs:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 541
      start: 524
    functionDepth: 4
    functionLinenumber: 524
    functionLinenumberEnd: 541
    functionName: Reader::next_interlaced_row
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 2
    functionsReached:
    - Reader::read_row
    - map
    - Wrapper::resize
    - Option::ok_or
    - Reader::output_line_size
    - mem::take
    - Reader::info
    - Reader::output_line_size_for_interlace_info
    - Result::map
    linkageType: ''
    returnType: Result
    signature: pub fn next_interlaced_row(&mut self) -> Result<Option<InterlacedRow<'_>>,
      DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/image-png/src/decoder/mod.rs:555,1
    - Dst: Reader::finish_decoding
      Src: /src/image-png/src/decoder/mod.rs:557,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:558,1
    - Dst: '&InterlaceInfo::line_number'
      Src: /src/image-png/src/decoder/mod.rs:562,1
    - Dst: reset_prev_row
      Src: /src/image-png/src/decoder/mod.rs:563,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:568,1
    - Dst: '&Info::raw_row_length_from_width'
      Src: /src/image-png/src/decoder/mod.rs:568,1
    - Dst: Reader::output_line_size_for_interlace_info
      Src: /src/image-png/src/decoder/mod.rs:572,1
    - Dst: Reader::next_interlaced_row_impl
      Src: /src/image-png/src/decoder/mod.rs:575,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:577,1
    - Dst: Some
      Src: /src/image-png/src/decoder/mod.rs:577,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 1
    argNames:
    - output_buffer
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 578
      start: 551
    functionDepth: 6
    functionLinenumber: 551
    functionLinenumberEnd: 578
    functionName: Reader::read_row
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 2
    functionsReached:
    - '&InterlaceInfo::line_number'
    - '&Info::raw_row_length_from_width'
    - Reader::finish_decoding
    - Reader::next_interlaced_row_impl
    - reset_prev_row
    - as_ref
    - Ok
    - Reader::info
    - Reader::output_line_size_for_interlace_info
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn read_row(&mut self,output_buffer: &mut [u8],) -> Result<Option<InterlaceInfo>,
      DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::unguarded_output_line_size
      Src: /src/image-png/src/decoder/mod.rs:585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - interlace
    argTypes:
    - '&InterlaceInfo'
    constantsTouched: []
    func_position:
      end: 586
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 586
    functionName: Reader::output_line_size_for_interlace_info
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 2
    functionsReached:
    - Reader::unguarded_output_line_size
    linkageType: ''
    returnType: usize
    signature: 'fn output_line_size_for_interlace_info(&self, interlace: &InterlaceInfo)
      -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image-png/src/decoder/mod.rs:592,1
    - Dst: DecodingError::Parameter
      Src: /src/image-png/src/decoder/mod.rs:592,1
    - Dst: into
      Src: /src/image-png/src/decoder/mod.rs:593,1
    - Dst: read_until_end_of_input
      Src: /src/image-png/src/decoder/mod.rs:598,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 602
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 602
    functionName: Reader::finish
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached:
    - into
    - read_until_end_of_input
    - DecodingError::Parameter
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn finish(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::next_raw_interlaced_row
      Src: /src/image-png/src/decoder/mod.rs:610,1
    - Dst: prev_row
      Src: /src/image-png/src/decoder/mod.rs:611,1
    - Dst: is_none
      Src: /src/image-png/src/decoder/mod.rs:616,1
    - Dst: Some
      Src: /src/image-png/src/decoder/mod.rs:617,1
    - Dst: self::transform::create_transform_fn
      Src: /src/image-png/src/decoder/mod.rs:617,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:617,1
    - Dst: as_deref
      Src: /src/image-png/src/decoder/mod.rs:619,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/mod.rs:619,1
    - Dst: transform_fn
      Src: /src/image-png/src/decoder/mod.rs:621,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:621,1
    - Dst: next
      Src: /src/image-png/src/decoder/mod.rs:623,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 2
    argNames:
    - rowlen
    - output_buffer
    argTypes:
    - usize
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 625
      start: 605
    functionDepth: 4
    functionLinenumber: 605
    functionLinenumberEnd: 625
    functionName: Reader::next_interlaced_row_impl
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 2
    functionsReached:
    - prev_row
    - transform_fn
    - Reader::next_raw_interlaced_row
    - self::transform::create_transform_fn
    - next
    - is_none
    - as_deref
    - Ok
    - Reader::info
    - unwrap
    - Some
    linkageType: ''
    returnType: Result
    signature: 'fn next_interlaced_row_impl(&mut self,rowlen: usize,output_buffer:
      &mut [u8],) -> Result<(), DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:632,1
    - Dst: u8::intersects
      Src: /src/image-png/src/decoder/mod.rs:637,1
    - Dst: u8::contains
      Src: /src/image-png/src/decoder/mod.rs:639,1
    - Dst: u8::contains
      Src: /src/image-png/src/decoder/mod.rs:640,1
    - Dst: u8::contains
      Src: /src/image-png/src/decoder/mod.rs:647,1
    - Dst: u8::contains
      Src: /src/image-png/src/decoder/mod.rs:647,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/mod.rs:648,1
    - Dst: u8::contains
      Src: /src/image-png/src/decoder/mod.rs:648,1
    - Dst: BitDepth::from_u8
      Src: /src/image-png/src/decoder/mod.rs:659,1
    - Dst: Option::unwrap
      Src: /src/image-png/src/decoder/mod.rs:659,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 661
      start: 629
    functionDepth: 4
    functionLinenumber: 629
    functionLinenumberEnd: 661
    functionName: Reader::output_color_type
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 1
    functionsReached:
    - BitDepth::from_u8
    - Option::unwrap
    - u8::intersects
    - u8::contains
    - is_some
    - Reader::info
    linkageType: ''
    returnType: (ColorType, BitDepth)
    signature: pub fn output_color_type(&self) -> (ColorType, BitDepth)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:669,1
    - Dst: '&Info::size'
      Src: /src/image-png/src/decoder/mod.rs:669,1
    - Dst: Reader::output_color_type
      Src: /src/image-png/src/decoder/mod.rs:670,1
    - Dst: checked_raw_row_length
      Src: /src/image-png/src/decoder/mod.rs:675,1
    - Dst: checked_sub
      Src: /src/image-png/src/decoder/mod.rs:675,1
    - Dst: usize::try_from
      Src: /src/image-png/src/decoder/mod.rs:676,1
    - Dst: ok
      Src: /src/image-png/src/decoder/mod.rs:676,1
    - Dst: checked_mul
      Src: /src/image-png/src/decoder/mod.rs:677,1
    - Dst: then_some
      Src: /src/image-png/src/decoder/mod.rs:679,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 680
      start: 668
    functionDepth: 13
    functionLinenumber: 668
    functionLinenumberEnd: 680
    functionName: Reader::output_buffer_size
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 2
    functionsReached:
    - usize::try_from
    - checked_raw_row_length
    - checked_mul
    - then_some
    - ok
    - Reader::output_color_type
    - Reader::info
    - '&Info::size'
    - checked_sub
    linkageType: ''
    returnType: Option
    signature: pub fn output_buffer_size(&self) -> Option<usize>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::output_color_type
      Src: /src/image-png/src/decoder/mod.rs:684,1
    - Dst: raw_row_length_from_width
      Src: /src/image-png/src/decoder/mod.rs:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - width
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 686
      start: 683
    functionDepth: 5
    functionLinenumber: 683
    functionLinenumberEnd: 686
    functionName: Reader::unguarded_output_line_size
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 3
    functionsReached:
    - Reader::output_color_type
    - raw_row_length_from_width
    linkageType: ''
    returnType: usize
    signature: 'pub(crate) fn unguarded_output_line_size(&self, width: u32) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::output_color_type
      Src: /src/image-png/src/decoder/mod.rs:693,1
    - Dst: checked_raw_row_length
      Src: /src/image-png/src/decoder/mod.rs:694,1
    - Dst: checked_sub
      Src: /src/image-png/src/decoder/mod.rs:694,1
    - Dst: then_some
      Src: /src/image-png/src/decoder/mod.rs:696,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - width
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 697
      start: 692
    functionDepth: 5
    functionLinenumber: 692
    functionLinenumberEnd: 697
    functionName: Reader::output_line_size
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 1
    functionsReached:
    - Reader::output_color_type
    - checked_raw_row_length
    - then_some
    - checked_sub
    linkageType: ''
    returnType: Option
    signature: 'pub fn output_line_size(&self, width: u32) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mutable_len_of_curr_row
      Src: /src/image-png/src/decoder/mod.rs:702,1
    - Dst: Err
      Src: /src/image-png/src/decoder/mod.rs:704,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/mod.rs:704,1
    - Dst: into
      Src: /src/image-png/src/decoder/mod.rs:705,1
    - Dst: with_unfilled_buffer
      Src: /src/image-png/src/decoder/mod.rs:710,1
    - Dst: decode_image_data
      Src: /src/image-png/src/decoder/mod.rs:712,1
    - Dst: Some
      Src: /src/image-png/src/decoder/mod.rs:712,1
    - Dst: Reader::mark_subframe_as_consumed_and_flushed
      Src: /src/image-png/src/decoder/mod.rs:715,1
    - Dst: (impl BufRead + Seek, impl Write)::kind
      Src: /src/image-png/src/decoder/mod.rs:717,1
    - Dst: readable_len_of_curr_row
      Src: /src/image-png/src/decoder/mod.rs:718,1
    - Dst: unfilter_curr_row_using_scratch_buffer
      Src: /src/image-png/src/decoder/mod.rs:720,1
    - Dst: Err
      Src: /src/image-png/src/decoder/mod.rs:724,1
    - Dst: unfilter_curr_row_in_place
      Src: /src/image-png/src/decoder/mod.rs:728,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 1
    argNames:
    - rowlen
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 730
      start: 700
    functionDepth: 3
    functionLinenumber: 700
    functionLinenumberEnd: 730
    functionName: Reader::next_raw_interlaced_row
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 1
    functionsReached:
    - into
    - decode_image_data
    - (impl BufRead + Seek, impl Write)::kind
    - unfilter_curr_row_using_scratch_buffer
    - unfilter_curr_row_in_place
    - mutable_len_of_curr_row
    - DecodingError::Format
    - Err
    - readable_len_of_curr_row
    - Reader::mark_subframe_as_consumed_and_flushed
    - with_unfilled_buffer
    - Some
    linkageType: ''
    returnType: Result
    signature: 'fn next_raw_interlaced_row(&mut self, rowlen: usize) -> Result<(),
      DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InterlaceInfoIter::empty
      Src: /src/image-png/src/decoder/mod.rs:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 743
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 743
    functionName: SubframeInfo::not_yet_init
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 1
    functionsReached:
    - InterlaceInfoIter::empty
    linkageType: ''
    returnType: Self
    signature: fn not_yet_init() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InterlaceInfoIter::new
      Src: /src/image-png/src/decoder/mod.rs:754,1
    - Dst: Self::next
      Src: /src/image-png/src/decoder/mod.rs:755,1
    - Dst: Result::raw_row_length_from_width
      Src: /src/image-png/src/decoder/mod.rs:759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - info
    argTypes:
    - '&Info'
    constantsTouched: []
    func_position:
      end: 764
      start: 745
    functionDepth: 5
    functionLinenumber: 745
    functionLinenumberEnd: 764
    functionName: SubframeInfo::new
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 1
    functionsReached:
    - InterlaceInfoIter::new
    - Result::raw_row_length_from_width
    - Self::next
    linkageType: ''
    returnType: Self
    signature: 'fn new(info: &Info) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kind
    argTypes:
    - U32ValueKind
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: State::new_u32
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn new_u32(kind: U32ValueKind) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: DecodingError::cause
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn cause(&self) -> Option<&(dyn error::Error + 'static)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 303
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 303
    functionName: DecodingError::fmt
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, fmt: &mut fmt::Formatter) -> Result<(), fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:459,1
    - Dst: FormatErrorInner::BadTextEncoding
      Src: /src/image-png/src/decoder/stream.rs:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tbe
    argTypes:
    - TextDecodingError
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: DecodingError::from
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 4
    functionsReached:
    - FormatErrorInner::BadTextEncoding
    - DecodingError::Format
    linkageType: ''
    returnType: Self
    signature: 'fn from(tbe: TextDecodingError) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashSet::new
      Src: /src/image-png/src/decoder/stream.rs:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 486
      start: 477
    functionDepth: 3
    functionLinenumber: 477
    functionLinenumberEnd: 486
    functionName: DecodeOptions::default
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - HashSet::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ignore_adler32
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 495
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 495
    functionName: DecodeOptions::set_ignore_adler32
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_ignore_adler32(&mut self, ignore_adler32: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ignore_crc
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 502
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 502
    functionName: DecodeOptions::set_ignore_crc
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_ignore_crc(&mut self, ignore_crc: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ignore_checksums
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 509
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 509
    functionName: DecodeOptions::set_ignore_checksums
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_ignore_checksums(&mut self, ignore_checksums: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ignore_text_chunk
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 516
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 516
    functionName: DecodeOptions::set_ignore_text_chunk
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_ignore_text_chunk(&mut self, ignore_text_chunk: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ignore_iccp_chunk
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 523
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 523
    functionName: DecodeOptions::set_ignore_iccp_chunk
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_ignore_iccp_chunk(&mut self, ignore_iccp_chunk: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - skip_ancillary_crc_failures
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 530
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 530
    functionName: DecodeOptions::set_skip_ancillary_crc_failures
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_skip_ancillary_crc_failures(&mut self, skip_ancillary_crc_failures:
      bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chunk::is_critical
      Src: /src/image-png/src/decoder/stream.rs:546,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:547,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:547,1
    - Dst: '&[ChunkType]::iter'
      Src: /src/image-png/src/decoder/stream.rs:550,1
    - Dst: Result::cloned
      Src: /src/image-png/src/decoder/stream.rs:550,1
    - Dst: collect
      Src: /src/image-png/src/decoder/stream.rs:550,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - names
    argTypes:
    - '&[ChunkType]'
    constantsTouched: []
    func_position:
      end: 552
      start: 544
    functionDepth: 14
    functionLinenumber: 544
    functionLinenumberEnd: 552
    functionName: DecodeOptions::set_captured_chunks
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - into
    - collect
    - chunk::is_critical
    - Result::cloned
    - Err
    - Ok
    - '&[ChunkType]::iter'
    linkageType: ''
    returnType: Result
    signature: 'pub fn set_captured_chunks(&mut self, names: &[ChunkType]) -> Result<(),
      ParameterError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/image-png/src/decoder/stream.rs:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - type_str
    argTypes:
    - ChunkType
    constantsTouched: []
    func_position:
      end: 556
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 556
    functionName: DecodeOptions::is_captured
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - contains
    linkageType: ''
    returnType: bool
    signature: 'pub(crate) fn is_captured(&self, type_str: ChunkType) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamingDecoder::new_with_options
      Src: /src/image-png/src/decoder/stream.rs:619,1
    - Dst: DecodeOptions::default
      Src: /src/image-png/src/decoder/stream.rs:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 620
      start: 618
    functionDepth: 4
    functionLinenumber: 618
    functionLinenumberEnd: 620
    functionName: StreamingDecoder::new
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - StreamingDecoder::new_with_options
    - DecodeOptions::default
    linkageType: ''
    returnType: StreamingDecoder
    signature: pub fn new() -> StreamingDecoder
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZlibStream::new
      Src: /src/image-png/src/decoder/stream.rs:623,1
    - Dst: Self::set_ignore_adler32
      Src: /src/image-png/src/decoder/stream.rs:624,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:627,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:627,1
    - Dst: chunk::ChunkType
      Src: /src/image-png/src/decoder/stream.rs:629,1
    - Dst: Crc32::new
      Src: /src/image-png/src/decoder/stream.rs:630,1
    - Dst: Vec::with_capacity
      Src: /src/image-png/src/decoder/stream.rs:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - decode_options
    argTypes:
    - DecodeOptions
    constantsTouched: []
    func_position:
      end: 645
      start: 622
    functionDepth: 3
    functionLinenumber: 622
    functionLinenumberEnd: 645
    functionName: StreamingDecoder::new_with_options
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 2
    functionsReached:
    - chunk::ChunkType
    - State::new_u32
    - ZlibStream::new
    - Vec::with_capacity
    - Self::set_ignore_adler32
    - Crc32::new
    - Some
    linkageType: ''
    returnType: StreamingDecoder
    signature: 'pub fn new_with_options(decode_options: DecodeOptions) -> StreamingDecoder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:649,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:649,1
    - Dst: Crc32::new
      Src: /src/image-png/src/decoder/stream.rs:650,1
    - Dst: clear
      Src: /src/image-png/src/decoder/stream.rs:652,1
    - Dst: reset
      Src: /src/image-png/src/decoder/stream.rs:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 657
      start: 648
    functionDepth: 3
    functionLinenumber: 648
    functionLinenumberEnd: 657
    functionName: StreamingDecoder::reset
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - clear
    - reset
    - State::new_u32
    - Crc32::new
    - Some
    linkageType: ''
    returnType: void
    signature: pub fn reset(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/image-png/src/decoder/stream.rs:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 662
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 662
    functionName: StreamingDecoder::info
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: Option
    signature: pub fn info(&self) -> Option<&Info<'static>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_ignore_text_chunk
      Src: /src/image-png/src/decoder/stream.rs:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ignore_text_chunk
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 666
      start: 664
    functionDepth: 2
    functionLinenumber: 664
    functionLinenumberEnd: 666
    functionName: StreamingDecoder::set_ignore_text_chunk
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - set_ignore_text_chunk
    linkageType: ''
    returnType: void
    signature: 'pub fn set_ignore_text_chunk(&mut self, ignore_text_chunk: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_ignore_iccp_chunk
      Src: /src/image-png/src/decoder/stream.rs:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ignore_iccp_chunk
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 670
      start: 668
    functionDepth: 2
    functionLinenumber: 668
    functionLinenumberEnd: 670
    functionName: StreamingDecoder::set_ignore_iccp_chunk
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - set_ignore_iccp_chunk
    linkageType: ''
    returnType: void
    signature: 'pub fn set_ignore_iccp_chunk(&mut self, ignore_iccp_chunk: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ignore_adler32
      Src: /src/image-png/src/decoder/stream.rs:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 675
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 675
    functionName: StreamingDecoder::ignore_adler32
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - ignore_adler32
    linkageType: ''
    returnType: bool
    signature: pub fn ignore_adler32(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_ignore_adler32
      Src: /src/image-png/src/decoder/stream.rs:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ignore_adler32
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 686
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 686
    functionName: StreamingDecoder::set_ignore_adler32
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - set_ignore_adler32
    linkageType: ''
    returnType: bool
    signature: 'pub fn set_ignore_adler32(&mut self, ignore_adler32: bool) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_ignore_crc
      Src: /src/image-png/src/decoder/stream.rs:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ignore_crc
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 694
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 694
    functionName: StreamingDecoder::set_ignore_crc
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - set_ignore_crc
    linkageType: ''
    returnType: void
    signature: 'pub fn set_ignore_crc(&mut self, ignore_crc: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_skip_ancillary_crc_failures
      Src: /src/image-png/src/decoder/stream.rs:700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - skip_ancillary_crc_failures
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 702
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 702
    functionName: StreamingDecoder::set_skip_ancillary_crc_failures
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - set_skip_ancillary_crc_failures
    linkageType: ''
    returnType: void
    signature: 'pub fn set_skip_ancillary_crc_failures(&mut self, skip_ancillary_crc_failures:
      bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/image-png/src/decoder/stream.rs:714,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:715,1
    - Dst: DecodingError::Parameter
      Src: /src/image-png/src/decoder/stream.rs:715,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:716,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:720,1
    - Dst: UnfilterBuf::is_empty
      Src: /src/image-png/src/decoder/stream.rs:721,1
    - Dst: Result::as_deref_mut
      Src: /src/image-png/src/decoder/stream.rs:722,1
    - Dst: StreamingDecoder::next_state
      Src: /src/image-png/src/decoder/stream.rs:724,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:728,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:728,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:732,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:736,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:736,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 49
    argCount: 2
    argNames:
    - buf
    - image_data
    argTypes:
    - '&[u8]'
    - Option<&mut UnfilterBuf<'_>>
    constantsTouched: []
    func_position:
      end: 737
      start: 709
    functionDepth: 9
    functionLinenumber: 709
    functionLinenumberEnd: 737
    functionName: StreamingDecoder::update
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::as_deref_mut
    - StreamingDecoder::next_state
    - into
    - is_none
    - DecodingError::Parameter
    - UnfilterBuf::len
    - Err
    - Ok
    - UnfilterBuf::is_empty
    linkageType: ''
    returnType: Result
    signature: 'pub fn update(&mut self,mut buf: &[u8],mut image_data: Option<&mut
      UnfilterBuf<''_>>,) -> Result<(usize, Decoded), DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/image-png/src/decoder/stream.rs:747,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:747,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:756,1
    - Dst: StreamingDecoder::parse_u32
      Src: /src/image-png/src/decoder/stream.rs:763,1
    - Dst: std::cmp::min
      Src: /src/image-png/src/decoder/stream.rs:767,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:767,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/decoder/stream.rs:768,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:775,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:780,1
    - Dst: StreamingDecoder::parse_u32
      Src: /src/image-png/src/decoder/stream.rs:783,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:790,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:790,1
    - Dst: U32ValueKind::Crc
      Src: /src/image-png/src/decoder/stream.rs:790,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:791,1
    - Dst: usize::capacity
      Src: /src/image-png/src/decoder/stream.rs:801,1
    - Dst: usize::len
      Src: /src/image-png/src/decoder/stream.rs:801,1
    - Dst: std::cmp::min
      Src: /src/image-png/src/decoder/stream.rs:802,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:802,1
    - Dst: std::cmp::min
      Src: /src/image-png/src/decoder/stream.rs:803,1
    - Dst: update
      Src: /src/image-png/src/decoder/stream.rs:807,1
    - Dst: usize::len
      Src: /src/image-png/src/decoder/stream.rs:811,1
    - Dst: usize::capacity
      Src: /src/image-png/src/decoder/stream.rs:811,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:813,1
    - Dst: usize::capacity
      Src: /src/image-png/src/decoder/stream.rs:818,1
    - Dst: std::cmp::min
      Src: /src/image-png/src/decoder/stream.rs:818,1
    - Dst: reserve_bytes
      Src: /src/image-png/src/decoder/stream.rs:820,1
    - Dst: usize::reserve_exact
      Src: /src/image-png/src/decoder/stream.rs:821,1
    - Dst: usize::extend_from_slice
      Src: /src/image-png/src/decoder/stream.rs:823,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:829,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:829,1
    - Dst: U32ValueKind::Crc
      Src: /src/image-png/src/decoder/stream.rs:829,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:831,1
    - Dst: ReadChunkData
      Src: /src/image-png/src/decoder/stream.rs:831,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:833,1
    - Dst: std::cmp::min
      Src: /src/image-png/src/decoder/stream.rs:838,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:838,1
    - Dst: decompress
      Src: /src/image-png/src/decoder/stream.rs:842,1
    - Dst: update
      Src: /src/image-png/src/decoder/stream.rs:848,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:853,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:853,1
    - Dst: U32ValueKind::Crc
      Src: /src/image-png/src/decoder/stream.rs:853,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:855,1
    - Dst: ImageData
      Src: /src/image-png/src/decoder/stream.rs:855,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:857,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 195
    argCount: 2
    argNames:
    - buf
    - image_data
    argTypes:
    - '&[u8]'
    - Option<&mut UnfilterBuf<'_>>
    constantsTouched: []
    func_position:
      end: 860
      start: 739
    functionDepth: 9
    functionLinenumber: 739
    functionLinenumberEnd: 860
    functionName: StreamingDecoder::next_state
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - usize::reserve_exact
    - take
    - reserve_bytes
    - Err
    - ImageData
    - UnfilterBuf::len
    - Some
    - std::cmp::min
    - copy_from_slice
    - StreamingDecoder::parse_u32
    - State::new_u32
    - usize::len
    - usize::extend_from_slice
    - U32ValueKind::Crc
    - Ok
    - unwrap
    - decompress
    - usize::capacity
    - ReadChunkData
    - update
    linkageType: ''
    returnType: Result
    signature: 'fn next_state(&mut self,buf: &[u8],image_data: Option<&mut UnfilterBuf<''_>>,)
      -> Result<(usize, Decoded), DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::try_into'
      Src: /src/image-png/src/decoder/stream.rs:870,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:870,1
    - Dst: u32::from_be_bytes
      Src: /src/image-png/src/decoder/stream.rs:871,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:876,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:876,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:877,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:879,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:879,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:880,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:886,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:886,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:887,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:889,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:889,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:890,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:895,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:895,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:896,1
    - Dst: chunk::ChunkType
      Src: /src/image-png/src/decoder/stream.rs:899,1
    - Dst: is_none
      Src: /src/image-png/src/decoder/stream.rs:900,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:901,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:901,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:902,1
    - Dst: finish
      Src: /src/image-png/src/decoder/stream.rs:909,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:916,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:929,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:934,1
    - Dst: reset
      Src: /src/image-png/src/decoder/stream.rs:940,1
    - Dst: update
      Src: /src/image-png/src/decoder/stream.rs:941,1
    - Dst: clear
      Src: /src/image-png/src/decoder/stream.rs:944,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:949,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:949,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:950,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:957,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:957,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:958,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:962,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:962,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:966,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:966,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:967,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:975,1
    - Dst: State::ImageData
      Src: /src/image-png/src/decoder/stream.rs:975,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:977,1
    - Dst: StreamingDecoder::start_chunk
      Src: /src/image-png/src/decoder/stream.rs:977,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:979,1
    - Dst: Decoded::ChunkBegin
      Src: /src/image-png/src/decoder/stream.rs:979,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:988,1
    - Dst: finalize
      Src: /src/image-png/src/decoder/stream.rs:988,1
    - Dst: StreamingDecoder::parse_chunk
      Src: /src/image-png/src/decoder/stream.rs:997,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1000,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:1000,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1002,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1005,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:1005,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1006,1
    - Dst: Decoded::SkippedAncillaryChunk
      Src: /src/image-png/src/decoder/stream.rs:1008,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1012,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:1012,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1013,1
    - Dst: Decoded::BadAncillaryChunk
      Src: /src/image-png/src/decoder/stream.rs:1013,1
    - Dst: chunk::is_critical
      Src: /src/image-png/src/decoder/stream.rs:1017,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1020,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:1020,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1021,1
    - Dst: Decoded::BadAncillaryChunk
      Src: /src/image-png/src/decoder/stream.rs:1021,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1023,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1023,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1024,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1043,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1043,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1044,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1051,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1053,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1053,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1053,1
    - Dst: val::to_be_bytes
      Src: /src/image-png/src/decoder/stream.rs:1057,1
    - Dst: update
      Src: /src/image-png/src/decoder/stream.rs:1058,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1061,1
    - Dst: State::ImageData
      Src: /src/image-png/src/decoder/stream.rs:1061,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1062,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 311
    argCount: 4
    argNames:
    - kind
    - u32_be_bytes
    - image_data
    - consumed_bytes
    argTypes:
    - U32ValueKind
    - '&[u8]'
    - Option<&mut UnfilterBuf<'_>>
    - usize
    constantsTouched: []
    func_position:
      end: 1065
      start: 862
    functionDepth: 13
    functionLinenumber: 862
    functionLinenumberEnd: 1065
    functionName: StreamingDecoder::parse_u32
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - '&[u8]::try_into'
    - finalize
    - Err
    - u32::from_be_bytes
    - clone
    - Decoded::BadAncillaryChunk
    - State::ImageData
    - reset
    - DecodingError::Format
    - Decoded::SkippedAncillaryChunk
    - Some
    - State::new_u32
    - StreamingDecoder::start_chunk
    - chunk::is_critical
    - Decoded::ChunkBegin
    - Ok
    - StreamingDecoder::parse_chunk
    - unwrap
    - chunk::ChunkType
    - clear
    - into
    - finish
    - is_none
    - update
    - val::to_be_bytes
    linkageType: ''
    returnType: Result
    signature: 'fn parse_u32(&mut self,kind: U32ValueKind,u32_be_bytes: &[u8],image_data:
      Option<&mut UnfilterBuf<''_>>,consumed_bytes: usize,) -> Result<(usize, Decoded),
      DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chunk::is_critical
      Src: /src/image-png/src/decoder/stream.rs:1094,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1095,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1095,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1096,1
    - Dst: is_captured
      Src: /src/image-png/src/decoder/stream.rs:1100,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1105,1
    - Dst: State::ReadChunkData
      Src: /src/image-png/src/decoder/stream.rs:1105,1
    - Dst: contains
      Src: /src/image-png/src/decoder/stream.rs:1109,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1114,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1114,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1115,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1126,1
    - Dst: State::ReadChunkData
      Src: /src/image-png/src/decoder/stream.rs:1126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 88
    argCount: 2
    argNames:
    - type_str
    - length
    argTypes:
    - ChunkType
    - u32
    constantsTouched: []
    func_position:
      end: 1127
      start: 1067
    functionDepth: 2
    functionLinenumber: 1067
    functionLinenumberEnd: 1127
    functionName: StreamingDecoder::start_chunk
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - State::ReadChunkData
    - into
    - chunk::is_critical
    - DecodingError::Format
    - Err
    - Ok
    - contains
    - is_captured
    linkageType: ''
    returnType: Result
    signature: 'fn start_chunk(&mut self, type_str: ChunkType, length: u32) -> Result<State,
      DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_captured
      Src: /src/image-png/src/decoder/stream.rs:1130,1
    - Dst: StreamingDecoder::parse_captured
      Src: /src/image-png/src/decoder/stream.rs:1132,1
    - Dst: StreamingDecoder::parse_ihdr
      Src: /src/image-png/src/decoder/stream.rs:1137,1
    - Dst: StreamingDecoder::parse_plte
      Src: /src/image-png/src/decoder/stream.rs:1138,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1139,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1142,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1143,1
    - Dst: StreamingDecoder::parse_sbit
      Src: /src/image-png/src/decoder/stream.rs:1146,1
    - Dst: StreamingDecoder::parse_trns
      Src: /src/image-png/src/decoder/stream.rs:1147,1
    - Dst: StreamingDecoder::parse_phys
      Src: /src/image-png/src/decoder/stream.rs:1148,1
    - Dst: StreamingDecoder::parse_gama
      Src: /src/image-png/src/decoder/stream.rs:1149,1
    - Dst: StreamingDecoder::parse_actl
      Src: /src/image-png/src/decoder/stream.rs:1150,1
    - Dst: StreamingDecoder::parse_fctl
      Src: /src/image-png/src/decoder/stream.rs:1151,1
    - Dst: StreamingDecoder::parse_chrm
      Src: /src/image-png/src/decoder/stream.rs:1152,1
    - Dst: StreamingDecoder::parse_srgb
      Src: /src/image-png/src/decoder/stream.rs:1153,1
    - Dst: StreamingDecoder::parse_cicp
      Src: /src/image-png/src/decoder/stream.rs:1154,1
    - Dst: StreamingDecoder::parse_mdcv
      Src: /src/image-png/src/decoder/stream.rs:1155,1
    - Dst: StreamingDecoder::parse_clli
      Src: /src/image-png/src/decoder/stream.rs:1156,1
    - Dst: StreamingDecoder::parse_bkgd
      Src: /src/image-png/src/decoder/stream.rs:1157,1
    - Dst: StreamingDecoder::parse_exif
      Src: /src/image-png/src/decoder/stream.rs:1160,1
    - Dst: StreamingDecoder::parse_iccp
      Src: /src/image-png/src/decoder/stream.rs:1161,1
    - Dst: StreamingDecoder::parse_text
      Src: /src/image-png/src/decoder/stream.rs:1162,1
    - Dst: StreamingDecoder::parse_ztxt
      Src: /src/image-png/src/decoder/stream.rs:1163,1
    - Dst: StreamingDecoder::parse_itxt
      Src: /src/image-png/src/decoder/stream.rs:1164,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1167,1
    - Dst: map_err
      Src: /src/image-png/src/decoder/stream.rs:1173,1
    - Dst: (impl BufRead + Seek, impl Write)::kind
      Src: /src/image-png/src/decoder/stream.rs:1179,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1181,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1182,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1189,1
    - Dst: Decoded::ChunkComplete
      Src: /src/image-png/src/decoder/stream.rs:1189,1
    - Dst: chunk::is_critical
      Src: /src/image-png/src/decoder/stream.rs:1191,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1200,1
    - Dst: Decoded::BadAncillaryChunk
      Src: /src/image-png/src/decoder/stream.rs:1200,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1202,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 82
    argCount: 1
    argNames:
    - type_str
    argTypes:
    - ChunkType
    constantsTouched: []
    func_position:
      end: 1204
      start: 1129
    functionDepth: 2
    functionLinenumber: 1129
    functionLinenumberEnd: 1204
    functionName: StreamingDecoder::parse_chunk
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - StreamingDecoder::parse_clli
    - map_err
    - StreamingDecoder::parse_trns
    - Decoded::ChunkComplete
    - StreamingDecoder::parse_ihdr
    - StreamingDecoder::parse_srgb
    - StreamingDecoder::parse_phys
    - Err
    - Decoded::BadAncillaryChunk
    - StreamingDecoder::parse_iccp
    - StreamingDecoder::parse_sbit
    - StreamingDecoder::parse_bkgd
    - is_captured
    - StreamingDecoder::parse_gama
    - (impl BufRead + Seek, impl Write)::kind
    - chunk::is_critical
    - StreamingDecoder::parse_itxt
    - StreamingDecoder::parse_fctl
    - Ok
    - StreamingDecoder::parse_captured
    - StreamingDecoder::parse_text
    - StreamingDecoder::parse_ztxt
    - into
    - StreamingDecoder::parse_exif
    - StreamingDecoder::parse_actl
    - StreamingDecoder::parse_mdcv
    - StreamingDecoder::parse_chrm
    - StreamingDecoder::parse_plte
    - StreamingDecoder::parse_cicp
    linkageType: ''
    returnType: Result
    signature: 'fn parse_chunk(&mut self, type_str: ChunkType) -> Result<Decoded,
      DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1208,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1211,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1213,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1213,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1214,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1224,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1224,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1225,1
    - Dst: reset
      Src: /src/image-png/src/decoder/stream.rs:1234,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1238,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1239,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1240,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1241,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1242,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1243,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1245,1
    - Dst: DisposeOp::from_u8
      Src: /src/image-png/src/decoder/stream.rs:1246,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1249,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1249,1
    - Dst: FormatErrorInner::InvalidDisposeOp
      Src: /src/image-png/src/decoder/stream.rs:1250,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1250,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1256,1
    - Dst: BlendOp::from_u8
      Src: /src/image-png/src/decoder/stream.rs:1257,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1260,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1260,1
    - Dst: FormatErrorInner::InvalidBlendOp
      Src: /src/image-png/src/decoder/stream.rs:1261,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1261,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/stream.rs:1267,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1267,1
    - Dst: validate
      Src: /src/image-png/src/decoder/stream.rs:1267,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/stream.rs:1269,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1269,1
    - Dst: validate_default_image
      Src: /src/image-png/src/decoder/stream.rs:1269,1
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1271,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1271,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1271,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1272,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1206
    functionDepth: 4
    functionLinenumber: 1206
    functionLinenumberEnd: 1273
    functionName: StreamingDecoder::parse_fctl
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - validate_default_image
    - DisposeOp::from_u8
    - BlendOp::from_u8
    - FormatErrorInner::InvalidBlendOp
    - into
    - reset
    - as_mut
    - as_ref
    - validate
    - FormatErrorInner::InvalidDisposeOp
    - DecodingError::Format
    - Err
    - UnfilterBuf::read_be
    - Ok
    - unwrap
    - Some
    linkageType: ''
    returnType: Result
    signature: fn parse_fctl(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1276,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1276,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1278,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1278,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1279,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1281,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1282,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1282,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1283,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1288,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1289,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1294,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1302,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1305,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1306,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1308
    functionName: StreamingDecoder::parse_actl
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - into
    - as_mut
    - DecodingError::Format
    - Err
    - UnfilterBuf::read_be
    - Ok
    - is_some
    - unwrap
    - Some
    linkageType: ''
    returnType: Result
    signature: fn parse_actl(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1311,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1311,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1312,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1314,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1314,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1315,1
    - Dst: len
      Src: /src/image-png/src/decoder/stream.rs:1317,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1318,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1318,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1319,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1322,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:1322,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:1322,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1310
    functionDepth: 13
    functionLinenumber: 1310
    functionLinenumberEnd: 1325
    functionName: StreamingDecoder::parse_plte
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - clone
    - Cow::Owned
    - as_mut
    - into
    - len
    - DecodingError::Format
    - Err
    - Ok
    - is_some
    - unwrap
    - Some
    linkageType: ''
    returnType: Result
    signature: fn parse_plte(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1328,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1328,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1329,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1330,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1330,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1331,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1336,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1336,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1337,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1341,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1342,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1342,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1343,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:1354,1
    - Dst: len
      Src: /src/image-png/src/decoder/stream.rs:1355,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1367,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1367,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1368,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1379,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1379,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1380,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1388,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:1388,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1389,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1327
    functionDepth: 13
    functionLinenumber: 1327
    functionLinenumberEnd: 1390
    functionName: StreamingDecoder::parse_sbit
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - clone
    - Cow::Owned
    - as_mut
    - into
    - len
    - DecodingError::Format
    - Err
    - Ok
    - is_some
    - unwrap
    - Some
    linkageType: ''
    returnType: Result
    signature: fn parse_sbit(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1393,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1393,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1394,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1395,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1395,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1396,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:1400,1
    - Dst: len
      Src: /src/image-png/src/decoder/stream.rs:1401,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1405,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1405,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1406,1
    - Dst: truncate
      Src: /src/image-png/src/decoder/stream.rs:1411,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1413,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:1413,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1414,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1418,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1418,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1419,1
    - Dst: truncate
      Src: /src/image-png/src/decoder/stream.rs:1426,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1428,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:1428,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1429,1
    - Dst: is_none
      Src: /src/image-png/src/decoder/stream.rs:1434,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1435,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1435,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1436,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1439,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1439,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1440,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1444,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:1444,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1445,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1447,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1447,1
    - Dst: FormatErrorInner::ColorWithBadTrns
      Src: /src/image-png/src/decoder/stream.rs:1448,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1448,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 124
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1392
    functionDepth: 13
    functionLinenumber: 1392
    functionLinenumberEnd: 1451
    functionName: StreamingDecoder::parse_trns
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - FormatErrorInner::ColorWithBadTrns
    - clone
    - Cow::Owned
    - as_mut
    - into
    - len
    - truncate
    - is_none
    - DecodingError::Format
    - Err
    - Ok
    - is_some
    - unwrap
    - Some
    linkageType: ''
    returnType: Result
    signature: fn parse_trns(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1454,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1454,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1456,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1456,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1457,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1459,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1460,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1460,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1461,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1465,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1466,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1467,1
    - Dst: Unit::from_u8
      Src: /src/image-png/src/decoder/stream.rs:1468,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1471,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1471,1
    - Dst: FormatErrorInner::InvalidUnit
      Src: /src/image-png/src/decoder/stream.rs:1472,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1472,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1477,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1478,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1453
    functionDepth: 2
    functionLinenumber: 1453
    functionLinenumberEnd: 1480
    functionName: StreamingDecoder::parse_phys
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - into
    - as_mut
    - DecodingError::Format
    - Err
    - UnfilterBuf::read_be
    - Ok
    - is_some
    - unwrap
    - Unit::from_u8
    - FormatErrorInner::InvalidUnit
    - Some
    linkageType: ''
    returnType: Result
    signature: fn parse_phys(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1483,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1483,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1485,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1485,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1486,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1488,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1489,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1489,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1490,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1494,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1495,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1496,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1497,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1498,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1499,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1500,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1501,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1505,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1506,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1509,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1510,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1513,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1514,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1517,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1518,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1522,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1523,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1482
    functionDepth: 2
    functionLinenumber: 1482
    functionLinenumberEnd: 1525
    functionName: StreamingDecoder::parse_chrm
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - into
    - as_mut
    - ScaledFloat::from_scaled
    - DecodingError::Format
    - Err
    - UnfilterBuf::read_be
    - Ok
    - is_some
    - unwrap
    - Some
    linkageType: ''
    returnType: Result
    signature: fn parse_chrm(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1528,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1528,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1530,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1530,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1531,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1533,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1534,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1534,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1535,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1539,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1541,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1541,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1542,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1546,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1547,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1548,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1527
    functionDepth: 2
    functionLinenumber: 1527
    functionLinenumberEnd: 1550
    functionName: StreamingDecoder::parse_gama
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - into
    - as_mut
    - ScaledFloat::from_scaled
    - DecodingError::Format
    - Err
    - UnfilterBuf::read_be
    - Ok
    - is_some
    - unwrap
    - Some
    linkageType: ''
    returnType: Result
    signature: fn parse_gama(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1553,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1553,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1555,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1555,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1556,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1558,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1559,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1559,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1560,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1564,1
    - Dst: crate::SrgbRenderingIntent::from_raw
      Src: /src/image-png/src/decoder/stream.rs:1565,1
    - Dst: Option::ok_or_else
      Src: /src/image-png/src/decoder/stream.rs:1565,1
    - Dst: FormatError::from
      Src: /src/image-png/src/decoder/stream.rs:1566,1
    - Dst: FormatErrorInner::InvalidSrgbRenderingIntent
      Src: /src/image-png/src/decoder/stream.rs:1566,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1570,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1571,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1552
    functionDepth: 2
    functionLinenumber: 1552
    functionLinenumberEnd: 1573
    functionName: StreamingDecoder::parse_srgb
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - into
    - as_mut
    - Option::ok_or_else
    - DecodingError::Format
    - Err
    - FormatError::from
    - UnfilterBuf::read_be
    - Ok
    - is_some
    - unwrap
    - FormatErrorInner::InvalidSrgbRenderingIntent
    - crate::SrgbRenderingIntent::from_raw
    - Some
    linkageType: ''
    returnType: Result
    signature: fn parse_srgb(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1576,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1576,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1579,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1580,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1580,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1581,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1583,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1584,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1584,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1585,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1588,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1588,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1589,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1594,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1595,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1596,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1598,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1603,1
    - Dst: DecodingError::IoError
      Src: /src/image-png/src/decoder/stream.rs:1603,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1604,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1613,1
    - Dst: DecodingError::IoError
      Src: /src/image-png/src/decoder/stream.rs:1613,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1614,1
    - Dst: UnfilterBuf::is_empty
      Src: /src/image-png/src/decoder/stream.rs:1618,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1619,1
    - Dst: DecodingError::IoError
      Src: /src/image-png/src/decoder/stream.rs:1619,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1620,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1624,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1631,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1575
    functionDepth: 2
    functionLinenumber: 1575
    functionLinenumberEnd: 1632
    functionName: StreamingDecoder::parse_cicp
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - as_mut
    - into
    - DecodingError::IoError
    - DecodingError::Format
    - Err
    - UnfilterBuf::read_be
    - Ok
    - is_some
    - UnfilterBuf::is_empty
    - unwrap
    - Some
    linkageType: ''
    returnType: Result
    signature: fn parse_cicp(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 1669
      start: 1661
    functionDepth: 1
    functionLinenumber: 1661
    functionLinenumberEnd: 1669
    functionName: S::t::r::e::a::m::i::n::g::D::e::c::o::d::e::r::::::::p::a::r::s::e::_::m::d::c::v::scale
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - ScaledFloat::from_scaled
    linkageType: ''
    returnType: ScaledFloat
    signature: 'fn scale(chunk: u16) -> ScaledFloat'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1635,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1635,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1638,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1639,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1639,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1640,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1642,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1643,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1643,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1644,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1647,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1647,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1648,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1653,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1654,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1655,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1656,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1657,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1658,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1659,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1660,1
    - Dst: scale
      Src: /src/image-png/src/decoder/stream.rs:1671,1
    - Dst: scale
      Src: /src/image-png/src/decoder/stream.rs:1671,1
    - Dst: scale
      Src: /src/image-png/src/decoder/stream.rs:1672,1
    - Dst: scale
      Src: /src/image-png/src/decoder/stream.rs:1672,1
    - Dst: scale
      Src: /src/image-png/src/decoder/stream.rs:1673,1
    - Dst: scale
      Src: /src/image-png/src/decoder/stream.rs:1673,1
    - Dst: scale
      Src: /src/image-png/src/decoder/stream.rs:1674,1
    - Dst: scale
      Src: /src/image-png/src/decoder/stream.rs:1674,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1676,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1677,1
    - Dst: UnfilterBuf::is_empty
      Src: /src/image-png/src/decoder/stream.rs:1678,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1679,1
    - Dst: DecodingError::IoError
      Src: /src/image-png/src/decoder/stream.rs:1679,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1680,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1683,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1689,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1634
    functionDepth: 2
    functionLinenumber: 1634
    functionLinenumberEnd: 1690
    functionName: StreamingDecoder::parse_mdcv
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - as_mut
    - into
    - DecodingError::IoError
    - DecodingError::Format
    - Err
    - UnfilterBuf::read_be
    - Ok
    - is_some
    - UnfilterBuf::is_empty
    - unwrap
    - scale
    - Some
    linkageType: ''
    returnType: Result
    signature: fn parse_mdcv(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1693,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1693,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1694,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1695,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1695,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1696,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1701,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1702,1
    - Dst: UnfilterBuf::is_empty
      Src: /src/image-png/src/decoder/stream.rs:1703,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1704,1
    - Dst: DecodingError::IoError
      Src: /src/image-png/src/decoder/stream.rs:1704,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1705,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1708,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1692
    functionDepth: 2
    functionLinenumber: 1692
    functionLinenumberEnd: 1714
    functionName: StreamingDecoder::parse_clli
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - as_mut
    - into
    - DecodingError::IoError
    - DecodingError::Format
    - Err
    - UnfilterBuf::read_be
    - Ok
    - is_some
    - UnfilterBuf::is_empty
    - unwrap
    - Some
    linkageType: ''
    returnType: Result
    signature: fn parse_clli(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1717,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1717,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1718,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1719,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1719,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1720,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1724,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:1724,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1724,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1716
    functionDepth: 2
    functionLinenumber: 1716
    functionLinenumberEnd: 1726
    functionName: StreamingDecoder::parse_exif
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - clone
    - as_mut
    - into
    - DecodingError::Format
    - Err
    - Ok
    - is_some
    - unwrap
    - Some
    linkageType: ''
    returnType: Result
    signature: fn parse_exif(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1730,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1730,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1731,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1734,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1734,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1735,1
    - Dst: StreamingDecoder::parse_iccp_raw
      Src: /src/image-png/src/decoder/stream.rs:1739,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1740,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1728
    functionDepth: 2
    functionLinenumber: 1728
    functionLinenumberEnd: 1742
    functionName: StreamingDecoder::parse_iccp
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - into
    - StreamingDecoder::parse_iccp_raw
    - DecodingError::Format
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn parse_iccp(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1745,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1745,1
    - Dst: Self::split_keyword
      Src: /src/image-png/src/decoder/stream.rs:1748,1
    - Dst: split_first
      Src: /src/image-png/src/decoder/stream.rs:1750,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1752,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/decoder/stream.rs:1752,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1758,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1758,1
    - Dst: FormatErrorInner::UnknownCompressionMethod
      Src: /src/image-png/src/decoder/stream.rs:1759,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1759,1
    - Dst: fdeflate::decompress_to_vec_bounded
      Src: /src/image-png/src/decoder/stream.rs:1764,1
    - Dst: reserve_bytes
      Src: /src/image-png/src/decoder/stream.rs:1766,1
    - Dst: len
      Src: /src/image-png/src/decoder/stream.rs:1766,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1767,1
    - Dst: text_metadata::decode_iso_8859_1
      Src: /src/image-png/src/decoder/stream.rs:1767,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1768,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:1768,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1771,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1771,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1772,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1776,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1780,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1744
    functionDepth: 13
    functionLinenumber: 1744
    functionLinenumberEnd: 1781
    functionName: StreamingDecoder::parse_iccp_raw
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Cow::Owned
    - as_mut
    - into
    - reserve_bytes
    - len
    - fdeflate::decompress_to_vec_bounded
    - DecodingError::from
    - DecodingError::Format
    - split_first
    - Err
    - FormatErrorInner::UnknownCompressionMethod
    - Ok
    - text_metadata::decode_iso_8859_1
    - unwrap
    - Self::split_keyword
    - Some
    linkageType: ''
    returnType: Result
    signature: fn parse_iccp_raw(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reserve_bytes
      Src: /src/image-png/src/decoder/stream.rs:1784,1
    - Dst: len
      Src: /src/image-png/src/decoder/stream.rs:1785,1
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1786,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1786,1
    - Dst: push
      Src: /src/image-png/src/decoder/stream.rs:1786,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:1792,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - type_str
    argTypes:
    - ChunkType
    constantsTouched: []
    func_position:
      end: 1795
      start: 1783
    functionDepth: 20
    functionLinenumber: 1783
    functionLinenumberEnd: 1795
    functionName: StreamingDecoder::parse_captured
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - clone
    - push
    - as_mut
    - reserve_bytes
    - len
    - Ok
    - unwrap
    linkageType: ''
    returnType: Result
    signature: 'fn parse_captured(&mut self, type_str: ChunkType) -> Result<(), DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1798,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1799,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1799,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1800,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1804,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1805,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1807,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1807,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1808,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1811,1
    - Dst: BitDepth::from_u8
      Src: /src/image-png/src/decoder/stream.rs:1812,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1815,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1815,1
    - Dst: FormatErrorInner::InvalidBitDepth
      Src: /src/image-png/src/decoder/stream.rs:1816,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1816,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1820,1
    - Dst: ColorType::from_u8
      Src: /src/image-png/src/decoder/stream.rs:1821,1
    - Dst: (ColorType, BitDepth)::is_combination_invalid
      Src: /src/image-png/src/decoder/stream.rs:1823,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1824,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1824,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1825,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1836,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1836,1
    - Dst: FormatErrorInner::InvalidColorType
      Src: /src/image-png/src/decoder/stream.rs:1837,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1837,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1841,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1845,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1845,1
    - Dst: FormatErrorInner::UnknownCompressionMethod
      Src: /src/image-png/src/decoder/stream.rs:1846,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1846,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1850,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1854,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1854,1
    - Dst: FormatErrorInner::UnknownFilterMethod
      Src: /src/image-png/src/decoder/stream.rs:1855,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1855,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1859,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1863,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1863,1
    - Dst: FormatErrorInner::UnknownInterlaceMethod
      Src: /src/image-png/src/decoder/stream.rs:1864,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1864,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1869,1
    - Dst: Default::default
      Src: /src/image-png/src/decoder/stream.rs:1875,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1878,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 109
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1797
    functionDepth: 2
    functionLinenumber: 1797
    functionLinenumberEnd: 1879
    functionName: StreamingDecoder::parse_ihdr
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - FormatErrorInner::UnknownInterlaceMethod
    - Some
    - BitDepth::from_u8
    - into
    - ColorType::from_u8
    - (ColorType, BitDepth)::is_combination_invalid
    - FormatErrorInner::InvalidColorType
    - FormatErrorInner::InvalidBitDepth
    - FormatErrorInner::UnknownCompressionMethod
    - DecodingError::Format
    - Default::default
    - Err
    - UnfilterBuf::read_be
    - Ok
    - is_some
    - FormatErrorInner::UnknownFilterMethod
    linkageType: ''
    returnType: Result
    signature: fn parse_ihdr(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnfilterBuf::iter
      Src: /src/image-png/src/decoder/stream.rs:1882,1
    - Dst: Result::position
      Src: /src/image-png/src/decoder/stream.rs:1882,1
    - Dst: Result::ok_or_else
      Src: /src/image-png/src/decoder/stream.rs:1882,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/decoder/stream.rs:1885,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1888,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/decoder/stream.rs:1888,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1891,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1892
      start: 1881
    functionDepth: 19
    functionLinenumber: 1881
    functionLinenumberEnd: 1892
    functionName: StreamingDecoder::split_keyword
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::position
    - UnfilterBuf::iter
    - Result::ok_or_else
    - DecodingError::from
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn split_keyword(buf: &[u8]) -> Result<(&[u8], &[u8]), DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reserve_bytes
      Src: /src/image-png/src/decoder/stream.rs:1896,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:1896,1
    - Dst: Self::split_keyword
      Src: /src/image-png/src/decoder/stream.rs:1898,1
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1900,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1900,1
    - Dst: push
      Src: /src/image-png/src/decoder/stream.rs:1900,1
    - Dst: TEXtChunk::decode
      Src: /src/image-png/src/decoder/stream.rs:1904,1
    - Dst: Result::map_err
      Src: /src/image-png/src/decoder/stream.rs:1904,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1906,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1894
    functionDepth: 20
    functionLinenumber: 1894
    functionLinenumberEnd: 1907
    functionName: StreamingDecoder::parse_text
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - push
    - as_mut
    - reserve_bytes
    - Result::map_err
    - TEXtChunk::decode
    - UnfilterBuf::len
    - Ok
    - unwrap
    - Self::split_keyword
    linkageType: ''
    returnType: Result
    signature: fn parse_text(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reserve_bytes
      Src: /src/image-png/src/decoder/stream.rs:1911,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:1911,1
    - Dst: Self::split_keyword
      Src: /src/image-png/src/decoder/stream.rs:1913,1
    - Dst: first
      Src: /src/image-png/src/decoder/stream.rs:1915,1
    - Dst: ok_or_else
      Src: /src/image-png/src/decoder/stream.rs:1915,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/decoder/stream.rs:1917,1
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1921,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1921,1
    - Dst: push
      Src: /src/image-png/src/decoder/stream.rs:1921,1
    - Dst: ZTXtChunk::decode
      Src: /src/image-png/src/decoder/stream.rs:1922,1
    - Dst: Result::map_err
      Src: /src/image-png/src/decoder/stream.rs:1922,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1926,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1909
    functionDepth: 20
    functionLinenumber: 1909
    functionLinenumberEnd: 1927
    functionName: StreamingDecoder::parse_ztxt
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - ok_or_else
    - ZTXtChunk::decode
    - push
    - as_mut
    - reserve_bytes
    - Result::map_err
    - DecodingError::from
    - UnfilterBuf::len
    - first
    - Ok
    - unwrap
    - Self::split_keyword
    linkageType: ''
    returnType: Result
    signature: fn parse_ztxt(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reserve_bytes
      Src: /src/image-png/src/decoder/stream.rs:1931,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:1931,1
    - Dst: Self::split_keyword
      Src: /src/image-png/src/decoder/stream.rs:1933,1
    - Dst: first
      Src: /src/image-png/src/decoder/stream.rs:1935,1
    - Dst: ok_or_else
      Src: /src/image-png/src/decoder/stream.rs:1935,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/decoder/stream.rs:1937,1
    - Dst: get
      Src: /src/image-png/src/decoder/stream.rs:1939,1
    - Dst: ok_or_else
      Src: /src/image-png/src/decoder/stream.rs:1939,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/decoder/stream.rs:1941,1
    - Dst: iter
      Src: /src/image-png/src/decoder/stream.rs:1943,1
    - Dst: position
      Src: /src/image-png/src/decoder/stream.rs:1943,1
    - Dst: ok_or_else
      Src: /src/image-png/src/decoder/stream.rs:1943,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/decoder/stream.rs:1946,1
    - Dst: iter
      Src: /src/image-png/src/decoder/stream.rs:1951,1
    - Dst: position
      Src: /src/image-png/src/decoder/stream.rs:1951,1
    - Dst: ok_or_else
      Src: /src/image-png/src/decoder/stream.rs:1951,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/decoder/stream.rs:1954,1
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1962,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1962,1
    - Dst: push
      Src: /src/image-png/src/decoder/stream.rs:1962,1
    - Dst: ITXtChunk::decode
      Src: /src/image-png/src/decoder/stream.rs:1963,1
    - Dst: Result::map_err
      Src: /src/image-png/src/decoder/stream.rs:1963,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1974,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1929
    functionDepth: 20
    functionLinenumber: 1929
    functionLinenumberEnd: 1975
    functionName: StreamingDecoder::parse_itxt
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - ok_or_else
    - position
    - push
    - as_mut
    - reserve_bytes
    - Result::map_err
    - DecodingError::from
    - get
    - ITXtChunk::decode
    - UnfilterBuf::len
    - iter
    - first
    - Ok
    - unwrap
    - Self::split_keyword
    linkageType: ''
    returnType: Result
    signature: fn parse_itxt(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1978,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1978,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1979,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1981,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1981,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1982,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1985,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1985,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1986,1
    - Dst: is_none
      Src: /src/image-png/src/decoder/stream.rs:1992,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1993,1
    - Dst: DecodingError::IoError
      Src: /src/image-png/src/decoder/stream.rs:1993,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1994,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:2002,1
    - Dst: len
      Src: /src/image-png/src/decoder/stream.rs:2003,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:2004,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:2004,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:2005,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2009,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:2009,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:2010,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1977
    functionDepth: 20
    functionLinenumber: 1977
    functionLinenumberEnd: 2011
    functionName: StreamingDecoder::parse_bkgd
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - clone
    - Cow::Owned
    - as_mut
    - into
    - DecodingError::IoError
    - len
    - is_none
    - DecodingError::Format
    - Err
    - Ok
    - is_some
    - unwrap
    - Some
    linkageType: ''
    returnType: Result
    signature: fn parse_bkgd(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:2029,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:2029,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:2030,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:2033,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - fc
    argTypes:
    - '&FrameControl'
    constantsTouched: []
    func_position:
      end: 2034
      start: 2015
    functionDepth: 2
    functionLinenumber: 2015
    functionLinenumberEnd: 2034
    functionName: Info::validate_default_image
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Ok
    - DecodingError::Format
    - Err
    - into
    linkageType: ''
    returnType: Result
    signature: 'fn validate_default_image(&self, fc: &FrameControl) -> Result<(),
      DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:2038,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:2038,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:2039,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2044,1
    - Dst: checked_sub
      Src: /src/image-png/src/decoder/stream.rs:2044,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2046,1
    - Dst: checked_sub
      Src: /src/image-png/src/decoder/stream.rs:2046,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:2049,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:2049,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:2051,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:2055,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 1
    argNames:
    - fc
    argTypes:
    - '&FrameControl'
    constantsTouched: []
    func_position:
      end: 2056
      start: 2036
    functionDepth: 2
    functionLinenumber: 2036
    functionLinenumberEnd: 2056
    functionName: Info::validate
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - into
    - DecodingError::Format
    - Ok
    - Err
    - checked_sub
    - Some
    linkageType: ''
    returnType: Result
    signature: 'fn validate(&self, fc: &FrameControl) -> Result<(), DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/image-png/src/decoder/stream.rs:2061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2060
    functionDepth: 3
    functionLinenumber: 2060
    functionLinenumberEnd: 2062
    functionName: StreamingDecoder::default
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2090,1
    - Dst: BufReader::new
      Src: /src/image-png/src/decoder/stream.rs:2090,1
    - Dst: File::open
      Src: /src/image-png/src/decoder/stream.rs:2090,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2090,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2091,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2091,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:2092,1
    - Dst: '&Info::gamma'
      Src: /src/image-png/src/decoder/stream.rs:2092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - path
    - expected
    argTypes:
    - '&str'
    - Option<ScaledFloat>
    constantsTouched: []
    func_position:
      end: 2094
      start: 2089
    functionDepth: 14
    functionLinenumber: 2089
    functionLinenumberEnd: 2094
    functionName: t::e::s::t::s::::::::i::m::a::g::e::_::g::a::m::m::a::trial
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - unwrap
    - crate::Decoder::new
    - File::open
    - BufReader::new
    - '&Info::gamma'
    - Reader::info
    - Self::read_info
    linkageType: ''
    returnType: void
    signature: 'fn trial(path: &str, expected: Option<ScaledFloat>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2095,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2096,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2097,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2098,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2099,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2100,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2101,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2102,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2103,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2104,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2105,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2106,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2107,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2107,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2107,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2108,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2108,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2108,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2109,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2109,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2109,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2110,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2110,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2110,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2111,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2111,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2111,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2112,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2112,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2112,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2113,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2113,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2113,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2114,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2114,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2114,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2115,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2115,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2115,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2116,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2116,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2116,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2117,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2117,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2117,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2118,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2118,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2118,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2119,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2119,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2119,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2120,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2120,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2120,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2121,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2121,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2121,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2122,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2122,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2122,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2123,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2123,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2123,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2124,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2124,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2124,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:2125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2088
    functionDepth: 15
    functionLinenumber: 2088
    functionLinenumberEnd: 2126
    functionName: tests::image_gamma
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Some
    - ScaledFloat::new
    - trial
    linkageType: ''
    returnType: Result
    signature: fn image_gamma() -> Result<(), ()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2131,1
    - Dst: BufReader::new
      Src: /src/image-png/src/decoder/stream.rs:2131,1
    - Dst: File::open
      Src: /src/image-png/src/decoder/stream.rs:2131,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2131,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2132,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2132,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:2133,1
    - Dst: '&Info::chromaticities'
      Src: /src/image-png/src/decoder/stream.rs:2133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - path
    - expected
    argTypes:
    - '&str'
    - Option<SourceChromaticities>
    constantsTouched: []
    func_position:
      end: 2135
      start: 2130
    functionDepth: 14
    functionLinenumber: 2130
    functionLinenumberEnd: 2135
    functionName: t::e::s::t::s::::::::i::m::a::g::e::_::s::o::u::r::c::e::_::c::h::r::o::m::a::t::i::c::i::t::i::e::s::trial
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - unwrap
    - crate::Decoder::new
    - '&Info::chromaticities'
    - File::open
    - BufReader::new
    - Reader::info
    - Self::read_info
    linkageType: ''
    returnType: void
    signature: 'fn trial(path: &str, expected: Option<SourceChromaticities>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2136,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2138,1
    - Dst: SourceChromaticities::new
      Src: /src/image-png/src/decoder/stream.rs:2138,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2145,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2147,1
    - Dst: SourceChromaticities::new
      Src: /src/image-png/src/decoder/stream.rs:2147,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2154,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2155,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2156,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2157,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2158,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2159,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2160,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2161,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2162,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2163,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2164,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2165,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2166,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2167,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2168,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2169,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2170,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2171,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2172,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2173,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2174,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2175,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2176,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2177,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2178,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2179,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2180,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2181,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2182,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2183,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2184,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2185,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2186,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2187,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2188,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2189,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2190,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2191,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2192,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2193,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2194,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2195,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2196,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2197,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2198,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2199,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2200,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2201,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2202,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2203,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2204,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2205,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2206,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2207,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2208,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2209,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2210,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2211,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2212,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2213,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2214,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2215,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2216,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2217,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2218,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2219,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2220,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2221,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2222,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2223,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2224,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2225,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2226,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2227,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2228,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2229,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2230,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2231,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2232,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2233,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2234,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2235,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2236,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2237,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2238,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2239,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2240,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2241,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2242,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2243,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2244,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2245,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2246,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2247,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2248,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2249,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2250,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2251,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2252,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2253,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2254,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2255,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2256,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2257,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2258,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2259,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2260,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2261,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2262,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2263,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2264,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2265,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2266,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2267,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2268,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2269,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2270,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2271,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2272,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2273,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2274,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2275,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2276,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2277,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2278,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2279,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2280,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2281,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2282,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2283,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2284,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2285,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2286,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2287,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2288,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2289,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2290,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2291,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2292,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2293,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2294,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2295,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2296,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2297,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2298,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2299,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2300,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2301,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2302,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2303,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2304,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2305,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2306,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2307,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2308,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2309,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2310,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2311,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:2312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 348
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2129
    functionDepth: 15
    functionLinenumber: 2129
    functionLinenumberEnd: 2313
    functionName: tests::image_source_chromaticities
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Some
    - SourceChromaticities::new
    - trial
    linkageType: ''
    returnType: Result
    signature: fn image_source_chromaticities() -> Result<(), ()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2318,1
    - Dst: BufReader::new
      Src: /src/image-png/src/decoder/stream.rs:2318,1
    - Dst: File::open
      Src: /src/image-png/src/decoder/stream.rs:2318,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2318,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2319,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2319,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:2320,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:2320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - path
    - expected
    argTypes:
    - '&str'
    - Option<Cow<[u8]>>
    constantsTouched: []
    func_position:
      end: 2322
      start: 2317
    functionDepth: 14
    functionLinenumber: 2317
    functionLinenumberEnd: 2322
    functionName: t::e::s::t::s::::::::i::m::a::g::e::_::s::o::u::r::c::e::_::s::b::i::t::trial
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - clone
    - Result::unwrap
    - unwrap
    - crate::Decoder::new
    - File::open
    - BufReader::new
    - Reader::info
    - Self::read_info
    linkageType: ''
    returnType: void
    signature: 'fn trial(path: &str, expected: Option<Cow<[u8]>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2324,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2324,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:2324,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2325,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2325,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:2325,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2326,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2328,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:2328,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2330,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2330,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:2330,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2331,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2333,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:2333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2335
      start: 2316
    functionDepth: 15
    functionLinenumber: 2316
    functionLinenumberEnd: 2335
    functionName: tests::image_source_sbit
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Some
    - Cow::Owned
    - trial
    linkageType: ''
    returnType: void
    signature: fn image_source_sbit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2345,1
    - Dst: BufReader::new
      Src: /src/image-png/src/decoder/stream.rs:2345,1
    - Dst: File::open
      Src: /src/image-png/src/decoder/stream.rs:2346,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2346,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2348,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2348,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:2349,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:2349,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2349,1
    - Dst: into_owned
      Src: /src/image-png/src/decoder/stream.rs:2349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2340
    functionDepth: 14
    functionLinenumber: 2340
    functionLinenumberEnd: 2356
    functionName: tests::test_two_iccp_chunks
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - clone
    - into_owned
    - Result::unwrap
    - unwrap
    - crate::Decoder::new
    - File::open
    - BufReader::new
    - Reader::info
    - Self::read_info
    linkageType: ''
    returnType: void
    signature: fn test_two_iccp_chunks()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Info::with_size
      Src: /src/image-png/src/decoder/stream.rs:2362,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2363,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:2363,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2364,1
    - Dst: crate::Encoder::with_info
      Src: /src/image-png/src/decoder/stream.rs:2365,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2365,1
    - Dst: write_header
      Src: /src/image-png/src/decoder/stream.rs:2366,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2366,1
    - Dst: write_image_data
      Src: /src/image-png/src/decoder/stream.rs:2367,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2367,1
    - Dst: finish
      Src: /src/image-png/src/decoder/stream.rs:2368,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2368,1
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2370,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2370,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2371,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2373
      start: 2359
    functionDepth: 22
    functionLinenumber: 2359
    functionLinenumberEnd: 2373
    functionName: tests::test_iccp_roundtrip
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - write_image_data
    - Vec::new
    - into
    - crate::Info::with_size
    - crate::Decoder::new
    - Cursor::new
    - Self::read_info
    - write_header
    - finish
    - crate::Encoder::with_info
    - unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_iccp_roundtrip()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Info::with_size
      Src: /src/image-png/src/decoder/stream.rs:2377,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2378,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2383,1
    - Dst: crate::Encoder::with_info
      Src: /src/image-png/src/decoder/stream.rs:2384,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2384,1
    - Dst: write_header
      Src: /src/image-png/src/decoder/stream.rs:2385,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2385,1
    - Dst: write_image_data
      Src: /src/image-png/src/decoder/stream.rs:2386,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2386,1
    - Dst: finish
      Src: /src/image-png/src/decoder/stream.rs:2387,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2387,1
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2389,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2389,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2390,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2390,1
    - Dst: Self::info
      Src: /src/image-png/src/decoder/stream.rs:2391,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/stream.rs:2391,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2395
      start: 2376
    functionDepth: 22
    functionLinenumber: 2376
    functionLinenumberEnd: 2395
    functionName: tests::test_phys_roundtrip
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - write_image_data
    - Vec::new
    - crate::Info::with_size
    - crate::Decoder::new
    - Self::read_info
    - Cursor::new
    - write_header
    - finish
    - crate::Encoder::with_info
    - as_ref
    - unwrap
    - Self::info
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_phys_roundtrip()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Info::with_size
      Src: /src/image-png/src/decoder/stream.rs:2399,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2400,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2401,1
    - Dst: crate::Encoder::with_info
      Src: /src/image-png/src/decoder/stream.rs:2402,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2402,1
    - Dst: write_header
      Src: /src/image-png/src/decoder/stream.rs:2403,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2403,1
    - Dst: write_image_data
      Src: /src/image-png/src/decoder/stream.rs:2404,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2404,1
    - Dst: finish
      Src: /src/image-png/src/decoder/stream.rs:2405,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2405,1
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2407,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2407,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2408,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2410
      start: 2398
    functionDepth: 22
    functionLinenumber: 2398
    functionLinenumberEnd: 2410
    functionName: tests::test_srgb_roundtrip
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - write_image_data
    - Vec::new
    - crate::Info::with_size
    - crate::Decoder::new
    - Self::read_info
    - Cursor::new
    - write_header
    - finish
    - crate::Encoder::with_info
    - unwrap
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_srgb_roundtrip()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2414,1
    - Dst: BufReader::new
      Src: /src/image-png/src/decoder/stream.rs:2414,1
    - Dst: File::open
      Src: /src/image-png/src/decoder/stream.rs:2415,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2415,1
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2418,1
    - Dst: BufReader::new
      Src: /src/image-png/src/decoder/stream.rs:2418,1
    - Dst: File::open
      Src: /src/image-png/src/decoder/stream.rs:2419,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2419,1
    - Dst: Self::set_ignore_iccp_chunk
      Src: /src/image-png/src/decoder/stream.rs:2421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2413
    functionDepth: 6
    functionLinenumber: 2413
    functionLinenumberEnd: 2423
    functionName: tests::test_png_with_broken_iccp
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - crate::Decoder::new
    - File::open
    - BufReader::new
    - unwrap
    - Self::set_ignore_iccp_chunk
    linkageType: ''
    returnType: void
    signature: fn test_png_with_broken_iccp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2428,1
    - Dst: BufReader::new
      Src: /src/image-png/src/decoder/stream.rs:2428,1
    - Dst: File::open
      Src: /src/image-png/src/decoder/stream.rs:2429,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2429,1
    - Dst: Self::ignore_checksums
      Src: /src/image-png/src/decoder/stream.rs:2431,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2432,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2432,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:2433,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2435,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2441,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2456
      start: 2427
    functionDepth: 14
    functionLinenumber: 2427
    functionLinenumberEnd: 2456
    functionName: tests::test_cicp_mdcv_and_clli_chunks
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Self::ignore_checksums
    - Self::read_info
    - Result::unwrap
    - crate::Decoder::new
    - File::open
    - BufReader::new
    - Reader::info
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_cicp_mdcv_and_clli_chunks()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2461,1
    - Dst: BufReader::new
      Src: /src/image-png/src/decoder/stream.rs:2461,1
    - Dst: File::open
      Src: /src/image-png/src/decoder/stream.rs:2462,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2462,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2464,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2464,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:2465,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/stream.rs:2466,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2466,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/stream.rs:2466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2460
    functionDepth: 14
    functionLinenumber: 2460
    functionLinenumberEnd: 2468
    functionName: tests::test_exif_chunk
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - unwrap
    - crate::Decoder::new
    - File::open
    - BufReader::new
    - as_ref
    - Reader::info
    - Self::read_info
    linkageType: ''
    returnType: void
    signature: fn test_exif_chunk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2473,1
    - Dst: write_noncompressed_png
      Src: /src/image-png/src/decoder/stream.rs:2474,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2475,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2475,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:2476,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2476,1
    - Dst: Reader::finish
      Src: /src/image-png/src/decoder/stream.rs:2479,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2479,1
    - Dst: Reader::finish
      Src: /src/image-png/src/decoder/stream.rs:2482,1
    - Dst: Result::unwrap_err
      Src: /src/image-png/src/decoder/stream.rs:2482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2485
      start: 2472
    functionDepth: 12
    functionLinenumber: 2472
    functionLinenumberEnd: 2485
    functionName: tests::test_finishing_twice
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Reader::finish
    - write_noncompressed_png
    - Result::unwrap
    - Vec::new
    - Cursor::new
    - Decoder::new
    - Result::unwrap_err
    - Decoder::read_info
    linkageType: ''
    returnType: void
    signature: fn test_finishing_twice()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2490,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2491,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2491,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2493,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2493,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:2495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - w
    - animation
    argTypes:
    - '&mut impl Write'
    - '&crate::AnimationControl'
    constantsTouched: []
    func_position:
      end: 2496
      start: 2489
    functionDepth: 10
    functionLinenumber: 2489
    functionLinenumberEnd: 2496
    functionName: tests::write_actl
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - write_chunk
    - write_u32::<byteorder::BigEndian>
    - unwrap
    - Vec::new
    linkageType: ''
    returnType: void
    signature: 'fn write_actl(w: &mut impl Write, animation: &crate::AnimationControl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2501,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2502,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2502,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2504,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2504,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2505,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2505,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2507,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2507,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2509,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2509,1
    - Dst: write_u16::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2511,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2511,1
    - Dst: write_u16::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2513,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2513,1
    - Dst: Result::write_u8
      Src: /src/image-png/src/decoder/stream.rs:2515,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2515,1
    - Dst: Result::write_u8
      Src: /src/image-png/src/decoder/stream.rs:2516,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2516,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:2517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 60
    argCount: 2
    argNames:
    - w
    - frame
    argTypes:
    - '&mut impl Write'
    - '&crate::FrameControl'
    constantsTouched: []
    func_position:
      end: 2518
      start: 2500
    functionDepth: 10
    functionLinenumber: 2500
    functionLinenumberEnd: 2518
    functionName: tests::write_fctl
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - write_u16::<byteorder::BigEndian>
    - Vec::new
    - write_chunk
    - write_u32::<byteorder::BigEndian>
    - Result::write_u8
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'fn write_fctl(w: &mut impl Write, frame: &crate::FrameControl)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2523,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2524,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2524,1
    - Dst: Result::write_all
      Src: /src/image-png/src/decoder/stream.rs:2526,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2526,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:2527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - w
    - sequence_number
    - image_data
    argTypes:
    - '&mut impl Write'
    - u32
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 2528
      start: 2522
    functionDepth: 10
    functionLinenumber: 2522
    functionLinenumberEnd: 2528
    functionName: tests::write_fdat
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - write_chunk
    - write_u32::<byteorder::BigEndian>
    - Result::write_all
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'fn write_fdat(w: &mut impl Write, sequence_number: u32, image_data:
      &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:2535,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:2536,1
    - Dst: write_actl
      Src: /src/image-png/src/decoder/stream.rs:2537,1
    - Dst: Default::default
      Src: /src/image-png/src/decoder/stream.rs:2548,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:2550,1
    - Dst: write_rgba8_idats
      Src: /src/image-png/src/decoder/stream.rs:2551,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:2554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - w
    - num_frames
    - width
    argTypes:
    - '&mut impl Write'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 2555
      start: 2534
    functionDepth: 11
    functionLinenumber: 2534
    functionLinenumberEnd: 2555
    functionName: tests::write_fdat_prefix
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - write_actl
    - write_rgba8_idats
    - write_rgba8_ihdr_with_width
    - write_fctl
    - write_png_sig
    linkageType: ''
    returnType: void
    signature: 'fn write_fdat_prefix(w: &mut impl Write, num_frames: u32, width: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2561,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:2562,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:2563,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:2564,1
    - Dst: write_actl
      Src: /src/image-png/src/decoder/stream.rs:2565,1
    - Dst: Default::default
      Src: /src/image-png/src/decoder/stream.rs:2576,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:2578,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:2580,1
    - Dst: write_fdat
      Src: /src/image-png/src/decoder/stream.rs:2581,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:2582,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2585,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2585,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:2586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2558
    functionDepth: 11
    functionLinenumber: 2558
    functionLinenumberEnd: 2599
    functionName: tests::test_fdat_chunk_without_idat
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - Cursor::new
    - Decoder::new
    - Decoder::read_info
    - generate_rgba8_with_width_and_height
    - Default::default
    - write_actl
    - write_iend
    - write_rgba8_ihdr_with_width
    - write_fdat
    - write_fctl
    - write_png_sig
    linkageType: ''
    returnType: void
    signature: fn test_fdat_chunk_without_idat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2603,1
    - Dst: write_fdat_prefix
      Src: /src/image-png/src/decoder/stream.rs:2604,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:2605,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2607,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2607,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:2608,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2608,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2610,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2610,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2613,1
    - Dst: Result::unwrap_err
      Src: /src/image-png/src/decoder/stream.rs:2613,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2621,1
    - Dst: Result::unwrap_err
      Src: /src/image-png/src/decoder/stream.rs:2621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2627
      start: 2602
    functionDepth: 12
    functionLinenumber: 2602
    functionLinenumberEnd: 2627
    functionName: tests::test_fdat_chunk_payload_length_0
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Vec::new
    - Cursor::new
    - write_chunk
    - Decoder::new
    - Reader::next_frame
    - Result::unwrap_err
    - Decoder::read_info
    - write_fdat_prefix
    linkageType: ''
    returnType: void
    signature: fn test_fdat_chunk_payload_length_0()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2631,1
    - Dst: write_fdat_prefix
      Src: /src/image-png/src/decoder/stream.rs:2632,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:2633,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2635,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2635,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:2636,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2636,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2638,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2638,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2641,1
    - Dst: Result::unwrap_err
      Src: /src/image-png/src/decoder/stream.rs:2641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2644
      start: 2630
    functionDepth: 12
    functionLinenumber: 2630
    functionLinenumberEnd: 2644
    functionName: tests::test_fdat_chunk_payload_length_3
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Vec::new
    - Cursor::new
    - write_chunk
    - Decoder::new
    - Reader::next_frame
    - Result::unwrap_err
    - Decoder::read_info
    - write_fdat_prefix
    linkageType: ''
    returnType: void
    signature: fn test_fdat_chunk_payload_length_3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2663,1
    - Dst: write_fdat_prefix
      Src: /src/image-png/src/decoder/stream.rs:2664,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:2665,1
    - Dst: write_fdat
      Src: /src/image-png/src/decoder/stream.rs:2666,1
    - Dst: write_fdat
      Src: /src/image-png/src/decoder/stream.rs:2667,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:2668,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2673,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2673,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:2674,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2674,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:2676,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2684,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2684,1
    - Dst: UnfilterBuf::clone
      Src: /src/image-png/src/decoder/stream.rs:2685,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:2690,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2701,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2701,1
    - Dst: UnfilterBuf::clone
      Src: /src/image-png/src/decoder/stream.rs:2702,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:2705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2647
    functionDepth: 12
    functionLinenumber: 2647
    functionLinenumberEnd: 2715
    functionName: tests::test_frame_split_across_two_fdat_chunks
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Vec::new
    - Reader::info
    - Cursor::new
    - Decoder::new
    - Reader::next_frame
    - Decoder::read_info
    - generate_rgba8_with_width_and_height
    - write_iend
    - write_fdat
    - UnfilterBuf::clone
    - write_fdat_prefix
    linkageType: ''
    returnType: void
    signature: fn test_frame_split_across_two_fdat_chunks()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2720,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:2721,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:2722,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:2727,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:2730,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:2733,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2736,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2736,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:2737,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2737,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2742,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2744
      start: 2718
    functionDepth: 11
    functionLinenumber: 2718
    functionLinenumberEnd: 2744
    functionName: tests::test_idat_bigger_than_image_size_from_ihdr
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Vec::new
    - Cursor::new
    - write_chunk
    - Decoder::new
    - Reader::next_frame
    - Decoder::read_info
    - generate_rgba8_with_width_and_height
    - write_iend
    - write_rgba8_ihdr_with_width
    - write_png_sig
    linkageType: ''
    returnType: void
    signature: fn test_idat_bigger_than_image_size_from_ihdr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2749,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:2750,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:2751,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2754,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2754,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:2755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2768
      start: 2747
    functionDepth: 10
    functionLinenumber: 2747
    functionLinenumberEnd: 2768
    functionName: tests::test_only_idat_chunk_in_input_stream
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - Cursor::new
    - write_chunk
    - Decoder::new
    - Decoder::read_info
    - write_png_sig
    linkageType: ''
    returnType: void
    signature: fn test_only_idat_chunk_in_input_stream()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamingInput::with_noncompressed_png
      Src: /src/image-png/src/decoder/stream.rs:2872,1
    - Dst: decode_full_input
      Src: /src/image-png/src/decoder/stream.rs:2875,1
    - Dst: Vec::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2877,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2877,1
    - Dst: stream_input_until_reader_is_available
      Src: /src/image-png/src/decoder/stream.rs:2881,1
    - Dst: next_frame
      Src: /src/image-png/src/decoder/stream.rs:2884,1
    - Dst: as_mut_slice
      Src: /src/image-png/src/decoder/stream.rs:2884,1
    - Dst: (impl BufRead + Seek, impl Write)::kind
      Src: /src/image-png/src/decoder/stream.rs:2886,1
    - Dst: expose_next_byte
      Src: /src/image-png/src/decoder/stream.rs:2887,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2897
      start: 2869
    functionDepth: 14
    functionLinenumber: 2869
    functionLinenumberEnd: 2897
    functionName: tests::test_streaming_input_and_decoding_via_next_frame
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - stream_input_until_reader_is_available
    - expose_next_byte
    - Result::unwrap
    - (impl BufRead + Seek, impl Write)::kind
    - StreamingInput::with_noncompressed_png
    - Vec::next_frame
    - next_frame
    - as_mut_slice
    - decode_full_input
    linkageType: ''
    returnType: void
    signature: fn test_streaming_input_and_decoding_via_next_frame()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamingInput::with_noncompressed_png
      Src: /src/image-png/src/decoder/stream.rs:2904,1
    - Dst: decode_full_input
      Src: /src/image-png/src/decoder/stream.rs:2906,1
    - Dst: Vec::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2908,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2908,1
    - Dst: stream_input_until_reader_is_available
      Src: /src/image-png/src/decoder/stream.rs:2912,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2913,1
    - Dst: next_row
      Src: /src/image-png/src/decoder/stream.rs:2915,1
    - Dst: Self::extend_from_slice
      Src: /src/image-png/src/decoder/stream.rs:2917,1
    - Dst: data
      Src: /src/image-png/src/decoder/stream.rs:2917,1
    - Dst: (impl BufRead + Seek, impl Write)::kind
      Src: /src/image-png/src/decoder/stream.rs:2918,1
    - Dst: expose_next_byte
      Src: /src/image-png/src/decoder/stream.rs:2919,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2928
      start: 2901
    functionDepth: 14
    functionLinenumber: 2901
    functionLinenumberEnd: 2928
    functionName: tests::test_streaming_input_and_decoding_via_next_row
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - stream_input_until_reader_is_available
    - expose_next_byte
    - Result::unwrap
    - Vec::new
    - (impl BufRead + Seek, impl Write)::kind
    - StreamingInput::with_noncompressed_png
    - Vec::next_frame
    - next_row
    - data
    - Self::extend_from_slice
    - decode_full_input
    linkageType: ''
    returnType: void
    signature: fn test_streaming_input_and_decoding_via_next_row()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamingInput::with_noncompressed_png
      Src: /src/image-png/src/decoder/stream.rs:2935,1
    - Dst: decode_full_input
      Src: /src/image-png/src/decoder/stream.rs:2937,1
    - Dst: Vec::info
      Src: /src/image-png/src/decoder/stream.rs:2937,1
    - Dst: Result::clone
      Src: /src/image-png/src/decoder/stream.rs:2937,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2939,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:2939,1
    - Dst: Decoder::read_header_info
      Src: /src/image-png/src/decoder/stream.rs:2941,1
    - Dst: Result::clone
      Src: /src/image-png/src/decoder/stream.rs:2942,1
    - Dst: (impl BufRead + Seek, impl Write)::kind
      Src: /src/image-png/src/decoder/stream.rs:2943,1
    - Dst: expose_next_byte
      Src: /src/image-png/src/decoder/stream.rs:2944,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2967
      start: 2932
    functionDepth: 13
    functionLinenumber: 2932
    functionLinenumberEnd: 2967
    functionName: tests::test_streaming_input_and_reading_header_info
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - clone
    - expose_next_byte
    - (impl BufRead + Seek, impl Write)::kind
    - Decoder::read_header_info
    - StreamingInput::with_noncompressed_png
    - Decoder::new
    - Vec::info
    - Result::clone
    - decode_full_input
    linkageType: ''
    returnType: void
    signature: fn test_streaming_input_and_reading_header_info()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2972,1
    - Dst: write_noncompressed_png
      Src: /src/image-png/src/decoder/stream.rs:2973,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2974,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2974,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:2974,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2975
      start: 2971
    functionDepth: 12
    functionLinenumber: 2971
    functionLinenumberEnd: 2975
    functionName: tests::create_reader_of_ihdr_idat
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - write_noncompressed_png
    - Result::unwrap
    - Vec::new
    - Cursor::new
    - Decoder::new
    - Decoder::read_info
    linkageType: ''
    returnType: Reader
    signature: fn create_reader_of_ihdr_idat() -> Reader<Cursor<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/image-png/src/decoder/stream.rs:2984,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2987,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:2988,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:2989,1
    - Dst: write_actl
      Src: /src/image-png/src/decoder/stream.rs:2990,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:2998,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:3002,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3003,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:3011,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:3012,1
    - Dst: write_fdat
      Src: /src/image-png/src/decoder/stream.rs:3013,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:3014,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:3016,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:3016,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:3016,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3017
      start: 2979
    functionDepth: 11
    functionLinenumber: 2979
    functionLinenumberEnd: 3017
    functionName: tests::create_reader_of_ihdr_actl_fctl_idat_fctl_fdat
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Vec::new
    - Cursor::new
    - write_chunk
    - Decoder::new
    - Decoder::read_info
    - Default::default
    - generate_rgba8_with_width_and_height
    - write_actl
    - write_iend
    - write_rgba8_ihdr_with_width
    - write_fdat
    - write_fctl
    - write_png_sig
    linkageType: ''
    returnType: Reader
    signature: fn create_reader_of_ihdr_actl_fctl_idat_fctl_fdat() -> Reader<Cursor<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:3023,1
    - Dst: Default::default
      Src: /src/image-png/src/decoder/stream.rs:3027,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:3030,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:3031,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:3032,1
    - Dst: write_actl
      Src: /src/image-png/src/decoder/stream.rs:3033,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3040,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:3042,1
    - Dst: write_fdat
      Src: /src/image-png/src/decoder/stream.rs:3043,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:3045,1
    - Dst: write_fdat
      Src: /src/image-png/src/decoder/stream.rs:3046,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:3047,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:3049,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:3049,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:3049,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3050
      start: 3021
    functionDepth: 23
    functionLinenumber: 3021
    functionLinenumberEnd: 3050
    functionName: tests::create_reader_of_ihdr_actl_idat_fctl_fdat_fctl_fdat
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Vec::new
    - Cursor::new
    - write_chunk
    - Decoder::new
    - Decoder::read_info
    - Default::default
    - generate_rgba8_with_width_and_height
    - write_actl
    - write_iend
    - write_rgba8_ihdr_with_width
    - write_fdat
    - write_fctl
    - write_png_sig
    linkageType: ''
    returnType: Reader
    signature: fn create_reader_of_ihdr_actl_idat_fctl_fdat_fctl_fdat() -> Reader<Cursor<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:3053,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/stream.rs:3053,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:3053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&Reader<impl BufRead + Seek>'
    constantsTouched: []
    func_position:
      end: 3059
      start: 3052
    functionDepth: 6
    functionLinenumber: 3052
    functionLinenumberEnd: 3059
    functionName: tests::get_fctl_sequence_number
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Reader::info
    - unwrap
    - as_ref
    linkageType: ''
    returnType: u32
    signature: 'fn get_fctl_sequence_number(reader: &Reader<impl BufRead + Seek>)
      -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_reader_of_ihdr_idat
      Src: /src/image-png/src/decoder/stream.rs:3065,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3067,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3067,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3071,1
    - Dst: Result::expect_err
      Src: /src/image-png/src/decoder/stream.rs:3071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3079
      start: 3064
    functionDepth: 13
    functionLinenumber: 3064
    functionLinenumberEnd: 3079
    functionName: tests::test_next_frame_polling_after_end_non_animated
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - create_reader_of_ihdr_idat
    - Result::expect
    - Reader::next_frame
    - Result::expect_err
    linkageType: ''
    returnType: void
    signature: fn test_next_frame_polling_after_end_non_animated()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_reader_of_ihdr_idat
      Src: /src/image-png/src/decoder/stream.rs:3085,1
    - Dst: Reader::next_frame_info
      Src: /src/image-png/src/decoder/stream.rs:3087,1
    - Dst: Result::expect_err
      Src: /src/image-png/src/decoder/stream.rs:3087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3095
      start: 3084
    functionDepth: 13
    functionLinenumber: 3084
    functionLinenumberEnd: 3095
    functionName: tests::test_next_frame_info_polling_after_end_non_animated
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - create_reader_of_ihdr_idat
    - Reader::next_frame_info
    - Result::expect_err
    linkageType: ''
    returnType: void
    signature: fn test_next_frame_info_polling_after_end_non_animated()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_reader_of_ihdr_actl_fctl_idat_fctl_fdat
      Src: /src/image-png/src/decoder/stream.rs:3102,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3106,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3106,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3113,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3113,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3118,1
    - Dst: Result::expect_err
      Src: /src/image-png/src/decoder/stream.rs:3118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3126
      start: 3101
    functionDepth: 12
    functionLinenumber: 3101
    functionLinenumberEnd: 3126
    functionName: tests::test_next_frame_polling_after_end_idat_part_of_animation
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - create_reader_of_ihdr_actl_fctl_idat_fctl_fdat
    - Result::expect
    - Reader::next_frame
    - Result::expect_err
    linkageType: ''
    returnType: void
    signature: fn test_next_frame_polling_after_end_idat_part_of_animation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_reader_of_ihdr_actl_idat_fctl_fdat_fctl_fdat
      Src: /src/image-png/src/decoder/stream.rs:3133,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3137,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3137,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3144,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3144,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3149,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3149,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3154,1
    - Dst: Result::expect_err
      Src: /src/image-png/src/decoder/stream.rs:3154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3162
      start: 3132
    functionDepth: 24
    functionLinenumber: 3132
    functionLinenumberEnd: 3162
    functionName: tests::test_next_frame_polling_after_end_idat_not_part_of_animation
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::expect_err
    - Result::expect
    - Reader::next_frame
    - create_reader_of_ihdr_actl_idat_fctl_fdat_fctl_fdat
    linkageType: ''
    returnType: void
    signature: fn test_next_frame_polling_after_end_idat_not_part_of_animation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_reader_of_ihdr_actl_fctl_idat_fctl_fdat
      Src: /src/image-png/src/decoder/stream.rs:3168,1
    - Dst: Reader::next_row
      Src: /src/image-png/src/decoder/stream.rs:3172,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3172,1
    - Dst: UnfilterBuf::fill
      Src: /src/image-png/src/decoder/stream.rs:3175,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3176,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3183
      start: 3167
    functionDepth: 12
    functionLinenumber: 3167
    functionLinenumberEnd: 3183
    functionName: tests::test_row_by_row_then_next_frame
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Reader::next_row
    - UnfilterBuf::fill
    - Reader::next_frame
    - create_reader_of_ihdr_actl_fctl_idat_fctl_fdat
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_row_by_row_then_next_frame()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_reader_of_ihdr_actl_fctl_idat_fctl_fdat
      Src: /src/image-png/src/decoder/stream.rs:3190,1
    - Dst: Reader::next_row
      Src: /src/image-png/src/decoder/stream.rs:3194,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3194,1
    - Dst: Reader::next_row
      Src: /src/image-png/src/decoder/stream.rs:3203,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3203,1
    - Dst: Reader::next_frame_info
      Src: /src/image-png/src/decoder/stream.rs:3209,1
    - Dst: Result::expect_err
      Src: /src/image-png/src/decoder/stream.rs:3209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3217
      start: 3189
    functionDepth: 12
    functionLinenumber: 3189
    functionLinenumberEnd: 3217
    functionName: tests::test_row_by_row_of_two_frames
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Reader::next_row
    - Reader::next_frame_info
    - Result::expect_err
    - create_reader_of_ihdr_actl_fctl_idat_fctl_fdat
    linkageType: ''
    returnType: void
    signature: fn test_row_by_row_of_two_frames()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_reader_of_ihdr_actl_fctl_idat_fctl_fdat
      Src: /src/image-png/src/decoder/stream.rs:3226,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3230,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3230,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3241,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3241,1
    - Dst: Reader::next_frame_info
      Src: /src/image-png/src/decoder/stream.rs:3246,1
    - Dst: Result::expect_err
      Src: /src/image-png/src/decoder/stream.rs:3246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3254
      start: 3225
    functionDepth: 12
    functionLinenumber: 3225
    functionLinenumberEnd: 3254
    functionName: tests::test_next_frame_info_after_next_frame
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Reader::next_frame
    - Reader::next_frame_info
    - Result::expect_err
    - create_reader_of_ihdr_actl_fctl_idat_fctl_fdat
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_next_frame_info_after_next_frame()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_reader_of_ihdr_actl_idat_fctl_fdat_fctl_fdat
      Src: /src/image-png/src/decoder/stream.rs:3260,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3271,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3271,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3278,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3278,1
    - Dst: Reader::next_frame_info
      Src: /src/image-png/src/decoder/stream.rs:3283,1
    - Dst: Result::expect_err
      Src: /src/image-png/src/decoder/stream.rs:3283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3291
      start: 3259
    functionDepth: 24
    functionLinenumber: 3259
    functionLinenumberEnd: 3291
    functionName: tests::test_next_frame_info_to_skip_first_frame
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Reader::next_frame
    - create_reader_of_ihdr_actl_idat_fctl_fdat_fctl_fdat
    - Reader::next_frame_info
    - Result::expect_err
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn test_next_frame_info_to_skip_first_frame()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:3296,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:3297,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:3298,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3299,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3300,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:3303,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:3305,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:3308,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:3308,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:3309,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3309,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3312,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3315
      start: 3294
    functionDepth: 11
    functionLinenumber: 3294
    functionLinenumberEnd: 3315
    functionName: tests::test_incorrect_trns_chunk_is_ignored
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Vec::new
    - Cursor::new
    - write_chunk
    - Decoder::new
    - Reader::next_frame
    - Decoder::read_info
    - generate_rgba8_with_width_and_height
    - write_iend
    - write_rgba8_ihdr_with_width
    - write_png_sig
    linkageType: ''
    returnType: void
    signature: fn test_incorrect_trns_chunk_is_ignored()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:3321,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:3323,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:3324,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:3325,1
    - Dst: write_actl
      Src: /src/image-png/src/decoder/stream.rs:3326,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:3338,1
    - Dst: Default::default
      Src: /src/image-png/src/decoder/stream.rs:3343,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3346,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:3347,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:3349,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:3349,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:3349,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3349,1
    - Dst: Reader::next_interlaced_row
      Src: /src/image-png/src/decoder/stream.rs:3356,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3357
      start: 3319
    functionDepth: 23
    functionLinenumber: 3319
    functionLinenumberEnd: 3357
    functionName: tests::test_actl_num_frames_zero
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Vec::new
    - Cursor::new
    - write_chunk
    - Reader::next_interlaced_row
    - Decoder::new
    - Decoder::read_info
    - generate_rgba8_with_width_and_height
    - Default::default
    - write_actl
    - write_iend
    - write_rgba8_ihdr_with_width
    - write_fctl
    - write_png_sig
    linkageType: ''
    returnType: void
    signature: fn test_actl_num_frames_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:3363,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:3364,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:3365,1
    - Dst: write_actl
      Src: /src/image-png/src/decoder/stream.rs:3366,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:3373,1
    - Dst: Default::default
      Src: /src/image-png/src/decoder/stream.rs:3381,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3384,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:3387,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:3389,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:3391,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:3391,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:3391,1
    - Dst: Reader::err
      Src: /src/image-png/src/decoder/stream.rs:3392,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:3392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3395
      start: 3360
    functionDepth: 11
    functionLinenumber: 3360
    functionLinenumberEnd: 3395
    functionName: tests::test_small_fctl
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Reader::err
    - Vec::new
    - Cursor::new
    - write_chunk
    - Decoder::new
    - Decoder::read_info
    - Default::default
    - generate_rgba8_with_width_and_height
    - write_actl
    - write_iend
    - write_rgba8_ihdr_with_width
    - write_fctl
    - unwrap
    - write_png_sig
    linkageType: ''
    returnType: void
    signature: fn test_small_fctl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:3405,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:3406,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:3407,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3408,1
    - Dst: as_slice
      Src: /src/image-png/src/decoder/stream.rs:3408,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3409,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:3412,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:3414,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:3416,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:3416,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:3416,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3416,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:3417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3420
      start: 3398
    functionDepth: 11
    functionLinenumber: 3398
    functionLinenumberEnd: 3420
    functionName: tests::test_invalid_text_chunk
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Vec::new
    - Reader::info
    - Cursor::new
    - write_chunk
    - Decoder::new
    - Decoder::read_info
    - generate_rgba8_with_width_and_height
    - write_iend
    - write_rgba8_ihdr_with_width
    - as_slice
    - write_png_sig
    linkageType: ''
    returnType: void
    signature: fn test_invalid_text_chunk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:3426,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:3428,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:3429,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:3430,1
    - Dst: write_actl
      Src: /src/image-png/src/decoder/stream.rs:3431,1
    - Dst: write_actl
      Src: /src/image-png/src/decoder/stream.rs:3438,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3445,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:3446,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:3448,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:3448,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:3448,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3448,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:3449,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/stream.rs:3449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3454
      start: 3424
    functionDepth: 23
    functionLinenumber: 3424
    functionLinenumberEnd: 3454
    functionName: tests::test_duplicate_actl_chunk
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Vec::new
    - Reader::info
    - Cursor::new
    - write_chunk
    - Decoder::new
    - Decoder::read_info
    - generate_rgba8_with_width_and_height
    - write_actl
    - write_iend
    - write_rgba8_ihdr_with_width
    - as_ref
    - write_png_sig
    linkageType: ''
    returnType: void
    signature: fn test_duplicate_actl_chunk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:3459,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:3460,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:3461,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3462,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3463,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:3466,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:3468,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:3470,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:3470,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:3470,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3472
      start: 3457
    functionDepth: 11
    functionLinenumber: 3457
    functionLinenumberEnd: 3472
    functionName: tests::test_no_captured_chunks
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Vec::new
    - Cursor::new
    - write_chunk
    - Decoder::new
    - Decoder::read_info
    - generate_rgba8_with_width_and_height
    - write_iend
    - write_rgba8_ihdr_with_width
    - write_png_sig
    linkageType: ''
    returnType: void
    signature: fn test_no_captured_chunks()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:3477,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:3478,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:3479,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3480,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3481,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3482,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:3485,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:3487,1
    - Dst: DecodeOptions::default
      Src: /src/image-png/src/decoder/stream.rs:3489,1
    - Dst: Self::set_captured_chunks
      Src: /src/image-png/src/decoder/stream.rs:3490,1
    - Dst: chunk::ChunkType
      Src: /src/image-png/src/decoder/stream.rs:3491,1
    - Dst: chunk::ChunkType
      Src: /src/image-png/src/decoder/stream.rs:3491,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3490,1
    - Dst: Decoder::new_with_options
      Src: /src/image-png/src/decoder/stream.rs:3493,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:3493,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:3493,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3509
      start: 3475
    functionDepth: 11
    functionLinenumber: 3475
    functionLinenumberEnd: 3509
    functionName: tests::test_captured_chunks_unknown
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - chunk::ChunkType
    - Self::set_captured_chunks
    - Result::unwrap
    - Vec::new
    - Cursor::new
    - write_chunk
    - DecodeOptions::default
    - Decoder::read_info
    - generate_rgba8_with_width_and_height
    - write_iend
    - write_rgba8_ihdr_with_width
    - Decoder::new_with_options
    - write_png_sig
    linkageType: ''
    returnType: void
    signature: fn test_captured_chunks_unknown()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:3514,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:3515,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:3516,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3519,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3520,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:3523,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:3525,1
    - Dst: DecodeOptions::default
      Src: /src/image-png/src/decoder/stream.rs:3527,1
    - Dst: Self::set_captured_chunks
      Src: /src/image-png/src/decoder/stream.rs:3528,1
    - Dst: chunk::ChunkType
      Src: /src/image-png/src/decoder/stream.rs:3528,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3528,1
    - Dst: Decoder::new_with_options
      Src: /src/image-png/src/decoder/stream.rs:3529,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:3529,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:3529,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3547
      start: 3512
    functionDepth: 11
    functionLinenumber: 3512
    functionLinenumberEnd: 3547
    functionName: tests::test_captured_chunks_known
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - chunk::ChunkType
    - Self::set_captured_chunks
    - Result::unwrap
    - Vec::new
    - Cursor::new
    - write_chunk
    - DecodeOptions::default
    - Decoder::read_info
    - generate_rgba8_with_width_and_height
    - write_iend
    - write_rgba8_ihdr_with_width
    - Decoder::new_with_options
    - write_png_sig
    linkageType: ''
    returnType: void
    signature: fn test_captured_chunks_known()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:3552,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:3553,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:3554,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3556,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3557,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:3560,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:3562,1
    - Dst: DecodeOptions::default
      Src: /src/image-png/src/decoder/stream.rs:3564,1
    - Dst: Self::set_captured_chunks
      Src: /src/image-png/src/decoder/stream.rs:3565,1
    - Dst: chunk::ChunkType
      Src: /src/image-png/src/decoder/stream.rs:3565,1
    - Dst: Result::unwrap_err
      Src: /src/image-png/src/decoder/stream.rs:3567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3569
      start: 3550
    functionDepth: 11
    functionLinenumber: 3550
    functionLinenumberEnd: 3569
    functionName: tests::test_captured_chunks_critical
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - chunk::ChunkType
    - Self::set_captured_chunks
    - Vec::new
    - write_chunk
    - DecodeOptions::default
    - Result::unwrap_err
    - generate_rgba8_with_width_and_height
    - write_iend
    - write_rgba8_ihdr_with_width
    - write_png_sig
    linkageType: ''
    returnType: void
    signature: fn test_captured_chunks_critical()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:3574,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:3575,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:3576,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3577,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3578,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:3581,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:3583,1
    - Dst: DecodeOptions::default
      Src: /src/image-png/src/decoder/stream.rs:3585,1
    - Dst: Self::set_captured_chunks
      Src: /src/image-png/src/decoder/stream.rs:3586,1
    - Dst: chunk::ChunkType
      Src: /src/image-png/src/decoder/stream.rs:3586,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3586,1
    - Dst: Decoder::new_with_options
      Src: /src/image-png/src/decoder/stream.rs:3587,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:3587,1
    - Dst: Decoder::set_limits
      Src: /src/image-png/src/decoder/stream.rs:3589,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:3590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3592
      start: 3572
    functionDepth: 11
    functionLinenumber: 3572
    functionLinenumberEnd: 3592
    functionName: tests::test_captured_chunks_limits_exceeded
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Decoder::set_limits
    - chunk::ChunkType
    - Self::set_captured_chunks
    - Result::unwrap
    - Vec::new
    - Cursor::new
    - write_chunk
    - DecodeOptions::default
    - Decoder::read_info
    - generate_rgba8_with_width_and_height
    - write_iend
    - write_rgba8_ihdr_with_width
    - Decoder::new_with_options
    - write_png_sig
    linkageType: ''
    returnType: void
    signature: fn test_captured_chunks_limits_exceeded()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/image-png/src/decoder/zlib.rs:75,1
    - Dst: Decompressor::new
      Src: /src/image-png/src/decoder/zlib.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: ZlibStream::new
    functionSourceFile: /src/image-png/src/decoder/zlib.rs
    functionUses: 1
    functionsReached:
    - Decompressor::new
    - Box::new
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Decompressor::new
      Src: /src/image-png/src/decoder/zlib.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: ZlibStream::reset
    functionSourceFile: /src/image-png/src/decoder/zlib.rs
    functionUses: 0
    functionsReached:
    - Decompressor::new
    linkageType: ''
    returnType: void
    signature: pub(crate) fn reset(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - flag
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: ZlibStream::set_ignore_adler32
    functionSourceFile: /src/image-png/src/decoder/zlib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub(crate) fn set_ignore_adler32(&mut self, flag: bool) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: ZlibStream::ignore_adler32
    functionSourceFile: /src/image-png/src/decoder/zlib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub(crate) fn ignore_adler32(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_done
      Src: /src/image-png/src/decoder/zlib.rs:117,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/zlib.rs:118,1
    - Dst: Result::len
      Src: /src/image-png/src/decoder/zlib.rs:118,1
    - Dst: ignore_adler32
      Src: /src/image-png/src/decoder/zlib.rs:122,1
    - Dst: Result::decompress
      Src: /src/image-png/src/decoder/zlib.rs:125,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/zlib.rs:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - data
    - image_data
    argTypes:
    - '&[u8]'
    - '&mut UnfilterBuf<''_>'
    constantsTouched: []
    func_position:
      end: 129
      start: 109
    functionDepth: 20
    functionLinenumber: 109
    functionLinenumberEnd: 129
    functionName: ZlibStream::decompress
    functionSourceFile: /src/image-png/src/decoder/zlib.rs
    functionUses: 0
    functionsReached:
    - Result::decompress
    - Result::len
    - is_done
    - Ok
    - ignore_adler32
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn decompress(&mut self,data: &[u8],image_data: &mut UnfilterBuf<''_>,)
      -> Result<usize, DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_done
      Src: /src/image-png/src/decoder/zlib.rs:142,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/zlib.rs:143,1
    - Dst: len
      Src: /src/image-png/src/decoder/zlib.rs:150,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/zlib.rs:151,1
    - Dst: read
      Src: /src/image-png/src/decoder/zlib.rs:154,1
    - Dst: map_err
      Src: /src/image-png/src/decoder/zlib.rs:154,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/zlib.rs:163,1
    - Dst: into
      Src: /src/image-png/src/decoder/zlib.rs:163,1
    - Dst: is_done
      Src: /src/image-png/src/decoder/zlib.rs:167,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/zlib.rs:169,1
    - Dst: len
      Src: /src/image-png/src/decoder/zlib.rs:175,1
    - Dst: max
      Src: /src/image-png/src/decoder/zlib.rs:177,1
    - Dst: saturating_sub
      Src: /src/image-png/src/decoder/zlib.rs:177,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/zlib.rs:178,1
    - Dst: Err
      Src: /src/image-png/src/decoder/zlib.rs:185,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/zlib.rs:185,1
    - Dst: into
      Src: /src/image-png/src/decoder/zlib.rs:186,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 91
    argCount: 1
    argNames:
    - image_data
    argTypes:
    - '&mut UnfilterBuf<''_>'
    constantsTouched: []
    func_position:
      end: 191
      start: 138
    functionDepth: 20
    functionLinenumber: 138
    functionLinenumberEnd: 191
    functionName: ZlibStream::finish
    functionSourceFile: /src/image-png/src/decoder/zlib.rs
    functionUses: 0
    functionsReached:
    - map_err
    - into
    - len
    - DecodingError::Format
    - read
    - is_done
    - Err
    - max
    - Ok
    - saturating_sub
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn finish(&mut self,image_data: &mut UnfilterBuf<''_>,)
      -> Result<bool, DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - '&''data mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: UnfilterRegion::as_buf
    functionSourceFile: /src/image-png/src/decoder/zlib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: UnfilterBuf
    signature: 'pub fn as_buf<''data>(&''data mut self, buffer: &''data mut Vec<u8>)
      -> UnfilterBuf<''data>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/image-png/src/decoder/zlib.rs:225,1
    - Dst: len
      Src: /src/image-png/src/decoder/zlib.rs:225,1
    - Dst: '&mut fdeflate::Decompressor::read'
      Src: /src/image-png/src/decoder/zlib.rs:226,1
    - Dst: map_err
      Src: /src/image-png/src/decoder/zlib.rs:226,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/zlib.rs:234,1
    - Dst: into
      Src: /src/image-png/src/decoder/zlib.rs:234,1
    - Dst: '&mut fdeflate::Decompressor::is_done'
      Src: /src/image-png/src/decoder/zlib.rs:238,1
    - Dst: checked_sub
      Src: /src/image-png/src/decoder/zlib.rs:240,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/zlib.rs:251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 57
    argCount: 2
    argNames:
    - decompressor
    - input
    argTypes:
    - '&mut fdeflate::Decompressor'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 252
      start: 220
    functionDepth: 20
    functionLinenumber: 220
    functionLinenumberEnd: 252
    functionName: UnfilterBuf::decompress
    functionSourceFile: /src/image-png/src/decoder/zlib.rs
    functionUses: 0
    functionsReached:
    - map_err
    - min
    - into
    - len
    - '&mut fdeflate::Decompressor::read'
    - DecodingError::Format
    - '&mut fdeflate::Decompressor::is_done'
    - checked_sub
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn decompress(&mut self,decompressor: &mut fdeflate::Decompressor,input:
      &[u8],) -> Result<usize, DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: UnfilteringBuffer::debug_assert_invariants
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn debug_assert_invariants(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::checked_raw_row_length
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:54,1
    - Dst: Option::and_then
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:54,1
    - Dst: Result::checked_mul
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:63,1
    - Dst: min
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:63,1
    - Dst: and_then
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:54,1
    - Dst: checked_next_multiple_of
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:66,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:54,1
    - Dst: min
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:71,1
    - Dst: Result::checked_raw_row_length
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:77,1
    - Dst: Option::and_then
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:77,1
    - Dst: Result::checked_mul
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:81,1
    - Dst: and_then
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:77,1
    - Dst: checked_next_multiple_of
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:86,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:77,1
    - Dst: max
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:89,1
    - Dst: Vec::with_capacity
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:93,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:100,1
    - Dst: debug_assert_invariants
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 1
    argNames:
    - info
    argTypes:
    - '&Info<''_>'
    constantsTouched: []
    func_position:
      end: 105
      start: 49
    functionDepth: 3
    functionLinenumber: 49
    functionLinenumberEnd: 105
    functionName: UnfilteringBuffer::new
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 1
    functionsReached:
    - min
    - Result::checked_mul
    - Option::and_then
    - Result::checked_raw_row_length
    - checked_next_multiple_of
    - Vec::new
    - max
    - Vec::with_capacity
    - and_then
    - debug_assert_invariants
    - unwrap_or
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(info: &Info<''_>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::take
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:113,1
    - Dst: UnfilteringBuffer::debug_assert_invariants
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: UnfilteringBuffer::reset_prev_row
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached:
    - std::mem::take
    - UnfilteringBuffer::debug_assert_invariants
    linkageType: ''
    returnType: void
    signature: pub fn reset_prev_row(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - frame_bytes
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: UnfilteringBuffer::start_frame
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: 'pub fn start_frame(&mut self, frame_bytes: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: UnfilteringBuffer::remaining_bytes
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn remaining_bytes(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_slice
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: UnfilteringBuffer::prev_row
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached:
    - as_slice
    linkageType: ''
    returnType: '&[u8]'
    signature: pub fn prev_row(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: saturating_sub
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: UnfilteringBuffer::mutable_len_of_curr_row
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached:
    - saturating_sub
    linkageType: ''
    returnType: usize
    signature: pub fn mutable_len_of_curr_row(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: UnfilteringBuffer::readable_len_of_curr_row
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn readable_len_of_curr_row(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:171,1
    - Dst: len
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:181,1
    - Dst: UnfilteringBuffer::shift_buffer_left
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:183,1
    - Dst: len
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:186,1
    - Dst: resize
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:187,1
    - Dst: saturating_add
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:191,1
    - Dst: len
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:191,1
    - Dst: resize
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:193,1
    - Dst: f
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:198,1
    - Dst: UnfilteringBuffer::debug_assert_invariants
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:210,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 87
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 212
      start: 166
    functionDepth: 20
    functionLinenumber: 166
    functionLinenumberEnd: 212
    functionName: UnfilteringBuffer::with_unfilled_buffer
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached:
    - min
    - f
    - saturating_add
    - len
    - UnfilteringBuffer::debug_assert_invariants
    - UnfilteringBuffer::shift_buffer_left
    - resize
    linkageType: ''
    returnType: T
    signature: 'pub fn with_unfilled_buffer<F, T>(&mut self, f: F) -> TwhereF: FnOnce(&mut
      UnfilterBuf<''_>) -> T,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:227,1
    - Dst: checked_sub
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:227,1
    - Dst: copy_within
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:228,1
    - Dst: copy_within
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 1
    argNames:
    - discard_size
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 242
      start: 216
    functionDepth: 20
    functionLinenumber: 216
    functionLinenumberEnd: 242
    functionName: UnfilteringBuffer::shift_buffer_left
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 1
    functionsReached:
    - checked_sub
    - copy_within
    - len
    linkageType: ''
    returnType: void
    signature: 'fn shift_buffer_left(&mut self, discard_size: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RowFilter::from_u8
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:246,1
    - Dst: Option::ok_or
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:246,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:246,1
    - Dst: FormatErrorInner::UnknownFilterMethod
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:247,1
    - Dst: into
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 249
    functionName: UnfilteringBuffer::curr_row_filter
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached:
    - into
    - RowFilter::from_u8
    - DecodingError::Format
    - Option::ok_or
    - FormatErrorInner::UnknownFilterMethod
    linkageType: ''
    returnType: Result
    signature: fn curr_row_filter(&self) -> Result<RowFilter, DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnfilteringBuffer::curr_row_filter
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:268,1
    - Dst: split_at_mut
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:269,1
    - Dst: as_slice
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:270,1
    - Dst: filter::unfilter
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:274,1
    - Dst: UnfilteringBuffer::reset_prev_row
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:276,1
    - Dst: PrevRow::InPlace
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:277,1
    - Dst: UnfilteringBuffer::debug_assert_invariants
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:279,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 2
    argNames:
    - rowlen
    - bpp
    argTypes:
    - usize
    - BytesPerPixel
    constantsTouched: []
    func_position:
      end: 282
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 282
    functionName: UnfilteringBuffer::unfilter_curr_row_in_place
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached:
    - PrevRow::InPlace
    - UnfilteringBuffer::curr_row_filter
    - UnfilteringBuffer::debug_assert_invariants
    - split_at_mut
    - filter::unfilter
    - UnfilteringBuffer::reset_prev_row
    - Ok
    - as_slice
    linkageType: ''
    returnType: Result
    signature: 'pub fn unfilter_curr_row_in_place(&mut self,rowlen: usize,bpp: BytesPerPixel,)
      -> Result<(), DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnfilteringBuffer::curr_row_filter
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:303,1
    - Dst: std::mem::take
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:305,1
    - Dst: resize
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:306,1
    - Dst: as_mut_slice
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:307,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:307,1
    - Dst: UnfilteringBuffer::prev_row
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:310,1
    - Dst: filter::unfilter
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:313,1
    - Dst: UnfilteringBuffer::reset_prev_row
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:315,1
    - Dst: PrevRow::Scratch
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:316,1
    - Dst: UnfilteringBuffer::debug_assert_invariants
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:319,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 47
    argCount: 2
    argNames:
    - rowlen
    - bpp
    argTypes:
    - usize
    - BytesPerPixel
    constantsTouched: []
    func_position:
      end: 322
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 322
    functionName: UnfilteringBuffer::unfilter_curr_row_using_scratch_buffer
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached:
    - copy_from_slice
    - std::mem::take
    - UnfilteringBuffer::curr_row_filter
    - UnfilteringBuffer::debug_assert_invariants
    - filter::unfilter
    - UnfilteringBuffer::prev_row
    - UnfilteringBuffer::reset_prev_row
    - PrevRow::Scratch
    - resize
    - as_mut_slice
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn unfilter_curr_row_using_scratch_buffer(&mut self,rowlen: usize,bpp:
      BytesPerPixel,) -> Result<(), DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_slice
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&''a [u8]'
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: PrevRow::as_slice
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached:
    - as_slice
    linkageType: ''
    returnType: '&''a [u8]'
    signature: 'fn as_slice<''a>(&''a self, buf: &''a [u8]) -> &''a [u8]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::checked_add
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:372,1
    - Dst: Some
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - val
    - factor
    argTypes:
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 376
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 376
    functionName: checked_next_multiple_of
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 1
    functionsReached:
    - usize::checked_add
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn checked_next_multiple_of(val: usize, factor: usize) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 387
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 387
    functionName: next_multiple_of_backport_testsuite
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn next_multiple_of_backport_testsuite()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_rgba_palette
      Src: /src/image-png/src/decoder/transform/palette.rs:23,1
    - Dst: Box::new
      Src: /src/image-png/src/decoder/transform/palette.rs:26,1
    - Dst: expand_8bit_into_rgb8
      Src: /src/image-png/src/decoder/transform/palette.rs:26,1
    - Dst: Box::new
      Src: /src/image-png/src/decoder/transform/palette.rs:28,1
    - Dst: expand_into_rgb8
      Src: /src/image-png/src/decoder/transform/palette.rs:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - info
    argTypes:
    - '&Info'
    constantsTouched: []
    func_position:
      end: 30
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 30
    functionName: create_expansion_into_rgb8
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 1
    functionsReached:
    - expand_8bit_into_rgb8
    - create_rgba_palette
    - expand_into_rgb8
    - Box::new
    linkageType: ''
    returnType: TransformFn
    signature: 'pub fn create_expansion_into_rgb8(info: &Info) -> TransformFn'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_rgba_palette
      Src: /src/image-png/src/decoder/transform/palette.rs:33,1
    - Dst: Box::new
      Src: /src/image-png/src/decoder/transform/palette.rs:34,1
    - Dst: expand_paletted_into_rgba8
      Src: /src/image-png/src/decoder/transform/palette.rs:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - info
    argTypes:
    - '&Info'
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: create_expansion_into_rgba8
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 1
    functionsReached:
    - create_rgba_palette
    - expand_paletted_into_rgba8
    - Box::new
    linkageType: ''
    returnType: TransformFn
    signature: 'pub fn create_expansion_into_rgba8(info: &Info) -> TransformFn'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_deref
      Src: /src/image-png/src/decoder/transform/palette.rs:40,1
    - Dst: expect
      Src: /src/image-png/src/decoder/transform/palette.rs:40,1
    - Dst: as_deref
      Src: /src/image-png/src/decoder/transform/palette.rs:41,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/transform/palette.rs:41,1
    - Dst: len
      Src: /src/image-png/src/decoder/transform/palette.rs:50,1
    - Dst: len
      Src: /src/image-png/src/decoder/transform/palette.rs:50,1
    - Dst: palette::len
      Src: /src/image-png/src/decoder/transform/palette.rs:64,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/decoder/transform/palette.rs:68,1
    - Dst: palette::is_empty
      Src: /src/image-png/src/decoder/transform/palette.rs:73,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/decoder/transform/palette.rs:75,1
    - Dst: iter
      Src: /src/image-png/src/decoder/transform/palette.rs:82,1
    - Dst: Result::copied
      Src: /src/image-png/src/decoder/transform/palette.rs:82,1
    - Dst: zip
      Src: /src/image-png/src/decoder/transform/palette.rs:82,1
    - Dst: '[[u8; 4]; 256]::iter_mut'
      Src: /src/image-png/src/decoder/transform/palette.rs:82,1
    - Dst: len
      Src: /src/image-png/src/decoder/transform/palette.rs:87,1
    - Dst: len
      Src: /src/image-png/src/decoder/transform/palette.rs:87,1
    - Dst: iter_mut
      Src: /src/image-png/src/decoder/transform/palette.rs:87,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 92
    argCount: 1
    argNames:
    - info
    argTypes:
    - '&Info'
    constantsTouched: []
    func_position:
      end: 92
      start: 39
    functionDepth: 20
    functionLinenumber: 39
    functionLinenumberEnd: 92
    functionName: create_rgba_palette
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 2
    functionsReached:
    - copy_from_slice
    - palette::is_empty
    - zip
    - palette::len
    - len
    - Result::copied
    - '[[u8; 4]; 256]::iter_mut'
    - iter
    - as_deref
    - iter_mut
    - unwrap_or
    - expect
    linkageType: ''
    returnType: '[[u8; 4]; 256]'
    signature: 'fn create_rgba_palette(info: &Info) -> [[u8; 4]; 256]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [u8]::len'
      Src: /src/image-png/src/decoder/transform/palette.rs:95,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/decoder/transform/palette.rs:98,1
    - Dst: '&mut [u8]::is_empty'
      Src: /src/image-png/src/decoder/transform/palette.rs:103,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/decoder/transform/palette.rs:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 3
    argNames:
    - input
    - output
    - rgba_palette
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&[[u8; 4]; 256]'
    constantsTouched: []
    func_position:
      end: 107
      start: 94
    functionDepth: 20
    functionLinenumber: 94
    functionLinenumberEnd: 107
    functionName: expand_8bit_into_rgb8
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 1
    functionsReached:
    - '&mut [u8]::len'
    - copy_from_slice
    - '&mut [u8]::is_empty'
    linkageType: ''
    returnType: void
    signature: 'fn expand_8bit_into_rgb8(mut input: &[u8], mut output: &mut [u8],
      rgba_palette: &[[u8; 4]; 256])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::unpack_bits
      Src: /src/image-png/src/decoder/transform/palette.rs:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 4
    argNames:
    - row
    - buffer
    - info
    - rgba_palette
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&Info'
    - '&[[u8; 4]; 256]'
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 21
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: expand_into_rgb8
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 1
    functionsReached:
    - super::unpack_bits
    linkageType: ''
    returnType: void
    signature: 'fn expand_into_rgb8(row: &[u8], buffer: &mut [u8], info: &Info, rgba_palette:
      &[[u8; 4]; 256])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::unpack_bits
      Src: /src/image-png/src/decoder/transform/palette.rs:124,1
    - Dst: Result::copy_from_slice
      Src: /src/image-png/src/decoder/transform/palette.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - row
    - buffer
    - info
    - rgba_palette
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&Info'
    - '&[[u8; 4]; 256]'
    constantsTouched: []
    func_position:
      end: 127
      start: 118
    functionDepth: 21
    functionLinenumber: 118
    functionLinenumberEnd: 127
    functionName: expand_paletted_into_rgba8
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 1
    functionsReached:
    - Result::copy_from_slice
    - super::unpack_bits
    linkageType: ''
    returnType: void
    signature: 'fn expand_paletted_into_rgba8(row: &[u8],buffer: &mut [u8],info: &Info,rgba_palette:
      &[[u8; 4]; 256],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_deref
      Src: /src/image-png/src/decoder/transform/palette.rs:135,1
    - Dst: expect
      Src: /src/image-png/src/decoder/transform/palette.rs:135,1
    - Dst: super::unpack_bits
      Src: /src/image-png/src/decoder/transform/palette.rs:138,1
    - Dst: get
      Src: /src/image-png/src/decoder/transform/palette.rs:139,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/transform/palette.rs:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 3
    argNames:
    - row
    - buffer
    - info
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&Info'
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 21
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: test::oracle_expand_paletted_into_rgb8
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - super::unpack_bits
    - get
    - as_deref
    - unwrap_or
    - expect
    linkageType: ''
    returnType: void
    signature: 'fn oracle_expand_paletted_into_rgb8(row: &[u8], buffer: &mut [u8],
      info: &Info)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_deref
      Src: /src/image-png/src/decoder/transform/palette.rs:150,1
    - Dst: expect
      Src: /src/image-png/src/decoder/transform/palette.rs:150,1
    - Dst: as_deref
      Src: /src/image-png/src/decoder/transform/palette.rs:151,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/transform/palette.rs:151,1
    - Dst: len
      Src: /src/image-png/src/decoder/transform/palette.rs:161,1
    - Dst: len
      Src: /src/image-png/src/decoder/transform/palette.rs:161,1
    - Dst: super::unpack_bits
      Src: /src/image-png/src/decoder/transform/palette.rs:167,1
    - Dst: get
      Src: /src/image-png/src/decoder/transform/palette.rs:169,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/transform/palette.rs:169,1
    - Dst: get
      Src: /src/image-png/src/decoder/transform/palette.rs:172,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/transform/palette.rs:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 61
    argCount: 3
    argNames:
    - row
    - buffer
    - info
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&Info'
    constantsTouched: []
    func_position:
      end: 179
      start: 149
    functionDepth: 20
    functionLinenumber: 149
    functionLinenumberEnd: 179
    functionName: test::oracle_expand_paletted_into_rgba8
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - super::unpack_bits
    - len
    - get
    - as_deref
    - unwrap_or
    - expect
    linkageType: ''
    returnType: void
    signature: 'fn oracle_expand_paletted_into_rgba8(row: &[u8], buffer: &mut [u8],
      info: &Info)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitDepth::from_u8
      Src: /src/image-png/src/decoder/transform/palette.rs:184,1
    - Dst: Option::unwrap
      Src: /src/image-png/src/decoder/transform/palette.rs:184,1
    - Dst: Some
      Src: /src/image-png/src/decoder/transform/palette.rs:185,1
    - Dst: into
      Src: /src/image-png/src/decoder/transform/palette.rs:185,1
    - Dst: map
      Src: /src/image-png/src/decoder/transform/palette.rs:186,1
    - Dst: Info::default
      Src: /src/image-png/src/decoder/transform/palette.rs:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - src_bit_depth
    - palette
    - trns
    argTypes:
    - u8
    - '&''a [u8]'
    - Option<&'a [u8]>
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 189
    functionName: test::create_info
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - map
    - Option::unwrap
    - into
    - BitDepth::from_u8
    - Info::default
    - Some
    linkageType: ''
    returnType: Info
    signature: 'fn create_info<''a>(src_bit_depth: u8, palette: &''a [u8], trns: Option<&''a
      [u8]>) -> Info<''a>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_info
      Src: /src/image-png/src/decoder/transform/palette.rs:197,1
    - Dst: '&[u8]::len'
      Src: /src/image-png/src/decoder/transform/palette.rs:203,1
    - Dst: super::super::create_transform_fn
      Src: /src/image-png/src/decoder/transform/palette.rs:207,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/transform/palette.rs:207,1
    - Dst: transform_fn
      Src: /src/image-png/src/decoder/transform/palette.rs:208,1
    - Dst: as_mut_slice
      Src: /src/image-png/src/decoder/transform/palette.rs:208,1
    - Dst: is_none
      Src: /src/image-png/src/decoder/transform/palette.rs:213,1
    - Dst: oracle_expand_paletted_into_rgb8
      Src: /src/image-png/src/decoder/transform/palette.rs:214,1
    - Dst: oracle_expand_paletted_into_rgba8
      Src: /src/image-png/src/decoder/transform/palette.rs:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 4
    argNames:
    - src
    - src_bit_depth
    - palette
    - trns
    argTypes:
    - '&[u8]'
    - u8
    - '&[u8]'
    - Option<&[u8]>
    constantsTouched: []
    func_position:
      end: 222
      start: 191
    functionDepth: 20
    functionLinenumber: 191
    functionLinenumberEnd: 222
    functionName: test::expand_paletted
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - transform_fn
    - create_info
    - '&[u8]::len'
    - oracle_expand_paletted_into_rgb8
    - is_none
    - as_mut_slice
    - oracle_expand_paletted_into_rgba8
    - super::super::create_transform_fn
    linkageType: ''
    returnType: Vec
    signature: 'fn expand_paletted(src: &[u8],src_bit_depth: u8,palette: &[u8],trns:
      Option<&[u8]>,) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: expand_paletted
      Src: /src/image-png/src/decoder/transform/palette.rs:226,1
    - Dst: Some
      Src: /src/image-png/src/decoder/transform/palette.rs:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 225
    functionDepth: 21
    functionLinenumber: 225
    functionLinenumberEnd: 239
    functionName: test::test_expand_paletted_rgba_8bit
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - expand_paletted
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_expand_paletted_rgba_8bit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: expand_paletted
      Src: /src/image-png/src/decoder/transform/palette.rs:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 242
    functionDepth: 21
    functionLinenumber: 242
    functionLinenumberEnd: 256
    functionName: test::test_expand_paletted_rgb_8bit
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - expand_paletted
    linkageType: ''
    returnType: void
    signature: fn test_expand_paletted_rgb_8bit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: expand_paletted
      Src: /src/image-png/src/decoder/transform/palette.rs:260,1
    - Dst: Some
      Src: /src/image-png/src/decoder/transform/palette.rs:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 259
    functionDepth: 21
    functionLinenumber: 259
    functionLinenumberEnd: 273
    functionName: test::test_expand_paletted_rgba_4bit
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - expand_paletted
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_expand_paletted_rgba_4bit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: expand_paletted
      Src: /src/image-png/src/decoder/transform/palette.rs:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 290
      start: 276
    functionDepth: 21
    functionLinenumber: 276
    functionLinenumberEnd: 290
    functionName: test::test_expand_paletted_rgb_4bit
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - expand_paletted
    linkageType: ''
    returnType: void
    signature: fn test_expand_paletted_rgb_4bit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: expand_paletted
      Src: /src/image-png/src/decoder/transform/palette.rs:294,1
    - Dst: Some
      Src: /src/image-png/src/decoder/transform/palette.rs:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 312
      start: 293
    functionDepth: 21
    functionLinenumber: 293
    functionLinenumberEnd: 312
    functionName: test::test_expand_paletted_rgba_8bit_more_trns_entries_than_palette_entries
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - expand_paletted
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_expand_paletted_rgba_8bit_more_trns_entries_than_palette_entries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: expand_paletted
      Src: /src/image-png/src/decoder/transform/palette.rs:316,1
    - Dst: Some
      Src: /src/image-png/src/decoder/transform/palette.rs:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 315
    functionDepth: 21
    functionLinenumber: 315
    functionLinenumberEnd: 335
    functionName: test::test_expand_paletted_rgba_8bit_less_trns_entries_than_palette_entries
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - expand_paletted
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_expand_paletted_rgba_8bit_less_trns_entries_than_palette_entries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/image-png/src/decoder/transform/palette.rs:341,1
    - Dst: enumerate
      Src: /src/image-png/src/decoder/transform/palette.rs:341,1
    - Dst: Result::get
      Src: /src/image-png/src/decoder/transform/palette.rs:342,1
    - Dst: map
      Src: /src/image-png/src/decoder/transform/palette.rs:342,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/transform/palette.rs:342,1
    - Dst: Result::get
      Src: /src/image-png/src/decoder/transform/palette.rs:343,1
    - Dst: map
      Src: /src/image-png/src/decoder/transform/palette.rs:343,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/transform/palette.rs:343,1
    - Dst: Result::get
      Src: /src/image-png/src/decoder/transform/palette.rs:344,1
    - Dst: map
      Src: /src/image-png/src/decoder/transform/palette.rs:344,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/transform/palette.rs:344,1
    - Dst: get
      Src: /src/image-png/src/decoder/transform/palette.rs:345,1
    - Dst: map
      Src: /src/image-png/src/decoder/transform/palette.rs:345,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/transform/palette.rs:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 56
    argCount: 2
    argNames:
    - plte
    - trns
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 348
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 348
    functionName: t::e::s::t::::::::t::e::s::t::_::c::r::e::a::t::e::_::r::g::b::a::_::p::a::l::e::t::t::e::create_expected_rgba_palette
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - map
    - enumerate
    - get
    - iter_mut
    - Result::get
    - unwrap_or
    linkageType: ''
    returnType: '[[u8; 4]; 256]'
    signature: 'fn create_expected_rgba_palette(plte: &[u8], trns: &[u8]) -> [[u8;
      4]; 256]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: collect
      Src: /src/image-png/src/decoder/transform/palette.rs:352,1
    - Dst: map
      Src: /src/image-png/src/decoder/transform/palette.rs:353,1
    - Dst: collect
      Src: /src/image-png/src/decoder/transform/palette.rs:353,1
    - Dst: create_info
      Src: /src/image-png/src/decoder/transform/palette.rs:355,1
    - Dst: Some
      Src: /src/image-png/src/decoder/transform/palette.rs:355,1
    - Dst: create_expected_rgba_palette
      Src: /src/image-png/src/decoder/transform/palette.rs:356,1
    - Dst: super::create_rgba_palette
      Src: /src/image-png/src/decoder/transform/palette.rs:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 361
      start: 338
    functionDepth: 21
    functionLinenumber: 338
    functionLinenumberEnd: 361
    functionName: test::test_create_rgba_palette
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - map
    - create_info
    - collect
    - super::create_rgba_palette
    - create_expected_rgba_palette
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_create_rgba_palette()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Simd::splat
      Src: /src/image-png/src/filter/simd.rs:49,1
    - Dst: Simd<i16, SIZE>::simd_min
      Src: /src/image-png/src/filter/simd.rs:50,1
    - Dst: Simd<i16, SIZE>::simd_max
      Src: /src/image-png/src/filter/simd.rs:51,1
    - Dst: simd_le
      Src: /src/image-png/src/filter/simd.rs:52,1
    - Dst: select
      Src: /src/image-png/src/filter/simd.rs:52,1
    - Dst: simd_le
      Src: /src/image-png/src/filter/simd.rs:53,1
    - Dst: select
      Src: /src/image-png/src/filter/simd.rs:53,1
    - Dst: simd_le(lo).select(hi, t0).cast::<u8>
      Src: /src/image-png/src/filter/simd.rs:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 3
    argNames:
    - a_i16
    - b_i16
    - c_i16
    argTypes:
    - Simd<i16, SIZE>
    - Simd<i16, SIZE>
    - Simd<i16, SIZE>
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 21
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: paeth_predictor_simd
    functionSourceFile: /src/image-png/src/filter/simd.rs
    functionUses: 0
    functionsReached:
    - simd_le
    - simd_le(lo).select(hi, t0).cast::<u8>
    - Simd<i16, SIZE>::simd_min
    - Simd<i16, SIZE>::simd_max
    - Simd::splat
    - select
    linkageType: ''
    returnType: Simd
    signature: 'fn paeth_predictor_simd<const SIZE: usize>(a_i16: Simd<i16, SIZE>,b_i16:
      Simd<i16, SIZE>,c_i16: Simd<i16, SIZE>,) -> Simd<u8, SIZE>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shift_elements_right::<3>
      Src: /src/image-png/src/filter/simd.rs:81,1
    - Dst: as_mut_array
      Src: /src/image-png/src/filter/simd.rs:82,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/filter/simd.rs:82,1
    - Dst: Simd<u8, 3>::as_array
      Src: /src/image-png/src/filter/simd.rs:82,1
    - Dst: Simd::from_array
      Src: /src/image-png/src/filter/simd.rs:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 4
    argNames:
    - current_a
    - b_vec
    - c_vec_initial
    - x_out
    argTypes:
    - Simd<u8, 3>
    - '&Simd<u8, 48>'
    - Simd<u8, 3>
    - '&mut Simd<u8, 48>'
    constantsTouched: []
    func_position:
      end: 121
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 121
    functionName: process_paeth_chunk_bpp3_s48
    functionSourceFile: /src/image-png/src/filter/simd.rs
    functionUses: 0
    functionsReached:
    - copy_from_slice
    - Simd<u8, 3>::as_array
    - shift_elements_right::<3>
    - as_mut_array
    - Simd::from_array
    linkageType: ''
    returnType: Simd
    signature: 'fn process_paeth_chunk_bpp3_s48(// Previous `a` pixel from the last
      pump, or zero if this is the first.mut current_a: Simd<u8, 3>,// 48 bytes from
      the row above.b_vec: &Simd<u8, 48>,// The last three bytes of the previous `b_vec`,
      or zero if this if the first.c_vec_initial: Simd<u8, 3>,// 48 bytes from the
      current row (filtered) also re-used as the output.x_out: &mut Simd<u8, 48>,)
      -> Simd<u8, 3>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/image-png/src/filter/simd.rs:135,1
    - Dst: Default::default
      Src: /src/image-png/src/filter/simd.rs:136,1
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image-png/src/filter/simd.rs:139,1
    - Dst: '&[u8]::chunks_exact'
      Src: /src/image-png/src/filter/simd.rs:140,1
    - Dst: zip
      Src: /src/image-png/src/filter/simd.rs:141,1
    - Dst: Simd::<u8, STRIDE_BYTES>::from_slice
      Src: /src/image-png/src/filter/simd.rs:144,1
    - Dst: Simd::<u8, STRIDE_BYTES>::from_slice
      Src: /src/image-png/src/filter/simd.rs:145,1
    - Dst: process_paeth_chunk_bpp3_s48
      Src: /src/image-png/src/filter/simd.rs:148,1
    - Dst: extract::<{ STRIDE_BYTES - BPP }, BPP>
      Src: /src/image-png/src/filter/simd.rs:152,1
    - Dst: copy_to_slice
      Src: /src/image-png/src/filter/simd.rs:155,1
    - Dst: to_array
      Src: /src/image-png/src/filter/simd.rs:159,1
    - Dst: to_array
      Src: /src/image-png/src/filter/simd.rs:160,1
    - Dst: into_remainder
      Src: /src/image-png/src/filter/simd.rs:161,1
    - Dst: chunks_exact_mut
      Src: /src/image-png/src/filter/simd.rs:161,1
    - Dst: zip
      Src: /src/image-png/src/filter/simd.rs:161,1
    - Dst: remainder
      Src: /src/image-png/src/filter/simd.rs:164,1
    - Dst: chunks_exact
      Src: /src/image-png/src/filter/simd.rs:164,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/simd.rs:167,1
    - Dst: filter_paeth_chosen
      Src: /src/image-png/src/filter/simd.rs:167,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:168,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:169,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:170,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/simd.rs:172,1
    - Dst: filter_paeth_chosen
      Src: /src/image-png/src/filter/simd.rs:172,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:173,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:174,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:175,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/simd.rs:177,1
    - Dst: filter_paeth_chosen
      Src: /src/image-png/src/filter/simd.rs:177,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:178,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:179,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:180,1
    - Dst: TryInto::<&mut [u8; BPP]>::try_into
      Src: /src/image-png/src/filter/simd.rs:183,1
    - Dst: unwrap
      Src: /src/image-png/src/filter/simd.rs:183,1
    - Dst: try_into
      Src: /src/image-png/src/filter/simd.rs:185,1
    - Dst: unwrap
      Src: /src/image-png/src/filter/simd.rs:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 98
    argCount: 2
    argNames:
    - current
    - prev
    argTypes:
    - '&mut [u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 187
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 187
    functionName: paeth_unfilter_3bpp
    functionSourceFile: /src/image-png/src/filter/simd.rs
    functionUses: 1
    functionsReached:
    - to_array
    - try_into
    - TryInto::<&mut [u8; BPP]>::try_into
    - chunks_exact_mut
    - '&mut [u8]::chunks_exact_mut'
    - remainder
    - Default::default
    - wrapping_add
    - Simd::<u8, STRIDE_BYTES>::from_slice
    - zip
    - unwrap
    - '&[u8]::chunks_exact'
    - into
    - extract::<{ STRIDE_BYTES - BPP }, BPP>
    - process_paeth_chunk_bpp3_s48
    - chunks_exact
    - filter_paeth_chosen
    - into_remainder
    - copy_to_slice
    linkageType: ''
    returnType: void
    signature: 'pub fn paeth_unfilter_3bpp(current: &mut [u8], prev: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shift_elements_right::<4>
      Src: /src/image-png/src/filter/simd.rs:206,1
    - Dst: as_mut_array
      Src: /src/image-png/src/filter/simd.rs:207,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/filter/simd.rs:207,1
    - Dst: Simd<u8, 4>::as_array
      Src: /src/image-png/src/filter/simd.rs:207,1
    - Dst: Simd::from_array
      Src: /src/image-png/src/filter/simd.rs:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 4
    argNames:
    - current_a
    - b_vec
    - c_vec_initial
    - x_out
    argTypes:
    - Simd<u8, 4>
    - '&Simd<u8, 64>'
    - Simd<u8, 4>
    - '&mut Simd<u8, 64>'
    constantsTouched: []
    func_position:
      end: 244
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 244
    functionName: process_paeth_chunk_bpp4_s64
    functionSourceFile: /src/image-png/src/filter/simd.rs
    functionUses: 0
    functionsReached:
    - copy_from_slice
    - Simd<u8, 4>::as_array
    - shift_elements_right::<4>
    - as_mut_array
    - Simd::from_array
    linkageType: ''
    returnType: Simd
    signature: 'fn process_paeth_chunk_bpp4_s64(mut current_a: Simd<u8, 4>,b_vec:
      &Simd<u8, 64>,c_vec_initial: Simd<u8, 4>,x_out: &mut Simd<u8, 64>,) -> Simd<u8,
      4>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/image-png/src/filter/simd.rs:252,1
    - Dst: Default::default
      Src: /src/image-png/src/filter/simd.rs:253,1
    - Dst: len
      Src: /src/image-png/src/filter/simd.rs:256,1
    - Dst: split_at_mut
      Src: /src/image-png/src/filter/simd.rs:257,1
    - Dst: split_at
      Src: /src/image-png/src/filter/simd.rs:258,1
    - Dst: chunks_exact_mut
      Src: /src/image-png/src/filter/simd.rs:259,1
    - Dst: chunks_exact
      Src: /src/image-png/src/filter/simd.rs:260,1
    - Dst: zip
      Src: /src/image-png/src/filter/simd.rs:261,1
    - Dst: Simd::<u8, STRIDE_BYTES>::from_slice
      Src: /src/image-png/src/filter/simd.rs:264,1
    - Dst: Simd::<u8, STRIDE_BYTES>::from_slice
      Src: /src/image-png/src/filter/simd.rs:265,1
    - Dst: process_paeth_chunk_bpp4_s64
      Src: /src/image-png/src/filter/simd.rs:267,1
    - Dst: extract::<{ STRIDE_BYTES - BPP }, BPP>
      Src: /src/image-png/src/filter/simd.rs:270,1
    - Dst: copy_to_slice
      Src: /src/image-png/src/filter/simd.rs:272,1
    - Dst: to_array
      Src: /src/image-png/src/filter/simd.rs:276,1
    - Dst: to_array
      Src: /src/image-png/src/filter/simd.rs:277,1
    - Dst: chunks_exact_mut
      Src: /src/image-png/src/filter/simd.rs:278,1
    - Dst: zip
      Src: /src/image-png/src/filter/simd.rs:278,1
    - Dst: chunks_exact
      Src: /src/image-png/src/filter/simd.rs:280,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/simd.rs:283,1
    - Dst: filter_paeth_chosen
      Src: /src/image-png/src/filter/simd.rs:283,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:284,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:285,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:286,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/simd.rs:288,1
    - Dst: filter_paeth_chosen
      Src: /src/image-png/src/filter/simd.rs:288,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:289,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:290,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:291,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/simd.rs:293,1
    - Dst: filter_paeth_chosen
      Src: /src/image-png/src/filter/simd.rs:293,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:294,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:295,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:296,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/simd.rs:298,1
    - Dst: filter_paeth_chosen
      Src: /src/image-png/src/filter/simd.rs:298,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:299,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:300,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:301,1
    - Dst: TryInto::<&mut [u8; BPP]>::try_into
      Src: /src/image-png/src/filter/simd.rs:304,1
    - Dst: unwrap
      Src: /src/image-png/src/filter/simd.rs:304,1
    - Dst: try_into
      Src: /src/image-png/src/filter/simd.rs:306,1
    - Dst: unwrap
      Src: /src/image-png/src/filter/simd.rs:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 113
    argCount: 2
    argNames:
    - row
    - prev_row
    argTypes:
    - '&mut [u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 308
      start: 248
    functionDepth: 20
    functionLinenumber: 248
    functionLinenumberEnd: 308
    functionName: paeth_unfilter_4bpp
    functionSourceFile: /src/image-png/src/filter/simd.rs
    functionUses: 1
    functionsReached:
    - chunks_exact_mut
    - process_paeth_chunk_bpp4_s64
    - to_array
    - try_into
    - TryInto::<&mut [u8; BPP]>::try_into
    - into
    - extract::<{ STRIDE_BYTES - BPP }, BPP>
    - zip
    - split_at
    - len
    - split_at_mut
    - chunks_exact
    - Default::default
    - filter_paeth_chosen
    - wrapping_add
    - Simd::<u8, STRIDE_BYTES>::from_slice
    - unwrap
    - copy_to_slice
    linkageType: ''
    returnType: void
    signature: 'pub fn paeth_unfilter_4bpp(row: &mut [u8], prev_row: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: Filter::default
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - RowFilter
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: Filter::from
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: RowFilter) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - compression
    argTypes:
    - Compression
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: Filter::from_simple
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn from_simple(compression: Compression) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: RowFilter::default
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/filter/mod.rs:81,1
    - Dst: Some
      Src: /src/image-png/src/filter/mod.rs:82,1
    - Dst: Some
      Src: /src/image-png/src/filter/mod.rs:83,1
    - Dst: Some
      Src: /src/image-png/src/filter/mod.rs:84,1
    - Dst: Some
      Src: /src/image-png/src/filter/mod.rs:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: RowFilter::from_u8
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_u8(n: u8) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/filter/mod.rs:92,1
    - Dst: Some
      Src: /src/image-png/src/filter/mod.rs:93,1
    - Dst: Some
      Src: /src/image-png/src/filter/mod.rs:94,1
    - Dst: Some
      Src: /src/image-png/src/filter/mod.rs:95,1
    - Dst: Some
      Src: /src/image-png/src/filter/mod.rs:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - strat
    argTypes:
    - Filter
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: RowFilter::from_method
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_method(strat: Filter) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [u8]::copy_from_slice'
      Src: /src/image-png/src/filter/mod.rs:378,1
    - Dst: chunks_exact_mut
      Src: /src/image-png/src/filter/mod.rs:382,1
    - Dst: chunks_exact
      Src: /src/image-png/src/filter/mod.rs:383,1
    - Dst: chunks_exact
      Src: /src/image-png/src/filter/mod.rs:384,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:386,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:386,1
    - Dst: wrapping_sub
      Src: /src/image-png/src/filter/mod.rs:388,1
    - Dst: into_remainder
      Src: /src/image-png/src/filter/mod.rs:392,1
    - Dst: iter_mut
      Src: /src/image-png/src/filter/mod.rs:392,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:392,1
    - Dst: remainder
      Src: /src/image-png/src/filter/mod.rs:395,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:392,1
    - Dst: remainder
      Src: /src/image-png/src/filter/mod.rs:396,1
    - Dst: wrapping_sub
      Src: /src/image-png/src/filter/mod.rs:398,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/filter/mod.rs:401,1
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image-png/src/filter/mod.rs:405,1
    - Dst: '&[u8]::chunks_exact'
      Src: /src/image-png/src/filter/mod.rs:406,1
    - Dst: '&[u8]::chunks_exact'
      Src: /src/image-png/src/filter/mod.rs:407,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:409,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:409,1
    - Dst: wrapping_sub
      Src: /src/image-png/src/filter/mod.rs:411,1
    - Dst: into_remainder
      Src: /src/image-png/src/filter/mod.rs:415,1
    - Dst: iter_mut
      Src: /src/image-png/src/filter/mod.rs:415,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:415,1
    - Dst: remainder
      Src: /src/image-png/src/filter/mod.rs:418,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:415,1
    - Dst: remainder
      Src: /src/image-png/src/filter/mod.rs:419,1
    - Dst: wrapping_sub
      Src: /src/image-png/src/filter/mod.rs:421,1
    - Dst: chunks_exact_mut
      Src: /src/image-png/src/filter/mod.rs:426,1
    - Dst: chunks_exact
      Src: /src/image-png/src/filter/mod.rs:427,1
    - Dst: chunks_exact
      Src: /src/image-png/src/filter/mod.rs:428,1
    - Dst: chunks_exact
      Src: /src/image-png/src/filter/mod.rs:429,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:431,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:431,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:431,1
    - Dst: wrapping_sub
      Src: /src/image-png/src/filter/mod.rs:442,1
    - Dst: into_remainder
      Src: /src/image-png/src/filter/mod.rs:448,1
    - Dst: iter_mut
      Src: /src/image-png/src/filter/mod.rs:448,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:448,1
    - Dst: remainder
      Src: /src/image-png/src/filter/mod.rs:451,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:448,1
    - Dst: remainder
      Src: /src/image-png/src/filter/mod.rs:452,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:448,1
    - Dst: remainder
      Src: /src/image-png/src/filter/mod.rs:453,1
    - Dst: wrapping_sub
      Src: /src/image-png/src/filter/mod.rs:455,1
    - Dst: wrapping_sub
      Src: /src/image-png/src/filter/mod.rs:459,1
    - Dst: chunks_exact_mut
      Src: /src/image-png/src/filter/mod.rs:464,1
    - Dst: chunks_exact
      Src: /src/image-png/src/filter/mod.rs:465,1
    - Dst: chunks_exact
      Src: /src/image-png/src/filter/mod.rs:466,1
    - Dst: chunks_exact
      Src: /src/image-png/src/filter/mod.rs:467,1
    - Dst: chunks_exact
      Src: /src/image-png/src/filter/mod.rs:468,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:470,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:470,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:470,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:470,1
    - Dst: wrapping_sub
      Src: /src/image-png/src/filter/mod.rs:477,1
    - Dst: paeth::filter_paeth_fpnge
      Src: /src/image-png/src/filter/mod.rs:477,1
    - Dst: into_remainder
      Src: /src/image-png/src/filter/mod.rs:481,1
    - Dst: iter_mut
      Src: /src/image-png/src/filter/mod.rs:481,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:481,1
    - Dst: remainder
      Src: /src/image-png/src/filter/mod.rs:484,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:481,1
    - Dst: remainder
      Src: /src/image-png/src/filter/mod.rs:485,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:481,1
    - Dst: remainder
      Src: /src/image-png/src/filter/mod.rs:486,1
    - Dst: zip
      Src: /src/image-png/src/filter/mod.rs:481,1
    - Dst: remainder
      Src: /src/image-png/src/filter/mod.rs:487,1
    - Dst: wrapping_sub
      Src: /src/image-png/src/filter/mod.rs:489,1
    - Dst: paeth::filter_paeth_fpnge
      Src: /src/image-png/src/filter/mod.rs:489,1
    - Dst: wrapping_sub
      Src: /src/image-png/src/filter/mod.rs:493,1
    - Dst: paeth::filter_paeth_fpnge
      Src: /src/image-png/src/filter/mod.rs:493,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 291
    argCount: 6
    argNames:
    - method
    - bpp
    - len
    - previous
    - current
    - output
    argTypes:
    - RowFilter
    - usize
    - usize
    - '&[u8]'
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 498
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 498
    functionName: filter_internal
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 0
    functionsReached:
    - chunks_exact_mut
    - copy_from_slice
    - '&[u8]::chunks_exact'
    - zip
    - remainder
    - chunks_exact
    - '&mut [u8]::chunks_exact_mut'
    - '&mut [u8]::copy_from_slice'
    - into_remainder
    - iter_mut
    - paeth::filter_paeth_fpnge
    - wrapping_sub
    linkageType: ''
    returnType: RowFilter
    signature: 'fn filter_internal(method: RowFilter,bpp: usize,len: usize,previous:
      &[u8],current: &[u8],output: &mut [u8],) -> RowFilter'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image-png/src/filter/mod.rs:512,1
    - Dst: filter_internal
      Src: /src/image-png/src/filter/mod.rs:513,1
    - Dst: filter_internal
      Src: /src/image-png/src/filter/mod.rs:525,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 6
    argNames:
    - f
    - bpp
    - len
    - previous
    - current
    - output
    argTypes:
    - impl Fn(&[u8]) -> u64
    - usize
    - usize
    - '&[u8]'
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 528
      start: 500
    functionDepth: 20
    functionLinenumber: 500
    functionLinenumberEnd: 528
    functionName: adaptive_filter
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 0
    functionsReached:
    - iter
    - filter_internal
    linkageType: ''
    returnType: RowFilter
    signature: 'fn adaptive_filter(f: impl Fn(&[u8]) -> u64,bpp: usize,len: usize,previous:
      &[u8],current: &[u8],output: &mut [u8],) -> RowFilter'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_usize
      Src: /src/image-png/src/filter/mod.rs:537,1
    - Dst: '&[u8]::len'
      Src: /src/image-png/src/filter/mod.rs:538,1
    - Dst: adaptive_filter
      Src: /src/image-png/src/filter/mod.rs:541,1
    - Dst: adaptive_filter
      Src: /src/image-png/src/filter/mod.rs:542,1
    - Dst: RowFilter::from_method
      Src: /src/image-png/src/filter/mod.rs:544,1
    - Dst: Option::unwrap
      Src: /src/image-png/src/filter/mod.rs:544,1
    - Dst: filter_internal
      Src: /src/image-png/src/filter/mod.rs:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 5
    argNames:
    - method
    - bpp
    - previous
    - current
    - output
    argTypes:
    - Filter
    - BytesPerPixel
    - '&[u8]'
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 548
      start: 530
    functionDepth: 20
    functionLinenumber: 530
    functionLinenumberEnd: 548
    functionName: filter
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 10
    functionsReached:
    - into_usize
    - Option::unwrap
    - filter_internal
    - RowFilter::from_method
    - '&[u8]::len'
    - adaptive_filter
    linkageType: ''
    returnType: RowFilter
    signature: 'pub(crate) fn filter(method: Filter,bpp: BytesPerPixel,previous: &[u8],current:
      &[u8],output: &mut [u8],) -> RowFilter'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::leading_zeros
      Src: /src/image-png/src/filter/mod.rs:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - i
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 555
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 555
    functionName: ilog2i
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 0
    functionsReached:
    - Result::leading_zeros
    linkageType: ''
    returnType: u32
    signature: 'fn ilog2i(i: u32) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnfilterBuf::chunks_exact
      Src: /src/image-png/src/filter/mod.rs:562,1
    - Dst: Result::remainder
      Src: /src/image-png/src/filter/mod.rs:578,1
    - Dst: ilog2i
      Src: /src/image-png/src/filter/mod.rs:597,1
    - Dst: u64::saturating_sub
      Src: /src/image-png/src/filter/mod.rs:600,1
    - Dst: ilog2i
      Src: /src/image-png/src/filter/mod.rs:600,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 88
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 605
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 605
    functionName: entropy
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 0
    functionsReached:
    - UnfilterBuf::chunks_exact
    - ilog2i
    - u64::saturating_sub
    - Result::remainder
    linkageType: ''
    returnType: u64
    signature: 'fn entropy(buf: &[u8]) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnfilterBuf::chunks_exact
      Src: /src/image-png/src/filter/mod.rs:611,1
    - Dst: u64::from
      Src: /src/image-png/src/filter/mod.rs:618,1
    - Dst: unsigned_abs
      Src: /src/image-png/src/filter/mod.rs:618,1
    - Dst: saturating_add
      Src: /src/image-png/src/filter/mod.rs:620,1
    - Dst: remainder
      Src: /src/image-png/src/filter/mod.rs:624,1
    - Dst: u64::from
      Src: /src/image-png/src/filter/mod.rs:625,1
    - Dst: unsigned_abs
      Src: /src/image-png/src/filter/mod.rs:625,1
    - Dst: saturating_add
      Src: /src/image-png/src/filter/mod.rs:628,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 629
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 629
    functionName: sum_buffer
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 0
    functionsReached:
    - unsigned_abs
    - saturating_add
    - remainder
    - u64::from
    - UnfilterBuf::chunks_exact
    linkageType: ''
    returnType: u64
    signature: 'fn sum_buffer(buf: &[u8]) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter::repeat
      Src: /src/image-png/src/filter/mod.rs:640,1
    - Dst: u8::take
      Src: /src/image-png/src/filter/mod.rs:640,1
    - Dst: into
      Src: /src/image-png/src/filter/mod.rs:640,1
    - Dst: Wrapper::collect
      Src: /src/image-png/src/filter/mod.rs:640,1
    - Dst: collect
      Src: /src/image-png/src/filter/mod.rs:641,1
    - Dst: clone
      Src: /src/image-png/src/filter/mod.rs:642,1
    - Dst: filter
      Src: /src/image-png/src/filter/mod.rs:646,1
    - Dst: into
      Src: /src/image-png/src/filter/mod.rs:646,1
    - Dst: unfilter
      Src: /src/image-png/src/filter/mod.rs:647,1
    - Dst: iter
      Src: /src/image-png/src/filter/mod.rs:672,1
    - Dst: iter
      Src: /src/image-png/src/filter/mod.rs:673,1
    - Dst: roundtrip
      Src: /src/image-png/src/filter/mod.rs:674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 677
      start: 637
    functionDepth: 21
    functionLinenumber: 637
    functionLinenumberEnd: 677
    functionName: test::roundtrip
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 0
    functionsReached:
    - clone
    - into
    - u8::take
    - filter
    - collect
    - unfilter
    - Wrapper::collect
    - iter::repeat
    - iter
    - roundtrip
    linkageType: ''
    returnType: void
    signature: fn roundtrip()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: collect
      Src: /src/image-png/src/filter/mod.rs:683,1
    - Dst: collect
      Src: /src/image-png/src/filter/mod.rs:684,1
    - Dst: clone
      Src: /src/image-png/src/filter/mod.rs:685,1
    - Dst: filter
      Src: /src/image-png/src/filter/mod.rs:689,1
    - Dst: into
      Src: /src/image-png/src/filter/mod.rs:689,1
    - Dst: unfilter
      Src: /src/image-png/src/filter/mod.rs:690,1
    - Dst: iter
      Src: /src/image-png/src/filter/mod.rs:715,1
    - Dst: iter
      Src: /src/image-png/src/filter/mod.rs:716,1
    - Dst: roundtrip
      Src: /src/image-png/src/filter/mod.rs:717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 720
      start: 680
    functionDepth: 21
    functionLinenumber: 680
    functionLinenumberEnd: 720
    functionName: test::roundtrip_ascending_previous_line
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 0
    functionsReached:
    - clone
    - into
    - filter
    - unfilter
    - collect
    - iter
    - roundtrip
    linkageType: ''
    returnType: void
    signature: fn roundtrip_ascending_previous_line()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: .=128).sum::<u64>
      Src: /src/image-png/src/filter/mod.rs:728,1
    - Dst: .=127).sum::<u64>
      Src: /src/image-png/src/filter/mod.rs:728,1
    - Dst: collect
      Src: /src/image-png/src/filter/mod.rs:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 732
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 732
    functionName: test::sum_buffer_test
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 0
    functionsReached:
    - collect
    - .=127).sum::<u64>
    - .=128).sum::<u64>
    linkageType: ''
    returnType: void
    signature: fn sum_buffer_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i16::from
      Src: /src/image-png/src/filter/paeth.rs:10,1
    - Dst: i16::from
      Src: /src/image-png/src/filter/paeth.rs:10,1
    - Dst: abs
      Src: /src/image-png/src/filter/paeth.rs:10,1
    - Dst: i16::from
      Src: /src/image-png/src/filter/paeth.rs:11,1
    - Dst: i16::from
      Src: /src/image-png/src/filter/paeth.rs:11,1
    - Dst: abs
      Src: /src/image-png/src/filter/paeth.rs:11,1
    - Dst: i16::from
      Src: /src/image-png/src/filter/paeth.rs:12,1
    - Dst: i16::from
      Src: /src/image-png/src/filter/paeth.rs:12,1
    - Dst: i16::from
      Src: /src/image-png/src/filter/paeth.rs:12,1
    - Dst: i16::from
      Src: /src/image-png/src/filter/paeth.rs:12,1
    - Dst: abs
      Src: /src/image-png/src/filter/paeth.rs:12,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - u8
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 26
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 26
    functionName: filter_paeth
    functionSourceFile: /src/image-png/src/filter/paeth.rs
    functionUses: 0
    functionsReached:
    - i16::from
    - abs
    linkageType: ''
    returnType: u8
    signature: 'pub(super) fn filter_paeth(a: u8, b: u8, c: u8) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/image-png/src/filter/paeth.rs:38,1
    - Dst: max
      Src: /src/image-png/src/filter/paeth.rs:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - i16
    - i16
    - i16
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: filter_paeth_stbi
    functionSourceFile: /src/image-png/src/filter/paeth.rs
    functionUses: 1
    functionsReached:
    - min
    - max
    linkageType: ''
    returnType: u8
    signature: 'pub(super) fn filter_paeth_stbi(a: i16, b: i16, c: i16) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/image-png/src/filter/paeth.rs:69,1
    - Dst: min
      Src: /src/image-png/src/filter/paeth.rs:69,1
    - Dst: max
      Src: /src/image-png/src/filter/paeth.rs:70,1
    - Dst: min
      Src: /src/image-png/src/filter/paeth.rs:70,1
    - Dst: max
      Src: /src/image-png/src/filter/paeth.rs:72,1
    - Dst: min
      Src: /src/image-png/src/filter/paeth.rs:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - a
    - b
    - c
    argTypes:
    - u8
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 84
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 84
    functionName: filter_paeth_fpnge
    functionSourceFile: /src/image-png/src/filter/paeth.rs
    functionUses: 1
    functionsReached:
    - min
    - max
    linkageType: ''
    returnType: u8
    signature: 'pub(super) fn filter_paeth_fpnge(a: u8, b: u8, c: u8) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filter_paeth
      Src: /src/image-png/src/filter/paeth.rs:388,1
    - Dst: filter_paeth_fpnge
      Src: /src/image-png/src/filter/paeth.rs:389,1
    - Dst: filter_paeth_stbi
      Src: /src/image-png/src/filter/paeth.rs:390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 397
    functionName: tests::paeth_impls_are_equivalent
    functionSourceFile: /src/image-png/src/filter/paeth.rs
    functionUses: 0
    functionsReached:
    - filter_paeth_stbi
    - filter_paeth
    - filter_paeth_fpnge
    linkageType: ''
    returnType: void
    signature: fn paeth_impls_are_equivalent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: png::Decoder::new_with_limits
      Src: /src/image-png/fuzz/fuzz_targets/decode.rs:9,1
    - Dst: Cursor::new
      Src: /src/image-png/fuzz/fuzz_targets/decode.rs:9,1
    - Dst: Decoder::read_info
      Src: /src/image-png/fuzz/fuzz_targets/decode.rs:10,1
    - Dst: Result::map_err
      Src: /src/image-png/fuzz/fuzz_targets/decode.rs:10,1
    - Dst: Reader::info
      Src: /src/image-png/fuzz/fuzz_targets/decode.rs:12,1
    - Dst: '&Info::raw_bytes'
      Src: /src/image-png/fuzz/fuzz_targets/decode.rs:12,1
    - Dst: Err
      Src: /src/image-png/fuzz/fuzz_targets/decode.rs:13,1
    - Dst: Reader::next_frame
      Src: /src/image-png/fuzz/fuzz_targets/decode.rs:19,1
    - Dst: Some
      Src: /src/image-png/fuzz/fuzz_targets/decode.rs:20,1
    - Dst: Ok
      Src: /src/image-png/fuzz/fuzz_targets/decode.rs:23,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 24
      start: 7
    functionDepth: 14
    functionLinenumber: 7
    functionLinenumberEnd: 24
    functionName: png_decode
    functionSourceFile: /src/image-png/fuzz/fuzz_targets/decode.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - Result::map_err
    - '&Info::raw_bytes'
    - Reader::next_frame
    - Decoder::read_info
    - Ok
    - Err
    - png::Decoder::new_with_limits
    - Reader::info
    - Some
    linkageType: ''
    returnType: Result
    signature: 'fn png_decode(data: &[u8]) -> Result<(Option<png::OutputInfo>, Vec<u8>),
      ()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Config::parse
      Src: /src/image-png/examples/pngcheck.rs:273,1
    - Dst: to_str
      Src: /src/image-png/examples/pngcheck.rs:276,1
    - Dst: filter
      Src: /src/image-png/examples/pngcheck.rs:276,1
    - Dst: contains
      Src: /src/image-png/examples/pngcheck.rs:276,1
    - Dst: glob::glob
      Src: /src/image-png/examples/pngcheck.rs:277,1
    - Dst: map_err
      Src: /src/image-png/examples/pngcheck.rs:277,1
    - Dst: io::Error::new
      Src: /src/image-png/examples/pngcheck.rs:278,1
    - Dst: and_then
      Src: /src/image-png/examples/pngcheck.rs:277,1
    - Dst: try_for_each
      Src: /src/image-png/examples/pngcheck.rs:280,1
    - Dst: map_err
      Src: /src/image-png/examples/pngcheck.rs:281,1
    - Dst: io::Error::new
      Src: /src/image-png/examples/pngcheck.rs:282,1
    - Dst: and_then
      Src: /src/image-png/examples/pngcheck.rs:281,1
    - Dst: check_image
      Src: /src/image-png/examples/pngcheck.rs:283,1
    - Dst: check_image
      Src: /src/image-png/examples/pngcheck.rs:287,1
    - Dst: unwrap_or_else
      Src: /src/image-png/examples/pngcheck.rs:290,1
    - Dst: std::process::exit
      Src: /src/image-png/examples/pngcheck.rs:292,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 272
    functionDepth: 21
    functionLinenumber: 272
    functionLinenumberEnd: 295
    functionName: main
    functionSourceFile: /src/image-png/examples/pngcheck.rs
    functionUses: 0
    functionsReached:
    - try_for_each
    - check_image
    - map_err
    - unwrap_or_else
    - std::process::exit
    - to_str
    - filter
    - Config::parse
    - glob::glob
    - io::Error::new
    - and_then
    - contains
    linkageType: ''
    returnType: void
    signature: fn main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: png_decode
      Src: /src/image-png/fuzz/fuzz_targets/decode.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 15
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: fuzz_target
    functionSourceFile: /src/image-png/fuzz/fuzz_targets/decode.rs
    functionUses: 0
    functionsReached:
    - png_decode
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filter_from_u8
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:20,1
    - Dst: BitDepth::from_u8
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:21,1
    - Dst: u32::pow
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:22,1
    - Dst: ColorType::from_u8
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:24,1
    - Dst: '&''a [u8]::is_empty'
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:26,1
    - Dst: '&''a [u8]::len'
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:26,1
    - Dst: '&''a [u8]::len'
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:31,1
    - Dst: png::DeflateCompression::Level
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:38,1
    - Dst: raw_row_length_from_width
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:46,1
    - Dst: Result::len
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:47,1
    - Dst: Vec::new
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:52,1
    - Dst: png::Encoder::new
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:54,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:55,1
    - Dst: Encoder::set_color
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:56,1
    - Dst: Encoder::set_filter
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:57,1
    - Dst: Encoder::set_deflate_compression
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:58,1
    - Dst: Encoder::set_palette
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:60,1
    - Dst: Encoder::write_header
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:64,1
    - Dst: Result::ok
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:64,1
    - Dst: Result::write_image_data
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:65,1
    - Dst: Result::expect
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:65,1
    - Dst: Some
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:67,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 82
    argCount: 7
    argNames:
    - width
    - filter
    - compression
    - color_type
    - raw_bit_depth
    - raw_palette
    - data
    argTypes:
    - u8
    - u8
    - u8
    - u8
    - u8
    - '&''a [u8]'
    - '&''a [u8]'
    constantsTouched: []
    func_position:
      end: 68
      start: 16
    functionDepth: 22
    functionLinenumber: 16
    functionLinenumberEnd: 68
    functionName: encode_png
    functionSourceFile: /src/image-png/fuzz/fuzz_targets/roundtrip.rs
    functionUses: 0
    functionsReached:
    - filter_from_u8
    - Result::write_image_data
    - Encoder::set_deflate_compression
    - raw_row_length_from_width
    - Encoder::set_depth
    - Result::ok
    - '&''a [u8]::len'
    - Result::expect
    - Encoder::set_color
    - BitDepth::from_u8
    - ColorType::from_u8
    - Encoder::write_header
    - Some
    - Encoder::set_palette
    - Result::len
    - png::Encoder::new
    - png::DeflateCompression::Level
    - Vec::new
    - '&''a [u8]::is_empty'
    - u32::pow
    - Encoder::set_filter
    linkageType: ''
    returnType: Option
    signature: 'fn encode_png<''a>(width: u8, filter: u8, compression: u8, color_type:
      u8, raw_bit_depth: u8, raw_palette: &''a [u8], data: &''a [u8]) -> Option<(&''a
      [u8], Vec<u8>)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: png::Decoder::new
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:71,1
    - Dst: Cursor::new
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:71,1
    - Dst: Self::read_info
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:72,1
    - Dst: Result::unwrap
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:72,1
    - Dst: Reader::next_frame
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:76,1
    - Dst: Result::unwrap
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 20
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: decode_png
    functionSourceFile: /src/image-png/fuzz/fuzz_targets/roundtrip.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - png::Decoder::new
    - Cursor::new
    - Reader::next_frame
    - Self::read_info
    linkageType: ''
    returnType: (png::OutputInfo, Vec
    signature: 'fn decode_png(data: &[u8]) -> (png::OutputInfo, Vec<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: filter_from_u8
    functionSourceFile: /src/image-png/fuzz/fuzz_targets/roundtrip.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Filter
    signature: 'fn filter_from_u8(input: u8) -> Filter'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: samples
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:95,1
    - Dst: usize::from
      Src: /src/image-png/fuzz/fuzz_targets/roundtrip.rs:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - depth
    - color
    - width
    argTypes:
    - BitDepth
    - ColorType
    - u32
    constantsTouched: []
    func_position:
      end: 106
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 106
    functionName: raw_row_length_from_width
    functionSourceFile: /src/image-png/fuzz/fuzz_targets/roundtrip.rs
    functionUses: 11
    functionsReached:
    - usize::from
    - samples
    linkageType: ''
    returnType: usize
    signature: 'fn raw_row_length_from_width(depth: BitDepth, color: ColorType, width:
      u32) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:180,1
    - Dst: Cursor::new
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:180,1
    - Dst: Box::new
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:181,1
    - Dst: smal_buf::SmalBuf::new
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:181,1
    - Dst: Result::to_owned
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:181,1
    - Dst: Box::new
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:182,1
    - Dst: intermittent_eofs::IntermittentEofs::new
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:182,1
    - Dst: smal_buf::SmalBuf::new
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:183,1
    - Dst: Result::to_owned
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:183,1
    - Dst: Self::controller
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:185,1
    - Dst: into_iter
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:195,1
    - Dst: map
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:195,1
    - Dst: png::Decoder::new_with_limits
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:200,1
    - Dst: "into_iter()\n        .map(|data_reader| {\n            // Small limits,\
        \ we don't need them hopefully.\n            let limits = png::Limits { bytes:\
        \ 1 << 16 };\n            png::Decoder::new_with_limits(data_reader, limits)\n\
        \        })\n        .collect::<Vec<_>>"
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:195,1
    - Dst: disable_intermittent_eofs
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:206,1
    - Dst: into_iter
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:207,1
    - Dst: map
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:207,1
    - Dst: read_info
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:209,1
    - Dst: assert_all_results_are_consistent
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:207,1
    - Dst: "into_iter()\n        .map(|decoder| decoder.read_info())\n        .assert_all_results_are_consistent()\n\
        \        .collect::<Result<Vec<_>, _>>"
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:207,1
    - Dst: map_err
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:207,1
    - Dst: enable_intermittent_eofs
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:213,1
    - Dst: iter
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:215,1
    - Dst: map
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:215,1
    - Dst: Vec::info
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:217,1
    - Dst: Result::clone
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:217,1
    - Dst: assert_all_items_are_same
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:215,1
    - Dst: assert_same_info
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:219,1
    - Dst: Result::raw_bytes
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:225,1
    - Dst: Err
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:226,1
    - Dst: iter_mut
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:231,1
    - Dst: zip
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:231,1
    - Dst: iter_mut
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:233,1
    - Dst: enumerate
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:231,1
    - Dst: map
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:231,1
    - Dst: Some
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:237,1
    - Dst: retry_after_eofs
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:241,1
    - Dst: next_frame
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:242,1
    - Dst: T::as_mut_slice
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:242,1
    - Dst: and_then
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:242,1
    - Dst: finish
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:243,1
    - Dst: assert_all_results_are_consistent
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:231,1
    - Dst: "iter_mut()\n            .zip(buffers.iter_mut())\n            .enumerate()\n\
        \            .map(|(i, (png_reader, buffer))| {\n                let eof_controller\
        \ = if i == 2 {\n                    Some(&intermittent_eofs_controller)\n\
        \                } else {\n                    None\n                };\n\
        \                retry_after_eofs(eof_controller, || {\n                 \
        \   png_reader.next_frame(buffer.as_mut_slice())\n                       \
        \ .and_then(|_| png_reader.finish())\n                })\n            })\n\
        \            .assert_all_results_are_consistent()\n            .collect::<Result<Vec<_>,\
        \ _>>"
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:231,1
    - Dst: map_err
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:231,1
    - Dst: into_iter
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:249,1
    - Dst: assert_all_items_are_equal
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:249,1
    - Dst: iter
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:250,1
    - Dst: assert_all_items_are_equal
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:250,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 116
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&''a [u8]'
    constantsTouched: []
    func_position:
      end: 252
      start: 179
    functionDepth: 20
    functionLinenumber: 179
    functionLinenumberEnd: 252
    functionName: test_data
    functionSourceFile: /src/image-png/fuzz/fuzz_targets/buf_independent.rs
    functionUses: 0
    functionsReached:
    - map_err
    - map
    - Self::controller
    - into_iter
    - enumerate
    - Cursor::new
    - intermittent_eofs::IntermittentEofs::new
    - retry_after_eofs
    - disable_intermittent_eofs
    - Result::clone
    - Err
    - png::Decoder::new_with_limits
    - iter_mut
    - enable_intermittent_eofs
    - T::as_mut_slice
    - assert_all_items_are_same
    - Vec::info
    - iter
    - Some
    - "into_iter()\n        .map(|decoder| decoder.read_info())\n        .assert_all_results_are_consistent()\n\
      \        .collect::<Result<Vec<_>, _>>"
    - zip
    - read_info
    - assert_all_results_are_consistent
    - next_frame
    - "into_iter()\n        .map(|data_reader| {\n            // Small limits, we\
      \ don't need them hopefully.\n            let limits = png::Limits { bytes:\
      \ 1 << 16 };\n            png::Decoder::new_with_limits(data_reader, limits)\n\
      \        })\n        .collect::<Vec<_>>"
    - Result::raw_bytes
    - assert_same_info
    - "iter_mut()\n            .zip(buffers.iter_mut())\n            .enumerate()\n\
      \            .map(|(i, (png_reader, buffer))| {\n                let eof_controller\
      \ = if i == 2 {\n                    Some(&intermittent_eofs_controller)\n \
      \               } else {\n                    None\n                };\n   \
      \             retry_after_eofs(eof_controller, || {\n                    png_reader.next_frame(buffer.as_mut_slice())\n\
      \                        .and_then(|_| png_reader.finish())\n              \
      \  })\n            })\n            .assert_all_results_are_consistent()\n  \
      \          .collect::<Result<Vec<_>, _>>"
    - Result::to_owned
    - finish
    - smal_buf::SmalBuf::new
    - Box::new
    - and_then
    - assert_all_items_are_equal
    linkageType: ''
    returnType: Result
    signature: 'fn test_data<''a>(data: &''a [u8]) -> Result<(), ()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&Self::Target::as_ref'
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:260,1
    - Dst: (impl BufRead + Seek, impl Write)::kind
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:262,1
    - Dst: did_reach_inner_eof
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:264,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - eof_controller
    - f
    argTypes:
    - Option<&std::rc::Rc<intermittent_eofs::EofController>>
    - impl FnMut() -> Result<T, png::DecodingError>
    constantsTouched: []
    func_position:
      end: 274
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 274
    functionName: retry_after_eofs
    functionSourceFile: /src/image-png/fuzz/fuzz_targets/buf_independent.rs
    functionUses: 1
    functionsReached:
    - did_reach_inner_eof
    - '&Self::Target::as_ref'
    - (impl BufRead + Seek, impl Write)::kind
    linkageType: ''
    returnType: Result
    signature: 'fn retry_after_eofs<T>(eof_controller: Option<&std::rc::Rc<intermittent_eofs::EofController>>,mut
      f: impl FnMut() -> Result<T, png::DecodingError>,) -> Result<T, png::DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - '&png::Info'
    - '&png::Info'
    constantsTouched: []
    func_position:
      end: 293
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 293
    functionName: assert_same_info
    functionSourceFile: /src/image-png/fuzz/fuzz_targets/buf_independent.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn assert_same_info(lhs: &png::Info, rhs: &png::Info)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: collect::<Vec<_>>
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:306,1
    - Dst: iter
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:308,1
    - Dst: any
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:308,1
    - Dst: is_err
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:308,1
    - Dst: iter
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:309,1
    - Dst: any
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:309,1
    - Dst: is_ok
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:309,1
    - Dst: iter
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:313,1
    - Dst: map
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:313,1
    - Dst: as_ref
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:313,1
    - Dst: map
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:313,1
    - Dst: enumerate
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:314,1
    - Dst: into_iter
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 298
    functionDepth: 27
    functionLinenumber: 298
    functionLinenumberEnd: 321
    functionName: IteratorExtensionsForFuzzing::assert_all_results_are_consistent
    functionSourceFile: /src/image-png/fuzz/fuzz_targets/buf_independent.rs
    functionUses: 0
    functionsReached:
    - map
    - is_ok
    - into_iter
    - enumerate
    - is_err
    - collect::<Vec<_>>
    - any
    - iter
    - as_ref
    linkageType: ''
    returnType: impl Iterator
    signature: 'fn assert_all_results_are_consistent<T>(self) -> impl Iterator<Item
      = Self::Item>whereSelf: Iterator<Item = Result<T, png::DecodingError>>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IteratorExtensionsForFuzzing::assert_all_items_are_same
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 330
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 330
    functionName: IteratorExtensionsForFuzzing::assert_all_items_are_equal
    functionSourceFile: /src/image-png/fuzz/fuzz_targets/buf_independent.rs
    functionUses: 0
    functionsReached:
    - IteratorExtensionsForFuzzing::assert_all_items_are_same
    linkageType: ''
    returnType: Self::Item
    signature: 'fn assert_all_items_are_equal(self) -> Self::ItemwhereSelf::Item:
      Debug + Eq,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IteratorExtensionsForFuzzing::enumerate
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:338,1
    - Dst: reduce
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:338,1
    - Dst: std::panic::AssertUnwindSafe
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:341,1
    - Dst: std::panic::AssertUnwindSafe
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:342,1
    - Dst: std::panic::AssertUnwindSafe
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:343,1
    - Dst: std::panic::catch_unwind
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:344,1
    - Dst: assert_same
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:344,1
    - Dst: std::panic::resume_unwind
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:350,1
    - Dst: map
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:338,1
    - Dst: expect
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - assert_same
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 359
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 359
    functionName: IteratorExtensionsForFuzzing::assert_all_items_are_same
    functionSourceFile: /src/image-png/fuzz/fuzz_targets/buf_independent.rs
    functionUses: 1
    functionsReached:
    - reduce
    - map
    - std::panic::AssertUnwindSafe
    - assert_same
    - std::panic::resume_unwind
    - IteratorExtensionsForFuzzing::enumerate
    - std::panic::catch_unwind
    - expect
    linkageType: ''
    returnType: ''
    signature: 'fn assert_all_items_are_same<F>(self, mut assert_same: F) -> <Self
      as Iterator>::ItemwhereF: for<''a, ''b> FnMut(&''a Self::Item, &''b Self::Item),'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/examples/corpus-bench.rs:40,1
    - Dst: png::Encoder::new
      Src: /src/image-png/examples/corpus-bench.rs:41,1
    - Dst: Encoder::set_color
      Src: /src/image-png/examples/corpus-bench.rs:42,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/examples/corpus-bench.rs:43,1
    - Dst: Encoder::set_compression
      Src: /src/image-png/examples/corpus-bench.rs:44,1
    - Dst: Encoder::set_filter
      Src: /src/image-png/examples/corpus-bench.rs:49,1
    - Dst: Encoder::write_header
      Src: /src/image-png/examples/corpus-bench.rs:57,1
    - Dst: Result::unwrap
      Src: /src/image-png/examples/corpus-bench.rs:57,1
    - Dst: Encoder::write_image_data
      Src: /src/image-png/examples/corpus-bench.rs:58,1
    - Dst: Result::unwrap
      Src: /src/image-png/examples/corpus-bench.rs:58,1
    - Dst: Encoder::finish
      Src: /src/image-png/examples/corpus-bench.rs:59,1
    - Dst: Result::unwrap
      Src: /src/image-png/examples/corpus-bench.rs:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 5
    argNames:
    - args
    - dimensions
    - color_type
    - bit_depth
    - image
    argTypes:
    - '&Args'
    - (u32, u32)
    - png::ColorType
    - png::BitDepth
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 61
      start: 33
    functionDepth: 29
    functionLinenumber: 33
    functionLinenumberEnd: 61
    functionName: run_encode
    functionSourceFile: /src/image-png/examples/corpus-bench.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_filter
    - Result::unwrap
    - Encoder::set_color
    - Vec::new
    - Encoder::write_image_data
    - png::Encoder::new
    - Encoder::finish
    - Encoder::set_depth
    - Encoder::set_compression
    - Encoder::write_header
    linkageType: ''
    returnType: Vec
    signature: 'fn run_encode(args: &Args,dimensions: (u32, u32),color_type: png::ColorType,bit_depth:
      png::BitDepth,image: &[u8],) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Decoder::new
      Src: /src/image-png/examples/corpus-bench.rs:65,1
    - Dst: Cursor::new
      Src: /src/image-png/examples/corpus-bench.rs:65,1
    - Dst: Decoder::read_info
      Src: /src/image-png/examples/corpus-bench.rs:65,1
    - Dst: Result::unwrap
      Src: /src/image-png/examples/corpus-bench.rs:65,1
    - Dst: Reader::next_frame
      Src: /src/image-png/examples/corpus-bench.rs:66,1
    - Dst: Result::unwrap
      Src: /src/image-png/examples/corpus-bench.rs:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - image
    - output
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 20
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: run_decode
    functionSourceFile: /src/image-png/examples/corpus-bench.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Cursor::new
    - Decoder::new
    - Reader::next_frame
    - Decoder::read_info
    linkageType: ''
    returnType: void
    signature: 'fn run_decode(image: &[u8], output: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: display_interlaced
    functionSourceFile: /src/image-png/examples/pngcheck.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static str'
    signature: 'fn display_interlaced(i: bool) -> &''static str'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 2
    argNames:
    - bits
    - color
    argTypes:
    - u8
    - png::ColorType
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: display_image_type
    functionSourceFile: /src/image-png/examples/pngcheck.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: 'fn display_image_type(bits: u8, color: png::ColorType) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::from
      Src: /src/image-png/examples/pngcheck.rs:53,1
    - Dst: u8::from
      Src: /src/image-png/examples/pngcheck.rs:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - c
    - trns
    argTypes:
    - png::ColorType
    - bool
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: final_channels
    functionSourceFile: /src/image-png/examples/pngcheck.rs
    functionUses: 0
    functionsReached:
    - u8::from
    linkageType: ''
    returnType: u8
    signature: 'fn final_channels(c: png::ColorType, trns: bool) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::BufReader::new
      Src: /src/image-png/examples/pngcheck.rs:65,1
    - Dst: File::open
      Src: /src/image-png/examples/pngcheck.rs:65,1
    - Dst: P::as_ref
      Src: /src/image-png/examples/pngcheck.rs:66,1
    - Dst: to_string_lossy
      Src: /src/image-png/examples/pngcheck.rs:66,1
    - Dst: Reader::read
      Src: /src/image-png/examples/pngcheck.rs:67,1
    - Dst: png::StreamingDecoder::new
      Src: /src/image-png/examples/pngcheck.rs:70,1
    - Dst: Ok
      Src: /src/image-png/examples/pngcheck.rs:102,1
    - Dst: UnfilterBuf::is_empty
      Src: /src/image-png/examples/pngcheck.rs:111,1
    - Dst: Reader::read
      Src: /src/image-png/examples/pngcheck.rs:114,1
    - Dst: StreamingDecoder::update
      Src: /src/image-png/examples/pngcheck.rs:123,1
    - Dst: display_error
      Src: /src/image-png/examples/pngcheck.rs:127,1
    - Dst: png::DecodingError::IoError
      Src: /src/image-png/examples/pngcheck.rs:127,1
    - Dst: io::Error::new
      Src: /src/image-png/examples/pngcheck.rs:127,1
    - Dst: StreamingDecoder::info
      Src: /src/image-png/examples/pngcheck.rs:185,1
    - Dst: Option::unwrap
      Src: /src/image-png/examples/pngcheck.rs:185,1
    - Dst: StreamingDecoder::info
      Src: /src/image-png/examples/pngcheck.rs:186,1
    - Dst: Option::unwrap
      Src: /src/image-png/examples/pngcheck.rs:186,1
    - Dst: StreamingDecoder::info
      Src: /src/image-png/examples/pngcheck.rs:187,1
    - Dst: Option::unwrap
      Src: /src/image-png/examples/pngcheck.rs:187,1
    - Dst: StreamingDecoder::info
      Src: /src/image-png/examples/pngcheck.rs:188,1
    - Dst: Option::unwrap
      Src: /src/image-png/examples/pngcheck.rs:188,1
    - Dst: StreamingDecoder::info
      Src: /src/image-png/examples/pngcheck.rs:189,1
    - Dst: Option::unwrap
      Src: /src/image-png/examples/pngcheck.rs:189,1
    - Dst: StreamingDecoder::info
      Src: /src/image-png/examples/pngcheck.rs:204,1
    - Dst: Option::unwrap
      Src: /src/image-png/examples/pngcheck.rs:204,1
    - Dst: unwrap
      Src: /src/image-png/examples/pngcheck.rs:204,1
    - Dst: StreamingDecoder::info
      Src: /src/image-png/examples/pngcheck.rs:209,1
    - Dst: Option::unwrap
      Src: /src/image-png/examples/pngcheck.rs:209,1
    - Dst: unwrap
      Src: /src/image-png/examples/pngcheck.rs:209,1
    - Dst: display_error
      Src: /src/image-png/examples/pngcheck.rs:243,1
    - Dst: StreamingDecoder::info
      Src: /src/image-png/examples/pngcheck.rs:250,1
    - Dst: Option::unwrap
      Src: /src/image-png/examples/pngcheck.rs:250,1
    - Dst: StreamingDecoder::info
      Src: /src/image-png/examples/pngcheck.rs:255,1
    - Dst: Option::unwrap
      Src: /src/image-png/examples/pngcheck.rs:255,1
    - Dst: Result::clone
      Src: /src/image-png/examples/pngcheck.rs:256,1
    - Dst: decompress_text
      Src: /src/image-png/examples/pngcheck.rs:257,1
    - Dst: StreamingDecoder::info
      Src: /src/image-png/examples/pngcheck.rs:262,1
    - Dst: Option::unwrap
      Src: /src/image-png/examples/pngcheck.rs:262,1
    - Dst: Result::clone
      Src: /src/image-png/examples/pngcheck.rs:263,1
    - Dst: decompress_text
      Src: /src/image-png/examples/pngcheck.rs:264,1
    - Dst: Ok
      Src: /src/image-png/examples/pngcheck.rs:269,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 221
    argCount: 2
    argNames:
    - c
    - fname
    argTypes:
    - '&Config'
    - P
    constantsTouched: []
    func_position:
      end: 270
      start: 61
    functionDepth: 16
    functionLinenumber: 61
    functionLinenumberEnd: 270
    functionName: check_image
    functionSourceFile: /src/image-png/examples/pngcheck.rs
    functionUses: 1
    functionsReached:
    - StreamingDecoder::info
    - display_error
    - Option::unwrap
    - io::BufReader::new
    - StreamingDecoder::update
    - to_string_lossy
    - png::StreamingDecoder::new
    - File::open
    - png::DecodingError::IoError
    - io::Error::new
    - Result::clone
    - decompress_text
    - Ok
    - P::as_ref
    - unwrap
    - Reader::read
    - UnfilterBuf::is_empty
    linkageType: ''
    returnType: io::Result
    signature: 'fn check_image<P: AsRef<Path>>(c: &Config, fname: P) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image-png/benches/adam7.rs:16,1
    - Dst: iter
      Src: /src/image-png/benches/adam7.rs:17,1
    - Dst: bench_group_expand_full
      Src: /src/image-png/benches/adam7.rs:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 21
      start: 12
    functionDepth: 27
    functionLinenumber: 12
    functionLinenumberEnd: 21
    functionName: expand_all
    functionSourceFile: /src/image-png/benches/adam7.rs
    functionUses: 0
    functionsReached:
    - bench_group_expand_full
    - iter
    linkageType: ''
    returnType: void
    signature: 'fn expand_all(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: benchmark_group
      Src: /src/image-png/benches/adam7.rs:27,1
    - Dst: throughput
      Src: /src/image-png/benches/adam7.rs:29,1
    - Dst: Throughput::Bytes
      Src: /src/image-png/benches/adam7.rs:29,1
    - Dst: u64::from
      Src: /src/image-png/benches/adam7.rs:30,1
    - Dst: u64::from
      Src: /src/image-png/benches/adam7.rs:30,1
    - Dst: u64::from
      Src: /src/image-png/benches/adam7.rs:30,1
    - Dst: div_ceil
      Src: /src/image-png/benches/adam7.rs:30,1
    - Dst: usize::from
      Src: /src/image-png/benches/adam7.rs:33,1
    - Dst: div_ceil
      Src: /src/image-png/benches/adam7.rs:33,1
    - Dst: core::cell::RefCell::new
      Src: /src/image-png/benches/adam7.rs:35,1
    - Dst: core::hint::black_box
      Src: /src/image-png/benches/adam7.rs:36,1
    - Dst: bench_with_input
      Src: /src/image-png/benches/adam7.rs:38,1
    - Dst: iter
      Src: /src/image-png/benches/adam7.rs:39,1
    - Dst: png::benchable_apis::adam7
      Src: /src/image-png/benches/adam7.rs:39,1
    - Dst: borrow_mut
      Src: /src/image-png/benches/adam7.rs:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 3
    argNames:
    - c
    - sz
    - bpp
    argTypes:
    - '&mut Criterion'
    - u32
    - u8
    constantsTouched: []
    func_position:
      end: 41
      start: 26
    functionDepth: 27
    functionLinenumber: 26
    functionLinenumberEnd: 41
    functionName: bench_group_expand_full
    functionSourceFile: /src/image-png/benches/adam7.rs
    functionUses: 1
    functionsReached:
    - png::benchable_apis::adam7
    - throughput
    - bench_with_input
    - borrow_mut
    - usize::from
    - u64::from
    - div_ceil
    - core::cell::RefCell::new
    - iter
    - core::hint::black_box
    - Throughput::Bytes
    - benchmark_group
    linkageType: ''
    returnType: void
    signature: 'fn bench_group_expand_full(c: &mut Criterion, sz: u32, bpp: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image-png/benches/unfilter.rs:18,1
    - Dst: iter
      Src: /src/image-png/benches/unfilter.rs:19,1
    - Dst: bench_unfilter
      Src: /src/image-png/benches/unfilter.rs:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 23
      start: 15
    functionDepth: 27
    functionLinenumber: 15
    functionLinenumberEnd: 23
    functionName: unfilter_all
    functionSourceFile: /src/image-png/benches/unfilter.rs
    functionUses: 0
    functionsReached:
    - bench_unfilter
    - iter
    linkageType: ''
    returnType: void
    signature: 'fn unfilter_all(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut R::try_fill_bytes'
      Src: /src/image-png/benches/unfilter.rs:34,1
    - Dst: as_mut_slice
      Src: /src/image-png/benches/unfilter.rs:34,1
    - Dst: unwrap
      Src: /src/image-png/benches/unfilter.rs:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - rng
    - n
    argTypes:
    - '&mut R'
    - usize
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: b::e::n::c::h::_::u::n::f::i::l::t::e::r::get_random_bytes
    functionSourceFile: /src/image-png/benches/unfilter.rs
    functionUses: 0
    functionsReached:
    - '&mut R::try_fill_bytes'
    - as_mut_slice
    - unwrap
    linkageType: ''
    returnType: Vec
    signature: 'fn get_random_bytes<R: Rng>(rng: &mut R, n: usize) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: benchmark_group
      Src: /src/image-png/benches/unfilter.rs:29,1
    - Dst: rand::rng
      Src: /src/image-png/benches/unfilter.rs:37,1
    - Dst: get_random_bytes
      Src: /src/image-png/benches/unfilter.rs:39,1
    - Dst: throughput
      Src: /src/image-png/benches/unfilter.rs:41,1
    - Dst: Throughput::Bytes
      Src: /src/image-png/benches/unfilter.rs:41,1
    - Dst: bench_with_input
      Src: /src/image-png/benches/unfilter.rs:42,1
    - Dst: Vec::split_at
      Src: /src/image-png/benches/unfilter.rs:46,1
    - Dst: usize::to_vec
      Src: /src/image-png/benches/unfilter.rs:47,1
    - Dst: iter
      Src: /src/image-png/benches/unfilter.rs:48,1
    - Dst: png::benchable_apis::unfilter
      Src: /src/image-png/benches/unfilter.rs:48,1
    - Dst: usize::as_mut_slice
      Src: /src/image-png/benches/unfilter.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 3
    argNames:
    - c
    - filter
    - bpp
    argTypes:
    - '&mut Criterion'
    - Filter
    - u8
    constantsTouched: []
    func_position:
      end: 51
      start: 28
    functionDepth: 27
    functionLinenumber: 28
    functionLinenumberEnd: 51
    functionName: bench_unfilter
    functionSourceFile: /src/image-png/benches/unfilter.rs
    functionUses: 1
    functionsReached:
    - rand::rng
    - throughput
    - get_random_bytes
    - bench_with_input
    - usize::to_vec
    - Vec::split_at
    - png::benchable_apis::unfilter
    - iter
    - usize::as_mut_slice
    - Throughput::Bytes
    - benchmark_group
    linkageType: ''
    returnType: void
    signature: 'fn bench_unfilter(c: &mut Criterion, filter: Filter, bpp: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: benchmark_group
      Src: /src/image-png/benches/decoder.rs:12,1
    - Dst: fs::read_dir
      Src: /src/image-png/benches/decoder.rs:13,1
    - Dst: unwrap
      Src: /src/image-png/benches/decoder.rs:13,1
    - Dst: flatten
      Src: /src/image-png/benches/decoder.rs:13,1
    - Dst: path
      Src: /src/image-png/benches/decoder.rs:14,1
    - Dst: extension
      Src: /src/image-png/benches/decoder.rs:14,1
    - Dst: fs::read
      Src: /src/image-png/benches/decoder.rs:19,1
    - Dst: path
      Src: /src/image-png/benches/decoder.rs:19,1
    - Dst: unwrap
      Src: /src/image-png/benches/decoder.rs:19,1
    - Dst: bench_file
      Src: /src/image-png/benches/decoder.rs:20,1
    - Dst: file_name
      Src: /src/image-png/benches/decoder.rs:20,1
    - Dst: into_string
      Src: /src/image-png/benches/decoder.rs:20,1
    - Dst: unwrap
      Src: /src/image-png/benches/decoder.rs:20,1
    - Dst: finish
      Src: /src/image-png/benches/decoder.rs:22,1
    - Dst: benchmark_group
      Src: /src/image-png/benches/decoder.rs:25,1
    - Dst: bench_noncompressed_png
      Src: /src/image-png/benches/decoder.rs:26,1
    - Dst: bench_noncompressed_png
      Src: /src/image-png/benches/decoder.rs:27,1
    - Dst: bench_noncompressed_png
      Src: /src/image-png/benches/decoder.rs:28,1
    - Dst: bench_noncompressed_png
      Src: /src/image-png/benches/decoder.rs:29,1
    - Dst: finish
      Src: /src/image-png/benches/decoder.rs:30,1
    - Dst: benchmark_group
      Src: /src/image-png/benches/decoder.rs:33,1
    - Dst: bench_noncompressed_png
      Src: /src/image-png/benches/decoder.rs:34,1
    - Dst: bench_noncompressed_png
      Src: /src/image-png/benches/decoder.rs:35,1
    - Dst: bench_noncompressed_png
      Src: /src/image-png/benches/decoder.rs:36,1
    - Dst: finish
      Src: /src/image-png/benches/decoder.rs:37,1
    - Dst: benchmark_group
      Src: /src/image-png/benches/decoder.rs:40,1
    - Dst: bench_noncompressed_png
      Src: /src/image-png/benches/decoder.rs:41,1
    - Dst: bench_noncompressed_png
      Src: /src/image-png/benches/decoder.rs:42,1
    - Dst: finish
      Src: /src/image-png/benches/decoder.rs:43,1
    - Dst: benchmark_group
      Src: /src/image-png/benches/decoder.rs:46,1
    - Dst: Vec::new
      Src: /src/image-png/benches/decoder.rs:47,1
    - Dst: test_utils::write_noncompressed_png
      Src: /src/image-png/benches/decoder.rs:48,1
    - Dst: bench_read_row
      Src: /src/image-png/benches/decoder.rs:49,1
    - Dst: finish
      Src: /src/image-png/benches/decoder.rs:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 88
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 51
      start: 11
    functionDepth: 25
    functionLinenumber: 11
    functionLinenumberEnd: 51
    functionName: load_all
    functionSourceFile: /src/image-png/benches/decoder.rs
    functionUses: 0
    functionsReached:
    - fs::read_dir
    - bench_file
    - unwrap
    - Vec::new
    - bench_noncompressed_png
    - fs::read
    - bench_read_row
    - extension
    - into_string
    - finish
    - test_utils::write_noncompressed_png
    - path
    - benchmark_group
    - file_name
    - flatten
    linkageType: ''
    returnType: void
    signature: 'fn load_all(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/benches/decoder.rs:57,1
    - Dst: test_utils::write_noncompressed_png
      Src: /src/image-png/benches/decoder.rs:58,1
    - Dst: bench_file
      Src: /src/image-png/benches/decoder.rs:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - g
    - size
    - idat_bytes
    argTypes:
    - '&mut BenchmarkGroup<WallTime>'
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 19
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: bench_noncompressed_png
    functionSourceFile: /src/image-png/benches/decoder.rs
    functionUses: 1
    functionsReached:
    - bench_file
    - Vec::new
    - test_utils::write_noncompressed_png
    linkageType: ''
    returnType: void
    signature: 'fn bench_noncompressed_png(g: &mut BenchmarkGroup<WallTime>, size:
      u32, idat_bytes: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::len
      Src: /src/image-png/benches/decoder.rs:64,1
    - Dst: sample_size
      Src: /src/image-png/benches/decoder.rs:65,1
    - Dst: create_reader
      Src: /src/image-png/benches/decoder.rs:68,1
    - Dst: Result::as_slice
      Src: /src/image-png/benches/decoder.rs:68,1
    - Dst: Reader::next_frame
      Src: /src/image-png/benches/decoder.rs:70,1
    - Dst: Result::unwrap
      Src: /src/image-png/benches/decoder.rs:70,1
    - Dst: throughput
      Src: /src/image-png/benches/decoder.rs:72,1
    - Dst: Throughput::Bytes
      Src: /src/image-png/benches/decoder.rs:72,1
    - Dst: Result::buffer_size
      Src: /src/image-png/benches/decoder.rs:72,1
    - Dst: bench_with_input
      Src: /src/image-png/benches/decoder.rs:73,1
    - Dst: iter
      Src: /src/image-png/benches/decoder.rs:74,1
    - Dst: create_reader
      Src: /src/image-png/benches/decoder.rs:75,1
    - Dst: Result::as_slice
      Src: /src/image-png/benches/decoder.rs:75,1
    - Dst: Reader::next_frame
      Src: /src/image-png/benches/decoder.rs:76,1
    - Dst: Result::unwrap
      Src: /src/image-png/benches/decoder.rs:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 3
    argNames:
    - g
    - data
    - name
    argTypes:
    - '&mut BenchmarkGroup<WallTime>'
    - Vec<u8>
    - String
    constantsTouched: []
    func_position:
      end: 79
      start: 63
    functionDepth: 22
    functionLinenumber: 63
    functionLinenumberEnd: 79
    functionName: bench_file
    functionSourceFile: /src/image-png/benches/decoder.rs
    functionUses: 2
    functionsReached:
    - Result::buffer_size
    - Result::unwrap
    - throughput
    - sample_size
    - bench_with_input
    - create_reader
    - Result::len
    - Result::as_slice
    - Reader::next_frame
    - iter
    - Throughput::Bytes
    linkageType: ''
    returnType: void
    signature: 'fn bench_file(g: &mut BenchmarkGroup<WallTime>, data: Vec<u8>, name:
      String)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_reader
      Src: /src/image-png/benches/decoder.rs:83,1
    - Dst: Result::as_slice
      Src: /src/image-png/benches/decoder.rs:83,1
    - Dst: Reader::output_line_size
      Src: /src/image-png/benches/decoder.rs:85,1
    - Dst: Reader::info
      Src: /src/image-png/benches/decoder.rs:85,1
    - Dst: Option::unwrap
      Src: /src/image-png/benches/decoder.rs:85,1
    - Dst: throughput
      Src: /src/image-png/benches/decoder.rs:86,1
    - Dst: Throughput::Bytes
      Src: /src/image-png/benches/decoder.rs:86,1
    - Dst: Result::len
      Src: /src/image-png/benches/decoder.rs:86,1
    - Dst: bench_with_input
      Src: /src/image-png/benches/decoder.rs:87,1
    - Dst: iter
      Src: /src/image-png/benches/decoder.rs:88,1
    - Dst: create_reader
      Src: /src/image-png/benches/decoder.rs:89,1
    - Dst: Result::as_slice
      Src: /src/image-png/benches/decoder.rs:89,1
    - Dst: Result::chunks_exact_mut
      Src: /src/image-png/benches/decoder.rs:91,1
    - Dst: Reader::read_row
      Src: /src/image-png/benches/decoder.rs:92,1
    - Dst: Result::unwrap
      Src: /src/image-png/benches/decoder.rs:92,1
    - Dst: unwrap
      Src: /src/image-png/benches/decoder.rs:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 3
    argNames:
    - g
    - data
    - name
    argTypes:
    - '&mut BenchmarkGroup<WallTime>'
    - Vec<u8>
    - '&str'
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 22
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: bench_read_row
    functionSourceFile: /src/image-png/benches/decoder.rs
    functionUses: 1
    functionsReached:
    - Reader::read_row
    - throughput
    - Result::unwrap
    - Option::unwrap
    - bench_with_input
    - create_reader
    - Result::as_slice
    - Result::len
    - Reader::output_line_size
    - iter
    - Result::chunks_exact_mut
    - Reader::info
    - unwrap
    - Throughput::Bytes
    linkageType: ''
    returnType: void
    signature: 'fn bench_read_row(g: &mut BenchmarkGroup<WallTime>, data: Vec<u8>,
      name: &str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Decoder::new
      Src: /src/image-png/benches/decoder.rs:99,1
    - Dst: Cursor::new
      Src: /src/image-png/benches/decoder.rs:99,1
    - Dst: Decoder::set_transformations
      Src: /src/image-png/benches/decoder.rs:103,1
    - Dst: Decoder::read_info
      Src: /src/image-png/benches/decoder.rs:105,1
    - Dst: Result::unwrap
      Src: /src/image-png/benches/decoder.rs:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 20
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: create_reader
    functionSourceFile: /src/image-png/benches/decoder.rs
    functionUses: 2
    functionsReached:
    - Result::unwrap
    - Cursor::new
    - Decoder::new
    - Decoder::read_info
    - Decoder::set_transformations
    linkageType: ''
    returnType: Reader
    signature: 'fn create_reader(data: &[u8]) -> Reader<Cursor<&[u8]>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: TrnsPresence::fmt
    functionSourceFile: /src/image-png/benches/expand_paletted.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image-png/benches/expand_paletted.rs:43,1
    - Dst: copied
      Src: /src/image-png/benches/expand_paletted.rs:43,1
    - Dst: iter
      Src: /src/image-png/benches/expand_paletted.rs:44,1
    - Dst: copied
      Src: /src/image-png/benches/expand_paletted.rs:44,1
    - Dst: bench_expand_palette
      Src: /src/image-png/benches/expand_paletted.rs:45,1
    - Dst: bench_create_fn
      Src: /src/image-png/benches/expand_paletted.rs:49,1
    - Dst: bench_create_fn
      Src: /src/image-png/benches/expand_paletted.rs:50,1
    - Dst: bench_create_fn
      Src: /src/image-png/benches/expand_paletted.rs:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 52
      start: 31
    functionDepth: 27
    functionLinenumber: 31
    functionLinenumberEnd: 52
    functionName: expand_paletted_all
    functionSourceFile: /src/image-png/benches/expand_paletted.rs
    functionUses: 0
    functionsReached:
    - copied
    - bench_expand_palette
    - bench_create_fn
    - iter
    linkageType: ''
    returnType: void
    signature: 'fn expand_paletted_all(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut R::try_fill_bytes'
      Src: /src/image-png/benches/expand_paletted.rs:60,1
    - Dst: as_mut_slice
      Src: /src/image-png/benches/expand_paletted.rs:60,1
    - Dst: unwrap
      Src: /src/image-png/benches/expand_paletted.rs:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - rng
    - n
    argTypes:
    - '&mut R'
    - usize
    constantsTouched: []
    func_position:
      end: 62
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: get_random_bytes
    functionSourceFile: /src/image-png/benches/expand_paletted.rs
    functionUses: 1
    functionsReached:
    - '&mut R::try_fill_bytes'
    - as_mut_slice
    - unwrap
    linkageType: ''
    returnType: Vec
    signature: 'fn get_random_bytes<R: Rng>(rng: &mut R, n: usize) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::rng
      Src: /src/image-png/benches/expand_paletted.rs:73,1
    - Dst: get_random_bytes
      Src: /src/image-png/benches/expand_paletted.rs:80,1
    - Dst: min
      Src: /src/image-png/benches/expand_paletted.rs:80,1
    - Dst: Some
      Src: /src/image-png/benches/expand_paletted.rs:83,1
    - Dst: get_random_bytes
      Src: /src/image-png/benches/expand_paletted.rs:83,1
    - Dst: min
      Src: /src/image-png/benches/expand_paletted.rs:83,1
    - Dst: get_random_bytes
      Src: /src/image-png/benches/expand_paletted.rs:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - trns
    - src_bit_depth
    - input_size_in_bytes
    argTypes:
    - TrnsPresence
    - u8
    - usize
    constantsTouched: []
    func_position:
      end: 93
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 93
    functionName: Input::new
    functionSourceFile: /src/image-png/benches/expand_paletted.rs
    functionUses: 0
    functionsReached:
    - rand::rng
    - min
    - get_random_bytes
    - Some
    linkageType: ''
    returnType: Self
    signature: 'fn new(trns: TrnsPresence, src_bit_depth: u8, input_size_in_bytes:
      usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image-png/benches/expand_paletted.rs:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 22
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: Input::output_size_in_bytes
    functionSourceFile: /src/image-png/benches/expand_paletted.rs
    functionUses: 0
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn output_size_in_bytes(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: png::benchable_apis::create_info_from_plte_trns_bitdepth
      Src: /src/image-png/benches/expand_paletted.rs:106,1
    - Dst: as_deref
      Src: /src/image-png/benches/expand_paletted.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: Input::to_info
    functionSourceFile: /src/image-png/benches/expand_paletted.rs
    functionUses: 0
    functionsReached:
    - png::benchable_apis::create_info_from_plte_trns_bitdepth
    - as_deref
    linkageType: ''
    returnType: Info
    signature: fn to_info(&self) -> Info<'_>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: png::benchable_apis::create_transform_fn
      Src: /src/image-png/benches/expand_paletted.rs:112,1
    - Dst: Result::unwrap
      Src: /src/image-png/benches/expand_paletted.rs:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - info
    argTypes:
    - '&Info'
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: create_expand_palette_fn
    functionSourceFile: /src/image-png/benches/expand_paletted.rs
    functionUses: 0
    functionsReached:
    - png::benchable_apis::create_transform_fn
    - Result::unwrap
    linkageType: ''
    returnType: TransformFn
    signature: 'fn create_expand_palette_fn(info: &Info) -> TransformFn'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: benchmark_group
      Src: /src/image-png/benches/expand_paletted.rs:116,1
    - Dst: sample_size
      Src: /src/image-png/benches/expand_paletted.rs:117,1
    - Dst: rand::rng
      Src: /src/image-png/benches/expand_paletted.rs:119,1
    - Dst: get_random_bytes
      Src: /src/image-png/benches/expand_paletted.rs:120,1
    - Dst: get_random_bytes
      Src: /src/image-png/benches/expand_paletted.rs:121,1
    - Dst: png::benchable_apis::create_info_from_plte_trns_bitdepth
      Src: /src/image-png/benches/expand_paletted.rs:122,1
    - Dst: Some
      Src: /src/image-png/benches/expand_paletted.rs:122,1
    - Dst: bench_with_input
      Src: /src/image-png/benches/expand_paletted.rs:123,1
    - Dst: iter
      Src: /src/image-png/benches/expand_paletted.rs:127,1
    - Dst: create_expand_palette_fn
      Src: /src/image-png/benches/expand_paletted.rs:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 3
    argNames:
    - c
    - plte_size
    - trns_size
    argTypes:
    - '&mut Criterion'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 130
      start: 115
    functionDepth: 27
    functionLinenumber: 115
    functionLinenumberEnd: 130
    functionName: bench_create_fn
    functionSourceFile: /src/image-png/benches/expand_paletted.rs
    functionUses: 1
    functionsReached:
    - rand::rng
    - get_random_bytes
    - create_expand_palette_fn
    - sample_size
    - bench_with_input
    - iter
    - benchmark_group
    - png::benchable_apis::create_info_from_plte_trns_bitdepth
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn bench_create_fn(c: &mut Criterion, plte_size: usize, trns_size:
      usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: benchmark_group
      Src: /src/image-png/benches/expand_paletted.rs:138,1
    - Dst: Input::new
      Src: /src/image-png/benches/expand_paletted.rs:140,1
    - Dst: create_expand_palette_fn
      Src: /src/image-png/benches/expand_paletted.rs:141,1
    - Dst: Result::to_info
      Src: /src/image-png/benches/expand_paletted.rs:141,1
    - Dst: throughput
      Src: /src/image-png/benches/expand_paletted.rs:142,1
    - Dst: Throughput::Bytes
      Src: /src/image-png/benches/expand_paletted.rs:142,1
    - Dst: Result::output_size_in_bytes
      Src: /src/image-png/benches/expand_paletted.rs:142,1
    - Dst: sample_size
      Src: /src/image-png/benches/expand_paletted.rs:143,1
    - Dst: bench_with_input
      Src: /src/image-png/benches/expand_paletted.rs:144,1
    - Dst: Result::to_info
      Src: /src/image-png/benches/expand_paletted.rs:149,1
    - Dst: iter
      Src: /src/image-png/benches/expand_paletted.rs:150,1
    - Dst: transform_fn
      Src: /src/image-png/benches/expand_paletted.rs:151,1
    - Dst: as_slice
      Src: /src/image-png/benches/expand_paletted.rs:151,1
    - Dst: as_mut_slice
      Src: /src/image-png/benches/expand_paletted.rs:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 4
    argNames:
    - c
    - trns
    - src_bit_depth
    - input_size_in_bytes
    argTypes:
    - '&mut Criterion'
    - TrnsPresence
    - u8
    - usize
    constantsTouched: []
    func_position:
      end: 155
      start: 132
    functionDepth: 23
    functionLinenumber: 132
    functionLinenumberEnd: 155
    functionName: bench_expand_palette
    functionSourceFile: /src/image-png/benches/expand_paletted.rs
    functionUses: 1
    functionsReached:
    - Input::new
    - throughput
    - create_expand_palette_fn
    - sample_size
    - transform_fn
    - bench_with_input
    - Result::to_info
    - Result::output_size_in_bytes
    - iter
    - as_slice
    - Throughput::Bytes
    - benchmark_group
    - as_mut_slice
    linkageType: ''
    returnType: void
    signature: 'fn bench_expand_palette(c: &mut Criterion,trns: TrnsPresence,src_bit_depth:
      u8,input_size_in_bytes: usize,)'
Fuzzer filename: /src/image-png/fuzz/fuzz_targets/decode.rs
Fuzzing method: fuzz_target
report: name
sources:
- function_names:
  - issue_430
  source_file: /src/image-png/tests/bugfixes.rs
- function_names:
  - process_images
  - render_images
  - render_images_identity
  - render_images_alpha
  - apng_images
  - normalize_path
  source_file: /src/image-png/tests/check_testimages.rs
- function_names:
  - pipe::create
  - pipe::test_pipe
  - test_partial_decode_with_unterminated_redundant_zlib_tail
  - test_partial_decode_success
  source_file: /src/image-png/tests/partial_decode.rs
- function_names:
  - Adam7Info::new
  - Adam7Info::pass_constants
  - Adam7Info::splat_pixel_repeat
  - Adam7Info::splat_line_repeat
  - PassConstants::splat_x_repeat
  - PassConstants::splat_y_repeat
  - PassConstants::count_samples
  - PassConstants::count_lines
  - Adam7Iterator::new
  - Adam7Iterator::init_pass
  - Adam7Iterator::next
  - subbyte_values
  - expand_adam7_bits
  - expand_adam7_bytes
  - expand_pass
  - e::x::p::a::n::d::_::p::a::s::s::_::s::p::l::a::t::expand_bits_to_img
  - expand_pass_splat
  - tests::test_adam7
  - tests::test_subbyte_pixels
  - tests::test_expand_adam7_bits
  - tests::test_expand_adam7_bits_independent_row_stride
  - tests::test_expand_pass_subbyte
  - tests::test_expand_pass_splat_4bpp
  - tests::adam7_equivalence
  - tests::test_expand_pass_splat_1bpp
  - t::e::s::t::s::::::::r::e::g::r::e::s::s::i::o::n::_::o::v::e::r::f::l::o::w::_::a::d::a::m::7::_::b::i::t::f::i::l::l::multibyte_expand_pass_test_helper
  - tests::regression_overflow_adam7_bitfill
  - tests::create_adam7_info_for_tests
  source_file: /src/image-png/src/adam7.rs
- function_names:
  - write_noncompressed_png
  - write_png_sig
  - write_chunk
  - write_rgba8_ihdr_with_width
  - generate_rgba8_with_width_and_height
  - write_rgba8_idats
  - write_iend
  source_file: /src/image-png/src/test_utils.rs
- function_names:
  - read_bytes_ext
  - write_bytes_ext
  source_file: /src/image-png/src/traits.rs
- function_names:
  - EncodingError::cause
  - EncodingError::fmt
  - FormatError::fmt
  - EncodingError::from
  - io::Error::from
  - FormatError::from
  - EncodingError::from
  - Encoder::new
  - Encoder::with_info
  - Encoder::set_animated
  - Encoder::set_sep_def_img
  - Encoder::set_palette
  - Encoder::set_trns
  - Encoder::set_source_gamma
  - Encoder::set_source_chromaticities
  - Encoder::set_source_srgb
  - Encoder::write_header
  - Encoder::set_color
  - Encoder::set_depth
  - Encoder::set_compression
  - Encoder::set_deflate_compression
  - Encoder::set_filter
  - Encoder::set_frame_delay
  - Encoder::set_blend_op
  - Encoder::set_dispose_op
  - Encoder::set_pixel_dims
  - Encoder::add_text_chunk
  - Encoder::add_ztxt_chunk
  - Encoder::add_itxt_chunk
  - Encoder::validate_sequence
  - PartialInfo::new
  - PartialInfo::bpp_in_prediction
  - PartialInfo::bytes_per_pixel
  - PartialInfo::raw_row_length
  - PartialInfo::raw_row_length_from_width
  - write_chunk
  - Writer::new
  - Writer::init
  - Writer::encode_header
  - Writer::write_chunk
  - Writer::write_text_chunk
  - Writer::write_iccp_chunk
  - Writer::validate_new_image
  - Writer::validate_sequence_done
  - Writer::write_image_data
  - Writer::increment_images_written
  - Writer::write_iend
  - Writer::should_skip_frame_control_on_default_image
  - Writer::write_zlib_encoded_idat
  - Writer::set_filter
  - Writer::set_frame_delay
  - Writer::set_frame_dimension
  - Writer::set_frame_position
  - Writer::reset_frame_dimension
  - Writer::reset_frame_position
  - Writer::set_blend_op
  - Writer::set_dispose_op
  - Writer::stream_writer
  - Writer::stream_writer_with_size
  - Writer::into_stream_writer
  - Writer::into_stream_writer_with_size
  - Writer::finish
  - Writer::drop
  - ChunkOutput::deref
  - ChunkOutput::deref_mut
  - ChunkWriter::new
  - ChunkWriter::next_frame_info
  - ChunkWriter::write_header
  - ChunkWriter::set_fctl
  - ChunkWriter::flush_inner
  - ChunkWriter::write
  - ChunkWriter::flush
  - ChunkWriter::drop
  - Wrapper::from_level
  - Wrapper::take
  - StreamWriter::new
  - StreamWriter::set_filter
  - StreamWriter::set_frame_delay
  - StreamWriter::set_frame_dimension
  - StreamWriter::set_frame_position
  - StreamWriter::reset_frame_dimension
  - StreamWriter::reset_frame_position
  - StreamWriter::set_blend_op
  - StreamWriter::set_dispose_op
  - StreamWriter::finish
  - StreamWriter::finish_mut
  - StreamWriter::new_frame
  - StreamWriter::write
  - StreamWriter::flush
  - StreamWriter::drop
  - tests::roundtrip1
  - tests::roundtrip2
  - tests::roundtrip_inner
  - tests::roundtrip_stream1
  - tests::roundtrip_stream2
  - tests::roundtrip_stream_inner
  - tests::image_palette
  - tests::expect_error_on_wrong_image_len
  - tests::expect_error_on_empty_image
  - tests::expect_error_on_invalid_bit_depth_color_type_combination
  - tests::expect_error_when_interlacing_is_requested
  - tests::can_write_header_with_valid_bit_depth_color_type_combination
  - tests::all_filters_roundtrip
  - tests::some_gamma_roundtrip
  - tests::write_image_chunks_beyond_first
  - tests::image_validate_sequence_without_animation
  - tests::image_validate_animation
  - tests::image_validate_animation2
  - tests::image_validate_animation_sep_def_image
  - tests::image_validate_missing_image
  - tests::image_validate_missing_animated_frame
  - tests::issue_307_stream_validation
  - tests::stream_filtering
  - tests::test_stream_flushing
  - tests::stream_flushing_with_high_compression
  - tests::stream_flushing_with_balanced_compression
  - tests::stream_flushing_with_fast_compression
  - tests::stream_flushing_with_fastest_compression
  - tests::stream_flushing_with_no_compression
  - tests::exper_error_on_huge_chunk
  - tests::exper_error_on_non_u32_chunk
  - tests::finish_drops_inner_writer
  source_file: /src/image-png/src/encoder.rs
- function_names:
  - decode_iso_8859_1
  - encode_iso_8859_1
  - encode_iso_8859_1_into
  - encode_iso_8859_1_iter
  - decode_ascii
  - TEXtChunk::new
  - TEXtChunk::decode
  - TEXtChunk::encode
  - ZTXtChunk::new
  - ZTXtChunk::decode
  - ZTXtChunk::decompress_text
  - ZTXtChunk::decompress_text_with_limit
  - ZTXtChunk::get_text
  - ZTXtChunk::compress_text
  - ZTXtChunk::encode
  - ITXtChunk::new
  - ITXtChunk::decode
  - ITXtChunk::decompress_text
  - ITXtChunk::decompress_text_with_limit
  - ITXtChunk::get_text
  - ITXtChunk::compress_text
  - ITXtChunk::encode
  source_file: /src/image-png/src/text_metadata.rs
- function_names:
  - ColorType::samples
  - ColorType::samples_u8
  - ColorType::from_u8
  - ColorType::checked_raw_row_length
  - ColorType::raw_row_length_from_width
  - ColorType::is_combination_invalid
  - ColorType::bits_per_pixel
  - ColorType::bytes_per_pixel
  - BitDepth::from_u8
  - BitDepth::into_u8
  - Unit::from_u8
  - DisposeOp::from_u8
  - DisposeOp::fmt
  - BlendOp::from_u8
  - BlendOp::fmt
  - FrameControl::default
  - FrameControl::set_seq_num
  - FrameControl::inc_seq_num
  - FrameControl::encode
  - AnimationControl::encode
  - Compression::default
  - DeflateCompression::default
  - DeflateCompression::from_simple
  - ScaledFloat::in_range
  - ScaledFloat::exact
  - ScaledFloat::forward
  - ScaledFloat::reverse
  - ScaledFloat::new
  - ScaledFloat::from_scaled
  - ScaledFloat::into_scaled
  - ScaledFloat::into_value
  - ScaledFloat::encode_gama
  - SourceChromaticities::new
  - SourceChromaticities::to_be_bytes
  - SourceChromaticities::encode
  - SrgbRenderingIntent::into_raw
  - SrgbRenderingIntent::from_raw
  - SrgbRenderingIntent::encode
  - Info::default
  - Info::with_size
  - Info::size
  - Info::is_animated
  - Info::animation_control
  - Info::frame_control
  - Info::bits_per_pixel
  - Info::bytes_per_pixel
  - Info::bpp_in_prediction
  - Info::raw_bytes
  - Info::raw_row_length
  - Info::checked_raw_row_length
  - Info::raw_row_length_from_width
  - Info::gamma
  - Info::chromaticities
  - Info::set_source_srgb
  - BytesPerPixel::from_usize
  - BytesPerPixel::into_usize
  - Transformations::normalize_to_color8
  - Transformations::default
  - ParameterError::from
  - ParameterError::fmt
  source_file: /src/image-png/src/common.rs
- function_names:
  - unfilter
  - a::d::a::m::7::bytes_of_width
  - adam7
  - create_info_from_plte_trns_bitdepth
  source_file: /src/image-png/src/benchable_apis.rs
- function_names: []
  source_file: /src/image-png/src/lib.rs
- function_names:
  - substitute_gamma
  - substitute_chromaticities
  source_file: /src/image-png/src/srgb.rs
- function_names:
  - is_critical
  - is_private
  - reserved_set
  - safe_to_copy
  - ChunkType::fmt
  source_file: /src/image-png/src/chunk.rs
- function_names:
  - create_transform_fn
  - copy_row
  - transform_row_strip16
  - unpack_bits
  - expand_trns_line
  - expand_trns_line16
  - expand_trns_and_strip_line16
  - expand_gray_u8
  - expand_gray_u8_with_trns
  source_file: /src/image-png/src/decoder/transform.rs
- function_names:
  - ReadDecoder::new
  - ReadDecoder::with_options
  - ReadDecoder::set_limits
  - ReadDecoder::reserve_bytes
  - ReadDecoder::set_ignore_text_chunk
  - ReadDecoder::set_ignore_iccp_chunk
  - ReadDecoder::ignore_checksums
  - ReadDecoder::decode_next
  - ReadDecoder::read_header_info
  - ReadDecoder::read_until_image_data
  - ReadDecoder::decode_image_data
  - ReadDecoder::finish_decoding_image_data
  - ReadDecoder::read_until_end_of_input
  - ReadDecoder::info
  source_file: /src/image-png/src/decoder/read_decoder.rs
- function_names:
  - InterlaceInfo::line_number
  - InterlaceInfo::get_adam7_info
  - InterlaceInfoIter::empty
  - InterlaceInfoIter::new
  - InterlaceInfoIter::next
  - test::null
  - test::adam7
  - test::empty
  source_file: /src/image-png/src/decoder/interlace_info.rs
- function_names:
  - OutputInfo::buffer_size
  - Limits::reserve_bytes
  - Limits::default
  - InterlacedRow::data
  - InterlacedRow::interlace
  - Row::data
  - Decoder::new
  - Decoder::new_with_limits
  - Decoder::new_with_options
  - Decoder::set_limits
  - Decoder::read_header_info
  - Decoder::read_info
  - Decoder::set_transformations
  - Decoder::set_ignore_text_chunk
  - Decoder::set_ignore_iccp_chunk
  - Decoder::ignore_checksums
  - Reader::next_frame_info
  - Reader::read_until_image_data
  - Reader::info
  - Reader::next_frame
  - Reader::mark_subframe_as_consumed_and_flushed
  - Reader::finish_decoding
  - Reader::next_row
  - Reader::next_interlaced_row
  - Reader::read_row
  - Reader::output_line_size_for_interlace_info
  - Reader::finish
  - Reader::next_interlaced_row_impl
  - Reader::output_color_type
  - Reader::output_buffer_size
  - Reader::unguarded_output_line_size
  - Reader::output_line_size
  - Reader::next_raw_interlaced_row
  - SubframeInfo::not_yet_init
  - SubframeInfo::new
  source_file: /src/image-png/src/decoder/mod.rs
- function_names:
  - State::new_u32
  - DecodingError::cause
  - DecodingError::fmt
  - FormatError::fmt
  - DecodingError::from
  - DecodingError::from
  - FormatError::from
  - io::Error::from
  - DecodingError::from
  - DecodeOptions::default
  - DecodeOptions::set_ignore_adler32
  - DecodeOptions::set_ignore_crc
  - DecodeOptions::set_ignore_checksums
  - DecodeOptions::set_ignore_text_chunk
  - DecodeOptions::set_ignore_iccp_chunk
  - DecodeOptions::set_skip_ancillary_crc_failures
  - DecodeOptions::set_captured_chunks
  - DecodeOptions::is_captured
  - StreamingDecoder::new
  - StreamingDecoder::new_with_options
  - StreamingDecoder::reset
  - StreamingDecoder::info
  - StreamingDecoder::set_ignore_text_chunk
  - StreamingDecoder::set_ignore_iccp_chunk
  - StreamingDecoder::ignore_adler32
  - StreamingDecoder::set_ignore_adler32
  - StreamingDecoder::set_ignore_crc
  - StreamingDecoder::set_skip_ancillary_crc_failures
  - StreamingDecoder::update
  - StreamingDecoder::next_state
  - StreamingDecoder::parse_u32
  - StreamingDecoder::start_chunk
  - StreamingDecoder::parse_chunk
  - StreamingDecoder::parse_fctl
  - StreamingDecoder::parse_actl
  - StreamingDecoder::parse_plte
  - StreamingDecoder::parse_sbit
  - StreamingDecoder::parse_trns
  - StreamingDecoder::parse_phys
  - StreamingDecoder::parse_chrm
  - StreamingDecoder::parse_gama
  - StreamingDecoder::parse_srgb
  - StreamingDecoder::parse_cicp
  - S::t::r::e::a::m::i::n::g::D::e::c::o::d::e::r::::::::p::a::r::s::e::_::m::d::c::v::scale
  - StreamingDecoder::parse_mdcv
  - StreamingDecoder::parse_clli
  - StreamingDecoder::parse_exif
  - StreamingDecoder::parse_iccp
  - StreamingDecoder::parse_iccp_raw
  - StreamingDecoder::parse_captured
  - StreamingDecoder::parse_ihdr
  - StreamingDecoder::split_keyword
  - StreamingDecoder::parse_text
  - StreamingDecoder::parse_ztxt
  - StreamingDecoder::parse_itxt
  - StreamingDecoder::parse_bkgd
  - Info::validate_default_image
  - Info::validate
  - StreamingDecoder::default
  - t::e::s::t::s::::::::i::m::a::g::e::_::g::a::m::m::a::trial
  - tests::image_gamma
  - t::e::s::t::s::::::::i::m::a::g::e::_::s::o::u::r::c::e::_::c::h::r::o::m::a::t::i::c::i::t::i::e::s::trial
  - tests::image_source_chromaticities
  - t::e::s::t::s::::::::i::m::a::g::e::_::s::o::u::r::c::e::_::s::b::i::t::trial
  - tests::image_source_sbit
  - tests::test_two_iccp_chunks
  - tests::test_iccp_roundtrip
  - tests::test_phys_roundtrip
  - tests::test_srgb_roundtrip
  - tests::test_png_with_broken_iccp
  - tests::test_cicp_mdcv_and_clli_chunks
  - tests::test_exif_chunk
  - tests::test_finishing_twice
  - tests::write_actl
  - tests::write_fctl
  - tests::write_fdat
  - tests::write_fdat_prefix
  - tests::test_fdat_chunk_without_idat
  - tests::test_fdat_chunk_payload_length_0
  - tests::test_fdat_chunk_payload_length_3
  - tests::test_frame_split_across_two_fdat_chunks
  - tests::test_idat_bigger_than_image_size_from_ihdr
  - tests::test_only_idat_chunk_in_input_stream
  - tests::test_streaming_input_and_decoding_via_next_frame
  - tests::test_streaming_input_and_decoding_via_next_row
  - tests::test_streaming_input_and_reading_header_info
  - tests::create_reader_of_ihdr_idat
  - tests::create_reader_of_ihdr_actl_fctl_idat_fctl_fdat
  - tests::create_reader_of_ihdr_actl_idat_fctl_fdat_fctl_fdat
  - tests::get_fctl_sequence_number
  - tests::test_next_frame_polling_after_end_non_animated
  - tests::test_next_frame_info_polling_after_end_non_animated
  - tests::test_next_frame_polling_after_end_idat_part_of_animation
  - tests::test_next_frame_polling_after_end_idat_not_part_of_animation
  - tests::test_row_by_row_then_next_frame
  - tests::test_row_by_row_of_two_frames
  - tests::test_next_frame_info_after_next_frame
  - tests::test_next_frame_info_to_skip_first_frame
  - tests::test_incorrect_trns_chunk_is_ignored
  - tests::test_actl_num_frames_zero
  - tests::test_small_fctl
  - tests::test_invalid_text_chunk
  - tests::test_duplicate_actl_chunk
  - tests::test_no_captured_chunks
  - tests::test_captured_chunks_unknown
  - tests::test_captured_chunks_known
  - tests::test_captured_chunks_critical
  - tests::test_captured_chunks_limits_exceeded
  source_file: /src/image-png/src/decoder/stream.rs
- function_names:
  - ZlibStream::new
  - ZlibStream::reset
  - ZlibStream::set_ignore_adler32
  - ZlibStream::ignore_adler32
  - ZlibStream::decompress
  - ZlibStream::finish
  - UnfilterRegion::as_buf
  - UnfilterBuf::decompress
  source_file: /src/image-png/src/decoder/zlib.rs
- function_names:
  - UnfilteringBuffer::debug_assert_invariants
  - UnfilteringBuffer::debug_assert_invariants
  - UnfilteringBuffer::new
  - UnfilteringBuffer::reset_prev_row
  - UnfilteringBuffer::start_frame
  - UnfilteringBuffer::remaining_bytes
  - UnfilteringBuffer::prev_row
  - UnfilteringBuffer::mutable_len_of_curr_row
  - UnfilteringBuffer::readable_len_of_curr_row
  - UnfilteringBuffer::with_unfilled_buffer
  - UnfilteringBuffer::shift_buffer_left
  - UnfilteringBuffer::curr_row_filter
  - UnfilteringBuffer::unfilter_curr_row_in_place
  - UnfilteringBuffer::unfilter_curr_row_using_scratch_buffer
  - PrevRow::as_slice
  - checked_next_multiple_of
  - next_multiple_of_backport_testsuite
  source_file: /src/image-png/src/decoder/unfiltering_buffer.rs
- function_names:
  - create_expansion_into_rgb8
  - create_expansion_into_rgba8
  - create_rgba_palette
  - expand_8bit_into_rgb8
  - expand_into_rgb8
  - expand_paletted_into_rgba8
  - test::oracle_expand_paletted_into_rgb8
  - test::oracle_expand_paletted_into_rgba8
  - test::create_info
  - test::expand_paletted
  - test::test_expand_paletted_rgba_8bit
  - test::test_expand_paletted_rgb_8bit
  - test::test_expand_paletted_rgba_4bit
  - test::test_expand_paletted_rgb_4bit
  - test::test_expand_paletted_rgba_8bit_more_trns_entries_than_palette_entries
  - test::test_expand_paletted_rgba_8bit_less_trns_entries_than_palette_entries
  - t::e::s::t::::::::t::e::s::t::_::c::r::e::a::t::e::_::r::g::b::a::_::p::a::l::e::t::t::e::create_expected_rgba_palette
  - test::test_create_rgba_palette
  source_file: /src/image-png/src/decoder/transform/palette.rs
- function_names:
  - paeth_predictor_simd
  - paeth_predictor_simd
  - process_paeth_chunk_bpp3_s48
  - paeth_unfilter_3bpp
  - process_paeth_chunk_bpp4_s64
  - paeth_unfilter_4bpp
  source_file: /src/image-png/src/filter/simd.rs
- function_names:
  - Filter::default
  - Filter::from
  - Filter::from_simple
  - RowFilter::default
  - RowFilter::from_u8
  - RowFilter::from_method
  - unfilter
  - filter_internal
  - adaptive_filter
  - filter
  - ilog2i
  - entropy
  - sum_buffer
  - test::roundtrip
  - test::roundtrip_ascending_previous_line
  - test::sum_buffer_test
  source_file: /src/image-png/src/filter/mod.rs
- function_names:
  - filter_paeth
  - filter_paeth_stbi
  - filter_paeth_fpnge
  - unfilter
  - unfilter
  - tests::paeth_impls_are_equivalent
  source_file: /src/image-png/src/filter/paeth.rs
- function_names:
  - png_decode
  - main
  source_file: /src/image-png/png-afl/src/main.rs
- function_names:
  - png_decode
  - fuzz_target
  source_file: /src/image-png/fuzz/fuzz_targets/decode.rs
- function_names:
  - fuzz_target
  - encode_png
  - decode_png
  - filter_from_u8
  - raw_row_length_from_width
  source_file: /src/image-png/fuzz/fuzz_targets/roundtrip.rs
- function_names:
  - fuzz_target
  - test_data
  - retry_after_eofs
  - assert_same_info
  - IteratorExtensionsForFuzzing::assert_all_results_are_consistent
  - IteratorExtensionsForFuzzing::assert_all_items_are_equal
  - IteratorExtensionsForFuzzing::assert_all_items_are_same
  source_file: /src/image-png/fuzz/fuzz_targets/buf_independent.rs
- function_names:
  - run_encode
  - run_decode
  - main
  source_file: /src/image-png/examples/corpus-bench.rs
- function_names:
  - main
  source_file: /src/image-png/examples/png-generate.rs
- function_names:
  - main
  source_file: /src/image-png/examples/change-png-info.rs
- function_names:
  - display_interlaced
  - display_image_type
  - final_channels
  - check_image
  - main
  source_file: /src/image-png/examples/pngcheck.rs
- function_names:
  - expand_all
  - bench_group_expand_full
  source_file: /src/image-png/benches/adam7.rs
- function_names:
  - unfilter_all
  - b::e::n::c::h::_::u::n::f::i::l::t::e::r::get_random_bytes
  - bench_unfilter
  source_file: /src/image-png/benches/unfilter.rs
- function_names:
  - load_all
  - bench_noncompressed_png
  - bench_file
  - bench_read_row
  - create_reader
  source_file: /src/image-png/benches/decoder.rs
- function_names:
  - TrnsPresence::fmt
  - expand_paletted_all
  - get_random_bytes
  - Input::new
  - Input::output_size_in_bytes
  - Input::to_info
  - create_expand_palette_fn
  - bench_create_fn
  - bench_expand_palette
  source_file: /src/image-png/benches/expand_paletted.rs
