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:
    - BufReader::new
    - File::open
    - DecodeOptions::default
    - Decoder::new_with_options
    - Decoder::read_info
    - unwrap
    - Self::set_skip_ancillary_crc_failures
    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:
    - push
    - File::open
    - to_str
    - func
    - iter
    - Self::iter
    - unwrap
    - to_string
    - PathBuf::file_name
    - PathBuf::push
    - BufReader::new
    - clone
    - filter_map
    - PathBuf::clone
    - glob::glob
    - Self::insert
    - starts_with
    - Self::lines
    - collect
    - BTreeMap::new
    - split
    - is_empty
    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:
    - Crc32::new
    - Ok
    - BufReader::new
    - Reader::next_frame
    - Self::read_info
    - Self::set_transformations
    - File::open
    - update
    - process_images
    - png::Transformations::normalize_to_color8
    - finalize
    - png::Decoder::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:
    - Crc32::new
    - Ok
    - BufReader::new
    - Reader::next_frame
    - Self::read_info
    - File::open
    - update
    - process_images
    - finalize
    - samples
    - png::Decoder::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:
    - Crc32::new
    - Ok
    - BufReader::new
    - Reader::next_frame
    - Self::read_info
    - Self::set_transformations
    - File::open
    - update
    - process_images
    - finalize
    - samples
    - png::Decoder::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:
    - Crc32::new
    - Reader::next_frame
    - Self::set_transformations
    - File::open
    - to_str
    - png::Transformations::normalize_to_color8
    - expect
    - PathBuf::file_stem
    - Ok
    - parse
    - next
    - png::Decoder::new
    - BufReader::new
    - '&Info::animation_control'
    - Self::read_info
    - rsplit
    - Reader::info
    - Option::unwrap
    - finalize
    - update
    - process_images
    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:
    - push
    - cloned
    - PathBuf::components
    - peek
    - PathBuf::new
    - PathBuf::from
    - next
    - as_os_str
    - peekable
    - pop
    linkageType: ''
    returnType: PathBuf
    signature: 'fn normalize_path(path: &Path) -> PathBuf'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::count_samples
      Src: /src/image-png/src/adam7.rs:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    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:
    - splat_x_repeat
    - min
    - Adam7Info::pass_constants
    - u32::from
    - u8::into
    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:
    - min
    - Adam7Info::pass_constants
    - u32::from
    - splat_y_repeat
    - u8::into
    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
    - saturating_sub
    - div_ceil
    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:
    - u32::from
    - Vec::saturating_sub
    - 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:
    - Some
    - Adam7Iterator::init_pass
    - Adam7Iterator::next
    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:
    - flat_map
    - '[u8; N]::map'
    - Result::copied
    - '&[u8]::iter'
    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
    - usize::from
    - u64::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
    - usize::from
    - u64::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:
    - impl Iterator::zip
    - expand_adam7_bits
    - len
    - into
    - expand_adam7_bytes
    - Result::chunks
    - subbyte_values
    - copy_from_slice
    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:
    - split_first_mut
    - unwrap
    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:
    - Result::chunks_exact
    - usize::splat_pixel_repeat
    - impl Iterator::zip
    - expand_adam7_bits
    - usize::splat_line_repeat
    - len
    - fill
    - chunks_exact_mut
    - usize::from
    - expand_bits_to_img
    - enumerate
    - expand_adam7_bytes
    - subbyte_values
    - copy_from_slice
    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:
    - subbyte_values
    - collect::<Vec<_>>
    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:
    - create_adam7_info_for_tests
    - map
    - ".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<_>>"
    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:
    - zip
    - expand_pass_splat
    - iter
    - 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:
    - take
    - Adam7Iterator::new
    - collect
    - u32::from
    - expand_pass
    - expand_pass_splat
    - bytes_of
    - next_multiple_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:
    - zip
    - expand_pass_splat
    - iter
    - 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:
    - Adam7Iterator::new
    - Adam7Iterator::into_iter
    - collect
    - expand_pass
    - map
    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:
    - Adam7Iterator::new
    - next
    - unwrap
    - map
    - Adam7Iterator::filter
    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_rgba8_idats
    - write_iend
    - write_rgba8_ihdr_with_width
    - write_png_sig
    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:
    - Self::write_all
    - unwrap
    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:523,1
    - Dst: Result::len
      Src: /src/image-png/src/encoder.rs:523,1
    - Dst: Self::write_all
      Src: /src/image-png/src/encoder.rs:524,1
    - Dst: Self::write_all
      Src: /src/image-png/src/encoder.rs:525,1
    - Dst: Crc32::new
      Src: /src/image-png/src/encoder.rs:526,1
    - Dst: update
      Src: /src/image-png/src/encoder.rs:527,1
    - Dst: update
      Src: /src/image-png/src/encoder.rs:528,1
    - Dst: Self::write_be
      Src: /src/image-png/src/encoder.rs:529,1
    - Dst: finalize
      Src: /src/image-png/src/encoder.rs:529,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:530,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 3
    argNames:
    - w
    - name
    - data
    argTypes:
    - W
    - chunk::ChunkType
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 531
      start: 522
    functionDepth: 3
    functionLinenumber: 522
    functionLinenumberEnd: 531
    functionName: write_chunk
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Self::write_be
    - Crc32::new
    - Ok
    - update
    - Result::len
    - Self::write_all
    - finalize
    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:
    - write_chunk
    - Result::write_u8
    - write_u32::<byteorder::BigEndian>
    - unwrap
    - Vec::new
    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:
    - Self::unwrap
    - fdeflate::StoredOnlyCompressor::new
    - write_u8
    - Wrapper::flatten
    - flat_map
    - finish
    - extend
    - write_data
    - unwrap
    - "take(height as usize)\n            .flatten()\n            .collect::<Vec<_>>"
    - Vec::new
    - std::io::Cursor::new
    - u8::take
    - std::iter::repeat
    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:
    - Result::chunks
    - generate_rgba8_with_width_and_height
    - write_chunk
    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:
    - <$output_type>::from_be_bytes
    - read_bytes_ext::read_exact
    - std::mem::size_of::<$output_type>
    - 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:
    - to_be_bytes
    - write_bytes_ext::write_all
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    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: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    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: 426
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 426
    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:136,1
    - Dst: FormatErrorKind::BadTextEncoding
      Src: /src/image-png/src/encoder.rs:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tee
    argTypes:
    - TextEncodingError
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    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:451,1
    - Dst: DecodingError::to_string
      Src: /src/image-png/src/decoder/stream.rs:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - err
    argTypes:
    - DecodingError
    constantsTouched: []
    func_position:
      end: 453
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 453
    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: 444
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 444
    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:168,1
    - Dst: Options::default
      Src: /src/image-png/src/encoder.rs:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - w
    - width
    - height
    argTypes:
    - W
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: Encoder::new
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Info::with_size
    - Options::default
    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:174,1
    - Dst: is_some
      Src: /src/image-png/src/encoder.rs:174,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:175,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:175,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:175,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: Ok
      Src: /src/image-png/src/encoder.rs:184,1
    - Dst: Options::default
      Src: /src/image-png/src/encoder.rs:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 2
    argNames:
    - w
    - info
    argTypes:
    - W
    - Info<'a>
    constantsTouched: []
    func_position:
      end: 189
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 189
    functionName: Encoder::with_info
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - into
    - Err
    - EncodingError::Format
    - is_some
    - Options::default
    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:205,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:205,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:205,1
    - Dst: Default::default
      Src: /src/image-png/src/encoder.rs:217,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:220,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:221,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 2
    argNames:
    - num_frames
    - num_plays
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 223
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 223
    functionName: Encoder::set_animated
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - into
    - Err
    - EncodingError::Format
    - Some
    - Default::default
    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:235,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:237,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:239,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:239,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - sep_def_img
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 241
    functionName: Encoder::set_sep_def_img
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - into
    - Err
    - EncodingError::Format
    - 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:246,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - palette
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: Encoder::set_palette
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Some
    - into
    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:252,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - trns
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: Encoder::set_trns
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Some
    - into
    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:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - source_gamma
    argTypes:
    - ScaledFloat
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    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:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - source_chromaticities
    argTypes:
    - super::SourceChromaticities
    constantsTouched: []
    func_position:
      end: 267
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 267
    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:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - rendering_intent
    argTypes:
    - super::SrgbRenderingIntent
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 277
    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:283,1
    - Dst: PartialInfo::new
      Src: /src/image-png/src/encoder.rs:283,1
    - Dst: Writer::init
      Src: /src/image-png/src/encoder.rs:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: Encoder::write_header
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Writer::new
    - Writer::init
    - PartialInfo::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: 293
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 293
    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: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    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:302,1
    - Dst: DeflateCompression::from_simple
      Src: /src/image-png/src/encoder.rs:302,1
    - Dst: Encoder::set_filter
      Src: /src/image-png/src/encoder.rs:303,1
    - Dst: Filter::from_simple
      Src: /src/image-png/src/encoder.rs:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - compression
    argTypes:
    - Compression
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: Encoder::set_compression
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_filter
    - DeflateCompression::from_simple
    - Encoder::set_deflate_compression
    - Filter::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: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    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: 324
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 324
    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:347,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:349,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:349,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - u16
    - u16
    constantsTouched: []
    func_position:
      end: 351
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 351
    functionName: Encoder::set_frame_delay
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - EncodingError::Format
    - 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:378,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:380,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:380,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - BlendOp
    constantsTouched: []
    func_position:
      end: 382
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 382
    functionName: Encoder::set_blend_op
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - EncodingError::Format
    - 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:407,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:409,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:409,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - DisposeOp
    constantsTouched: []
    func_position:
      end: 411
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 411
    functionName: Encoder::set_dispose_op
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - EncodingError::Format
    - 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: 414
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 414
    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:417,1
    - Dst: push
      Src: /src/image-png/src/encoder.rs:418,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - keyword
    - text
    argTypes:
    - String
    - String
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 420
    functionName: Encoder::add_text_chunk
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - TEXtChunk::new
    - push
    - Ok
    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:424,1
    - Dst: push
      Src: /src/image-png/src/encoder.rs:425,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - keyword
    - text
    argTypes:
    - String
    - String
    constantsTouched: []
    func_position:
      end: 427
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 427
    functionName: Encoder::add_ztxt_chunk
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - push
    - ZTXtChunk::new
    - 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:434,1
    - Dst: push
      Src: /src/image-png/src/encoder.rs:435,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - keyword
    - text
    argTypes:
    - String
    - String
    constantsTouched: []
    func_position:
      end: 437
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 437
    functionName: Encoder::add_itxt_chunk
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - ITXtChunk::new
    - push
    - Ok
    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: 451
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 451
    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:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - info
    argTypes:
    - '&Info'
    constantsTouched: []
    func_position:
      end: 500
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 500
    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:503,1
    - Dst: PartialInfo::bytes_per_pixel
      Src: /src/image-png/src/encoder.rs:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 504
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 504
    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:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 508
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 508
    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:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 512
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 512
    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:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - width
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 517
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 517
    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: 543
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 543
    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:547,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:547,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:547,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:551,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:551,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:551,1
    - Dst: is_combination_invalid
      Src: /src/image-png/src/encoder.rs:554,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:559,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:559,1
    - Dst: FormatErrorKind::InvalidColorCombination
      Src: /src/image-png/src/encoder.rs:560,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:560,1
    - Dst: Writer::encode_header
      Src: /src/image-png/src/encoder.rs:565,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 1
    argNames:
    - info
    argTypes:
    - '&Info<''_>'
    constantsTouched: []
    func_position:
      end: 568
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 568
    functionName: Writer::init
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - Writer::encode_header
    - Ok
    - into
    - Err
    - is_combination_invalid
    - FormatErrorKind::InvalidColorCombination
    - EncodingError::Format
    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:572,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/encoder.rs:576,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/encoder.rs:576,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/encoder.rs:577,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/encoder.rs:577,1
    - Dst: Writer::write_chunk
      Src: /src/image-png/src/encoder.rs:581,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/encoder.rs:586,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/encoder.rs:586,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/encoder.rs:587,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/encoder.rs:587,1
    - Dst: Writer::write_chunk
      Src: /src/image-png/src/encoder.rs:592,1
    - Dst: encode
      Src: /src/image-png/src/encoder.rs:597,1
    - Dst: crate::srgb::substitute_gamma
      Src: /src/image-png/src/encoder.rs:600,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:601,1
    - Dst: ScaledFloat::encode_gama
      Src: /src/image-png/src/encoder.rs:602,1
    - Dst: crate::srgb::substitute_chromaticities
      Src: /src/image-png/src/encoder.rs:604,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:605,1
    - Dst: SourceChromaticities::encode
      Src: /src/image-png/src/encoder.rs:606,1
    - Dst: encode_gama
      Src: /src/image-png/src/encoder.rs:610,1
    - Dst: encode
      Src: /src/image-png/src/encoder.rs:613,1
    - Dst: Writer::write_iccp_chunk
      Src: /src/image-png/src/encoder.rs:616,1
    - Dst: Writer::write_chunk
      Src: /src/image-png/src/encoder.rs:621,1
    - Dst: Result::encode
      Src: /src/image-png/src/encoder.rs:625,1
    - Dst: Writer::write_chunk
      Src: /src/image-png/src/encoder.rs:631,1
    - Dst: Writer::write_chunk
      Src: /src/image-png/src/encoder.rs:635,1
    - Dst: Writer::write_text_chunk
      Src: /src/image-png/src/encoder.rs:639,1
    - Dst: Writer::write_text_chunk
      Src: /src/image-png/src/encoder.rs:643,1
    - Dst: Writer::write_text_chunk
      Src: /src/image-png/src/encoder.rs:647,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:650,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 196
    argCount: 1
    argNames:
    - info
    argTypes:
    - '&Info<''_>'
    constantsTouched: []
    func_position:
      end: 651
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 651
    functionName: Writer::encode_header
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - Writer::write_chunk
    - Ok
    - crate::srgb::substitute_chromaticities
    - to_be_bytes
    - encode
    - encode_gama
    - ScaledFloat::encode_gama
    - Writer::write_iccp_chunk
    - write_all
    - Result::encode
    - Writer::write_text_chunk
    - SourceChromaticities::encode
    - crate::srgb::substitute_gamma
    - Some
    - copy_from_slice
    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:662,1
    - Dst: Result::len
      Src: /src/image-png/src/encoder.rs:662,1
    - Dst: map_or
      Src: /src/image-png/src/encoder.rs:662,1
    - Dst: FormatErrorKind::WrittenTooMuch
      Src: /src/image-png/src/encoder.rs:663,1
    - Dst: Result::len
      Src: /src/image-png/src/encoder.rs:663,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:664,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:664,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:664,1
    - Dst: write_chunk
      Src: /src/image-png/src/encoder.rs:667,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - name
    - data
    argTypes:
    - ChunkType
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 668
      start: 659
    functionDepth: 4
    functionLinenumber: 659
    functionLinenumberEnd: 668
    functionName: Writer::write_chunk
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - write_chunk
    - into
    - Err
    - Result::len
    - FormatErrorKind::WrittenTooMuch
    - map_or
    - u32::try_from
    - EncodingError::Format
    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:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - text_chunk
    argTypes:
    - '&T'
    constantsTouched: []
    func_position:
      end: 672
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 672
    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:675,1
    - Dst: '&str::is_empty'
      Src: /src/image-png/src/encoder.rs:676,1
    - Dst: '&str::len'
      Src: /src/image-png/src/encoder.rs:676,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:677,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:677,1
    - Dst: '&[u8]::len'
      Src: /src/image-png/src/encoder.rs:680,1
    - Dst: '&str::len'
      Src: /src/image-png/src/encoder.rs:681,1
    - Dst: Result::checked_add
      Src: /src/image-png/src/encoder.rs:681,1
    - Dst: and_then
      Src: /src/image-png/src/encoder.rs:681,1
    - Dst: checked_add
      Src: /src/image-png/src/encoder.rs:684,1
    - Dst: ok_or
      Src: /src/image-png/src/encoder.rs:681,1
    - Dst: Vec::new
      Src: /src/image-png/src/encoder.rs:687,1
    - Dst: Result::try_reserve_exact
      Src: /src/image-png/src/encoder.rs:688,1
    - Dst: map_err
      Src: /src/image-png/src/encoder.rs:688,1
    - Dst: Result::extend
      Src: /src/image-png/src/encoder.rs:691,1
    - Dst: '&str::into_iter'
      Src: /src/image-png/src/encoder.rs:691,1
    - Dst: chain
      Src: /src/image-png/src/encoder.rs:691,1
    - Dst: ZlibEncoder::new
      Src: /src/image-png/src/encoder.rs:693,1
    - Dst: flate2::Compression::default
      Src: /src/image-png/src/encoder.rs:693,1
    - Dst: Self::write_all
      Src: /src/image-png/src/encoder.rs:694,1
    - Dst: Writer::write_chunk
      Src: /src/image-png/src/encoder.rs:696,1
    - Dst: Self::finish
      Src: /src/image-png/src/encoder.rs:696,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 59
    argCount: 2
    argNames:
    - profile_name
    - icc_profile
    argTypes:
    - '&str'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 697
      start: 674
    functionDepth: 3
    functionLinenumber: 674
    functionLinenumberEnd: 697
    functionName: Writer::write_iccp_chunk
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - flate2::Compression::default
    - '&str::into_iter'
    - Self::finish
    - '&[u8]::len'
    - Vec::new
    - ZlibEncoder::new
    - encode_iso_8859_1
    - Self::write_all
    - chain
    - into
    - '&str::is_empty'
    - Result::extend
    - Writer::write_chunk
    - map_err
    - Result::checked_add
    - ok_or
    - and_then
    - checked_add
    - Result::try_reserve_exact
    - '&str::len'
    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:702,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:708,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:710,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:710,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:710,1
    - Dst: is_some
      Src: /src/image-png/src/encoder.rs:714,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:715,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:717,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:717,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:717,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 721
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 721
    functionName: Writer::validate_new_image
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - into
    - Err
    - EncodingError::Format
    - 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:725,1
    - Dst: is_some
      Src: /src/image-png/src/encoder.rs:728,1
    - Dst: is_some
      Src: /src/image-png/src/encoder.rs:728,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:731,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:731,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:731,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:733,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 735
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 735
    functionName: Writer::validate_sequence_done
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - into
    - Err
    - EncodingError::Format
    - 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:744,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:744,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:744,1
    - Dst: Writer::validate_new_image
      Src: /src/image-png/src/encoder.rs:747,1
    - Dst: raw_row_length_from_width
      Src: /src/image-png/src/encoder.rs:759,1
    - Dst: Result::len
      Src: /src/image-png/src/encoder.rs:761,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:762,1
    - Dst: EncodingError::Parameter
      Src: /src/image-png/src/encoder.rs:762,1
    - Dst: Result::len
      Src: /src/image-png/src/encoder.rs:765,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:763,1
    - Dst: as_slice
      Src: /src/image-png/src/encoder.rs:772,1
    - Dst: bpp_in_prediction
      Src: /src/image-png/src/encoder.rs:774,1
    - Dst: fdeflate::StoredOnlyCompressor::new
      Src: /src/image-png/src/encoder.rs:780,1
    - Dst: std::io::Cursor::new
      Src: /src/image-png/src/encoder.rs:780,1
    - Dst: Vec::new
      Src: /src/image-png/src/encoder.rs:780,1
    - Dst: Result::chunks
      Src: /src/image-png/src/encoder.rs:781,1
    - Dst: write_data
      Src: /src/image-png/src/encoder.rs:782,1
    - Dst: write_data
      Src: /src/image-png/src/encoder.rs:783,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:785,1
    - Dst: into_inner
      Src: /src/image-png/src/encoder.rs:785,1
    - Dst: fdeflate::Compressor::new
      Src: /src/image-png/src/encoder.rs:788,1
    - Dst: std::io::Cursor::new
      Src: /src/image-png/src/encoder.rs:788,1
    - Dst: Vec::new
      Src: /src/image-png/src/encoder.rs:788,1
    - Dst: Result::chunks
      Src: /src/image-png/src/encoder.rs:791,1
    - Dst: filter::filter
      Src: /src/image-png/src/encoder.rs:792,1
    - Dst: write_data
      Src: /src/image-png/src/encoder.rs:795,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:799,1
    - Dst: into_inner
      Src: /src/image-png/src/encoder.rs:799,1
    - Dst: len
      Src: /src/image-png/src/encoder.rs:800,1
    - Dst: fdeflate::StoredOnlyCompressor::<()>::compressed_size
      Src: /src/image-png/src/encoder.rs:801,1
    - Dst: fdeflate::StoredOnlyCompressor::new
      Src: /src/image-png/src/encoder.rs:808,1
    - Dst: std::io::Cursor::new
      Src: /src/image-png/src/encoder.rs:808,1
    - Dst: Vec::new
      Src: /src/image-png/src/encoder.rs:808,1
    - Dst: Result::chunks
      Src: /src/image-png/src/encoder.rs:809,1
    - Dst: write_data
      Src: /src/image-png/src/encoder.rs:810,1
    - Dst: write_data
      Src: /src/image-png/src/encoder.rs:811,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:813,1
    - Dst: into_inner
      Src: /src/image-png/src/encoder.rs:813,1
    - Dst: ZlibEncoder::new
      Src: /src/image-png/src/encoder.rs:822,1
    - Dst: Vec::new
      Src: /src/image-png/src/encoder.rs:822,1
    - Dst: flate2::Compression::new
      Src: /src/image-png/src/encoder.rs:822,1
    - Dst: u32::from
      Src: /src/image-png/src/encoder.rs:822,1
    - Dst: Result::chunks
      Src: /src/image-png/src/encoder.rs:823,1
    - Dst: filter::filter
      Src: /src/image-png/src/encoder.rs:824,1
    - Dst: Self::write_all
      Src: /src/image-png/src/encoder.rs:826,1
    - Dst: Self::write_all
      Src: /src/image-png/src/encoder.rs:827,1
    - Dst: Self::finish
      Src: /src/image-png/src/encoder.rs:830,1
    - Dst: Writer::write_zlib_encoded_idat
      Src: /src/image-png/src/encoder.rs:836,1
    - Dst: Writer::should_skip_frame_control_on_default_image
      Src: /src/image-png/src/encoder.rs:838,1
    - Dst: Writer::write_zlib_encoded_idat
      Src: /src/image-png/src/encoder.rs:839,1
    - Dst: encode
      Src: /src/image-png/src/encoder.rs:842,1
    - Dst: wrapping_add
      Src: /src/image-png/src/encoder.rs:843,1
    - Dst: Writer::write_zlib_encoded_idat
      Src: /src/image-png/src/encoder.rs:848,1
    - Dst: len
      Src: /src/image-png/src/encoder.rs:850,1
    - Dst: min
      Src: /src/image-png/src/encoder.rs:850,1
    - Dst: chunks
      Src: /src/image-png/src/encoder.rs:852,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/encoder.rs:853,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/encoder.rs:853,1
    - Dst: Result::len
      Src: /src/image-png/src/encoder.rs:854,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/encoder.rs:854,1
    - Dst: write_chunk
      Src: /src/image-png/src/encoder.rs:855,1
    - Dst: Result::len
      Src: /src/image-png/src/encoder.rs:855,1
    - Dst: wrapping_add
      Src: /src/image-png/src/encoder.rs:856,1
    - Dst: Writer::increment_images_written
      Src: /src/image-png/src/encoder.rs:862,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:864,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 270
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 865
      start: 742
    functionDepth: 3
    functionLinenumber: 742
    functionLinenumberEnd: 865
    functionName: Writer::write_image_data
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - raw_row_length_from_width
    - write_chunk
    - filter::filter
    - Err
    - fdeflate::StoredOnlyCompressor::<()>::compressed_size
    - Self::finish
    - Vec::new
    - Writer::should_skip_frame_control_on_default_image
    - wrapping_add
    - ZlibEncoder::new
    - chunks
    - Ok
    - len
    - fdeflate::Compressor::new
    - flate2::Compression::new
    - Self::write_all
    - write_data
    - Writer::write_zlib_encoded_idat
    - fdeflate::StoredOnlyCompressor::new
    - into_inner
    - into
    - min
    - to_be_bytes
    - Writer::validate_new_image
    - Result::chunks
    - copy_from_slice
    - std::io::Cursor::new
    - finish
    - as_slice
    - encode
    - Result::len
    - bpp_in_prediction
    - EncodingError::Parameter
    - u32::from
    - EncodingError::Format
    - Writer::increment_images_written
    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:868,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 876
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 876
    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:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 881
      start: 878
    functionDepth: 5
    functionLinenumber: 878
    functionLinenumberEnd: 881
    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: 885
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 885
    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:888,1
    - Dst: Writer::write_chunk
      Src: /src/image-png/src/encoder.rs:889,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - zlib_encoded
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 892
      start: 887
    functionDepth: 5
    functionLinenumber: 887
    functionLinenumberEnd: 892
    functionName: Writer::write_zlib_encoded_idat
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - '&[u8]::chunks'
    - Ok
    - Writer::write_chunk
    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: 903
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 903
    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:918,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:920,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:920,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - u16
    - u16
    constantsTouched: []
    func_position:
      end: 922
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 922
    functionName: Writer::set_frame_delay
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - EncodingError::Format
    - 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:938,1
    - Dst: checked_sub
      Src: /src/image-png/src/encoder.rs:938,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:939,1
    - Dst: checked_sub
      Src: /src/image-png/src/encoder.rs:939,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:941,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:941,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:941,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:943,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:943,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:943,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:945,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:945,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:945,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:949,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:951,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:951,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:951,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 55
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 953
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 953
    functionName: Writer::set_frame_dimension
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - into
    - Err
    - EncodingError::Format
    - Some
    - checked_sub
    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:967,1
    - Dst: checked_sub
      Src: /src/image-png/src/encoder.rs:967,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:968,1
    - Dst: checked_sub
      Src: /src/image-png/src/encoder.rs:968,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:970,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:970,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:970,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:974,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:976,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:976,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 978
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 978
    functionName: Writer::set_frame_position
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - into
    - Err
    - EncodingError::Format
    - Some
    - checked_sub
    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:993,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:995,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:995,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 997
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 997
    functionName: Writer::reset_frame_dimension
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - EncodingError::Format
    - 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: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: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1014
    functionName: Writer::reset_frame_position
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - EncodingError::Format
    - 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:1032,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1034,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1034,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - BlendOp
    constantsTouched: []
    func_position:
      end: 1036
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1036
    functionName: Writer::set_blend_op
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - EncodingError::Format
    - 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:1052,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1054,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1054,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - DisposeOp
    constantsTouched: []
    func_position:
      end: 1056
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1056
    functionName: Writer::set_dispose_op
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - EncodingError::Format
    - 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:1067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1068
    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:1076,1
    - Dst: ChunkOutput::Borrowed
      Src: /src/image-png/src/encoder.rs:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 1077
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1077
    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:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1086
    functionDepth: 1
    functionLinenumber: 1086
    functionLinenumberEnd: 1088
    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:1096,1
    - Dst: ChunkOutput::Owned
      Src: /src/image-png/src/encoder.rs:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 1097
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1097
    functionName: Writer::into_stream_writer_with_size
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - ChunkOutput::Owned
    - StreamWriter::new
    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:1105,1
    - Dst: Writer::write_iend
      Src: /src/image-png/src/encoder.rs:1106,1
    - Dst: flush
      Src: /src/image-png/src/encoder.rs:1107,1
    - Dst: drop
      Src: /src/image-png/src/encoder.rs:1110,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1111,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1104
    functionDepth: 6
    functionLinenumber: 1104
    functionLinenumberEnd: 1112
    functionName: Writer::finish
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - drop
    - Writer::validate_sequence_done
    - flush
    - Writer::write_iend
    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:1118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1116
    functionDepth: 6
    functionLinenumber: 1116
    functionLinenumberEnd: 1120
    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: 1137
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1137
    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: 1146
      start: 1141
    functionDepth: 0
    functionLinenumber: 1141
    functionLinenumberEnd: 1146
    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: 1191
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1191
    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:1200,1
    - Dst: raw_row_length_from_width
      Src: /src/image-png/src/encoder.rs:1212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1216
    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:1222,1
    - Dst: should_skip_frame_control_on_default_image
      Src: /src/image-png/src/encoder.rs:1231,1
    - Dst: encode
      Src: /src/image-png/src/encoder.rs:1233,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1240
    functionName: ChunkWriter::write_header
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - encode
    - deref_mut
    - Ok
    - should_skip_frame_control_on_default_image
    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: 1256
      start: 1246
    functionDepth: 0
    functionLinenumber: 1246
    functionLinenumberEnd: 1256
    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:1262,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1259
    functionDepth: 4
    functionLinenumber: 1259
    functionLinenumberEnd: 1271
    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:1276,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1277,1
    - Dst: deref_mut
      Src: /src/image-png/src/encoder.rs:1282,1
    - Dst: should_skip_frame_control_on_default_image
      Src: /src/image-png/src/encoder.rs:1285,1
    - Dst: is_some
      Src: /src/image-png/src/encoder.rs:1286,1
    - Dst: as_mut
      Src: /src/image-png/src/encoder.rs:1287,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1287,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/encoder.rs:1288,1
    - Dst: to_be_bytes
      Src: /src/image-png/src/encoder.rs:1288,1
    - Dst: Result::len
      Src: /src/image-png/src/encoder.rs:1296,1
    - Dst: Result::min
      Src: /src/image-png/src/encoder.rs:1296,1
    - Dst: len
      Src: /src/image-png/src/encoder.rs:1296,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/encoder.rs:1299,1
    - Dst: len
      Src: /src/image-png/src/encoder.rs:1303,1
    - Dst: ChunkWriter::flush_inner
      Src: /src/image-png/src/encoder.rs:1304,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1307,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 82
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1308
      start: 1275
    functionDepth: 5
    functionLinenumber: 1275
    functionLinenumberEnd: 1308
    functionName: ChunkWriter::write
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - len
    - to_be_bytes
    - Result::len
    - ChunkWriter::flush_inner
    - as_mut
    - Result::min
    - should_skip_frame_control_on_default_image
    - unwrap
    - is_some
    - copy_from_slice
    - Result::is_empty
    - deref_mut
    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:1311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1310
    functionDepth: 5
    functionLinenumber: 1310
    functionLinenumberEnd: 1312
    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:1317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1316
    functionDepth: 6
    functionLinenumber: 1316
    functionLinenumberEnd: 1318
    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:1349,1
    - Dst: Wrapper::Flate2
      Src: /src/image-png/src/encoder.rs:1351,1
    - Dst: ZlibEncoder::new
      Src: /src/image-png/src/encoder.rs:1351,1
    - Dst: flate2::Compression::none
      Src: /src/image-png/src/encoder.rs:1351,1
    - Dst: Wrapper::FDeflate
      Src: /src/image-png/src/encoder.rs:1354,1
    - Dst: fdeflate::Compressor::new
      Src: /src/image-png/src/encoder.rs:1354,1
    - Dst: Wrapper::Flate2
      Src: /src/image-png/src/encoder.rs:1356,1
    - Dst: ZlibEncoder::new
      Src: /src/image-png/src/encoder.rs:1356,1
    - Dst: flate2::Compression::new
      Src: /src/image-png/src/encoder.rs:1358,1
    - Dst: u32::from
      Src: /src/image-png/src/encoder.rs:1358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - writer
    - compression
    argTypes:
    - ChunkWriter<'a, W>
    - DeflateCompression
    constantsTouched: []
    func_position:
      end: 1361
      start: 1348
    functionDepth: 3
    functionLinenumber: 1348
    functionLinenumberEnd: 1361
    functionName: Wrapper::from_level
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - ZlibEncoder::new
    - Ok
    - fdeflate::Compressor::new
    - flate2::Compression::none
    - Wrapper::Flate2
    - flate2::Compression::new
    - u32::from
    - 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:1367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1369
    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:1411,1
    - Dst: raw_row_length
      Src: /src/image-png/src/encoder.rs:1412,1
    - Dst: ChunkWriter::new
      Src: /src/image-png/src/encoder.rs:1419,1
    - Dst: ChunkWriter::next_frame_info
      Src: /src/image-png/src/encoder.rs:1420,1
    - Dst: ChunkWriter::write_header
      Src: /src/image-png/src/encoder.rs:1421,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1423,1
    - Dst: Wrapper::from_level
      Src: /src/image-png/src/encoder.rs:1424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - writer
    - buf_len
    argTypes:
    - ChunkOutput<'a, W>
    - usize
    constantsTouched: []
    func_position:
      end: 1438
      start: 1403
    functionDepth: 4
    functionLinenumber: 1403
    functionLinenumberEnd: 1438
    functionName: StreamWriter::new
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 2
    functionsReached:
    - ChunkWriter::new
    - Ok
    - bpp_in_prediction
    - Wrapper::from_level
    - ChunkWriter::write_header
    - raw_row_length
    - ChunkWriter::next_frame_info
    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: 1449
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1449
    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:1464,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1466,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1466,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - u16
    - u16
    constantsTouched: []
    func_position:
      end: 1468
      start: 1460
    functionDepth: 1
    functionLinenumber: 1460
    functionLinenumberEnd: 1468
    functionName: StreamWriter::set_frame_delay
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - EncodingError::Format
    - 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:1482,1
    - Dst: checked_sub
      Src: /src/image-png/src/encoder.rs:1482,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:1483,1
    - Dst: checked_sub
      Src: /src/image-png/src/encoder.rs:1483,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1485,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1485,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1485,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1487,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1487,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1487,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1489,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1489,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1489,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1493,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1495,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1495,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1495,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 52
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1497
      start: 1480
    functionDepth: 1
    functionLinenumber: 1480
    functionLinenumberEnd: 1497
    functionName: StreamWriter::set_frame_dimension
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - into
    - Err
    - EncodingError::Format
    - Some
    - checked_sub
    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:1509,1
    - Dst: checked_sub
      Src: /src/image-png/src/encoder.rs:1509,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:1510,1
    - Dst: checked_sub
      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
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1516,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1518,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1518,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1520
      start: 1507
    functionDepth: 1
    functionLinenumber: 1507
    functionLinenumberEnd: 1520
    functionName: StreamWriter::set_frame_position
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - into
    - Err
    - EncodingError::Format
    - Some
    - checked_sub
    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:1535,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1537,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1537,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1539
    functionName: StreamWriter::reset_frame_dimension
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - EncodingError::Format
    - 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: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: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1548
    functionDepth: 1
    functionLinenumber: 1548
    functionLinenumberEnd: 1556
    functionName: StreamWriter::reset_frame_position
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - EncodingError::Format
    - 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:1574,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1576,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1576,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - BlendOp
    constantsTouched: []
    func_position:
      end: 1578
      start: 1571
    functionDepth: 1
    functionLinenumber: 1571
    functionLinenumberEnd: 1578
    functionName: StreamWriter::set_blend_op
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - EncodingError::Format
    - 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:1594,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1596,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1596,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1596,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - op
    argTypes:
    - DisposeOp
    constantsTouched: []
    func_position:
      end: 1598
      start: 1591
    functionDepth: 1
    functionLinenumber: 1591
    functionLinenumberEnd: 1598
    functionName: StreamWriter::set_dispose_op
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - EncodingError::Format
    - 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:1607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1608
    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:1614,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1614,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1615,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1615,1
    - Dst: StreamWriter::flush
      Src: /src/image-png/src/encoder.rs:1618,1
    - Dst: take
      Src: /src/image-png/src/encoder.rs:1619,1
    - Dst: validate_sequence_done
      Src: /src/image-png/src/encoder.rs:1621,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:1624,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:1627,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: Ok
      Src: /src/image-png/src/encoder.rs:1636,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1612
    functionDepth: 7
    functionLinenumber: 1612
    functionLinenumberEnd: 1637
    functionName: StreamWriter::finish_mut
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - take
    - into
    - finish
    - Err
    - validate_sequence_done
    - FormatErrorKind::MissingData
    - EncodingError::Format
    - StreamWriter::flush
    linkageType: ''
    returnType: Result
    signature: fn finish_mut(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1647,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1648,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1648,1
    - Dst: flush
      Src: /src/image-png/src/encoder.rs:1655,1
    - Dst: validate_new_image
      Src: /src/image-png/src/encoder.rs:1656,1
    - Dst: set_fctl
      Src: /src/image-png/src/encoder.rs:1659,1
    - Dst: next_frame_info
      Src: /src/image-png/src/encoder.rs:1661,1
    - Dst: write_header
      Src: /src/image-png/src/encoder.rs:1665,1
    - Dst: increment_images_written
      Src: /src/image-png/src/encoder.rs:1666,1
    - Dst: take
      Src: /src/image-png/src/encoder.rs:1669,1
    - Dst: Wrapper::from_level
      Src: /src/image-png/src/encoder.rs:1670,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1674,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1674,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1680,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1681
      start: 1643
    functionDepth: 7
    functionLinenumber: 1643
    functionLinenumberEnd: 1681
    functionName: StreamWriter::new_frame
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - set_fctl
    - increment_images_written
    - Ok
    - next_frame_info
    - take
    - into
    - Err
    - Wrapper::from_level
    - validate_new_image
    - EncodingError::Format
    - write_header
    - flush
    linkageType: ''
    returnType: Result
    signature: fn new_frame(&mut self) -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1687,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1688,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1688,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1688,1
    - Dst: Result::is_empty
      Src: /src/image-png/src/encoder.rs:1691,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1692,1
    - Dst: take
      Src: /src/image-png/src/encoder.rs:1696,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:1697,1
    - Dst: Wrapper::Chunk
      Src: /src/image-png/src/encoder.rs:1698,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1701,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:1704,1
    - Dst: Wrapper::Chunk
      Src: /src/image-png/src/encoder.rs:1705,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1708,1
    - Dst: StreamWriter::new_frame
      Src: /src/image-png/src/encoder.rs:1717,1
    - Dst: Result::read
      Src: /src/image-png/src/encoder.rs:1720,1
    - Dst: filter::filter
      Src: /src/image-png/src/encoder.rs:1725,1
    - Dst: write_all
      Src: /src/image-png/src/encoder.rs:1735,1
    - Dst: write_all
      Src: /src/image-png/src/encoder.rs:1736,1
    - Dst: write_data
      Src: /src/image-png/src/encoder.rs:1739,1
    - Dst: write_data
      Src: /src/image-png/src/encoder.rs:1740,1
    - Dst: mem::swap
      Src: /src/image-png/src/encoder.rs:1745,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1749,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 126
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1750
      start: 1685
    functionDepth: 7
    functionLinenumber: 1685
    functionLinenumberEnd: 1750
    functionName: StreamWriter::write
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - mem::swap
    - StreamWriter::new_frame
    - Ok
    - take
    - into
    - finish
    - Err
    - filter::filter
    - Wrapper::Chunk
    - Result::read
    - write_all
    - write_data
    - EncodingError::Format
    - Result::is_empty
    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:1754,1
    - Dst: flush
      Src: /src/image-png/src/encoder.rs:1755,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1760,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1761,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1761,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1761,1
    - Dst: FormatErrorKind::WrittenTooMuch
      Src: /src/image-png/src/encoder.rs:1766,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1766,1
    - Dst: Err
      Src: /src/image-png/src/encoder.rs:1767,1
    - Dst: EncodingError::Format
      Src: /src/image-png/src/encoder.rs:1767,1
    - Dst: into
      Src: /src/image-png/src/encoder.rs:1767,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1770,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1752
    functionDepth: 6
    functionLinenumber: 1752
    functionLinenumberEnd: 1771
    functionName: StreamWriter::flush
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - into
    - Err
    - FormatErrorKind::WrittenTooMuch
    - EncodingError::Format
    - flush
    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:1776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1775
    functionDepth: 8
    functionLinenumber: 1775
    functionLinenumberEnd: 1777
    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:1793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1792
    functionDepth: 1
    functionLinenumber: 1792
    functionLinenumberEnd: 1794
    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:1798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1797
    functionDepth: 1
    functionLinenumber: 1797
    functionLinenumberEnd: 1799
    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:1804,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1804,1
    - Dst: map
      Src: /src/image-png/src/encoder.rs:1804,1
    - Dst: Vec::unwrap
      Src: /src/image-png/src/encoder.rs:1806,1
    - Dst: PathBuf::file_name
      Src: /src/image-png/src/encoder.rs:1808,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1808,1
    - Dst: to_str
      Src: /src/image-png/src/encoder.rs:1808,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1808,1
    - Dst: starts_with
      Src: /src/image-png/src/encoder.rs:1808,1
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:1814,1
    - Dst: BufReader::new
      Src: /src/image-png/src/encoder.rs:1814,1
    - Dst: File::open
      Src: /src/image-png/src/encoder.rs:1814,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1814,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:1815,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1815,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/encoder.rs:1817,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1817,1
    - Dst: Level
      Src: /src/image-png/src/encoder.rs:1819,1
    - Dst: Vec::new
      Src: /src/image-png/src/encoder.rs:1821,1
    - Dst: rng
      Src: /src/image-png/src/encoder.rs:1824,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:1828,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:1829,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:1830,1
    - Dst: Encoder::set_deflate_compression
      Src: /src/image-png/src/encoder.rs:1831,1
    - Dst: Reader::info
      Src: /src/image-png/src/encoder.rs:1832,1
    - Dst: Encoder::set_palette
      Src: /src/image-png/src/encoder.rs:1833,1
    - Dst: clone
      Src: /src/image-png/src/encoder.rs:1833,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:1835,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1835,1
    - Dst: Encoder::write_image_data
      Src: /src/image-png/src/encoder.rs:1836,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1836,1
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:1839,1
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:1839,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:1840,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1840,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/encoder.rs:1842,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1842,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1801
    functionDepth: 8
    functionLinenumber: 1801
    functionLinenumberEnd: 1848
    functionName: tests::roundtrip_inner
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::unwrap
    - Encoder::set_color
    - Reader::next_frame
    - Encoder::set_palette
    - File::open
    - Result::unwrap
    - to_str
    - Decoder::read_info
    - Vec::new
    - Decoder::new
    - Encoder::new
    - unwrap
    - PathBuf::file_name
    - BufReader::new
    - Reader::info
    - clone
    - map
    - glob::glob
    - Level
    - Encoder::set_depth
    - Encoder::write_image_data
    - starts_with
    - rng
    - Encoder::set_deflate_compression
    - Encoder::write_header
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn roundtrip_inner()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roundtrip_stream_inner
      Src: /src/image-png/src/encoder.rs:1852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1851
    functionDepth: 1
    functionLinenumber: 1851
    functionLinenumberEnd: 1853
    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:1857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1856
    functionDepth: 1
    functionLinenumber: 1856
    functionLinenumberEnd: 1858
    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:1863,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1863,1
    - Dst: map
      Src: /src/image-png/src/encoder.rs:1863,1
    - Dst: Vec::unwrap
      Src: /src/image-png/src/encoder.rs:1865,1
    - Dst: PathBuf::file_name
      Src: /src/image-png/src/encoder.rs:1867,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1867,1
    - Dst: to_str
      Src: /src/image-png/src/encoder.rs:1867,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1867,1
    - Dst: starts_with
      Src: /src/image-png/src/encoder.rs:1867,1
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:1872,1
    - Dst: BufReader::new
      Src: /src/image-png/src/encoder.rs:1872,1
    - Dst: File::open
      Src: /src/image-png/src/encoder.rs:1872,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1872,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:1873,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1873,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/encoder.rs:1875,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1875,1
    - Dst: Level
      Src: /src/image-png/src/encoder.rs:1877,1
    - Dst: Vec::new
      Src: /src/image-png/src/encoder.rs:1879,1
    - Dst: rng
      Src: /src/image-png/src/encoder.rs:1882,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:1886,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:1887,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:1888,1
    - Dst: Encoder::set_deflate_compression
      Src: /src/image-png/src/encoder.rs:1889,1
    - Dst: Reader::info
      Src: /src/image-png/src/encoder.rs:1890,1
    - Dst: Encoder::set_palette
      Src: /src/image-png/src/encoder.rs:1891,1
    - Dst: clone
      Src: /src/image-png/src/encoder.rs:1891,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:1893,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1893,1
    - Dst: Encoder::stream_writer
      Src: /src/image-png/src/encoder.rs:1894,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1894,1
    - Dst: rng
      Src: /src/image-png/src/encoder.rs:1897,1
    - Dst: write_all
      Src: /src/image-png/src/encoder.rs:1901,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1901,1
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:1904,1
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:1904,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:1905,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1905,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/encoder.rs:1907,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1907,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 108
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1860
    functionDepth: 8
    functionLinenumber: 1860
    functionLinenumberEnd: 1913
    functionName: tests::roundtrip_stream_inner
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::unwrap
    - Encoder::set_color
    - Reader::next_frame
    - Encoder::set_palette
    - File::open
    - Result::unwrap
    - to_str
    - Decoder::read_info
    - Vec::new
    - Decoder::new
    - Encoder::new
    - write_all
    - unwrap
    - PathBuf::file_name
    - BufReader::new
    - Reader::info
    - clone
    - map
    - glob::glob
    - Level
    - Encoder::set_depth
    - starts_with
    - rng
    - Encoder::set_deflate_compression
    - Encoder::stream_writer
    - Encoder::write_header
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn roundtrip_stream_inner()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:1920,1
    - Dst: BufReader::new
      Src: /src/image-png/src/encoder.rs:1920,1
    - Dst: File::open
      Src: /src/image-png/src/encoder.rs:1920,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1920,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:1921,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1921,1
    - Dst: Reader::info
      Src: /src/image-png/src/encoder.rs:1924,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/encoder.rs:1929,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1929,1
    - Dst: Reader::info
      Src: /src/image-png/src/encoder.rs:1932,1
    - Dst: as_ref
      Src: /src/image-png/src/encoder.rs:1932,1
    - Dst: unwrap
      Src: /src/image-png/src/encoder.rs:1932,1
    - Dst: Vec::new
      Src: /src/image-png/src/encoder.rs:1933,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:1935,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:1936,1
    - Dst: BitDepth::from_u8
      Src: /src/image-png/src/encoder.rs:1936,1
    - Dst: Option::unwrap
      Src: /src/image-png/src/encoder.rs:1936,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:1937,1
    - Dst: Encoder::set_palette
      Src: /src/image-png/src/encoder.rs:1938,1
    - Dst: as_ref
      Src: /src/image-png/src/encoder.rs:1938,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:1940,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1940,1
    - Dst: Result::write_image_data
      Src: /src/image-png/src/encoder.rs:1941,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1941,1
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:1945,1
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:1945,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:1946,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1946,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/encoder.rs:1948,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/encoder.rs:1948,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1916
    functionDepth: 8
    functionLinenumber: 1916
    functionLinenumberEnd: 1953
    functionName: tests::image_palette
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::set_color
    - Reader::next_frame
    - Encoder::set_palette
    - File::open
    - Result::unwrap
    - Decoder::read_info
    - Vec::new
    - Decoder::new
    - Encoder::new
    - Ok
    - unwrap
    - as_ref
    - BufReader::new
    - Option::unwrap
    - Reader::info
    - BitDepth::from_u8
    - Result::write_image_data
    - Encoder::set_depth
    - Encoder::write_header
    - Cursor::new
    linkageType: ''
    returnType: Result
    signature: fn image_palette() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:1961,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:1962,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:1963,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:1964,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:1965,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:1969,1
    - Dst: Result::as_ref
      Src: /src/image-png/src/encoder.rs:1969,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1956
    functionDepth: 8
    functionLinenumber: 1956
    functionLinenumberEnd: 1973
    functionName: tests::expect_error_on_wrong_image_len
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Encoder::set_color
    - Encoder::set_depth
    - Ok
    - write_image_data
    - Encoder::write_header
    - Result::as_ref
    - Cursor::new
    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:1978,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:1980,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:1983,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:1986,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:1989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1976
    functionDepth: 3
    functionLinenumber: 1976
    functionLinenumberEnd: 1990
    functionName: tests::expect_error_on_empty_image
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Ok
    - 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:1995,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:1997,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:1998,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:1999,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2002,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2003,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2004,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2007,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2008,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2009,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2012,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2013,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2014,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2017,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2018,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2019,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2022,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2023,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2024,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2027,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2028,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2029,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2032,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2033,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2034,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2037,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2038,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2039,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2042,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2043,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2044,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 1993
    functionDepth: 3
    functionLinenumber: 1993
    functionLinenumberEnd: 2048
    functionName: tests::expect_error_on_invalid_bit_depth_color_type_combination
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Encoder::set_color
    - Encoder::set_depth
    - Ok
    - Cursor::new
    linkageType: ''
    returnType: Result
    signature: fn expect_error_on_invalid_bit_depth_color_type_combination() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2053,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2055,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2056,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2057,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2060,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2061,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2062,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2065,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2066,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2067,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2070,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2071,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2072,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2075,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2076,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2077,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2080,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2081,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2082,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2085,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2086,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2087,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2090,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2091,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2092,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2095,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2096,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2097,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: Ok
      Src: /src/image-png/src/encoder.rs:2130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 138
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2131
      start: 2051
    functionDepth: 3
    functionLinenumber: 2051
    functionLinenumberEnd: 2131
    functionName: tests::can_write_header_with_valid_bit_depth_color_type_combination
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Encoder::set_color
    - Encoder::set_depth
    - Ok
    - Cursor::new
    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:2135,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2139,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2140,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2141,1
    - Dst: Encoder::set_filter
      Src: /src/image-png/src/encoder.rs:2142,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2143,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:2143,1
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/encoder.rs:2145,1
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2145,1
    - Dst: Self::read_info
      Src: /src/image-png/src/encoder.rs:2146,1
    - Dst: Reader::info
      Src: /src/image-png/src/encoder.rs:2147,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/encoder.rs:2151,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2154,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2157,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2158,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2159,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2160,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2161,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2163,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2164
      start: 2134
    functionDepth: 11
    functionLinenumber: 2134
    functionLinenumberEnd: 2164
    functionName: tests::all_filters_roundtrip
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Encoder::set_color
    - Encoder::set_depth
    - Reader::next_frame
    - Ok
    - roundtrip
    - Encoder::set_filter
    - Self::read_info
    - collect
    - crate::Decoder::new
    - write_image_data
    - Reader::info
    - Encoder::write_header
    - Cursor::new
    linkageType: ''
    returnType: io::Result
    signature: fn all_filters_roundtrip() -> io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: collect
      Src: /src/image-png/src/encoder.rs:2168,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2172,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2173,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2174,1
    - Dst: Encoder::set_filter
      Src: /src/image-png/src/encoder.rs:2175,1
    - Dst: Encoder::set_source_gamma
      Src: /src/image-png/src/encoder.rs:2177,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2179,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:2179,1
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/encoder.rs:2181,1
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2181,1
    - Dst: Self::read_info
      Src: /src/image-png/src/encoder.rs:2182,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/encoder.rs:2190,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2194,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2197,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2198,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:2198,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/encoder.rs:2198,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2199,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:2199,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/encoder.rs:2199,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2200,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:2200,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/encoder.rs:2200,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2201,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:2201,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/encoder.rs:2201,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2202,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:2202,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/encoder.rs:2202,1
    - Dst: roundtrip
      Src: /src/image-png/src/encoder.rs:2203,1
    - Dst: Some
      Src: /src/image-png/src/encoder.rs:2203,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/encoder.rs:2203,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2205,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2206
      start: 2167
    functionDepth: 11
    functionLinenumber: 2167
    functionLinenumberEnd: 2206
    functionName: tests::some_gamma_roundtrip
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Encoder::set_color
    - Encoder::set_depth
    - Reader::next_frame
    - Ok
    - roundtrip
    - Encoder::set_filter
    - Self::read_info
    - Encoder::set_source_gamma
    - collect
    - crate::Decoder::new
    - write_image_data
    - Encoder::write_header
    - Some
    - Cursor::new
    - ScaledFloat::new
    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:2214,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2219,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2220,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2221,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2222,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:2227,1
    - Dst: Result::as_ref
      Src: /src/image-png/src/encoder.rs:2227,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2230,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2231
      start: 2209
    functionDepth: 11
    functionLinenumber: 2209
    functionLinenumberEnd: 2231
    functionName: tests::write_image_chunks_beyond_first
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Encoder::set_color
    - Encoder::set_depth
    - Ok
    - write_image_data
    - Encoder::write_header
    - Result::as_ref
    - Cursor::new
    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:2239,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2241,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2242,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2243,1
    - Dst: Encoder::validate_sequence
      Src: /src/image-png/src/encoder.rs:2244,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2245,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:2249,1
    - Dst: Result::as_ref
      Src: /src/image-png/src/encoder.rs:2249,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2253
      start: 2234
    functionDepth: 11
    functionLinenumber: 2234
    functionLinenumberEnd: 2253
    functionName: tests::image_validate_sequence_without_animation
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Encoder::validate_sequence
    - Encoder::set_color
    - Encoder::set_depth
    - Ok
    - write_image_data
    - Encoder::write_header
    - Result::as_ref
    - Cursor::new
    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:2261,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2265,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2266,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2267,1
    - Dst: Encoder::set_animated
      Src: /src/image-png/src/encoder.rs:2268,1
    - Dst: Encoder::validate_sequence
      Src: /src/image-png/src/encoder.rs:2269,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2270,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:2274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2275
      start: 2256
    functionDepth: 11
    functionLinenumber: 2256
    functionLinenumberEnd: 2275
    functionName: tests::image_validate_animation
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Encoder::validate_sequence
    - Encoder::set_color
    - Encoder::set_depth
    - Ok
    - write_image_data
    - Encoder::write_header
    - Encoder::set_animated
    - Result::as_ref
    - Cursor::new
    linkageType: ''
    returnType: Result
    signature: fn image_validate_animation() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2283,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2287,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2288,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2289,1
    - Dst: Encoder::set_animated
      Src: /src/image-png/src/encoder.rs:2290,1
    - Dst: Encoder::validate_sequence
      Src: /src/image-png/src/encoder.rs:2291,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2292,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: write_image_data
      Src: /src/image-png/src/encoder.rs:2295,1
    - Dst: Result::as_ref
      Src: /src/image-png/src/encoder.rs:2295,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:2296,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2278
    functionDepth: 11
    functionLinenumber: 2278
    functionLinenumberEnd: 2299
    functionName: tests::image_validate_animation2
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Encoder::validate_sequence
    - Encoder::set_color
    - Encoder::set_depth
    - Ok
    - finish
    - write_image_data
    - Encoder::write_header
    - Encoder::set_animated
    - Result::as_ref
    - Cursor::new
    linkageType: ''
    returnType: Result
    signature: fn image_validate_animation2() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2307,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2311,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2312,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2313,1
    - Dst: Encoder::set_animated
      Src: /src/image-png/src/encoder.rs:2314,1
    - Dst: Encoder::set_sep_def_img
      Src: /src/image-png/src/encoder.rs:2315,1
    - Dst: Encoder::validate_sequence
      Src: /src/image-png/src/encoder.rs:2316,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2317,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:2319,1
    - Dst: Result::as_ref
      Src: /src/image-png/src/encoder.rs:2319,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:2320,1
    - Dst: Result::as_ref
      Src: /src/image-png/src/encoder.rs:2320,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:2321,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2323,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2302
    functionDepth: 11
    functionLinenumber: 2302
    functionLinenumberEnd: 2324
    functionName: tests::image_validate_animation_sep_def_image
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Encoder::validate_sequence
    - Encoder::set_color
    - Encoder::set_depth
    - Encoder::set_sep_def_img
    - finish
    - Ok
    - write_image_data
    - Encoder::write_header
    - Encoder::set_animated
    - Result::as_ref
    - Cursor::new
    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:2332,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2334,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2335,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2336,1
    - Dst: Encoder::validate_sequence
      Src: /src/image-png/src/encoder.rs:2337,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2338,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2327
    functionDepth: 11
    functionLinenumber: 2327
    functionLinenumberEnd: 2342
    functionName: tests::image_validate_missing_image
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Encoder::validate_sequence
    - Encoder::set_color
    - Encoder::set_depth
    - Ok
    - Encoder::write_header
    - Cursor::new
    linkageType: ''
    returnType: Result
    signature: fn image_validate_missing_image() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2350,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2354,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2355,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2356,1
    - Dst: Encoder::set_animated
      Src: /src/image-png/src/encoder.rs:2357,1
    - Dst: Encoder::validate_sequence
      Src: /src/image-png/src/encoder.rs:2358,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2359,1
    - Dst: write_image_data
      Src: /src/image-png/src/encoder.rs:2361,1
    - Dst: Result::as_ref
      Src: /src/image-png/src/encoder.rs:2361,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2345
    functionDepth: 11
    functionLinenumber: 2345
    functionLinenumberEnd: 2365
    functionName: tests::image_validate_missing_animated_frame
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Encoder::validate_sequence
    - Encoder::set_color
    - Encoder::set_depth
    - Ok
    - write_image_data
    - Encoder::write_header
    - Encoder::set_animated
    - Result::as_ref
    - Cursor::new
    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:2370,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2372,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2373,1
    - Dst: Result::stream_writer
      Src: /src/image-png/src/encoder.rs:2374,1
    - Dst: write
      Src: /src/image-png/src/encoder.rs:2376,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:2378,1
    - Dst: drop
      Src: /src/image-png/src/encoder.rs:2379,1
    - Dst: Self::set_position
      Src: /src/image-png/src/encoder.rs:2382,1
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:2383,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:2383,1
    - Dst: Result::expect
      Src: /src/image-png/src/encoder.rs:2383,1
    - Dst: next_frame
      Src: /src/image-png/src/encoder.rs:2385,1
    - Dst: expect
      Src: /src/image-png/src/encoder.rs:2385,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2368
    functionDepth: 11
    functionLinenumber: 2368
    functionLinenumberEnd: 2390
    functionName: tests::issue_307_stream_validation
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Ok
    - drop
    - finish
    - Self::set_position
    - Result::stream_writer
    - write
    - Encoder::write_header
    - Decoder::read_info
    - expect
    - Decoder::new
    - next_frame
    - Cursor::new
    - Result::expect
    linkageType: ''
    returnType: Result
    signature: fn issue_307_stream_validation() -> 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:2397,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2398,1
    - Dst: Encoder::set_filter
      Src: /src/image-png/src/encoder.rs:2399,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2400,1
    - Dst: Result::stream_writer
      Src: /src/image-png/src/encoder.rs:2401,1
    - Dst: write
      Src: /src/image-png/src/encoder.rs:2404,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:2407,1
    - Dst: drop
      Src: /src/image-png/src/encoder.rs:2408,1
    - Dst: Self::set_position
      Src: /src/image-png/src/encoder.rs:2411,1
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:2412,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:2412,1
    - Dst: Result::expect
      Src: /src/image-png/src/encoder.rs:2412,1
    - Dst: next_frame
      Src: /src/image-png/src/encoder.rs:2414,1
    - Dst: expect
      Src: /src/image-png/src/encoder.rs:2414,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2418,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2419
      start: 2393
    functionDepth: 11
    functionLinenumber: 2393
    functionLinenumberEnd: 2419
    functionName: tests::stream_filtering
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Encoder::set_color
    - Ok
    - drop
    - finish
    - Encoder::set_filter
    - Self::set_position
    - Result::stream_writer
    - write
    - Encoder::write_header
    - Decoder::read_info
    - expect
    - Decoder::new
    - next_frame
    - Cursor::new
    - Result::expect
    linkageType: ''
    returnType: Result
    signature: fn stream_filtering() -> Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image-png/src/encoder.rs:2423,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2425,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2426,1
    - Dst: Encoder::set_compression
      Src: /src/image-png/src/encoder.rs:2427,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2428,1
    - Dst: Result::stream_writer
      Src: /src/image-png/src/encoder.rs:2429,1
    - Dst: write
      Src: /src/image-png/src/encoder.rs:2432,1
    - Dst: flush
      Src: /src/image-png/src/encoder.rs:2434,1
    - Dst: finish
      Src: /src/image-png/src/encoder.rs:2436,1
    - Dst: drop
      Src: /src/image-png/src/encoder.rs:2437,1
    - Dst: Self::set_position
      Src: /src/image-png/src/encoder.rs:2440,1
    - Dst: Decoder::new
      Src: /src/image-png/src/encoder.rs:2441,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/encoder.rs:2441,1
    - Dst: Result::expect
      Src: /src/image-png/src/encoder.rs:2441,1
    - Dst: next_frame
      Src: /src/image-png/src/encoder.rs:2443,1
    - Dst: expect
      Src: /src/image-png/src/encoder.rs:2443,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2447,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 55
    argCount: 1
    argNames:
    - compression
    argTypes:
    - Compression
    constantsTouched: []
    func_position:
      end: 2448
      start: 2421
    functionDepth: 11
    functionLinenumber: 2421
    functionLinenumberEnd: 2448
    functionName: tests::test_stream_flushing
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Encoder::set_color
    - Ok
    - drop
    - finish
    - Encoder::set_compression
    - Self::set_position
    - next_frame
    - Result::stream_writer
    - write
    - Encoder::write_header
    - Decoder::read_info
    - expect
    - Decoder::new
    - flush
    - Cursor::new
    - Result::expect
    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:2452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2451
    functionDepth: 12
    functionLinenumber: 2451
    functionLinenumberEnd: 2453
    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:2457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2456
    functionDepth: 12
    functionLinenumber: 2456
    functionLinenumberEnd: 2458
    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:2462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2463
      start: 2461
    functionDepth: 12
    functionLinenumber: 2461
    functionLinenumberEnd: 2463
    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:2467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2466
    functionDepth: 12
    functionLinenumber: 2466
    functionLinenumberEnd: 2468
    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:2472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2471
    functionDepth: 12
    functionLinenumber: 2471
    functionLinenumberEnd: 2473
    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:2481,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2483,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2484,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2485,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2486,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2490
      start: 2477
    functionDepth: 11
    functionLinenumber: 2477
    functionLinenumberEnd: 2490
    functionName: tests::exper_error_on_huge_chunk
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Encoder::set_color
    - Encoder::set_depth
    - Ok
    - Encoder::write_header
    - Cursor::new
    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:2498,1
    - Dst: Encoder::new
      Src: /src/image-png/src/encoder.rs:2500,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2501,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2502,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2503,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2507
      start: 2494
    functionDepth: 11
    functionLinenumber: 2494
    functionLinenumberEnd: 2507
    functionName: tests::exper_error_on_non_u32_chunk
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Encoder::set_color
    - Encoder::set_depth
    - Ok
    - Encoder::write_header
    - Cursor::new
    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:2530,1
    - Dst: NoWriter
      Src: /src/image-png/src/encoder.rs:2530,1
    - Dst: Encoder::set_depth
      Src: /src/image-png/src/encoder.rs:2531,1
    - Dst: Encoder::set_color
      Src: /src/image-png/src/encoder.rs:2532,1
    - Dst: Encoder::write_header
      Src: /src/image-png/src/encoder.rs:2534,1
    - Dst: Result::write_image_data
      Src: /src/image-png/src/encoder.rs:2535,1
    - Dst: Result::finish
      Src: /src/image-png/src/encoder.rs:2536,1
    - Dst: Ok
      Src: /src/image-png/src/encoder.rs:2540,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2510
    functionDepth: 11
    functionLinenumber: 2510
    functionLinenumberEnd: 2541
    functionName: tests::finish_drops_inner_writer
    functionSourceFile: /src/image-png/src/encoder.rs
    functionUses: 0
    functionsReached:
    - Encoder::new
    - Encoder::set_color
    - Encoder::set_depth
    - Ok
    - Encoder::write_header
    - Result::write_image_data
    - Result::finish
    - NoWriter
    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::map
    - Result::iter
    linkageType: ''
    returnType: String
    signature: '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:
    - encode_iso_8859_1_iter
    - UnfilterBuf::push
    - Ok
    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
    - Result::chars
    - map
    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:
    - Ok
    - Err
    - Result::is_ascii
    - std::str::from_utf8
    - 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:
    - Ok
    - Err
    - '&[u8]::is_empty'
    - '&[u8]::len'
    - decode_iso_8859_1
    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:
    - encode_iso_8859_1_into
    - into
    - encode_iso_8859_1
    - Err
    - Result::push
    - Result::len
    - encoder::write_chunk
    - Result::is_empty
    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:
    - OptCompressed::Uncompressed
    - 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: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:
    - Ok
    - Err
    - OptCompressed::Compressed
    - '&[u8]::is_empty'
    - '&[u8]::len'
    - decode_iso_8859_1
    - '&[u8]::to_vec'
    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:
    - Ok
    - Err
    - OptCompressed::Uncompressed
    - DecodingError::from
    - fdeflate::decompress_to_vec_bounded
    - decode_iso_8859_1
    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:
    - map_err
    - Ok
    - clone
    - fdeflate::decompress_to_vec
    - DecodingError::from
    - decode_iso_8859_1
    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:
    - ZlibEncoder::new
    - EncodingError::from
    - Result::map_err
    - Compression::fast
    - map_err
    - Ok
    - encode_iso_8859_1
    - Self::write_all
    - Self::finish
    - Vec::new
    - OptCompressed::Compressed
    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:
    - ZlibEncoder::new
    - EncodingError::from
    - Result::map_err
    - Compression::fast
    - map_err
    - into
    - encode_iso_8859_1
    - Err
    - Result::push
    - Result::len
    - Result::extend_from_slice
    - Self::write_all
    - Self::finish
    - encoder::write_chunk
    - Result::is_empty
    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:
    - '&str::to_string'
    - OptCompressed::Uncompressed
    - 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: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:
    - map_err
    - Ok
    - decode_ascii
    - Err
    - to_string
    - OptCompressed::Compressed
    - OptCompressed::Uncompressed
    - '&[u8]::is_empty'
    - String::from_utf8
    - '&[u8]::len'
    - std::str::from_utf8
    - decode_iso_8859_1
    - to_owned
    - '&[u8]::to_vec'
    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
    - Ok
    - Err
    - OptCompressed::Uncompressed
    - String::from_utf8
    - DecodingError::from
    - fdeflate::decompress_to_vec_bounded
    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:
    - map_err
    - Ok
    - into
    - clone
    - String::from_utf8
    - fdeflate::decompress_to_vec
    - DecodingError::from
    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:
    - ZlibEncoder::new
    - EncodingError::from
    - Result::map_err
    - Compression::fast
    - map_err
    - Ok
    - Vec::new
    - Self::write_all
    - Self::finish
    - as_bytes
    - OptCompressed::Compressed
    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:
    - Err
    - Result::push
    - Self::finish
    - as_bytes
    - ZlibEncoder::new
    - EncodingError::from
    - is_ascii
    - Compression::fast
    - encode_iso_8859_1
    - Self::write_all
    - encoder::write_chunk
    - into
    - Result::extend_from_slice
    - fdeflate::decompress_to_vec
    - Result::extend
    - Result::is_empty
    - Result::map_err
    - map_err
    - Result::len
    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:
    - ColorType::samples_u8
    - u8::into
    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: ok
      Src: /src/image-png/src/common.rs:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    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
    - ok
    - ColorType::samples_u8
    - TryFrom::try_from
    - u64::from
    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:
    - ColorType::samples
    - usize::from
    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:
    - encoder::write_chunk
    - copy_from_slice
    - to_be_bytes
    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:
    - encoder::write_chunk
    - copy_from_slice
    - 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: 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:
    - level
    - Self::Level
    - flate2::Compression::default
    - flate2::Compression::best
    - 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:
    - f32::max
    - floor
    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::forward
    - Self
    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
    - ScaledFloat::into_scaled
    - u32::to_be_bytes
    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:
    - to_be_bytes
    - into_scaled
    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:729,1
    - Dst: Vec::new
      Src: /src/image-png/src/common.rs:730,1
    - Dst: Vec::new
      Src: /src/image-png/src/common.rs:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 733
      start: 705
    functionDepth: 3
    functionLinenumber: 705
    functionLinenumberEnd: 733
    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:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 744
      start: 738
    functionDepth: 1
    functionLinenumber: 738
    functionLinenumberEnd: 744
    functionName: Info::with_size
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 1
    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: 749
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 749
    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:753,1
    - Dst: is_some
      Src: /src/image-png/src/common.rs:753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 754
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 754
    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:758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 759
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 759
    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:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 764
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 764
    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:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 769
      start: 767
    functionDepth: 4
    functionLinenumber: 767
    functionLinenumberEnd: 769
    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:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 776
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 776
    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:786,1
    - Dst: Info::bytes_per_pixel
      Src: /src/image-png/src/common.rs:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 787
      start: 785
    functionDepth: 3
    functionLinenumber: 785
    functionLinenumberEnd: 787
    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:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 792
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 792
    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:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 797
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 797
    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:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 802
      start: 799
    functionDepth: 2
    functionLinenumber: 799
    functionLinenumberEnd: 802
    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:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - width
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 808
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 808
    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:812,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:813,1
    - Dst: crate::srgb::substitute_gamma
      Src: /src/image-png/src/common.rs:813,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 817
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 817
    functionName: Info::gamma
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - crate::srgb::substitute_gamma
    - Some
    - is_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:821,1
    - Dst: Some
      Src: /src/image-png/src/common.rs:822,1
    - Dst: crate::srgb::substitute_chromaticities
      Src: /src/image-png/src/common.rs:822,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 826
      start: 820
    functionDepth: 0
    functionLinenumber: 820
    functionLinenumberEnd: 826
    functionName: Info::chromaticities
    functionSourceFile: /src/image-png/src/common.rs
    functionUses: 0
    functionsReached:
    - Some
    - crate::srgb::substitute_chromaticities
    - is_some
    linkageType: ''
    returnType: Option
    signature: pub fn chromaticities(&self) -> Option<SourceChromaticities>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image-png/src/common.rs:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - rendering_intent
    argTypes:
    - SrgbRenderingIntent
    constantsTouched: []
    func_position:
      end: 837
      start: 834
    functionDepth: 0
    functionLinenumber: 834
    functionLinenumberEnd: 837
    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: 851
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 851
    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: 855
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 855
    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: 916
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 916
    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: 923
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 923
    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: 955
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 955
    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: 970
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 970
    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:
    - super::simd::paeth_unfilter_4bpp
    - super::simd::paeth_unfilter_3bpp
    - filter_paeth_stbi
    - '&[u8]::chunks_exact'
    - '&mut [u8]::chunks_exact_mut'
    - zip
    - wrapping_add
    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:
    - unwrap
    - u64::from
    - usize::try_from
    - 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:
    - adam7::expand_pass
    - bytes_of_width
    - Adam7Iterator::into_iter
    - 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:
    - Info::default
    - Option::unwrap
    - BitDepth::from_u8
    - map
    - Some
    - Result::into
    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:
    - safe_to_copy
    - field
    - reserved_set
    - finish
    - DebugType
    - is_private
    - '&Self::Target::debug_struct'
    - is_critical
    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:
    - Box::new
    - Transformations::contains
    - Ok
    - into
    - Err
    - palette::create_expansion_into_rgba8
    - palette::create_expansion_into_rgb8
    - DecodingError::Format
    - is_some
    - is_none
    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::next
    - Result::iter
    - Option::expect
    - func
    - Result::zip
    - '&mut [u8]::chunks_exact_mut'
    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:
    - Result::chunks_exact
    - copy_from_slice
    - '&mut [u8]::chunks_exact_mut'
    - zip
    - samples
    - Some
    - as_deref
    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:
    - Result::chunks_exact
    - copy_from_slice
    - '&mut [u8]::chunks_exact_mut'
    - zip
    - samples
    - Some
    - as_deref
    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:
    - Result::chunks_exact
    - '&mut [u8]::chunks_exact_mut'
    - zip
    - samples
    - Some
    - as_deref
    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:
    - as_deref
    - unpack_bits
    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:
    - Limits::default
    - StreamingDecoder::new_with_options
    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:
    - Ok
    - UnfilterBuf::is_empty
    - consume
    - into
    - Err
    - update
    - DecodingError::IoError
    - 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:
    - ReadDecoder::decode_next
    - Option::is_none
    - Ok
    - Option::unwrap
    - ReadDecoder::info
    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:
    - ReadDecoder::decode_next
    - Ok
    - into
    - Err
    - DecodingError::Format
    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:
    - ReadDecoder::decode_next
    - Ok
    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:
    - ReadDecoder::decode_image_data
    - Ok
    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
    - Adam7Iterator::new
    - IterImpl::Adam7
    - Self
    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
    - Vec::next
    - InterlaceInfo::Null
    - next
    - Some
    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:
    - Err
    - Ok
    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: 13
    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:
    - ReadDecoder::with_options
    - Limits::default
    - Self::set_limits
    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:233,1
    - Dst: is_none
      Src: /src/image-png/src/decoder/mod.rs:233,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:241,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 192
    functionDepth: 5
    functionLinenumber: 192
    functionLinenumberEnd: 242
    functionName: Decoder::read_info
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 7
    functionsReached:
    - Option::is_none
    - as_ref
    - Ok
    - SubframeInfo::not_yet_init
    - Reader::output_buffer_size
    - '&Info::checked_raw_row_length'
    - Err
    - UnfilteringBuffer::new
    - Reader::info
    - Vec::new
    - Decoder::read_header_info
    - is_none
    - Reader::read_until_image_data
    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: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    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:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ignore_text_chunk
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 265
    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:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ignore_iccp_chunk
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 280
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 280
    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:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ignore_checksums
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 286
    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:347,1
    - Dst: DecodingError::Parameter
      Src: /src/image-png/src/decoder/mod.rs:347,1
    - Dst: into
      Src: /src/image-png/src/decoder/mod.rs:348,1
    - Dst: Reader::finish_decoding
      Src: /src/image-png/src/decoder/mod.rs:354,1
    - Dst: Reader::read_until_image_data
      Src: /src/image-png/src/decoder/mod.rs:356,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:361,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:361,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/mod.rs:361,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/mod.rs:361,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 362
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 362
    functionName: Reader::next_frame_info
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - Ok
    - into
    - DecodingError::Parameter
    - Err
    - Reader::info
    - unwrap
    - Reader::finish_decoding
    - 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:367,1
    - Dst: SubframeInfo::new
      Src: /src/image-png/src/decoder/mod.rs:369,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:369,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:370,1
    - Dst: '&Info::bpp_in_prediction'
      Src: /src/image-png/src/decoder/mod.rs:370,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:372,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:375,1
    - Dst: '&Info::raw_row_length_from_width'
      Src: /src/image-png/src/decoder/mod.rs:375,1
    - Dst: count_samples
      Src: /src/image-png/src/decoder/mod.rs:377,1
    - Dst: count_lines
      Src: /src/image-png/src/decoder/mod.rs:379,1
    - Dst: start_frame
      Src: /src/image-png/src/decoder/mod.rs:385,1
    - Dst: Reader::unguarded_output_line_size
      Src: /src/image-png/src/decoder/mod.rs:388,1
    - Dst: reserve_bytes
      Src: /src/image-png/src/decoder/mod.rs:389,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 392
      start: 366
    functionDepth: 4
    functionLinenumber: 366
    functionLinenumberEnd: 392
    functionName: Reader::read_until_image_data
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 2
    functionsReached:
    - SubframeInfo::new
    - start_frame
    - Ok
    - count_lines
    - read_until_image_data
    - '&Info::bpp_in_prediction'
    - Reader::info
    - count_samples
    - Reader::unguarded_output_line_size
    - '&Info::raw_row_length_from_width'
    - reserve_bytes
    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:398,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/mod.rs:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 399
      start: 397
    functionDepth: 3
    functionLinenumber: 397
    functionLinenumberEnd: 399
    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:416,1
    - Dst: DecodingError::Parameter
      Src: /src/image-png/src/decoder/mod.rs:416,1
    - Dst: into
      Src: /src/image-png/src/decoder/mod.rs:417,1
    - Dst: Reader::read_until_image_data
      Src: /src/image-png/src/decoder/mod.rs:422,1
    - Dst: Reader::output_buffer_size
      Src: /src/image-png/src/decoder/mod.rs:428,1
    - Dst: Option::ok_or
      Src: /src/image-png/src/decoder/mod.rs:428,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/mod.rs:432,1
    - Dst: Err
      Src: /src/image-png/src/decoder/mod.rs:433,1
    - Dst: DecodingError::Parameter
      Src: /src/image-png/src/decoder/mod.rs:433,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/mod.rs:436,1
    - Dst: into
      Src: /src/image-png/src/decoder/mod.rs:434,1
    - Dst: Reader::output_color_type
      Src: /src/image-png/src/decoder/mod.rs:442,1
    - Dst: Reader::unguarded_output_line_size
      Src: /src/image-png/src/decoder/mod.rs:448,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:451,1
    - Dst: Reader::unguarded_output_line_size
      Src: /src/image-png/src/decoder/mod.rs:452,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:452,1
    - Dst: (ColorType, BitDepth)::samples
      Src: /src/image-png/src/decoder/mod.rs:453,1
    - Dst: Reader::next_interlaced_row
      Src: /src/image-png/src/decoder/mod.rs:461,1
    - Dst: '&InterlaceInfo::get_adam7_info'
      Src: /src/image-png/src/decoder/mod.rs:464,1
    - Dst: Option::unwrap
      Src: /src/image-png/src/decoder/mod.rs:464,1
    - Dst: expand
      Src: /src/image-png/src/decoder/mod.rs:465,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/mod.rs:468,1
    - Dst: map
      Src: /src/image-png/src/decoder/mod.rs:469,1
    - Dst: Result::line_number
      Src: /src/image-png/src/decoder/mod.rs:470,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/mod.rs:469,1
    - Dst: UnfilterBuf::chunks_exact_mut
      Src: /src/image-png/src/decoder/mod.rs:473,1
    - Dst: take
      Src: /src/image-png/src/decoder/mod.rs:473,1
    - Dst: skip
      Src: /src/image-png/src/decoder/mod.rs:473,1
    - Dst: Reader::next_interlaced_row_impl
      Src: /src/image-png/src/decoder/mod.rs:478,1
    - Dst: Reader::finish_decoding
      Src: /src/image-png/src/decoder/mod.rs:483,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:485,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 111
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 486
      start: 414
    functionDepth: 9
    functionLinenumber: 414
    functionLinenumberEnd: 486
    functionName: Reader::next_frame
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 9
    functionsReached:
    - Reader::output_buffer_size
    - Err
    - UnfilterBuf::len
    - Reader::unguarded_output_line_size
    - expand
    - Ok
    - unwrap_or
    - Reader::read_until_image_data
    - as_ref
    - into
    - DecodingError::Parameter
    - Option::unwrap
    - Reader::info
    - Result::line_number
    - UnfilterBuf::chunks_exact_mut
    - Option::ok_or
    - Reader::next_interlaced_row
    - map
    - Reader::finish_decoding
    - take
    - (ColorType, BitDepth)::samples
    - Reader::next_interlaced_row_impl
    - '&InterlaceInfo::get_adam7_info'
    - Reader::output_color_type
    - skip
    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: 493
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 493
    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:504,1
    - Dst: Reader::mark_subframe_as_consumed_and_flushed
      Src: /src/image-png/src/decoder/mod.rs:505,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 509
      start: 497
    functionDepth: 5
    functionLinenumber: 497
    functionLinenumberEnd: 509
    functionName: Reader::finish_decoding
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 2
    functionsReached:
    - Reader::mark_subframe_as_consumed_and_flushed
    - Ok
    - finish_decoding_image_data
    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:515,1
    - Dst: Result::map
      Src: /src/image-png/src/decoder/mod.rs:515,1
    - Dst: Result::map
      Src: /src/image-png/src/decoder/mod.rs:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 517
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 517
    functionName: Reader::next_row
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached:
    - Result::map
    - Reader::next_interlaced_row
    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:523,1
    - Dst: Reader::output_line_size
      Src: /src/image-png/src/decoder/mod.rs:524,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:525,1
    - Dst: Option::ok_or
      Src: /src/image-png/src/decoder/mod.rs:524,1
    - Dst: Wrapper::resize
      Src: /src/image-png/src/decoder/mod.rs:527,1
    - Dst: Reader::read_row
      Src: /src/image-png/src/decoder/mod.rs:528,1
    - Dst: Result::map
      Src: /src/image-png/src/decoder/mod.rs:530,1
    - Dst: map
      Src: /src/image-png/src/decoder/mod.rs:531,1
    - Dst: Reader::output_line_size_for_interlace_info
      Src: /src/image-png/src/decoder/mod.rs:532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 539
      start: 522
    functionDepth: 4
    functionLinenumber: 522
    functionLinenumberEnd: 539
    functionName: Reader::next_interlaced_row
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 2
    functionsReached:
    - Reader::output_line_size
    - Reader::read_row
    - Reader::output_line_size_for_interlace_info
    - Wrapper::resize
    - Reader::info
    - mem::take
    - Option::ok_or
    - map
    - 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:553,1
    - Dst: Reader::finish_decoding
      Src: /src/image-png/src/decoder/mod.rs:555,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:556,1
    - Dst: '&InterlaceInfo::line_number'
      Src: /src/image-png/src/decoder/mod.rs:560,1
    - Dst: reset_prev_row
      Src: /src/image-png/src/decoder/mod.rs:561,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:566,1
    - Dst: '&Info::raw_row_length_from_width'
      Src: /src/image-png/src/decoder/mod.rs:566,1
    - Dst: Reader::output_line_size_for_interlace_info
      Src: /src/image-png/src/decoder/mod.rs:570,1
    - Dst: Reader::next_interlaced_row_impl
      Src: /src/image-png/src/decoder/mod.rs:573,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:575,1
    - Dst: Some
      Src: /src/image-png/src/decoder/mod.rs:575,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 1
    argNames:
    - output_buffer
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 576
      start: 549
    functionDepth: 6
    functionLinenumber: 549
    functionLinenumberEnd: 576
    functionName: Reader::read_row
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - Ok
    - '&InterlaceInfo::line_number'
    - reset_prev_row
    - Reader::output_line_size_for_interlace_info
    - Reader::info
    - Reader::next_interlaced_row_impl
    - '&Info::raw_row_length_from_width'
    - Some
    - Reader::finish_decoding
    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:583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - interlace
    argTypes:
    - '&InterlaceInfo'
    constantsTouched: []
    func_position:
      end: 584
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 584
    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:590,1
    - Dst: DecodingError::Parameter
      Src: /src/image-png/src/decoder/mod.rs:590,1
    - Dst: into
      Src: /src/image-png/src/decoder/mod.rs:591,1
    - Dst: read_until_end_of_input
      Src: /src/image-png/src/decoder/mod.rs:596,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 600
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 600
    functionName: Reader::finish
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    - into
    - DecodingError::Parameter
    - read_until_end_of_input
    - Err
    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:608,1
    - Dst: prev_row
      Src: /src/image-png/src/decoder/mod.rs:609,1
    - Dst: is_none
      Src: /src/image-png/src/decoder/mod.rs:614,1
    - Dst: Some
      Src: /src/image-png/src/decoder/mod.rs:615,1
    - Dst: self::transform::create_transform_fn
      Src: /src/image-png/src/decoder/mod.rs:615,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:615,1
    - Dst: as_deref
      Src: /src/image-png/src/decoder/mod.rs:617,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/mod.rs:617,1
    - Dst: transform_fn
      Src: /src/image-png/src/decoder/mod.rs:619,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/mod.rs:619,1
    - Dst: next
      Src: /src/image-png/src/decoder/mod.rs:621,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/mod.rs:622,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 2
    argNames:
    - rowlen
    - output_buffer
    argTypes:
    - usize
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 623
      start: 603
    functionDepth: 4
    functionLinenumber: 603
    functionLinenumberEnd: 623
    functionName: Reader::next_interlaced_row_impl
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 2
    functionsReached:
    - transform_fn
    - Ok
    - as_deref
    - Reader::next_raw_interlaced_row
    - Reader::info
    - self::transform::create_transform_fn
    - prev_row
    - next
    - unwrap
    - Some
    - is_none
    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:630,1
    - Dst: u8::intersects
      Src: /src/image-png/src/decoder/mod.rs:635,1
    - Dst: u8::contains
      Src: /src/image-png/src/decoder/mod.rs:637,1
    - Dst: u8::contains
      Src: /src/image-png/src/decoder/mod.rs:638,1
    - Dst: u8::contains
      Src: /src/image-png/src/decoder/mod.rs:645,1
    - Dst: u8::contains
      Src: /src/image-png/src/decoder/mod.rs:645,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/mod.rs:646,1
    - Dst: u8::contains
      Src: /src/image-png/src/decoder/mod.rs:646,1
    - Dst: BitDepth::from_u8
      Src: /src/image-png/src/decoder/mod.rs:657,1
    - Dst: Option::unwrap
      Src: /src/image-png/src/decoder/mod.rs:657,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 659
      start: 627
    functionDepth: 4
    functionLinenumber: 627
    functionLinenumberEnd: 659
    functionName: Reader::output_color_type
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 1
    functionsReached:
    - Option::unwrap
    - BitDepth::from_u8
    - Reader::info
    - u8::contains
    - is_some
    - u8::intersects
    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:667,1
    - Dst: '&Info::size'
      Src: /src/image-png/src/decoder/mod.rs:667,1
    - Dst: Reader::output_color_type
      Src: /src/image-png/src/decoder/mod.rs:668,1
    - Dst: checked_raw_row_length
      Src: /src/image-png/src/decoder/mod.rs:673,1
    - Dst: checked_sub
      Src: /src/image-png/src/decoder/mod.rs:673,1
    - Dst: usize::try_from
      Src: /src/image-png/src/decoder/mod.rs:674,1
    - Dst: ok
      Src: /src/image-png/src/decoder/mod.rs:674,1
    - Dst: checked_mul
      Src: /src/image-png/src/decoder/mod.rs:675,1
    - Dst: then_some
      Src: /src/image-png/src/decoder/mod.rs:677,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 678
      start: 666
    functionDepth: 13
    functionLinenumber: 666
    functionLinenumberEnd: 678
    functionName: Reader::output_buffer_size
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 2
    functionsReached:
    - '&Info::size'
    - Reader::info
    - usize::try_from
    - ok
    - Reader::output_color_type
    - checked_mul
    - then_some
    - checked_raw_row_length
    - 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:682,1
    - Dst: raw_row_length_from_width
      Src: /src/image-png/src/decoder/mod.rs:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - width
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 684
      start: 681
    functionDepth: 5
    functionLinenumber: 681
    functionLinenumberEnd: 684
    functionName: Reader::unguarded_output_line_size
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 3
    functionsReached:
    - raw_row_length_from_width
    - Reader::output_color_type
    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:691,1
    - Dst: checked_raw_row_length
      Src: /src/image-png/src/decoder/mod.rs:692,1
    - Dst: checked_sub
      Src: /src/image-png/src/decoder/mod.rs:692,1
    - Dst: then_some
      Src: /src/image-png/src/decoder/mod.rs:694,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - width
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 5
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: Reader::output_line_size
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 1
    functionsReached:
    - checked_raw_row_length
    - Reader::output_color_type
    - then_some
    - checked_sub
    linkageType: ''
    returnType: Option
    signature: 'pub fn output_line_size(&self, width: u32) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: curr_row_len
      Src: /src/image-png/src/decoder/mod.rs:700,1
    - Dst: Err
      Src: /src/image-png/src/decoder/mod.rs:702,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/mod.rs:702,1
    - Dst: into
      Src: /src/image-png/src/decoder/mod.rs:703,1
    - Dst: with_unfilled_buffer
      Src: /src/image-png/src/decoder/mod.rs:708,1
    - Dst: decode_image_data
      Src: /src/image-png/src/decoder/mod.rs:710,1
    - Dst: Some
      Src: /src/image-png/src/decoder/mod.rs:710,1
    - Dst: Reader::mark_subframe_as_consumed_and_flushed
      Src: /src/image-png/src/decoder/mod.rs:714,1
    - Dst: unfilter_curr_row
      Src: /src/image-png/src/decoder/mod.rs:718,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 1
    argNames:
    - rowlen
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 719
      start: 698
    functionDepth: 3
    functionLinenumber: 698
    functionLinenumberEnd: 719
    functionName: Reader::next_raw_interlaced_row
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 1
    functionsReached:
    - curr_row_len
    - into
    - unfilter_curr_row
    - Err
    - with_unfilled_buffer
    - DecodingError::Format
    - decode_image_data
    - Some
    - Reader::mark_subframe_as_consumed_and_flushed
    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:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 732
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 732
    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:743,1
    - Dst: Self::next
      Src: /src/image-png/src/decoder/mod.rs:744,1
    - Dst: Result::raw_row_length_from_width
      Src: /src/image-png/src/decoder/mod.rs:748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - info
    argTypes:
    - '&Info'
    constantsTouched: []
    func_position:
      end: 753
      start: 734
    functionDepth: 5
    functionLinenumber: 734
    functionLinenumberEnd: 753
    functionName: SubframeInfo::new
    functionSourceFile: /src/image-png/src/decoder/mod.rs
    functionUses: 1
    functionsReached:
    - InterlaceInfoIter::new
    - Self::next
    - Result::raw_row_length_from_width
    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: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    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:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 290
    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: 302
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 302
    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:458,1
    - Dst: FormatErrorInner::BadTextEncoding
      Src: /src/image-png/src/decoder/stream.rs:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tbe
    argTypes:
    - TextDecodingError
    constantsTouched: []
    func_position:
      end: 461
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 461
    functionName: DecodingError::from
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 4
    functionsReached:
    - DecodingError::Format
    - FormatErrorInner::BadTextEncoding
    linkageType: ''
    returnType: Self
    signature: 'fn from(tbe: TextDecodingError) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 483
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 483
    functionName: DecodeOptions::default
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached: []
    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: 492
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 492
    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: 499
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 499
    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: 506
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 506
    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: 513
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 513
    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: 520
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 520
    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: 527
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 527
    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: StreamingDecoder::new_with_options
      Src: /src/image-png/src/decoder/stream.rs:590,1
    - Dst: DecodeOptions::default
      Src: /src/image-png/src/decoder/stream.rs:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 591
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 591
    functionName: StreamingDecoder::new
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - DecodeOptions::default
    - StreamingDecoder::new_with_options
    linkageType: ''
    returnType: StreamingDecoder
    signature: pub fn new() -> StreamingDecoder
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZlibStream::new
      Src: /src/image-png/src/decoder/stream.rs:594,1
    - Dst: Self::set_ignore_adler32
      Src: /src/image-png/src/decoder/stream.rs:595,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:598,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:598,1
    - Dst: chunk::ChunkType
      Src: /src/image-png/src/decoder/stream.rs:600,1
    - Dst: Crc32::new
      Src: /src/image-png/src/decoder/stream.rs:601,1
    - Dst: Vec::with_capacity
      Src: /src/image-png/src/decoder/stream.rs:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - decode_options
    argTypes:
    - DecodeOptions
    constantsTouched: []
    func_position:
      end: 616
      start: 593
    functionDepth: 3
    functionLinenumber: 593
    functionLinenumberEnd: 616
    functionName: StreamingDecoder::new_with_options
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 2
    functionsReached:
    - Crc32::new
    - Vec::with_capacity
    - State::new_u32
    - chunk::ChunkType
    - Some
    - Self::set_ignore_adler32
    - ZlibStream::new
    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:620,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:620,1
    - Dst: Crc32::new
      Src: /src/image-png/src/decoder/stream.rs:621,1
    - Dst: clear
      Src: /src/image-png/src/decoder/stream.rs:623,1
    - Dst: reset
      Src: /src/image-png/src/decoder/stream.rs:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 628
      start: 619
    functionDepth: 3
    functionLinenumber: 619
    functionLinenumberEnd: 628
    functionName: StreamingDecoder::reset
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Crc32::new
    - State::new_u32
    - reset
    - Some
    - clear
    linkageType: ''
    returnType: void
    signature: pub fn reset(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/image-png/src/decoder/stream.rs:632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 633
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 633
    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:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ignore_text_chunk
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 637
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 637
    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:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ignore_iccp_chunk
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 641
      start: 639
    functionDepth: 2
    functionLinenumber: 639
    functionLinenumberEnd: 641
    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:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 646
      start: 644
    functionDepth: 1
    functionLinenumber: 644
    functionLinenumberEnd: 646
    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:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ignore_adler32
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 657
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 657
    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:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ignore_crc
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 665
      start: 663
    functionDepth: 1
    functionLinenumber: 663
    functionLinenumberEnd: 665
    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:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - skip_ancillary_crc_failures
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 673
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 673
    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:685,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:686,1
    - Dst: DecodingError::Parameter
      Src: /src/image-png/src/decoder/stream.rs:686,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:687,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:691,1
    - Dst: UnfilterBuf::is_empty
      Src: /src/image-png/src/decoder/stream.rs:692,1
    - Dst: Result::as_deref_mut
      Src: /src/image-png/src/decoder/stream.rs:693,1
    - Dst: StreamingDecoder::next_state
      Src: /src/image-png/src/decoder/stream.rs:695,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:699,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:699,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:703,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:707,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:707,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 49
    argCount: 2
    argNames:
    - buf
    - image_data
    argTypes:
    - '&[u8]'
    - Option<&mut UnfilterBuf<'_>>
    constantsTouched: []
    func_position:
      end: 708
      start: 680
    functionDepth: 9
    functionLinenumber: 680
    functionLinenumberEnd: 708
    functionName: StreamingDecoder::update
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Ok
    - UnfilterBuf::is_empty
    - into
    - DecodingError::Parameter
    - Err
    - UnfilterBuf::len
    - Result::as_deref_mut
    - StreamingDecoder::next_state
    - is_none
    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:718,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:718,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:727,1
    - Dst: StreamingDecoder::parse_u32
      Src: /src/image-png/src/decoder/stream.rs:734,1
    - Dst: std::cmp::min
      Src: /src/image-png/src/decoder/stream.rs:738,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:738,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/decoder/stream.rs:739,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:746,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:751,1
    - Dst: StreamingDecoder::parse_u32
      Src: /src/image-png/src/decoder/stream.rs:754,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:761,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:761,1
    - Dst: U32ValueKind::Crc
      Src: /src/image-png/src/decoder/stream.rs:761,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:762,1
    - Dst: usize::capacity
      Src: /src/image-png/src/decoder/stream.rs:772,1
    - Dst: usize::len
      Src: /src/image-png/src/decoder/stream.rs:772,1
    - Dst: std::cmp::min
      Src: /src/image-png/src/decoder/stream.rs:773,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:773,1
    - Dst: std::cmp::min
      Src: /src/image-png/src/decoder/stream.rs:774,1
    - Dst: update
      Src: /src/image-png/src/decoder/stream.rs:778,1
    - Dst: usize::len
      Src: /src/image-png/src/decoder/stream.rs:782,1
    - Dst: usize::capacity
      Src: /src/image-png/src/decoder/stream.rs:782,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:784,1
    - Dst: usize::capacity
      Src: /src/image-png/src/decoder/stream.rs:789,1
    - Dst: std::cmp::min
      Src: /src/image-png/src/decoder/stream.rs:789,1
    - Dst: reserve_bytes
      Src: /src/image-png/src/decoder/stream.rs:791,1
    - Dst: usize::reserve_exact
      Src: /src/image-png/src/decoder/stream.rs:792,1
    - Dst: usize::extend_from_slice
      Src: /src/image-png/src/decoder/stream.rs:794,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:800,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:800,1
    - Dst: U32ValueKind::Crc
      Src: /src/image-png/src/decoder/stream.rs:800,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:802,1
    - Dst: ReadChunkData
      Src: /src/image-png/src/decoder/stream.rs:802,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:804,1
    - Dst: std::cmp::min
      Src: /src/image-png/src/decoder/stream.rs:809,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:809,1
    - Dst: decompress
      Src: /src/image-png/src/decoder/stream.rs:813,1
    - Dst: update
      Src: /src/image-png/src/decoder/stream.rs:819,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:824,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:824,1
    - Dst: U32ValueKind::Crc
      Src: /src/image-png/src/decoder/stream.rs:824,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:826,1
    - Dst: ImageData
      Src: /src/image-png/src/decoder/stream.rs:826,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:828,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 195
    argCount: 2
    argNames:
    - buf
    - image_data
    argTypes:
    - '&[u8]'
    - Option<&mut UnfilterBuf<'_>>
    constantsTouched: []
    func_position:
      end: 831
      start: 710
    functionDepth: 9
    functionLinenumber: 710
    functionLinenumberEnd: 831
    functionName: StreamingDecoder::next_state
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - std::cmp::min
    - Err
    - UnfilterBuf::len
    - Some
    - usize::len
    - ImageData
    - Ok
    - State::new_u32
    - usize::reserve_exact
    - unwrap
    - decompress
    - U32ValueKind::Crc
    - reserve_bytes
    - copy_from_slice
    - usize::capacity
    - take
    - update
    - ReadChunkData
    - StreamingDecoder::parse_u32
    - usize::extend_from_slice
    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:841,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:841,1
    - Dst: u32::from_be_bytes
      Src: /src/image-png/src/decoder/stream.rs:842,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:847,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:847,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:848,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:850,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:850,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:851,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:857,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:857,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:858,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:860,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:860,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:861,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:866,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:866,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:867,1
    - Dst: chunk::ChunkType
      Src: /src/image-png/src/decoder/stream.rs:870,1
    - Dst: is_none
      Src: /src/image-png/src/decoder/stream.rs:871,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:872,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:872,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:873,1
    - Dst: finish
      Src: /src/image-png/src/decoder/stream.rs:880,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:887,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:900,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:905,1
    - Dst: reset
      Src: /src/image-png/src/decoder/stream.rs:911,1
    - Dst: update
      Src: /src/image-png/src/decoder/stream.rs:912,1
    - Dst: clear
      Src: /src/image-png/src/decoder/stream.rs:915,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:920,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:920,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:921,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:928,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:928,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:929,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:933,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:933,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:937,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:937,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:938,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:946,1
    - Dst: State::ImageData
      Src: /src/image-png/src/decoder/stream.rs:946,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:948,1
    - Dst: StreamingDecoder::start_chunk
      Src: /src/image-png/src/decoder/stream.rs:948,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:950,1
    - Dst: Decoded::ChunkBegin
      Src: /src/image-png/src/decoder/stream.rs:950,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:959,1
    - Dst: finalize
      Src: /src/image-png/src/decoder/stream.rs:959,1
    - Dst: StreamingDecoder::parse_chunk
      Src: /src/image-png/src/decoder/stream.rs:968,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:971,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:971,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:973,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:976,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:976,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:977,1
    - Dst: Decoded::SkippedAncillaryChunk
      Src: /src/image-png/src/decoder/stream.rs:979,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:983,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:983,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:984,1
    - Dst: Decoded::BadAncillaryChunk
      Src: /src/image-png/src/decoder/stream.rs:984,1
    - Dst: chunk::is_critical
      Src: /src/image-png/src/decoder/stream.rs:988,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:991,1
    - Dst: State::new_u32
      Src: /src/image-png/src/decoder/stream.rs:991,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:992,1
    - Dst: Decoded::BadAncillaryChunk
      Src: /src/image-png/src/decoder/stream.rs:992,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:994,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:994,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:995,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1014,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1014,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1015,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1022,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1024,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1024,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1024,1
    - Dst: val::to_be_bytes
      Src: /src/image-png/src/decoder/stream.rs:1028,1
    - Dst: update
      Src: /src/image-png/src/decoder/stream.rs:1029,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1032,1
    - Dst: State::ImageData
      Src: /src/image-png/src/decoder/stream.rs:1032,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1033,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: 1036
      start: 833
    functionDepth: 13
    functionLinenumber: 833
    functionLinenumberEnd: 1036
    functionName: StreamingDecoder::parse_u32
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - State::ImageData
    - Err
    - DecodingError::Format
    - '&[u8]::try_into'
    - Some
    - clear
    - Decoded::ChunkBegin
    - Ok
    - State::new_u32
    - reset
    - unwrap
    - Decoded::BadAncillaryChunk
    - chunk::is_critical
    - into
    - clone
    - u32::from_be_bytes
    - finalize
    - is_none
    - val::to_be_bytes
    - finish
    - StreamingDecoder::parse_chunk
    - update
    - Decoded::SkippedAncillaryChunk
    - chunk::ChunkType
    - StreamingDecoder::start_chunk
    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:1065,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1066,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1066,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1067,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1072,1
    - Dst: State::ReadChunkData
      Src: /src/image-png/src/decoder/stream.rs:1072,1
    - Dst: contains
      Src: /src/image-png/src/decoder/stream.rs:1076,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1081,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1081,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1082,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1093,1
    - Dst: State::ReadChunkData
      Src: /src/image-png/src/decoder/stream.rs:1093,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 79
    argCount: 2
    argNames:
    - type_str
    - length
    argTypes:
    - ChunkType
    - u32
    constantsTouched: []
    func_position:
      end: 1094
      start: 1038
    functionDepth: 2
    functionLinenumber: 1038
    functionLinenumberEnd: 1094
    functionName: StreamingDecoder::start_chunk
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Ok
    - into
    - Err
    - DecodingError::Format
    - State::ReadChunkData
    - contains
    - chunk::is_critical
    linkageType: ''
    returnType: Result
    signature: 'fn start_chunk(&mut self, type_str: ChunkType, length: u32) -> Result<State,
      DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamingDecoder::parse_ihdr
      Src: /src/image-png/src/decoder/stream.rs:1099,1
    - Dst: StreamingDecoder::parse_plte
      Src: /src/image-png/src/decoder/stream.rs:1100,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1101,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1104,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1105,1
    - Dst: StreamingDecoder::parse_sbit
      Src: /src/image-png/src/decoder/stream.rs:1108,1
    - Dst: StreamingDecoder::parse_trns
      Src: /src/image-png/src/decoder/stream.rs:1109,1
    - Dst: StreamingDecoder::parse_phys
      Src: /src/image-png/src/decoder/stream.rs:1110,1
    - Dst: StreamingDecoder::parse_gama
      Src: /src/image-png/src/decoder/stream.rs:1111,1
    - Dst: StreamingDecoder::parse_actl
      Src: /src/image-png/src/decoder/stream.rs:1112,1
    - Dst: StreamingDecoder::parse_fctl
      Src: /src/image-png/src/decoder/stream.rs:1113,1
    - Dst: StreamingDecoder::parse_chrm
      Src: /src/image-png/src/decoder/stream.rs:1114,1
    - Dst: StreamingDecoder::parse_srgb
      Src: /src/image-png/src/decoder/stream.rs:1115,1
    - Dst: StreamingDecoder::parse_cicp
      Src: /src/image-png/src/decoder/stream.rs:1116,1
    - Dst: StreamingDecoder::parse_mdcv
      Src: /src/image-png/src/decoder/stream.rs:1117,1
    - Dst: StreamingDecoder::parse_clli
      Src: /src/image-png/src/decoder/stream.rs:1118,1
    - Dst: StreamingDecoder::parse_bkgd
      Src: /src/image-png/src/decoder/stream.rs:1119,1
    - Dst: StreamingDecoder::parse_exif
      Src: /src/image-png/src/decoder/stream.rs:1122,1
    - Dst: StreamingDecoder::parse_iccp
      Src: /src/image-png/src/decoder/stream.rs:1123,1
    - Dst: StreamingDecoder::parse_text
      Src: /src/image-png/src/decoder/stream.rs:1124,1
    - Dst: StreamingDecoder::parse_ztxt
      Src: /src/image-png/src/decoder/stream.rs:1125,1
    - Dst: StreamingDecoder::parse_itxt
      Src: /src/image-png/src/decoder/stream.rs:1126,1
    - Dst: map_err
      Src: /src/image-png/src/decoder/stream.rs:1134,1
    - Dst: kind
      Src: /src/image-png/src/decoder/stream.rs:1140,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1142,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1143,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1150,1
    - Dst: Decoded::ChunkComplete
      Src: /src/image-png/src/decoder/stream.rs:1150,1
    - Dst: chunk::is_critical
      Src: /src/image-png/src/decoder/stream.rs:1152,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1161,1
    - Dst: Decoded::BadAncillaryChunk
      Src: /src/image-png/src/decoder/stream.rs:1161,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 71
    argCount: 1
    argNames:
    - type_str
    argTypes:
    - ChunkType
    constantsTouched: []
    func_position:
      end: 1165
      start: 1096
    functionDepth: 2
    functionLinenumber: 1096
    functionLinenumberEnd: 1165
    functionName: StreamingDecoder::parse_chunk
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Err
    - StreamingDecoder::parse_fctl
    - StreamingDecoder::parse_iccp
    - StreamingDecoder::parse_srgb
    - StreamingDecoder::parse_clli
    - Ok
    - StreamingDecoder::parse_cicp
    - StreamingDecoder::parse_trns
    - StreamingDecoder::parse_sbit
    - chunk::is_critical
    - Decoded::BadAncillaryChunk
    - StreamingDecoder::parse_itxt
    - Decoded::ChunkComplete
    - StreamingDecoder::parse_actl
    - StreamingDecoder::parse_chrm
    - into
    - StreamingDecoder::parse_gama
    - StreamingDecoder::parse_mdcv
    - StreamingDecoder::parse_bkgd
    - StreamingDecoder::parse_text
    - map_err
    - kind
    - StreamingDecoder::parse_ihdr
    - StreamingDecoder::parse_phys
    - StreamingDecoder::parse_ztxt
    - StreamingDecoder::parse_plte
    - StreamingDecoder::parse_exif
    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:1169,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1172,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1174,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1174,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1175,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1185,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1185,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1186,1
    - Dst: reset
      Src: /src/image-png/src/decoder/stream.rs:1195,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1199,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1200,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1201,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1202,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1203,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1204,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1206,1
    - Dst: DisposeOp::from_u8
      Src: /src/image-png/src/decoder/stream.rs:1207,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1210,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1210,1
    - Dst: FormatErrorInner::InvalidDisposeOp
      Src: /src/image-png/src/decoder/stream.rs:1211,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1211,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1217,1
    - Dst: BlendOp::from_u8
      Src: /src/image-png/src/decoder/stream.rs:1218,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1221,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1221,1
    - Dst: FormatErrorInner::InvalidBlendOp
      Src: /src/image-png/src/decoder/stream.rs:1222,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1222,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/stream.rs:1228,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1228,1
    - Dst: validate
      Src: /src/image-png/src/decoder/stream.rs:1228,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/stream.rs:1230,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1230,1
    - Dst: validate_default_image
      Src: /src/image-png/src/decoder/stream.rs:1230,1
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1232,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1232,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1232,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1233,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1167
    functionDepth: 4
    functionLinenumber: 1167
    functionLinenumberEnd: 1234
    functionName: StreamingDecoder::parse_fctl
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - Ok
    - validate
    - into
    - BlendOp::from_u8
    - Err
    - FormatErrorInner::InvalidDisposeOp
    - validate_default_image
    - DecodingError::Format
    - reset
    - UnfilterBuf::read_be
    - DisposeOp::from_u8
    - unwrap
    - FormatErrorInner::InvalidBlendOp
    - Some
    - as_mut
    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:1237,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1237,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1239,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1239,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1240,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1242,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1243,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1243,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1244,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1249,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1250,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1255,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1257,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1258,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1236
    functionDepth: 2
    functionLinenumber: 1236
    functionLinenumberEnd: 1260
    functionName: StreamingDecoder::parse_actl
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Ok
    - into
    - Err
    - DecodingError::Format
    - UnfilterBuf::read_be
    - unwrap
    - is_some
    - Some
    - as_mut
    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:1263,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1263,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1264,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1266,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1266,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1267,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1270,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:1270,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:1270,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1262
    functionDepth: 2
    functionLinenumber: 1262
    functionLinenumberEnd: 1273
    functionName: StreamingDecoder::parse_plte
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Ok
    - into
    - Err
    - clone
    - DecodingError::Format
    - unwrap
    - is_some
    - Cow::Owned
    - Some
    - as_mut
    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:1276,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1276,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1277,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: Err
      Src: /src/image-png/src/decoder/stream.rs:1284,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1284,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1285,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1289,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1290,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1290,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1291,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:1302,1
    - Dst: len
      Src: /src/image-png/src/decoder/stream.rs:1303,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1315,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1315,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1316,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1327,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1327,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1328,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1336,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:1336,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1337,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1275
    functionDepth: 13
    functionLinenumber: 1275
    functionLinenumberEnd: 1338
    functionName: StreamingDecoder::parse_sbit
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Ok
    - len
    - into
    - Err
    - clone
    - DecodingError::Format
    - unwrap
    - is_some
    - Cow::Owned
    - Some
    - as_mut
    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:1341,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1341,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1342,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1343,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1343,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1344,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:1348,1
    - Dst: len
      Src: /src/image-png/src/decoder/stream.rs:1349,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1353,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1353,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1354,1
    - Dst: truncate
      Src: /src/image-png/src/decoder/stream.rs:1359,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1361,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:1361,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1362,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1366,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1366,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1367,1
    - Dst: truncate
      Src: /src/image-png/src/decoder/stream.rs:1374,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1376,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:1376,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1377,1
    - Dst: is_none
      Src: /src/image-png/src/decoder/stream.rs:1382,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1383,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1383,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1384,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1387,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1387,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1388,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1392,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:1392,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1393,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: FormatErrorInner::ColorWithBadTrns
      Src: /src/image-png/src/decoder/stream.rs:1396,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1396,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 124
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1340
    functionDepth: 13
    functionLinenumber: 1340
    functionLinenumberEnd: 1399
    functionName: StreamingDecoder::parse_trns
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - truncate
    - Ok
    - len
    - into
    - Err
    - clone
    - DecodingError::Format
    - FormatErrorInner::ColorWithBadTrns
    - unwrap
    - is_some
    - Cow::Owned
    - Some
    - is_none
    - as_mut
    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:1402,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1402,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1404,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1404,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1405,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1407,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1408,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1408,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1409,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1413,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1414,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1415,1
    - Dst: Unit::from_u8
      Src: /src/image-png/src/decoder/stream.rs:1416,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1419,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1419,1
    - Dst: FormatErrorInner::InvalidUnit
      Src: /src/image-png/src/decoder/stream.rs:1420,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1420,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1425,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1426,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1428
      start: 1401
    functionDepth: 2
    functionLinenumber: 1401
    functionLinenumberEnd: 1428
    functionName: StreamingDecoder::parse_phys
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Ok
    - into
    - Err
    - FormatErrorInner::InvalidUnit
    - DecodingError::Format
    - Unit::from_u8
    - UnfilterBuf::read_be
    - unwrap
    - is_some
    - Some
    - as_mut
    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:1431,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1431,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1433,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1433,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1434,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1436,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1437,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1437,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1438,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1442,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1443,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1444,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1445,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1446,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1447,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1448,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1449,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1453,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1454,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1457,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1458,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1461,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1462,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1465,1
    - Dst: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1466,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1470,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1471,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1473
      start: 1430
    functionDepth: 2
    functionLinenumber: 1430
    functionLinenumberEnd: 1473
    functionName: StreamingDecoder::parse_chrm
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Ok
    - into
    - Err
    - DecodingError::Format
    - UnfilterBuf::read_be
    - unwrap
    - is_some
    - ScaledFloat::from_scaled
    - Some
    - as_mut
    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:1476,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1476,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1478,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1478,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1479,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1481,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1482,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1482,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1483,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1487,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: ScaledFloat::from_scaled
      Src: /src/image-png/src/decoder/stream.rs:1494,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1495,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1496,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1475
    functionDepth: 2
    functionLinenumber: 1475
    functionLinenumberEnd: 1498
    functionName: StreamingDecoder::parse_gama
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Ok
    - into
    - Err
    - DecodingError::Format
    - UnfilterBuf::read_be
    - unwrap
    - is_some
    - ScaledFloat::from_scaled
    - Some
    - as_mut
    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:1501,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1501,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1503,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1503,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1504,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1506,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1507,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1507,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1508,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1512,1
    - Dst: crate::SrgbRenderingIntent::from_raw
      Src: /src/image-png/src/decoder/stream.rs:1513,1
    - Dst: Option::ok_or_else
      Src: /src/image-png/src/decoder/stream.rs:1513,1
    - Dst: FormatError::from
      Src: /src/image-png/src/decoder/stream.rs:1514,1
    - Dst: FormatErrorInner::InvalidSrgbRenderingIntent
      Src: /src/image-png/src/decoder/stream.rs:1514,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1518,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1519,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1500
    functionDepth: 2
    functionLinenumber: 1500
    functionLinenumberEnd: 1521
    functionName: StreamingDecoder::parse_srgb
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Option::ok_or_else
    - Ok
    - into
    - Err
    - FormatErrorInner::InvalidSrgbRenderingIntent
    - FormatError::from
    - DecodingError::Format
    - crate::SrgbRenderingIntent::from_raw
    - UnfilterBuf::read_be
    - unwrap
    - is_some
    - Some
    - as_mut
    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:1524,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1524,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1527,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1528,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1528,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1529,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1531,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1532,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1532,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1533,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1536,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1536,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1537,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1542,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1543,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1544,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1546,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1551,1
    - Dst: DecodingError::IoError
      Src: /src/image-png/src/decoder/stream.rs:1551,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1552,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1561,1
    - Dst: DecodingError::IoError
      Src: /src/image-png/src/decoder/stream.rs:1561,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1562,1
    - Dst: UnfilterBuf::is_empty
      Src: /src/image-png/src/decoder/stream.rs:1566,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1567,1
    - Dst: DecodingError::IoError
      Src: /src/image-png/src/decoder/stream.rs:1567,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1568,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1572,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1579,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1523
    functionDepth: 2
    functionLinenumber: 1523
    functionLinenumberEnd: 1580
    functionName: StreamingDecoder::parse_cicp
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Ok
    - UnfilterBuf::is_empty
    - into
    - Err
    - DecodingError::IoError
    - DecodingError::Format
    - UnfilterBuf::read_be
    - unwrap
    - is_some
    - Some
    - as_mut
    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:1616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 1617
      start: 1609
    functionDepth: 1
    functionLinenumber: 1609
    functionLinenumberEnd: 1617
    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:1583,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1583,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1586,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1587,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1587,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1588,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1590,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1591,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1591,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1592,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1595,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1595,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1596,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1601,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1602,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1603,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1604,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1605,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1606,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1607,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1608,1
    - Dst: scale
      Src: /src/image-png/src/decoder/stream.rs:1619,1
    - Dst: scale
      Src: /src/image-png/src/decoder/stream.rs:1619,1
    - Dst: scale
      Src: /src/image-png/src/decoder/stream.rs:1620,1
    - Dst: scale
      Src: /src/image-png/src/decoder/stream.rs:1620,1
    - Dst: scale
      Src: /src/image-png/src/decoder/stream.rs:1621,1
    - Dst: scale
      Src: /src/image-png/src/decoder/stream.rs:1621,1
    - Dst: scale
      Src: /src/image-png/src/decoder/stream.rs:1622,1
    - Dst: scale
      Src: /src/image-png/src/decoder/stream.rs:1622,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1624,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1625,1
    - Dst: UnfilterBuf::is_empty
      Src: /src/image-png/src/decoder/stream.rs:1626,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1627,1
    - Dst: DecodingError::IoError
      Src: /src/image-png/src/decoder/stream.rs:1627,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1628,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1631,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1637,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1582
    functionDepth: 2
    functionLinenumber: 1582
    functionLinenumberEnd: 1638
    functionName: StreamingDecoder::parse_mdcv
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Ok
    - UnfilterBuf::is_empty
    - into
    - Err
    - scale
    - DecodingError::IoError
    - DecodingError::Format
    - UnfilterBuf::read_be
    - unwrap
    - is_some
    - Some
    - as_mut
    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:1641,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1641,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: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1649,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1650,1
    - Dst: UnfilterBuf::is_empty
      Src: /src/image-png/src/decoder/stream.rs:1651,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1652,1
    - Dst: DecodingError::IoError
      Src: /src/image-png/src/decoder/stream.rs:1652,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1653,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1656,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1661,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1640
    functionDepth: 2
    functionLinenumber: 1640
    functionLinenumberEnd: 1662
    functionName: StreamingDecoder::parse_clli
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Ok
    - UnfilterBuf::is_empty
    - into
    - Err
    - DecodingError::IoError
    - DecodingError::Format
    - UnfilterBuf::read_be
    - unwrap
    - is_some
    - Some
    - as_mut
    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:1665,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1665,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1666,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1667,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1667,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1668,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1672,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:1672,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1672,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1664
    functionDepth: 2
    functionLinenumber: 1664
    functionLinenumberEnd: 1674
    functionName: StreamingDecoder::parse_exif
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Ok
    - into
    - Err
    - clone
    - DecodingError::Format
    - unwrap
    - is_some
    - Some
    - as_mut
    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:1678,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1678,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1679,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1682,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1682,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1683,1
    - Dst: StreamingDecoder::parse_iccp_raw
      Src: /src/image-png/src/decoder/stream.rs:1687,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1676
    functionDepth: 2
    functionLinenumber: 1676
    functionLinenumberEnd: 1690
    functionName: StreamingDecoder::parse_iccp
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Ok
    - into
    - Err
    - StreamingDecoder::parse_iccp_raw
    - DecodingError::Format
    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:1693,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1693,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1698,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1700,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/decoder/stream.rs:1700,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1707,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1711,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1711,1
    - Dst: FormatErrorInner::UnknownCompressionMethod
      Src: /src/image-png/src/decoder/stream.rs:1712,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1712,1
    - Dst: fdeflate::decompress_to_vec_bounded
      Src: /src/image-png/src/decoder/stream.rs:1717,1
    - Dst: reserve_bytes
      Src: /src/image-png/src/decoder/stream.rs:1719,1
    - Dst: len
      Src: /src/image-png/src/decoder/stream.rs:1719,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1720,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:1720,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1723,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1723,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1724,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1728,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1732,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1692
    functionDepth: 13
    functionLinenumber: 1692
    functionLinenumberEnd: 1733
    functionName: StreamingDecoder::parse_iccp_raw
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Ok
    - len
    - into
    - Err
    - DecodingError::Format
    - DecodingError::from
    - Cow::Owned
    - UnfilterBuf::read_be
    - unwrap
    - FormatErrorInner::UnknownCompressionMethod
    - fdeflate::decompress_to_vec_bounded
    - Some
    - as_mut
    - reserve_bytes
    linkageType: ''
    returnType: Result
    signature: fn parse_iccp_raw(&mut self) -> Result<(), DecodingError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1736,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1737,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1737,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1738,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1742,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1743,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1745,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1745,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1746,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1749,1
    - Dst: BitDepth::from_u8
      Src: /src/image-png/src/decoder/stream.rs:1750,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1753,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1753,1
    - Dst: FormatErrorInner::InvalidBitDepth
      Src: /src/image-png/src/decoder/stream.rs:1754,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1754,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1758,1
    - Dst: ColorType::from_u8
      Src: /src/image-png/src/decoder/stream.rs:1759,1
    - Dst: (ColorType, BitDepth)::is_combination_invalid
      Src: /src/image-png/src/decoder/stream.rs:1761,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1762,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1762,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1763,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1774,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1774,1
    - Dst: FormatErrorInner::InvalidColorType
      Src: /src/image-png/src/decoder/stream.rs:1775,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1775,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1779,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1783,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1783,1
    - Dst: FormatErrorInner::UnknownCompressionMethod
      Src: /src/image-png/src/decoder/stream.rs:1784,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1784,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1788,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1792,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1792,1
    - Dst: FormatErrorInner::UnknownFilterMethod
      Src: /src/image-png/src/decoder/stream.rs:1793,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1793,1
    - Dst: UnfilterBuf::read_be
      Src: /src/image-png/src/decoder/stream.rs:1797,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1801,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1801,1
    - Dst: FormatErrorInner::UnknownInterlaceMethod
      Src: /src/image-png/src/decoder/stream.rs:1802,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1802,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1807,1
    - Dst: Default::default
      Src: /src/image-png/src/decoder/stream.rs:1813,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1816,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 109
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1735
    functionDepth: 2
    functionLinenumber: 1735
    functionLinenumberEnd: 1817
    functionName: StreamingDecoder::parse_ihdr
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Ok
    - into
    - Err
    - FormatErrorInner::UnknownInterlaceMethod
    - BitDepth::from_u8
    - FormatErrorInner::UnknownFilterMethod
    - (ColorType, BitDepth)::is_combination_invalid
    - DecodingError::Format
    - UnfilterBuf::read_be
    - FormatErrorInner::InvalidBitDepth
    - FormatErrorInner::InvalidColorType
    - is_some
    - FormatErrorInner::UnknownCompressionMethod
    - Some
    - ColorType::from_u8
    - Default::default
    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:1820,1
    - Dst: Result::position
      Src: /src/image-png/src/decoder/stream.rs:1820,1
    - Dst: Result::ok_or_else
      Src: /src/image-png/src/decoder/stream.rs:1820,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/decoder/stream.rs:1823,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1826,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/decoder/stream.rs:1826,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1829,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1830
      start: 1819
    functionDepth: 19
    functionLinenumber: 1819
    functionLinenumberEnd: 1830
    functionName: StreamingDecoder::split_keyword
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Err
    - UnfilterBuf::iter
    - DecodingError::from
    - Result::position
    - Result::ok_or_else
    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:1834,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:1834,1
    - Dst: Self::split_keyword
      Src: /src/image-png/src/decoder/stream.rs:1836,1
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1838,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1838,1
    - Dst: push
      Src: /src/image-png/src/decoder/stream.rs:1838,1
    - Dst: TEXtChunk::decode
      Src: /src/image-png/src/decoder/stream.rs:1842,1
    - Dst: Result::map_err
      Src: /src/image-png/src/decoder/stream.rs:1842,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1844,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1832
    functionDepth: 13
    functionLinenumber: 1832
    functionLinenumberEnd: 1845
    functionName: StreamingDecoder::parse_text
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Result::map_err
    - push
    - Ok
    - TEXtChunk::decode
    - UnfilterBuf::len
    - unwrap
    - Self::split_keyword
    - as_mut
    - reserve_bytes
    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:1849,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:1849,1
    - Dst: Self::split_keyword
      Src: /src/image-png/src/decoder/stream.rs:1851,1
    - Dst: first
      Src: /src/image-png/src/decoder/stream.rs:1853,1
    - Dst: ok_or_else
      Src: /src/image-png/src/decoder/stream.rs:1853,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/decoder/stream.rs:1855,1
    - Dst: as_mut
      Src: /src/image-png/src/decoder/stream.rs:1859,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1859,1
    - Dst: push
      Src: /src/image-png/src/decoder/stream.rs:1859,1
    - Dst: ZTXtChunk::decode
      Src: /src/image-png/src/decoder/stream.rs:1860,1
    - Dst: Result::map_err
      Src: /src/image-png/src/decoder/stream.rs:1860,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1864,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1847
    functionDepth: 19
    functionLinenumber: 1847
    functionLinenumberEnd: 1865
    functionName: StreamingDecoder::parse_ztxt
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Result::map_err
    - push
    - Ok
    - first
    - ok_or_else
    - DecodingError::from
    - UnfilterBuf::len
    - Self::split_keyword
    - unwrap
    - ZTXtChunk::decode
    - as_mut
    - reserve_bytes
    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:1869,1
    - Dst: UnfilterBuf::len
      Src: /src/image-png/src/decoder/stream.rs:1869,1
    - Dst: Self::split_keyword
      Src: /src/image-png/src/decoder/stream.rs:1871,1
    - Dst: first
      Src: /src/image-png/src/decoder/stream.rs:1873,1
    - Dst: ok_or_else
      Src: /src/image-png/src/decoder/stream.rs:1873,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/decoder/stream.rs:1875,1
    - Dst: get
      Src: /src/image-png/src/decoder/stream.rs:1877,1
    - Dst: ok_or_else
      Src: /src/image-png/src/decoder/stream.rs:1877,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/decoder/stream.rs:1879,1
    - Dst: iter
      Src: /src/image-png/src/decoder/stream.rs:1881,1
    - Dst: position
      Src: /src/image-png/src/decoder/stream.rs:1881,1
    - Dst: ok_or_else
      Src: /src/image-png/src/decoder/stream.rs:1881,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/decoder/stream.rs:1884,1
    - Dst: iter
      Src: /src/image-png/src/decoder/stream.rs:1889,1
    - Dst: position
      Src: /src/image-png/src/decoder/stream.rs:1889,1
    - Dst: ok_or_else
      Src: /src/image-png/src/decoder/stream.rs:1889,1
    - Dst: DecodingError::from
      Src: /src/image-png/src/decoder/stream.rs:1892,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: ITXtChunk::decode
      Src: /src/image-png/src/decoder/stream.rs:1901,1
    - Dst: Result::map_err
      Src: /src/image-png/src/decoder/stream.rs:1901,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1912,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1867
    functionDepth: 19
    functionLinenumber: 1867
    functionLinenumberEnd: 1913
    functionName: StreamingDecoder::parse_itxt
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Result::map_err
    - position
    - push
    - Ok
    - get
    - first
    - iter
    - ok_or_else
    - DecodingError::from
    - UnfilterBuf::len
    - Self::split_keyword
    - unwrap
    - ITXtChunk::decode
    - as_mut
    - reserve_bytes
    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:1916,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:1916,1
    - Dst: is_some
      Src: /src/image-png/src/decoder/stream.rs:1917,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1919,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1919,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1920,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1923,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1923,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1924,1
    - Dst: is_none
      Src: /src/image-png/src/decoder/stream.rs:1930,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1931,1
    - Dst: DecodingError::IoError
      Src: /src/image-png/src/decoder/stream.rs:1931,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1932,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:1940,1
    - Dst: len
      Src: /src/image-png/src/decoder/stream.rs:1941,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1942,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1942,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1943,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1947,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:1947,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1948,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1915
    functionDepth: 19
    functionLinenumber: 1915
    functionLinenumberEnd: 1949
    functionName: StreamingDecoder::parse_bkgd
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 1
    functionsReached:
    - Ok
    - len
    - into
    - Err
    - DecodingError::IoError
    - clone
    - DecodingError::Format
    - unwrap
    - is_some
    - Cow::Owned
    - Some
    - is_none
    - as_mut
    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:1967,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1967,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1968,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1971,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - fc
    argTypes:
    - '&FrameControl'
    constantsTouched: []
    func_position:
      end: 1972
      start: 1953
    functionDepth: 2
    functionLinenumber: 1953
    functionLinenumberEnd: 1972
    functionName: Info::validate_default_image
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - DecodingError::Format
    - Err
    - Ok
    - 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:1976,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1976,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1977,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1982,1
    - Dst: checked_sub
      Src: /src/image-png/src/decoder/stream.rs:1982,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:1984,1
    - Dst: checked_sub
      Src: /src/image-png/src/decoder/stream.rs:1984,1
    - Dst: Err
      Src: /src/image-png/src/decoder/stream.rs:1987,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/stream.rs:1987,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:1989,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:1993,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 1
    argNames:
    - fc
    argTypes:
    - '&FrameControl'
    constantsTouched: []
    func_position:
      end: 1994
      start: 1974
    functionDepth: 2
    functionLinenumber: 1974
    functionLinenumberEnd: 1994
    functionName: Info::validate
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Ok
    - into
    - Err
    - DecodingError::Format
    - Some
    - checked_sub
    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:1999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1998
    functionDepth: 3
    functionLinenumber: 1998
    functionLinenumberEnd: 2000
    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:2024,1
    - Dst: BufReader::new
      Src: /src/image-png/src/decoder/stream.rs:2024,1
    - Dst: File::open
      Src: /src/image-png/src/decoder/stream.rs:2024,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2024,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2025,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2025,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:2026,1
    - Dst: '&Info::gamma'
      Src: /src/image-png/src/decoder/stream.rs:2026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - path
    - expected
    argTypes:
    - '&str'
    - Option<ScaledFloat>
    constantsTouched: []
    func_position:
      end: 2028
      start: 2023
    functionDepth: 16
    functionLinenumber: 2023
    functionLinenumberEnd: 2028
    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:
    - BufReader::new
    - '&Info::gamma'
    - Self::read_info
    - File::open
    - crate::Decoder::new
    - Reader::info
    - Result::unwrap
    - unwrap
    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:2029,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2030,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2031,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2032,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2033,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2034,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2035,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2036,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2037,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2038,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2039,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2040,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2041,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2041,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2041,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2042,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2042,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2042,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2043,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2043,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2043,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2044,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2044,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2044,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2045,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2045,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2045,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2046,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2046,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2046,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2047,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2047,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2047,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2048,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2048,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2048,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2049,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2049,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2049,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2050,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2050,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2050,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2051,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2051,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2051,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2052,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2052,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2052,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2053,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2053,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2053,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2054,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2054,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2054,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2055,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2055,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2055,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2056,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2056,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2056,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2057,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2057,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2057,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2058,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2058,1
    - Dst: ScaledFloat::new
      Src: /src/image-png/src/decoder/stream.rs:2058,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/stream.rs:2059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2022
    functionDepth: 17
    functionLinenumber: 2022
    functionLinenumberEnd: 2060
    functionName: tests::image_gamma
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Some
    - Ok
    - trial
    - ScaledFloat::new
    linkageType: ''
    returnType: Result
    signature: fn image_gamma() -> Result<(), ()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2065,1
    - Dst: BufReader::new
      Src: /src/image-png/src/decoder/stream.rs:2065,1
    - Dst: File::open
      Src: /src/image-png/src/decoder/stream.rs:2065,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2065,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2066,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2066,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:2067,1
    - Dst: '&Info::chromaticities'
      Src: /src/image-png/src/decoder/stream.rs:2067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - path
    - expected
    argTypes:
    - '&str'
    - Option<SourceChromaticities>
    constantsTouched: []
    func_position:
      end: 2069
      start: 2064
    functionDepth: 16
    functionLinenumber: 2064
    functionLinenumberEnd: 2069
    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:
    - '&Info::chromaticities'
    - BufReader::new
    - Self::read_info
    - File::open
    - crate::Decoder::new
    - Reader::info
    - Result::unwrap
    - unwrap
    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:2070,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2072,1
    - Dst: SourceChromaticities::new
      Src: /src/image-png/src/decoder/stream.rs:2072,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2079,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2081,1
    - Dst: SourceChromaticities::new
      Src: /src/image-png/src/decoder/stream.rs:2081,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2088,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2089,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2090,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2091,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2092,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2093,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2094,1
    - 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: trial
      Src: /src/image-png/src/decoder/stream.rs:2108,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2109,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2110,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2111,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2112,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2113,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2114,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2115,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2116,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2117,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2118,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2119,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2120,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2121,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2122,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2123,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2124,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2125,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2126,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2127,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2128,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2129,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2130,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2131,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2132,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2133,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2134,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2135,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2136,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2137,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2138,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2139,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2140,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2141,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2142,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2143,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2144,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2145,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2146,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2147,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2148,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2149,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2150,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2151,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2152,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2153,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: Ok
      Src: /src/image-png/src/decoder/stream.rs:2246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 348
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2063
    functionDepth: 17
    functionLinenumber: 2063
    functionLinenumberEnd: 2247
    functionName: tests::image_source_chromaticities
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Some
    - SourceChromaticities::new
    - Ok
    - 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:2252,1
    - Dst: BufReader::new
      Src: /src/image-png/src/decoder/stream.rs:2252,1
    - Dst: File::open
      Src: /src/image-png/src/decoder/stream.rs:2252,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2252,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2253,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2253,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:2254,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:2254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - path
    - expected
    argTypes:
    - '&str'
    - Option<Cow<[u8]>>
    constantsTouched: []
    func_position:
      end: 2256
      start: 2251
    functionDepth: 16
    functionLinenumber: 2251
    functionLinenumberEnd: 2256
    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:
    - BufReader::new
    - Self::read_info
    - File::open
    - crate::Decoder::new
    - Reader::info
    - clone
    - Result::unwrap
    - unwrap
    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:2258,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2258,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:2258,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2259,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2259,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:2259,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2260,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2262,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:2262,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2264,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2264,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:2264,1
    - Dst: trial
      Src: /src/image-png/src/decoder/stream.rs:2265,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2267,1
    - Dst: Cow::Owned
      Src: /src/image-png/src/decoder/stream.rs:2267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2250
    functionDepth: 17
    functionLinenumber: 2250
    functionLinenumberEnd: 2269
    functionName: tests::image_source_sbit
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Cow::Owned
    - Some
    - 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:2279,1
    - Dst: BufReader::new
      Src: /src/image-png/src/decoder/stream.rs:2279,1
    - Dst: File::open
      Src: /src/image-png/src/decoder/stream.rs:2280,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2280,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2282,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2282,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:2283,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:2283,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2283,1
    - Dst: into_owned
      Src: /src/image-png/src/decoder/stream.rs:2283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2274
    functionDepth: 16
    functionLinenumber: 2274
    functionLinenumberEnd: 2290
    functionName: tests::test_two_iccp_chunks
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - BufReader::new
    - Self::read_info
    - File::open
    - crate::Decoder::new
    - Reader::info
    - clone
    - Result::unwrap
    - unwrap
    - into_owned
    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:2296,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2297,1
    - Dst: into
      Src: /src/image-png/src/decoder/stream.rs:2297,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2298,1
    - Dst: crate::Encoder::with_info
      Src: /src/image-png/src/decoder/stream.rs:2299,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2299,1
    - Dst: write_header
      Src: /src/image-png/src/decoder/stream.rs:2300,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2300,1
    - Dst: write_image_data
      Src: /src/image-png/src/decoder/stream.rs:2301,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2301,1
    - Dst: finish
      Src: /src/image-png/src/decoder/stream.rs:2302,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2302,1
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2304,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2304,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2305,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2293
    functionDepth: 24
    functionLinenumber: 2293
    functionLinenumberEnd: 2307
    functionName: tests::test_iccp_roundtrip
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - crate::Encoder::with_info
    - write_header
    - finish
    - into
    - Self::read_info
    - crate::Decoder::new
    - write_image_data
    - Result::unwrap
    - crate::Info::with_size
    - unwrap
    - Vec::new
    - Some
    - Cursor::new
    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:2311,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2312,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2317,1
    - Dst: crate::Encoder::with_info
      Src: /src/image-png/src/decoder/stream.rs:2318,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2318,1
    - Dst: write_header
      Src: /src/image-png/src/decoder/stream.rs:2319,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2319,1
    - Dst: write_image_data
      Src: /src/image-png/src/decoder/stream.rs:2320,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2320,1
    - Dst: finish
      Src: /src/image-png/src/decoder/stream.rs:2321,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2321,1
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2323,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2323,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2324,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2324,1
    - Dst: Self::info
      Src: /src/image-png/src/decoder/stream.rs:2325,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/stream.rs:2325,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2329
      start: 2310
    functionDepth: 24
    functionLinenumber: 2310
    functionLinenumberEnd: 2329
    functionName: tests::test_phys_roundtrip
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - crate::Encoder::with_info
    - write_header
    - finish
    - Self::read_info
    - crate::Decoder::new
    - write_image_data
    - Result::unwrap
    - crate::Info::with_size
    - unwrap
    - Vec::new
    - Some
    - Self::info
    - Cursor::new
    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:2333,1
    - Dst: Some
      Src: /src/image-png/src/decoder/stream.rs:2334,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2335,1
    - Dst: crate::Encoder::with_info
      Src: /src/image-png/src/decoder/stream.rs:2336,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2336,1
    - Dst: write_header
      Src: /src/image-png/src/decoder/stream.rs:2337,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2337,1
    - Dst: write_image_data
      Src: /src/image-png/src/decoder/stream.rs:2338,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2338,1
    - Dst: finish
      Src: /src/image-png/src/decoder/stream.rs:2339,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2339,1
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2341,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2341,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2342,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2332
    functionDepth: 24
    functionLinenumber: 2332
    functionLinenumberEnd: 2344
    functionName: tests::test_srgb_roundtrip
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - crate::Encoder::with_info
    - write_header
    - finish
    - Self::read_info
    - crate::Decoder::new
    - write_image_data
    - Result::unwrap
    - crate::Info::with_size
    - unwrap
    - Vec::new
    - Some
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn test_srgb_roundtrip()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2348,1
    - Dst: BufReader::new
      Src: /src/image-png/src/decoder/stream.rs:2348,1
    - Dst: File::open
      Src: /src/image-png/src/decoder/stream.rs:2349,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2349,1
    - Dst: crate::Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2352,1
    - Dst: BufReader::new
      Src: /src/image-png/src/decoder/stream.rs:2352,1
    - Dst: File::open
      Src: /src/image-png/src/decoder/stream.rs:2353,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2353,1
    - Dst: Self::set_ignore_iccp_chunk
      Src: /src/image-png/src/decoder/stream.rs:2355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2357
      start: 2347
    functionDepth: 6
    functionLinenumber: 2347
    functionLinenumberEnd: 2357
    functionName: tests::test_png_with_broken_iccp
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - BufReader::new
    - File::open
    - crate::Decoder::new
    - Self::set_ignore_iccp_chunk
    - unwrap
    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:2362,1
    - Dst: BufReader::new
      Src: /src/image-png/src/decoder/stream.rs:2362,1
    - Dst: File::open
      Src: /src/image-png/src/decoder/stream.rs:2363,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2363,1
    - Dst: Self::ignore_checksums
      Src: /src/image-png/src/decoder/stream.rs:2365,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2366,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2366,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:2367,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2369,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2375,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2390
      start: 2361
    functionDepth: 16
    functionLinenumber: 2361
    functionLinenumberEnd: 2390
    functionName: tests::test_cicp_mdcv_and_clli_chunks
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - BufReader::new
    - Self::read_info
    - File::open
    - crate::Decoder::new
    - Self::ignore_checksums
    - Reader::info
    - Result::unwrap
    - 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:2395,1
    - Dst: BufReader::new
      Src: /src/image-png/src/decoder/stream.rs:2395,1
    - Dst: File::open
      Src: /src/image-png/src/decoder/stream.rs:2396,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2396,1
    - Dst: Self::read_info
      Src: /src/image-png/src/decoder/stream.rs:2398,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2398,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:2399,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/stream.rs:2400,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2400,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/stream.rs:2400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2394
    functionDepth: 16
    functionLinenumber: 2394
    functionLinenumberEnd: 2402
    functionName: tests::test_exif_chunk
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - BufReader::new
    - Self::read_info
    - File::open
    - crate::Decoder::new
    - Reader::info
    - Result::unwrap
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_exif_chunk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2407,1
    - Dst: write_noncompressed_png
      Src: /src/image-png/src/decoder/stream.rs:2408,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2409,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2409,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:2410,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2410,1
    - Dst: Reader::finish
      Src: /src/image-png/src/decoder/stream.rs:2413,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2413,1
    - Dst: Reader::finish
      Src: /src/image-png/src/decoder/stream.rs:2416,1
    - Dst: Result::unwrap_err
      Src: /src/image-png/src/decoder/stream.rs:2416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2419
      start: 2406
    functionDepth: 22
    functionLinenumber: 2406
    functionLinenumberEnd: 2419
    functionName: tests::test_finishing_twice
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - write_noncompressed_png
    - Result::unwrap
    - Reader::finish
    - Decoder::read_info
    - Vec::new
    - Decoder::new
    - Result::unwrap_err
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn test_finishing_twice()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2424,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2425,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2425,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2427,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2427,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:2429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - w
    - animation
    argTypes:
    - '&mut impl Write'
    - '&crate::AnimationControl'
    constantsTouched: []
    func_position:
      end: 2430
      start: 2423
    functionDepth: 20
    functionLinenumber: 2423
    functionLinenumberEnd: 2430
    functionName: tests::write_actl
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - write_chunk
    - write_u32::<byteorder::BigEndian>
    - unwrap
    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:2435,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2436,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2436,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2438,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2438,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2439,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2439,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2441,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2441,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2443,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2443,1
    - Dst: write_u16::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2445,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2445,1
    - Dst: write_u16::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2447,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2447,1
    - Dst: Result::write_u8
      Src: /src/image-png/src/decoder/stream.rs:2449,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2449,1
    - Dst: Result::write_u8
      Src: /src/image-png/src/decoder/stream.rs:2450,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2450,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:2451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 60
    argCount: 2
    argNames:
    - w
    - frame
    argTypes:
    - '&mut impl Write'
    - '&crate::FrameControl'
    constantsTouched: []
    func_position:
      end: 2452
      start: 2434
    functionDepth: 20
    functionLinenumber: 2434
    functionLinenumberEnd: 2452
    functionName: tests::write_fctl
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - write_chunk
    - Result::write_u8
    - write_u16::<byteorder::BigEndian>
    - write_u32::<byteorder::BigEndian>
    - unwrap
    - Vec::new
    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:2457,1
    - Dst: write_u32::<byteorder::BigEndian>
      Src: /src/image-png/src/decoder/stream.rs:2458,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2458,1
    - Dst: Result::write_all
      Src: /src/image-png/src/decoder/stream.rs:2460,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2460,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:2461,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: 2462
      start: 2456
    functionDepth: 20
    functionLinenumber: 2456
    functionLinenumberEnd: 2462
    functionName: tests::write_fdat
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - write_chunk
    - Result::write_all
    - write_u32::<byteorder::BigEndian>
    - unwrap
    - Vec::new
    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:2469,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:2470,1
    - Dst: write_actl
      Src: /src/image-png/src/decoder/stream.rs:2471,1
    - Dst: Default::default
      Src: /src/image-png/src/decoder/stream.rs:2482,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:2484,1
    - Dst: write_rgba8_idats
      Src: /src/image-png/src/decoder/stream.rs:2485,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:2488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 3
    argNames:
    - w
    - num_frames
    - width
    argTypes:
    - '&mut impl Write'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 2489
      start: 2468
    functionDepth: 21
    functionLinenumber: 2468
    functionLinenumberEnd: 2489
    functionName: tests::write_fdat_prefix
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - write_png_sig
    - write_rgba8_idats
    - write_actl
    - write_rgba8_ihdr_with_width
    - write_fctl
    - Default::default
    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:2495,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:2496,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:2497,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:2498,1
    - Dst: write_actl
      Src: /src/image-png/src/decoder/stream.rs:2499,1
    - Dst: Default::default
      Src: /src/image-png/src/decoder/stream.rs:2510,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:2512,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:2514,1
    - Dst: write_fdat
      Src: /src/image-png/src/decoder/stream.rs:2515,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:2516,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2519,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2519,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:2520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2533
      start: 2492
    functionDepth: 21
    functionLinenumber: 2492
    functionLinenumberEnd: 2533
    functionName: tests::test_fdat_chunk_without_idat
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - write_png_sig
    - generate_rgba8_with_width_and_height
    - write_iend
    - write_fdat
    - write_actl
    - write_rgba8_ihdr_with_width
    - Decoder::read_info
    - Vec::new
    - Decoder::new
    - write_fctl
    - Default::default
    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:2537,1
    - Dst: write_fdat_prefix
      Src: /src/image-png/src/decoder/stream.rs:2538,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:2539,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2541,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2541,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:2542,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2542,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2544,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2544,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2547,1
    - Dst: Result::unwrap_err
      Src: /src/image-png/src/decoder/stream.rs:2547,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2555,1
    - Dst: Result::unwrap_err
      Src: /src/image-png/src/decoder/stream.rs:2555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2536
    functionDepth: 22
    functionLinenumber: 2536
    functionLinenumberEnd: 2561
    functionName: tests::test_fdat_chunk_payload_length_0
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - write_chunk
    - Reader::next_frame
    - write_fdat_prefix
    - Result::unwrap
    - Decoder::read_info
    - Vec::new
    - Decoder::new
    - Result::unwrap_err
    - Cursor::new
    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:2565,1
    - Dst: write_fdat_prefix
      Src: /src/image-png/src/decoder/stream.rs:2566,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:2567,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2569,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2569,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:2570,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2570,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2572,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2572,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2575,1
    - Dst: Result::unwrap_err
      Src: /src/image-png/src/decoder/stream.rs:2575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2578
      start: 2564
    functionDepth: 22
    functionLinenumber: 2564
    functionLinenumberEnd: 2578
    functionName: tests::test_fdat_chunk_payload_length_3
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - write_chunk
    - Reader::next_frame
    - write_fdat_prefix
    - Result::unwrap
    - Decoder::read_info
    - Vec::new
    - Decoder::new
    - Result::unwrap_err
    - Cursor::new
    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:2597,1
    - Dst: write_fdat_prefix
      Src: /src/image-png/src/decoder/stream.rs:2598,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:2599,1
    - Dst: write_fdat
      Src: /src/image-png/src/decoder/stream.rs:2600,1
    - Dst: write_fdat
      Src: /src/image-png/src/decoder/stream.rs:2601,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:2602,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::info
      Src: /src/image-png/src/decoder/stream.rs:2610,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2618,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2618,1
    - Dst: UnfilterBuf::clone
      Src: /src/image-png/src/decoder/stream.rs:2619,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:2624,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2635,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2635,1
    - Dst: UnfilterBuf::clone
      Src: /src/image-png/src/decoder/stream.rs:2636,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:2639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2649
      start: 2581
    functionDepth: 22
    functionLinenumber: 2581
    functionLinenumberEnd: 2649
    functionName: tests::test_frame_split_across_two_fdat_chunks
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - UnfilterBuf::clone
    - Reader::next_frame
    - generate_rgba8_with_width_and_height
    - Reader::info
    - Result::unwrap
    - write_iend
    - Decoder::read_info
    - Vec::new
    - Decoder::new
    - write_fdat_prefix
    - write_fdat
    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:2654,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:2655,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:2656,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:2661,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:2664,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:2667,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2670,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2670,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:2671,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2671,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2676,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2678
      start: 2652
    functionDepth: 21
    functionLinenumber: 2652
    functionLinenumberEnd: 2678
    functionName: tests::test_idat_bigger_than_image_size_from_ihdr
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - write_chunk
    - write_png_sig
    - Reader::next_frame
    - generate_rgba8_with_width_and_height
    - Result::unwrap
    - write_iend
    - Decoder::read_info
    - write_rgba8_ihdr_with_width
    - Vec::new
    - Decoder::new
    - Cursor::new
    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:2683,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:2684,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:2685,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2688,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2688,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:2689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2681
    functionDepth: 20
    functionLinenumber: 2681
    functionLinenumberEnd: 2702
    functionName: tests::test_only_idat_chunk_in_input_stream
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - write_chunk
    - write_png_sig
    - Decoder::read_info
    - Vec::new
    - Decoder::new
    - Cursor::new
    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:2806,1
    - Dst: decode_full_input
      Src: /src/image-png/src/decoder/stream.rs:2809,1
    - Dst: Vec::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2811,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2811,1
    - Dst: stream_input_until_reader_is_available
      Src: /src/image-png/src/decoder/stream.rs:2815,1
    - Dst: next_frame
      Src: /src/image-png/src/decoder/stream.rs:2818,1
    - Dst: as_mut_slice
      Src: /src/image-png/src/decoder/stream.rs:2818,1
    - Dst: kind
      Src: /src/image-png/src/decoder/stream.rs:2820,1
    - Dst: expose_next_byte
      Src: /src/image-png/src/decoder/stream.rs:2821,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2831
      start: 2803
    functionDepth: 15
    functionLinenumber: 2803
    functionLinenumberEnd: 2831
    functionName: tests::test_streaming_input_and_decoding_via_next_frame
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - as_mut_slice
    - StreamingInput::with_noncompressed_png
    - kind
    - decode_full_input
    - Result::unwrap
    - Vec::next_frame
    - expose_next_byte
    - stream_input_until_reader_is_available
    - next_frame
    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:2838,1
    - Dst: decode_full_input
      Src: /src/image-png/src/decoder/stream.rs:2840,1
    - Dst: Vec::next_frame
      Src: /src/image-png/src/decoder/stream.rs:2842,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2842,1
    - Dst: stream_input_until_reader_is_available
      Src: /src/image-png/src/decoder/stream.rs:2846,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2847,1
    - Dst: next_row
      Src: /src/image-png/src/decoder/stream.rs:2849,1
    - Dst: Self::extend_from_slice
      Src: /src/image-png/src/decoder/stream.rs:2851,1
    - Dst: data
      Src: /src/image-png/src/decoder/stream.rs:2851,1
    - Dst: kind
      Src: /src/image-png/src/decoder/stream.rs:2852,1
    - Dst: expose_next_byte
      Src: /src/image-png/src/decoder/stream.rs:2853,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2862
      start: 2835
    functionDepth: 15
    functionLinenumber: 2835
    functionLinenumberEnd: 2862
    functionName: tests::test_streaming_input_and_decoding_via_next_row
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - StreamingInput::with_noncompressed_png
    - kind
    - Self::extend_from_slice
    - decode_full_input
    - next_row
    - Result::unwrap
    - Vec::next_frame
    - expose_next_byte
    - stream_input_until_reader_is_available
    - Vec::new
    - data
    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:2869,1
    - Dst: decode_full_input
      Src: /src/image-png/src/decoder/stream.rs:2871,1
    - Dst: Vec::info
      Src: /src/image-png/src/decoder/stream.rs:2871,1
    - Dst: Result::clone
      Src: /src/image-png/src/decoder/stream.rs:2871,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2873,1
    - Dst: clone
      Src: /src/image-png/src/decoder/stream.rs:2873,1
    - Dst: Decoder::read_header_info
      Src: /src/image-png/src/decoder/stream.rs:2875,1
    - Dst: Result::clone
      Src: /src/image-png/src/decoder/stream.rs:2876,1
    - Dst: kind
      Src: /src/image-png/src/decoder/stream.rs:2877,1
    - Dst: expose_next_byte
      Src: /src/image-png/src/decoder/stream.rs:2878,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2901
      start: 2866
    functionDepth: 15
    functionLinenumber: 2866
    functionLinenumberEnd: 2901
    functionName: tests::test_streaming_input_and_reading_header_info
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - StreamingInput::with_noncompressed_png
    - kind
    - Vec::info
    - decode_full_input
    - Result::clone
    - clone
    - expose_next_byte
    - Decoder::read_header_info
    - Decoder::new
    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:2906,1
    - Dst: write_noncompressed_png
      Src: /src/image-png/src/decoder/stream.rs:2907,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2908,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2908,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:2908,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2909
      start: 2905
    functionDepth: 22
    functionLinenumber: 2905
    functionLinenumberEnd: 2909
    functionName: tests::create_reader_of_ihdr_idat
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - write_noncompressed_png
    - Result::unwrap
    - Decoder::read_info
    - Vec::new
    - Decoder::new
    - Cursor::new
    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:2918,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2921,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:2922,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:2923,1
    - Dst: write_actl
      Src: /src/image-png/src/decoder/stream.rs:2924,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:2932,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:2936,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:2937,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:2945,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:2946,1
    - Dst: write_fdat
      Src: /src/image-png/src/decoder/stream.rs:2947,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:2948,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2950,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2950,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:2950,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2951
      start: 2913
    functionDepth: 21
    functionLinenumber: 2913
    functionLinenumberEnd: 2951
    functionName: tests::create_reader_of_ihdr_actl_fctl_idat_fctl_fdat
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - write_chunk
    - write_png_sig
    - generate_rgba8_with_width_and_height
    - Result::unwrap
    - write_iend
    - write_fdat
    - write_actl
    - write_rgba8_ihdr_with_width
    - Decoder::read_info
    - Vec::new
    - Decoder::new
    - write_fctl
    - Default::default
    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:2957,1
    - Dst: Default::default
      Src: /src/image-png/src/decoder/stream.rs:2961,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:2964,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:2965,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:2966,1
    - Dst: write_actl
      Src: /src/image-png/src/decoder/stream.rs:2967,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:2974,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:2976,1
    - Dst: write_fdat
      Src: /src/image-png/src/decoder/stream.rs:2977,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:2979,1
    - Dst: write_fdat
      Src: /src/image-png/src/decoder/stream.rs:2980,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:2981,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:2983,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:2983,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:2983,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:2983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2984
      start: 2955
    functionDepth: 26
    functionLinenumber: 2955
    functionLinenumberEnd: 2984
    functionName: tests::create_reader_of_ihdr_actl_idat_fctl_fdat_fctl_fdat
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - write_chunk
    - write_png_sig
    - generate_rgba8_with_width_and_height
    - Result::unwrap
    - write_iend
    - write_fdat
    - write_actl
    - write_rgba8_ihdr_with_width
    - Decoder::read_info
    - Vec::new
    - Decoder::new
    - write_fctl
    - Default::default
    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:2987,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/stream.rs:2987,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:2987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&Reader<impl BufRead + Seek>'
    constantsTouched: []
    func_position:
      end: 2993
      start: 2986
    functionDepth: 4
    functionLinenumber: 2986
    functionLinenumberEnd: 2993
    functionName: tests::get_fctl_sequence_number
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - Reader::info
    - unwrap
    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:2999,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3001,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3001,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3005,1
    - Dst: Result::expect_err
      Src: /src/image-png/src/decoder/stream.rs:3005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3013
      start: 2998
    functionDepth: 23
    functionLinenumber: 2998
    functionLinenumberEnd: 3013
    functionName: tests::test_next_frame_polling_after_end_non_animated
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::expect_err
    - Result::expect
    - Reader::next_frame
    - create_reader_of_ihdr_idat
    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:3019,1
    - Dst: Reader::next_frame_info
      Src: /src/image-png/src/decoder/stream.rs:3021,1
    - Dst: Result::expect_err
      Src: /src/image-png/src/decoder/stream.rs:3021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 3018
    functionDepth: 23
    functionLinenumber: 3018
    functionLinenumberEnd: 3029
    functionName: tests::test_next_frame_info_polling_after_end_non_animated
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Reader::next_frame_info
    - create_reader_of_ihdr_idat
    - 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:3036,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3040,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3040,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3047,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3047,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3052,1
    - Dst: Result::expect_err
      Src: /src/image-png/src/decoder/stream.rs:3052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3060
      start: 3035
    functionDepth: 22
    functionLinenumber: 3035
    functionLinenumberEnd: 3060
    functionName: tests::test_next_frame_polling_after_end_idat_part_of_animation
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::expect_err
    - create_reader_of_ihdr_actl_fctl_idat_fctl_fdat
    - Reader::next_frame
    - Result::expect
    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:3067,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3071,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3071,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3078,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3078,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3083,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3083,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3088,1
    - Dst: Result::expect_err
      Src: /src/image-png/src/decoder/stream.rs:3088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3096
      start: 3066
    functionDepth: 27
    functionLinenumber: 3066
    functionLinenumberEnd: 3096
    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
    - Reader::next_frame
    - Result::expect
    - 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:3102,1
    - Dst: Reader::next_row
      Src: /src/image-png/src/decoder/stream.rs:3106,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3106,1
    - Dst: UnfilterBuf::fill
      Src: /src/image-png/src/decoder/stream.rs:3109,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3110,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3117
      start: 3101
    functionDepth: 22
    functionLinenumber: 3101
    functionLinenumberEnd: 3117
    functionName: tests::test_row_by_row_then_next_frame
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Reader::next_frame
    - Result::unwrap
    - Reader::next_row
    - create_reader_of_ihdr_actl_fctl_idat_fctl_fdat
    - UnfilterBuf::fill
    - 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:3124,1
    - Dst: Reader::next_row
      Src: /src/image-png/src/decoder/stream.rs:3128,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3128,1
    - Dst: Reader::next_row
      Src: /src/image-png/src/decoder/stream.rs:3137,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3137,1
    - Dst: Reader::next_frame_info
      Src: /src/image-png/src/decoder/stream.rs:3143,1
    - Dst: Result::expect_err
      Src: /src/image-png/src/decoder/stream.rs:3143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3151
      start: 3123
    functionDepth: 22
    functionLinenumber: 3123
    functionLinenumberEnd: 3151
    functionName: tests::test_row_by_row_of_two_frames
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::expect_err
    - Result::unwrap
    - Reader::next_row
    - create_reader_of_ihdr_actl_fctl_idat_fctl_fdat
    - Reader::next_frame_info
    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:3160,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3164,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3164,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3175,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3175,1
    - Dst: Reader::next_frame_info
      Src: /src/image-png/src/decoder/stream.rs:3180,1
    - Dst: Result::expect_err
      Src: /src/image-png/src/decoder/stream.rs:3180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3188
      start: 3159
    functionDepth: 22
    functionLinenumber: 3159
    functionLinenumberEnd: 3188
    functionName: tests::test_next_frame_info_after_next_frame
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::expect_err
    - Reader::next_frame
    - create_reader_of_ihdr_actl_fctl_idat_fctl_fdat
    - Reader::next_frame_info
    - 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:3194,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3205,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3205,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3212,1
    - Dst: Result::expect
      Src: /src/image-png/src/decoder/stream.rs:3212,1
    - Dst: Reader::next_frame_info
      Src: /src/image-png/src/decoder/stream.rs:3217,1
    - Dst: Result::expect_err
      Src: /src/image-png/src/decoder/stream.rs:3217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3225
      start: 3193
    functionDepth: 27
    functionLinenumber: 3193
    functionLinenumberEnd: 3225
    functionName: tests::test_next_frame_info_to_skip_first_frame
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Result::expect_err
    - Reader::next_frame
    - Reader::next_frame_info
    - Result::expect
    - create_reader_of_ihdr_actl_idat_fctl_fdat_fctl_fdat
    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:3230,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:3231,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:3232,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3233,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3234,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:3237,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:3239,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:3242,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:3242,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:3243,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3243,1
    - Dst: Reader::next_frame
      Src: /src/image-png/src/decoder/stream.rs:3246,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3249
      start: 3228
    functionDepth: 21
    functionLinenumber: 3228
    functionLinenumberEnd: 3249
    functionName: tests::test_incorrect_trns_chunk_is_ignored
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - write_chunk
    - write_png_sig
    - Reader::next_frame
    - generate_rgba8_with_width_and_height
    - Result::unwrap
    - write_iend
    - Decoder::read_info
    - write_rgba8_ihdr_with_width
    - Vec::new
    - Decoder::new
    - Cursor::new
    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:3255,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:3257,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:3258,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:3259,1
    - Dst: write_actl
      Src: /src/image-png/src/decoder/stream.rs:3260,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:3272,1
    - Dst: Default::default
      Src: /src/image-png/src/decoder/stream.rs:3277,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3280,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:3281,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:3283,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:3283,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:3283,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3283,1
    - Dst: Reader::next_interlaced_row
      Src: /src/image-png/src/decoder/stream.rs:3290,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3291
      start: 3253
    functionDepth: 26
    functionLinenumber: 3253
    functionLinenumberEnd: 3291
    functionName: tests::test_actl_num_frames_zero
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - write_chunk
    - write_png_sig
    - generate_rgba8_with_width_and_height
    - Result::unwrap
    - write_iend
    - write_actl
    - write_rgba8_ihdr_with_width
    - Decoder::read_info
    - Reader::next_interlaced_row
    - Vec::new
    - Decoder::new
    - write_fctl
    - Default::default
    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:3297,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:3298,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:3299,1
    - Dst: write_actl
      Src: /src/image-png/src/decoder/stream.rs:3300,1
    - Dst: write_fctl
      Src: /src/image-png/src/decoder/stream.rs:3307,1
    - Dst: Default::default
      Src: /src/image-png/src/decoder/stream.rs:3315,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3318,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:3321,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:3323,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:3325,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:3325,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:3325,1
    - Dst: Reader::err
      Src: /src/image-png/src/decoder/stream.rs:3326,1
    - Dst: unwrap
      Src: /src/image-png/src/decoder/stream.rs:3326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3329
      start: 3294
    functionDepth: 21
    functionLinenumber: 3294
    functionLinenumberEnd: 3329
    functionName: tests::test_small_fctl
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - write_chunk
    - write_png_sig
    - generate_rgba8_with_width_and_height
    - write_iend
    - write_actl
    - write_rgba8_ihdr_with_width
    - Decoder::read_info
    - Reader::err
    - Vec::new
    - unwrap
    - Decoder::new
    - write_fctl
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn test_small_fctl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:3339,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:3340,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:3341,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3342,1
    - Dst: as_slice
      Src: /src/image-png/src/decoder/stream.rs:3342,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3343,1
    - Dst: generate_rgba8_with_width_and_height
      Src: /src/image-png/src/decoder/stream.rs:3346,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:3348,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:3350,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:3350,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:3350,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3350,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:3351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3354
      start: 3332
    functionDepth: 21
    functionLinenumber: 3332
    functionLinenumberEnd: 3354
    functionName: tests::test_invalid_text_chunk
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - write_chunk
    - write_png_sig
    - as_slice
    - generate_rgba8_with_width_and_height
    - Reader::info
    - Result::unwrap
    - write_iend
    - Decoder::read_info
    - write_rgba8_ihdr_with_width
    - Vec::new
    - Decoder::new
    - Cursor::new
    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:3360,1
    - Dst: Vec::new
      Src: /src/image-png/src/decoder/stream.rs:3362,1
    - Dst: write_png_sig
      Src: /src/image-png/src/decoder/stream.rs:3363,1
    - Dst: write_rgba8_ihdr_with_width
      Src: /src/image-png/src/decoder/stream.rs:3364,1
    - Dst: write_actl
      Src: /src/image-png/src/decoder/stream.rs:3365,1
    - Dst: write_actl
      Src: /src/image-png/src/decoder/stream.rs:3372,1
    - Dst: write_chunk
      Src: /src/image-png/src/decoder/stream.rs:3379,1
    - Dst: write_iend
      Src: /src/image-png/src/decoder/stream.rs:3380,1
    - Dst: Decoder::new
      Src: /src/image-png/src/decoder/stream.rs:3382,1
    - Dst: Cursor::new
      Src: /src/image-png/src/decoder/stream.rs:3382,1
    - Dst: Decoder::read_info
      Src: /src/image-png/src/decoder/stream.rs:3382,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/stream.rs:3382,1
    - Dst: Reader::info
      Src: /src/image-png/src/decoder/stream.rs:3383,1
    - Dst: as_ref
      Src: /src/image-png/src/decoder/stream.rs:3383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3388
      start: 3358
    functionDepth: 26
    functionLinenumber: 3358
    functionLinenumberEnd: 3388
    functionName: tests::test_duplicate_actl_chunk
    functionSourceFile: /src/image-png/src/decoder/stream.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - write_chunk
    - write_png_sig
    - generate_rgba8_with_width_and_height
    - Reader::info
    - Result::unwrap
    - write_iend
    - write_actl
    - write_rgba8_ihdr_with_width
    - Decoder::read_info
    - Vec::new
    - Decoder::new
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn test_duplicate_actl_chunk()
  - 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:
    - Box::new
    - Decompressor::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: 22
    functionLinenumber: 109
    functionLinenumberEnd: 129
    functionName: ZlibStream::decompress
    functionSourceFile: /src/image-png/src/decoder/zlib.rs
    functionUses: 0
    functionsReached:
    - is_done
    - Result::decompress
    - Ok
    - ignore_adler32
    - Result::len
    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: 22
    functionLinenumber: 138
    functionLinenumberEnd: 191
    functionName: ZlibStream::finish
    functionSourceFile: /src/image-png/src/decoder/zlib.rs
    functionUses: 0
    functionsReached:
    - is_done
    - map_err
    - Ok
    - len
    - into
    - Err
    - DecodingError::Format
    - saturating_sub
    - max
    - read
    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: 22
    functionLinenumber: 220
    functionLinenumberEnd: 252
    functionName: UnfilterBuf::decompress
    functionSourceFile: /src/image-png/src/decoder/zlib.rs
    functionUses: 0
    functionsReached:
    - '&mut fdeflate::Decompressor::read'
    - map_err
    - Ok
    - len
    - into
    - '&mut fdeflate::Decompressor::is_done'
    - min
    - DecodingError::Format
    - checked_sub
    linkageType: ''
    returnType: Result
    signature: 'fn decompress(&mut self,decompressor: &mut fdeflate::Decompressor,input:
      &[u8],) -> Result<usize, DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    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:52,1
    - Dst: Option::and_then
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:52,1
    - Dst: Result::checked_mul
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:61,1
    - Dst: min
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:61,1
    - Dst: and_then
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:52,1
    - Dst: checked_next_multiple_of
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:64,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:52,1
    - Dst: min
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:69,1
    - Dst: Result::checked_raw_row_length
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:75,1
    - Dst: Option::and_then
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:75,1
    - Dst: Result::checked_mul
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:79,1
    - Dst: and_then
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:75,1
    - Dst: checked_next_multiple_of
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:84,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:75,1
    - Dst: max
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:87,1
    - Dst: Vec::with_capacity
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:91,1
    - Dst: debug_assert_invariants
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 1
    argNames:
    - info
    argTypes:
    - '&Info<''_>'
    constantsTouched: []
    func_position:
      end: 102
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 102
    functionName: UnfilteringBuffer::new
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 1
    functionsReached:
    - Result::checked_raw_row_length
    - Option::and_then
    - debug_assert_invariants
    - and_then
    - Result::checked_mul
    - min
    - Vec::with_capacity
    - max
    - checked_next_multiple_of
    - unwrap_or
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(info: &Info<''_>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnfilteringBuffer::debug_assert_invariants
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: UnfilteringBuffer::reset_prev_row
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached:
    - 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:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - frame_bytes
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 118
    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: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: UnfilteringBuffer::prev_row
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: pub fn prev_row(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: UnfilteringBuffer::curr_row_len
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn curr_row_len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:152,1
    - Dst: len
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:160,1
    - Dst: checked_sub
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:160,1
    - Dst: copy_within
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:161,1
    - Dst: copy_within
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:164,1
    - Dst: len
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:175,1
    - Dst: resize
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:176,1
    - Dst: saturating_add
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:180,1
    - Dst: len
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:180,1
    - Dst: resize
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:182,1
    - Dst: f
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:187,1
    - Dst: UnfilteringBuffer::debug_assert_invariants
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:199,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 110
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 201
      start: 142
    functionDepth: 22
    functionLinenumber: 142
    functionLinenumberEnd: 201
    functionName: UnfilteringBuffer::with_unfilled_buffer
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached:
    - copy_within
    - len
    - UnfilteringBuffer::debug_assert_invariants
    - f
    - resize
    - saturating_add
    - checked_sub
    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: split_at_mut
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:213,1
    - Dst: RowFilter::from_u8
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:219,1
    - Dst: Option::ok_or
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:219,1
    - Dst: DecodingError::Format
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:219,1
    - Dst: FormatErrorInner::UnknownFilterMethod
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:220,1
    - Dst: into
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:220,1
    - Dst: filter::unfilter
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:224,1
    - Dst: UnfilteringBuffer::debug_assert_invariants
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:229,1
    - Dst: Ok
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 2
    argNames:
    - rowlen
    - bpp
    argTypes:
    - usize
    - BytesPerPixel
    constantsTouched: []
    func_position:
      end: 232
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 232
    functionName: UnfilteringBuffer::unfilter_curr_row
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 0
    functionsReached:
    - Ok
    - into
    - UnfilteringBuffer::debug_assert_invariants
    - FormatErrorInner::UnknownFilterMethod
    - DecodingError::Format
    - split_at_mut
    - RowFilter::from_u8
    - Option::ok_or
    - filter::unfilter
    linkageType: ''
    returnType: Result
    signature: 'pub fn unfilter_curr_row(&mut self,rowlen: usize,bpp: BytesPerPixel,)
      -> Result<(), DecodingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::checked_add
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:243,1
    - Dst: Some
      Src: /src/image-png/src/decoder/unfiltering_buffer.rs:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - val
    - factor
    argTypes:
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: checked_next_multiple_of
    functionSourceFile: /src/image-png/src/decoder/unfiltering_buffer.rs
    functionUses: 1
    functionsReached:
    - Some
    - usize::checked_add
    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: 258
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 258
    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:
    - Box::new
    - expand_into_rgb8
    - create_rgba_palette
    - expand_8bit_into_rgb8
    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:
    - Box::new
    - create_rgba_palette
    - expand_paletted_into_rgba8
    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:74,1
    - Dst: iter
      Src: /src/image-png/src/decoder/transform/palette.rs:81,1
    - Dst: Result::copied
      Src: /src/image-png/src/decoder/transform/palette.rs:81,1
    - Dst: zip
      Src: /src/image-png/src/decoder/transform/palette.rs:81,1
    - Dst: '[[u8; 4]; 256]::iter_mut'
      Src: /src/image-png/src/decoder/transform/palette.rs:81,1
    - Dst: len
      Src: /src/image-png/src/decoder/transform/palette.rs:86,1
    - Dst: len
      Src: /src/image-png/src/decoder/transform/palette.rs:86,1
    - Dst: iter_mut
      Src: /src/image-png/src/decoder/transform/palette.rs:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 91
    argCount: 1
    argNames:
    - info
    argTypes:
    - '&Info'
    constantsTouched: []
    func_position:
      end: 91
      start: 39
    functionDepth: 22
    functionLinenumber: 39
    functionLinenumberEnd: 91
    functionName: create_rgba_palette
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 2
    functionsReached:
    - copy_from_slice
    - expect
    - len
    - as_deref
    - iter
    - Result::copied
    - zip
    - '[[u8; 4]; 256]::iter_mut'
    - unwrap_or
    - palette::is_empty
    - iter_mut
    - palette::len
    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:94,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/decoder/transform/palette.rs:97,1
    - Dst: '&mut [u8]::is_empty'
      Src: /src/image-png/src/decoder/transform/palette.rs:102,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/decoder/transform/palette.rs:104,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: 106
      start: 93
    functionDepth: 22
    functionLinenumber: 93
    functionLinenumberEnd: 106
    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:109,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: 115
      start: 108
    functionDepth: 28
    functionLinenumber: 108
    functionLinenumberEnd: 115
    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:123,1
    - Dst: Result::copy_from_slice
      Src: /src/image-png/src/decoder/transform/palette.rs:124,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: 126
      start: 117
    functionDepth: 28
    functionLinenumber: 117
    functionLinenumberEnd: 126
    functionName: expand_paletted_into_rgba8
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 1
    functionsReached:
    - super::unpack_bits
    - Result::copy_from_slice
    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:134,1
    - Dst: expect
      Src: /src/image-png/src/decoder/transform/palette.rs:134,1
    - Dst: super::unpack_bits
      Src: /src/image-png/src/decoder/transform/palette.rs:137,1
    - Dst: get
      Src: /src/image-png/src/decoder/transform/palette.rs:138,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/transform/palette.rs:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 3
    argNames:
    - row
    - buffer
    - info
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&Info'
    constantsTouched: []
    func_position:
      end: 145
      start: 133
    functionDepth: 28
    functionLinenumber: 133
    functionLinenumberEnd: 145
    functionName: test::oracle_expand_paletted_into_rgb8
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - get
    - unwrap_or
    - super::unpack_bits
    - as_deref
    - 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:149,1
    - Dst: expect
      Src: /src/image-png/src/decoder/transform/palette.rs:149,1
    - Dst: as_deref
      Src: /src/image-png/src/decoder/transform/palette.rs:150,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/transform/palette.rs:150,1
    - Dst: len
      Src: /src/image-png/src/decoder/transform/palette.rs:160,1
    - Dst: len
      Src: /src/image-png/src/decoder/transform/palette.rs:160,1
    - Dst: super::unpack_bits
      Src: /src/image-png/src/decoder/transform/palette.rs:166,1
    - Dst: get
      Src: /src/image-png/src/decoder/transform/palette.rs:168,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/transform/palette.rs:168,1
    - Dst: get
      Src: /src/image-png/src/decoder/transform/palette.rs:171,1
    - Dst: unwrap_or
      Src: /src/image-png/src/decoder/transform/palette.rs:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 61
    argCount: 3
    argNames:
    - row
    - buffer
    - info
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&Info'
    constantsTouched: []
    func_position:
      end: 178
      start: 148
    functionDepth: 22
    functionLinenumber: 148
    functionLinenumberEnd: 178
    functionName: test::oracle_expand_paletted_into_rgba8
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - len
    - get
    - as_deref
    - super::unpack_bits
    - 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:183,1
    - Dst: Option::unwrap
      Src: /src/image-png/src/decoder/transform/palette.rs:183,1
    - Dst: Some
      Src: /src/image-png/src/decoder/transform/palette.rs:184,1
    - Dst: into
      Src: /src/image-png/src/decoder/transform/palette.rs:184,1
    - Dst: map
      Src: /src/image-png/src/decoder/transform/palette.rs:185,1
    - Dst: Info::default
      Src: /src/image-png/src/decoder/transform/palette.rs:186,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: 188
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 188
    functionName: test::create_info
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - Info::default
    - into
    - Option::unwrap
    - BitDepth::from_u8
    - map
    - 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:196,1
    - Dst: '&[u8]::len'
      Src: /src/image-png/src/decoder/transform/palette.rs:202,1
    - Dst: super::super::create_transform_fn
      Src: /src/image-png/src/decoder/transform/palette.rs:206,1
    - Dst: Result::unwrap
      Src: /src/image-png/src/decoder/transform/palette.rs:206,1
    - Dst: transform_fn
      Src: /src/image-png/src/decoder/transform/palette.rs:207,1
    - Dst: as_mut_slice
      Src: /src/image-png/src/decoder/transform/palette.rs:207,1
    - Dst: is_none
      Src: /src/image-png/src/decoder/transform/palette.rs:212,1
    - Dst: oracle_expand_paletted_into_rgb8
      Src: /src/image-png/src/decoder/transform/palette.rs:213,1
    - Dst: oracle_expand_paletted_into_rgba8
      Src: /src/image-png/src/decoder/transform/palette.rs:215,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: 221
      start: 190
    functionDepth: 22
    functionLinenumber: 190
    functionLinenumberEnd: 221
    functionName: test::expand_paletted
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - transform_fn
    - as_mut_slice
    - oracle_expand_paletted_into_rgba8
    - super::super::create_transform_fn
    - '&[u8]::len'
    - Result::unwrap
    - is_none
    - oracle_expand_paletted_into_rgb8
    - create_info
    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:225,1
    - Dst: Some
      Src: /src/image-png/src/decoder/transform/palette.rs:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 224
    functionDepth: 23
    functionLinenumber: 224
    functionLinenumberEnd: 238
    functionName: test::test_expand_paletted_rgba_8bit
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - Some
    - expand_paletted
    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:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 241
    functionDepth: 23
    functionLinenumber: 241
    functionLinenumberEnd: 255
    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:259,1
    - Dst: Some
      Src: /src/image-png/src/decoder/transform/palette.rs:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 272
      start: 258
    functionDepth: 23
    functionLinenumber: 258
    functionLinenumberEnd: 272
    functionName: test::test_expand_paletted_rgba_4bit
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - Some
    - expand_paletted
    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:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 275
    functionDepth: 23
    functionLinenumber: 275
    functionLinenumberEnd: 289
    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:293,1
    - Dst: Some
      Src: /src/image-png/src/decoder/transform/palette.rs:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 292
    functionDepth: 23
    functionLinenumber: 292
    functionLinenumberEnd: 311
    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:
    - Some
    - expand_paletted
    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:315,1
    - Dst: Some
      Src: /src/image-png/src/decoder/transform/palette.rs:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 314
    functionDepth: 23
    functionLinenumber: 314
    functionLinenumberEnd: 334
    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:
    - Some
    - expand_paletted
    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:340,1
    - Dst: enumerate
      Src: /src/image-png/src/decoder/transform/palette.rs:340,1
    - Dst: Result::get
      Src: /src/image-png/src/decoder/transform/palette.rs:341,1
    - Dst: map
      Src: /src/image-png/src/decoder/transform/palette.rs:341,1
    - Dst: unwrap_or
      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: 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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 56
    argCount: 2
    argNames:
    - plte
    - trns
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 347
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 347
    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:
    - get
    - enumerate
    - Result::get
    - map
    - unwrap_or
    - iter_mut
    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:351,1
    - Dst: map
      Src: /src/image-png/src/decoder/transform/palette.rs:352,1
    - Dst: collect
      Src: /src/image-png/src/decoder/transform/palette.rs:352,1
    - Dst: create_info
      Src: /src/image-png/src/decoder/transform/palette.rs:354,1
    - Dst: Some
      Src: /src/image-png/src/decoder/transform/palette.rs:354,1
    - Dst: create_expected_rgba_palette
      Src: /src/image-png/src/decoder/transform/palette.rs:355,1
    - Dst: super::create_rgba_palette
      Src: /src/image-png/src/decoder/transform/palette.rs:356,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 337
    functionDepth: 23
    functionLinenumber: 337
    functionLinenumberEnd: 360
    functionName: test::test_create_rgba_palette
    functionSourceFile: /src/image-png/src/decoder/transform/palette.rs
    functionUses: 0
    functionsReached:
    - super::create_rgba_palette
    - collect
    - map
    - Some
    - create_info
    - create_expected_rgba_palette
    linkageType: ''
    returnType: void
    signature: fn test_create_rgba_palette()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Simd::splat
      Src: /src/image-png/src/filter/simd.rs:57,1
    - Dst: Simd<i16, SIZE>::simd_min
      Src: /src/image-png/src/filter/simd.rs:58,1
    - Dst: Simd<i16, SIZE>::simd_max
      Src: /src/image-png/src/filter/simd.rs:59,1
    - Dst: simd_le
      Src: /src/image-png/src/filter/simd.rs:60,1
    - Dst: select
      Src: /src/image-png/src/filter/simd.rs:60,1
    - Dst: simd_le
      Src: /src/image-png/src/filter/simd.rs:61,1
    - Dst: select
      Src: /src/image-png/src/filter/simd.rs:61,1
    - Dst: simd_le(lo).select(hi, t0).cast::<u8>
      Src: /src/image-png/src/filter/simd.rs:61,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: 62
      start: 49
    functionDepth: 23
    functionLinenumber: 49
    functionLinenumberEnd: 62
    functionName: paeth_predictor_simd
    functionSourceFile: /src/image-png/src/filter/simd.rs
    functionUses: 0
    functionsReached:
    - simd_le(lo).select(hi, t0).cast::<u8>
    - Simd<i16, SIZE>::simd_max
    - select
    - Simd::splat
    - simd_le
    - Simd<i16, SIZE>::simd_min
    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>whereLaneCount<SIZE>:
      SupportedLaneCount,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shift_elements_right::<3>
      Src: /src/image-png/src/filter/simd.rs:89,1
    - Dst: as_mut_array
      Src: /src/image-png/src/filter/simd.rs:90,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/filter/simd.rs:90,1
    - Dst: Simd<u8, 3>::as_array
      Src: /src/image-png/src/filter/simd.rs:90,1
    - Dst: Simd::from_array
      Src: /src/image-png/src/filter/simd.rs:127,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: 129
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 129
    functionName: process_paeth_chunk_bpp3_s48
    functionSourceFile: /src/image-png/src/filter/simd.rs
    functionUses: 0
    functionsReached:
    - Simd::from_array
    - shift_elements_right::<3>
    - as_mut_array
    - Simd<u8, 3>::as_array
    - copy_from_slice
    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:143,1
    - Dst: Default::default
      Src: /src/image-png/src/filter/simd.rs:144,1
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image-png/src/filter/simd.rs:147,1
    - Dst: '&[u8]::chunks_exact'
      Src: /src/image-png/src/filter/simd.rs:148,1
    - Dst: zip
      Src: /src/image-png/src/filter/simd.rs:149,1
    - Dst: Simd::<u8, STRIDE_BYTES>::from_slice
      Src: /src/image-png/src/filter/simd.rs:152,1
    - Dst: Simd::<u8, STRIDE_BYTES>::from_slice
      Src: /src/image-png/src/filter/simd.rs:153,1
    - Dst: process_paeth_chunk_bpp3_s48
      Src: /src/image-png/src/filter/simd.rs:156,1
    - Dst: extract::<{ STRIDE_BYTES - BPP }, BPP>
      Src: /src/image-png/src/filter/simd.rs:160,1
    - Dst: copy_to_slice
      Src: /src/image-png/src/filter/simd.rs:163,1
    - Dst: to_array
      Src: /src/image-png/src/filter/simd.rs:167,1
    - Dst: to_array
      Src: /src/image-png/src/filter/simd.rs:168,1
    - Dst: into_remainder
      Src: /src/image-png/src/filter/simd.rs:169,1
    - Dst: chunks_exact_mut
      Src: /src/image-png/src/filter/simd.rs:169,1
    - Dst: zip
      Src: /src/image-png/src/filter/simd.rs:169,1
    - Dst: remainder
      Src: /src/image-png/src/filter/simd.rs:172,1
    - Dst: chunks_exact
      Src: /src/image-png/src/filter/simd.rs:172,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/simd.rs:175,1
    - Dst: filter_paeth_chosen
      Src: /src/image-png/src/filter/simd.rs:175,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:176,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:177,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:178,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/simd.rs:180,1
    - Dst: filter_paeth_chosen
      Src: /src/image-png/src/filter/simd.rs:180,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:181,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:182,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:183,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/simd.rs:185,1
    - Dst: filter_paeth_chosen
      Src: /src/image-png/src/filter/simd.rs:185,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:186,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:187,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:188,1
    - Dst: TryInto::<&mut [u8; BPP]>::try_into
      Src: /src/image-png/src/filter/simd.rs:191,1
    - Dst: unwrap
      Src: /src/image-png/src/filter/simd.rs:191,1
    - Dst: try_into
      Src: /src/image-png/src/filter/simd.rs:193,1
    - Dst: unwrap
      Src: /src/image-png/src/filter/simd.rs:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 98
    argCount: 2
    argNames:
    - current
    - prev
    argTypes:
    - '&mut [u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 195
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 195
    functionName: paeth_unfilter_3bpp
    functionSourceFile: /src/image-png/src/filter/simd.rs
    functionUses: 1
    functionsReached:
    - try_into
    - zip
    - TryInto::<&mut [u8; BPP]>::try_into
    - remainder
    - wrapping_add
    - Simd::<u8, STRIDE_BYTES>::from_slice
    - unwrap
    - extract::<{ STRIDE_BYTES - BPP }, BPP>
    - into_remainder
    - chunks_exact_mut
    - into
    - copy_to_slice
    - '&[u8]::chunks_exact'
    - chunks_exact
    - '&mut [u8]::chunks_exact_mut'
    - process_paeth_chunk_bpp3_s48
    - to_array
    - filter_paeth_chosen
    - Default::default
    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:214,1
    - Dst: as_mut_array
      Src: /src/image-png/src/filter/simd.rs:215,1
    - Dst: copy_from_slice
      Src: /src/image-png/src/filter/simd.rs:215,1
    - Dst: Simd<u8, 4>::as_array
      Src: /src/image-png/src/filter/simd.rs:215,1
    - Dst: Simd::from_array
      Src: /src/image-png/src/filter/simd.rs:250,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: 252
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 252
    functionName: process_paeth_chunk_bpp4_s64
    functionSourceFile: /src/image-png/src/filter/simd.rs
    functionUses: 0
    functionsReached:
    - Simd::from_array
    - shift_elements_right::<4>
    - Simd<u8, 4>::as_array
    - as_mut_array
    - copy_from_slice
    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:260,1
    - Dst: Default::default
      Src: /src/image-png/src/filter/simd.rs:261,1
    - Dst: len
      Src: /src/image-png/src/filter/simd.rs:264,1
    - Dst: split_at_mut
      Src: /src/image-png/src/filter/simd.rs:265,1
    - Dst: split_at
      Src: /src/image-png/src/filter/simd.rs:266,1
    - Dst: chunks_exact_mut
      Src: /src/image-png/src/filter/simd.rs:267,1
    - Dst: chunks_exact
      Src: /src/image-png/src/filter/simd.rs:268,1
    - Dst: zip
      Src: /src/image-png/src/filter/simd.rs:269,1
    - Dst: Simd::<u8, STRIDE_BYTES>::from_slice
      Src: /src/image-png/src/filter/simd.rs:272,1
    - Dst: Simd::<u8, STRIDE_BYTES>::from_slice
      Src: /src/image-png/src/filter/simd.rs:273,1
    - Dst: process_paeth_chunk_bpp4_s64
      Src: /src/image-png/src/filter/simd.rs:275,1
    - Dst: extract::<{ STRIDE_BYTES - BPP }, BPP>
      Src: /src/image-png/src/filter/simd.rs:278,1
    - Dst: copy_to_slice
      Src: /src/image-png/src/filter/simd.rs:280,1
    - Dst: to_array
      Src: /src/image-png/src/filter/simd.rs:284,1
    - Dst: to_array
      Src: /src/image-png/src/filter/simd.rs:285,1
    - Dst: chunks_exact_mut
      Src: /src/image-png/src/filter/simd.rs:286,1
    - Dst: zip
      Src: /src/image-png/src/filter/simd.rs:286,1
    - Dst: chunks_exact
      Src: /src/image-png/src/filter/simd.rs:288,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/simd.rs:291,1
    - Dst: filter_paeth_chosen
      Src: /src/image-png/src/filter/simd.rs:291,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:292,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:293,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:294,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/simd.rs:296,1
    - Dst: filter_paeth_chosen
      Src: /src/image-png/src/filter/simd.rs:296,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:297,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:298,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:299,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/simd.rs:301,1
    - Dst: filter_paeth_chosen
      Src: /src/image-png/src/filter/simd.rs:301,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:302,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:303,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:304,1
    - Dst: wrapping_add
      Src: /src/image-png/src/filter/simd.rs:306,1
    - Dst: filter_paeth_chosen
      Src: /src/image-png/src/filter/simd.rs:306,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:307,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:308,1
    - Dst: into
      Src: /src/image-png/src/filter/simd.rs:309,1
    - Dst: TryInto::<&mut [u8; BPP]>::try_into
      Src: /src/image-png/src/filter/simd.rs:312,1
    - Dst: unwrap
      Src: /src/image-png/src/filter/simd.rs:312,1
    - Dst: try_into
      Src: /src/image-png/src/filter/simd.rs:314,1
    - Dst: unwrap
      Src: /src/image-png/src/filter/simd.rs:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 113
    argCount: 2
    argNames:
    - row
    - prev_row
    argTypes:
    - '&mut [u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 316
      start: 256
    functionDepth: 22
    functionLinenumber: 256
    functionLinenumberEnd: 316
    functionName: paeth_unfilter_4bpp
    functionSourceFile: /src/image-png/src/filter/simd.rs
    functionUses: 1
    functionsReached:
    - chunks_exact_mut
    - Simd::<u8, STRIDE_BYTES>::from_slice
    - len
    - into
    - copy_to_slice
    - chunks_exact
    - split_at_mut
    - TryInto::<&mut [u8; BPP]>::try_into
    - zip
    - try_into
    - wrapping_add
    - unwrap
    - extract::<{ STRIDE_BYTES - BPP }, BPP>
    - to_array
    - filter_paeth_chosen
    - process_paeth_chunk_bpp4_s64
    - split_at
    - Default::default
    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:
    - into_remainder
    - chunks_exact_mut
    - '&mut [u8]::copy_from_slice'
    - paeth::filter_paeth_fpnge
    - wrapping_sub
    - '&[u8]::chunks_exact'
    - chunks_exact
    - '&mut [u8]::chunks_exact_mut'
    - zip
    - remainder
    - copy_from_slice
    - iter_mut
    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: 27
    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: 22
    functionLinenumber: 530
    functionLinenumberEnd: 548
    functionName: filter
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 9
    functionsReached:
    - into_usize
    - Option::unwrap
    - '&[u8]::len'
    - adaptive_filter
    - RowFilter::from_method
    - filter_internal
    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: remainder
      Src: /src/image-png/src/filter/mod.rs:578,1
    - Dst: ilog2i
      Src: /src/image-png/src/filter/mod.rs:594,1
    - Dst: u64::saturating_sub
      Src: /src/image-png/src/filter/mod.rs:597,1
    - Dst: ilog2i
      Src: /src/image-png/src/filter/mod.rs:597,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 88
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 602
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 602
    functionName: entropy
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 0
    functionsReached:
    - UnfilterBuf::chunks_exact
    - remainder
    - ilog2i
    - u64::saturating_sub
    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:608,1
    - Dst: u64::from
      Src: /src/image-png/src/filter/mod.rs:615,1
    - Dst: unsigned_abs
      Src: /src/image-png/src/filter/mod.rs:615,1
    - Dst: saturating_add
      Src: /src/image-png/src/filter/mod.rs:617,1
    - Dst: remainder
      Src: /src/image-png/src/filter/mod.rs:621,1
    - Dst: u64::from
      Src: /src/image-png/src/filter/mod.rs:622,1
    - Dst: unsigned_abs
      Src: /src/image-png/src/filter/mod.rs:622,1
    - Dst: saturating_add
      Src: /src/image-png/src/filter/mod.rs:625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 626
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 626
    functionName: sum_buffer
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 0
    functionsReached:
    - unsigned_abs
    - UnfilterBuf::chunks_exact
    - saturating_add
    - remainder
    - u64::from
    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:637,1
    - Dst: u8::take
      Src: /src/image-png/src/filter/mod.rs:637,1
    - Dst: into
      Src: /src/image-png/src/filter/mod.rs:637,1
    - Dst: Wrapper::collect
      Src: /src/image-png/src/filter/mod.rs:637,1
    - Dst: collect
      Src: /src/image-png/src/filter/mod.rs:638,1
    - Dst: clone
      Src: /src/image-png/src/filter/mod.rs:639,1
    - Dst: filter
      Src: /src/image-png/src/filter/mod.rs:643,1
    - Dst: into
      Src: /src/image-png/src/filter/mod.rs:643,1
    - Dst: unfilter
      Src: /src/image-png/src/filter/mod.rs:644,1
    - Dst: iter
      Src: /src/image-png/src/filter/mod.rs:669,1
    - Dst: iter
      Src: /src/image-png/src/filter/mod.rs:670,1
    - Dst: roundtrip
      Src: /src/image-png/src/filter/mod.rs:671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 674
      start: 634
    functionDepth: 23
    functionLinenumber: 634
    functionLinenumberEnd: 674
    functionName: test::roundtrip
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 0
    functionsReached:
    - roundtrip
    - Wrapper::collect
    - into
    - iter
    - collect
    - clone
    - iter::repeat
    - unfilter
    - u8::take
    - filter
    linkageType: ''
    returnType: void
    signature: fn roundtrip()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: collect
      Src: /src/image-png/src/filter/mod.rs:680,1
    - Dst: collect
      Src: /src/image-png/src/filter/mod.rs:681,1
    - Dst: clone
      Src: /src/image-png/src/filter/mod.rs:682,1
    - Dst: filter
      Src: /src/image-png/src/filter/mod.rs:686,1
    - Dst: into
      Src: /src/image-png/src/filter/mod.rs:686,1
    - Dst: unfilter
      Src: /src/image-png/src/filter/mod.rs:687,1
    - Dst: iter
      Src: /src/image-png/src/filter/mod.rs:712,1
    - Dst: iter
      Src: /src/image-png/src/filter/mod.rs:713,1
    - Dst: roundtrip
      Src: /src/image-png/src/filter/mod.rs:714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 717
      start: 677
    functionDepth: 23
    functionLinenumber: 677
    functionLinenumberEnd: 717
    functionName: test::roundtrip_ascending_previous_line
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 0
    functionsReached:
    - roundtrip
    - into
    - iter
    - collect
    - clone
    - unfilter
    - filter
    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:725,1
    - Dst: .=127).sum::<u64>
      Src: /src/image-png/src/filter/mod.rs:725,1
    - Dst: collect
      Src: /src/image-png/src/filter/mod.rs:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 729
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 729
    functionName: test::sum_buffer_test
    functionSourceFile: /src/image-png/src/filter/mod.rs
    functionUses: 0
    functionsReached:
    - .=128).sum::<u64>
    - collect
    - .=127).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_fpnge
    - filter_paeth_stbi
    - filter_paeth
    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: 16
    functionLinenumber: 7
    functionLinenumberEnd: 24
    functionName: png_decode
    functionSourceFile: /src/image-png/fuzz/fuzz_targets/decode.rs
    functionUses: 0
    functionsReached:
    - Result::map_err
    - Ok
    - '&Info::raw_bytes'
    - Reader::next_frame
    - Err
    - png::Decoder::new_with_limits
    - Reader::info
    - Decoder::read_info
    - Some
    - Cursor::new
    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: 23
    functionLinenumber: 272
    functionLinenumberEnd: 295
    functionName: main
    functionSourceFile: /src/image-png/examples/pngcheck.rs
    functionUses: 0
    functionsReached:
    - map_err
    - check_image
    - and_then
    - try_for_each
    - Config::parse
    - std::process::exit
    - to_str
    - contains
    - io::Error::new
    - unwrap_or_else
    - glob::glob
    - filter
    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: 17
    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:
    - raw_row_length_from_width
    - Encoder::set_color
    - '&''a [u8]::is_empty'
    - filter_from_u8
    - Encoder::set_palette
    - '&''a [u8]::len'
    - Vec::new
    - Some
    - u32::pow
    - ColorType::from_u8
    - Encoder::set_filter
    - BitDepth::from_u8
    - Result::write_image_data
    - png::DeflateCompression::Level
    - Result::ok
    - Encoder::set_depth
    - Encoder::set_deflate_compression
    - Result::len
    - Encoder::write_header
    - png::Encoder::new
    - Result::expect
    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:
    - Reader::next_frame
    - Self::read_info
    - Result::unwrap
    - png::Decoder::new
    - Cursor::new
    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: 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                })\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:248,1
    - Dst: assert_all_items_are_equal
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:248,1
    - Dst: 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
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 111
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&''a [u8]'
    constantsTouched: []
    func_position:
      end: 251
      start: 179
    functionDepth: 20
    functionLinenumber: 179
    functionLinenumberEnd: 251
    functionName: test_data
    functionSourceFile: /src/image-png/fuzz/fuzz_targets/buf_independent.rs
    functionUses: 0
    functionsReached:
    - Result::to_owned
    - Vec::info
    - Result::raw_bytes
    - Err
    - enumerate
    - zip
    - Some
    - next_frame
    - read_info
    - iter
    - T::as_mut_slice
    - Result::clone
    - "into_iter()\n        .map(|decoder| decoder.read_info())\n        .assert_all_results_are_consistent()\n\
      \        .collect::<Result<Vec<_>, _>>"
    - Self::controller
    - disable_intermittent_eofs
    - "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<_>>"
    - "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\
      \                })\n            })\n            .assert_all_results_are_consistent()\n\
      \            .collect::<Result<Vec<_>, _>>"
    - smal_buf::SmalBuf::new
    - assert_all_results_are_consistent
    - assert_all_items_are_same
    - intermittent_eofs::IntermittentEofs::new
    - png::Decoder::new_with_limits
    - into_iter
    - map
    - assert_all_items_are_equal
    - iter_mut
    - Box::new
    - map_err
    - assert_same_info
    - retry_after_eofs
    - enable_intermittent_eofs
    - Cursor::new
    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:259,1
    - Dst: kind
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:261,1
    - Dst: did_reach_inner_eof
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:263,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: 273
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 273
    functionName: retry_after_eofs
    functionSourceFile: /src/image-png/fuzz/fuzz_targets/buf_independent.rs
    functionUses: 1
    functionsReached:
    - kind
    - did_reach_inner_eof
    - '&Self::Target::as_ref'
    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: 292
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 292
    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:305,1
    - Dst: iter
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:307,1
    - Dst: any
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:307,1
    - Dst: is_err
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:307,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_ok
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:308,1
    - Dst: iter
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:312,1
    - Dst: map
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:312,1
    - Dst: as_ref
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:312,1
    - Dst: map
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:312,1
    - Dst: enumerate
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:313,1
    - Dst: into_iter
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 297
    functionDepth: 27
    functionLinenumber: 297
    functionLinenumberEnd: 320
    functionName: IteratorExtensionsForFuzzing::assert_all_results_are_consistent
    functionSourceFile: /src/image-png/fuzz/fuzz_targets/buf_independent.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - iter
    - enumerate
    - into_iter
    - is_err
    - map
    - is_ok
    - any
    - collect::<Vec<_>>
    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:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 329
    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:337,1
    - Dst: reduce
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:337,1
    - Dst: std::panic::AssertUnwindSafe
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:340,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::catch_unwind
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:343,1
    - Dst: assert_same
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:343,1
    - Dst: std::panic::resume_unwind
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:349,1
    - Dst: map
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:337,1
    - Dst: expect
      Src: /src/image-png/fuzz/fuzz_targets/buf_independent.rs:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - assert_same
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 358
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 358
    functionName: IteratorExtensionsForFuzzing::assert_all_items_are_same
    functionSourceFile: /src/image-png/fuzz/fuzz_targets/buf_independent.rs
    functionUses: 1
    functionsReached:
    - IteratorExtensionsForFuzzing::enumerate
    - std::panic::catch_unwind
    - std::panic::resume_unwind
    - std::panic::AssertUnwindSafe
    - map
    - reduce
    - expect
    - assert_same
    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: 27
    functionLinenumber: 33
    functionLinenumberEnd: 61
    functionName: run_encode
    functionSourceFile: /src/image-png/examples/corpus-bench.rs
    functionUses: 0
    functionsReached:
    - Encoder::finish
    - Encoder::set_color
    - Encoder::set_depth
    - Encoder::set_filter
    - Encoder::write_image_data
    - Encoder::set_compression
    - Result::unwrap
    - Encoder::write_header
    - png::Encoder::new
    - Vec::new
    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:
    - Reader::next_frame
    - Result::unwrap
    - Decoder::read_info
    - Decoder::new
    - Cursor::new
    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:
    - to_string_lossy
    - Reader::read
    - Ok
    - UnfilterBuf::is_empty
    - StreamingDecoder::update
    - png::DecodingError::IoError
    - StreamingDecoder::info
    - display_error
    - png::StreamingDecoder::new
    - File::open
    - Option::unwrap
    - Result::clone
    - decompress_text
    - P::as_ref
    - io::BufReader::new
    - unwrap
    - io::Error::new
    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:
    - iter
    - bench_group_expand_full
    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:
    - core::cell::RefCell::new
    - png::benchable_apis::adam7
    - usize::from
    - iter
    - borrow_mut
    - div_ceil
    - throughput
    - benchmark_group
    - bench_with_input
    - u64::from
    - Throughput::Bytes
    - core::hint::black_box
    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:
    - iter
    - bench_unfilter
    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:
    - as_mut_slice
    - unwrap
    - '&mut R::try_fill_bytes'
    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: Result::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: Result::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:
    - get_random_bytes
    - Vec::split_at
    - rand::rng
    - iter
    - Result::as_mut_slice
    - throughput
    - benchmark_group
    - bench_with_input
    - Result::to_vec
    - png::benchable_apis::unfilter
    - Throughput::Bytes
    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:
    - file_name
    - finish
    - into_string
    - fs::read_dir
    - extension
    - fs::read
    - bench_noncompressed_png
    - test_utils::write_noncompressed_png
    - unwrap
    - benchmark_group
    - Vec::new
    - path
    - flatten
    - bench_read_row
    - bench_file
    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: 26
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: bench_noncompressed_png
    functionSourceFile: /src/image-png/benches/decoder.rs
    functionUses: 1
    functionsReached:
    - Vec::new
    - test_utils::write_noncompressed_png
    - bench_file
    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::as_slice
    - Reader::next_frame
    - iter
    - Result::len
    - Result::unwrap
    - create_reader
    - throughput
    - bench_with_input
    - sample_size
    - 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::output_line_size
    - Result::as_slice
    - Reader::read_row
    - iter
    - Option::unwrap
    - Reader::info
    - Result::len
    - Result::unwrap
    - create_reader
    - throughput
    - unwrap
    - bench_with_input
    - Result::chunks_exact_mut
    - 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:
    - Decoder::set_transformations
    - Result::unwrap
    - Decoder::read_info
    - Decoder::new
    - Cursor::new
    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
    - iter
    - bench_expand_palette
    - bench_create_fn
    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:
    - as_mut_slice
    - unwrap
    - '&mut R::try_fill_bytes'
    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:
    - Some
    - rand::rng
    - get_random_bytes
    - min
    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:
    - as_deref
    - png::benchable_apis::create_info_from_plte_trns_bitdepth
    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:
    - Result::unwrap
    - png::benchable_apis::create_transform_fn
    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:
    - create_expand_palette_fn
    - get_random_bytes
    - png::benchable_apis::create_info_from_plte_trns_bitdepth
    - rand::rng
    - iter
    - benchmark_group
    - bench_with_input
    - Some
    - sample_size
    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:
    - create_expand_palette_fn
    - transform_fn
    - as_mut_slice
    - as_slice
    - Result::output_size_in_bytes
    - iter
    - Result::to_info
    - throughput
    - benchmark_group
    - bench_with_input
    - sample_size
    - Throughput::Bytes
    - Input::new
    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:
  - 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::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
  - 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_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
  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::new
  - UnfilteringBuffer::reset_prev_row
  - UnfilteringBuffer::start_frame
  - UnfilteringBuffer::remaining_bytes
  - UnfilteringBuffer::prev_row
  - UnfilteringBuffer::curr_row_len
  - UnfilteringBuffer::with_unfilled_buffer
  - UnfilteringBuffer::unfilter_curr_row
  - 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
