All functions:
  Elements:
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/tests/regression.rs:16,1
    - Dst: collect
      Src: /src/image/tests/regression.rs:16,1
    - Dst: clone
      Src: /src/image/tests/regression.rs:21,1
    - Dst: ImageResult::push
      Src: /src/image/tests/regression.rs:22,1
    - Dst: ImageResult::push
      Src: /src/image/tests/regression.rs:23,1
    - Dst: ImageResult::push
      Src: /src/image/tests/regression.rs:24,1
    - Dst: ImageResult::push
      Src: /src/image/tests/regression.rs:25,1
    - Dst: '&str::to_string'
      Src: /src/image/tests/regression.rs:26,1
    - Dst: glob::glob
      Src: /src/image/tests/regression.rs:33,1
    - Dst: unwrap
      Src: /src/image/tests/regression.rs:33,1
    - Dst: filter_map
      Src: /src/image/tests/regression.rs:33,1
    - Dst: func
      Src: /src/image/tests/regression.rs:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 3
    argNames:
    - dir
    - input_decoder
    - func
    argTypes:
    - '&str'
    - Option<&str>
    - F
    constantsTouched: []
    func_position:
      end: 37
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 37
    functionName: process_images
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - ImageResult::push
    - iter
    - func
    - clone
    - collect
    - glob::glob
    - unwrap
    - '&str::to_string'
    - filter_map
    linkageType: ''
    returnType: void
    signature: 'fn process_images<F>(dir: &str, input_decoder: Option<&str>, func:
      F)whereF: Fn(PathBuf),'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: process_images
      Src: /src/image/tests/reference_images.rs:45,1
    - Dst: image::open
      Src: /src/image/tests/reference_images.rs:47,1
    - Dst: Crc32::new
      Src: /src/image/tests/reference_images.rs:62,1
    - Dst: Option::update
      Src: /src/image/tests/reference_images.rs:63,1
    - Dst: Option::as_bytes
      Src: /src/image/tests/reference_images.rs:63,1
    - Dst: ImageResult::components
      Src: /src/image/tests/reference_images.rs:66,1
    - Dst: collect
      Src: /src/image/tests/reference_images.rs:66,1
    - Dst: ImageResult::pop
      Src: /src/image/tests/reference_images.rs:67,1
    - Dst: unwrap
      Src: /src/image/tests/reference_images.rs:67,1
    - Dst: ImageResult::pop
      Src: /src/image/tests/reference_images.rs:67,1
    - Dst: unwrap
      Src: /src/image/tests/reference_images.rs:67,1
    - Dst: clone
      Src: /src/image/tests/reference_images.rs:69,1
    - Dst: push
      Src: /src/image/tests/reference_images.rs:71,1
    - Dst: push
      Src: /src/image/tests/reference_images.rs:72,1
    - Dst: push
      Src: /src/image/tests/reference_images.rs:73,1
    - Dst: as_os_str
      Src: /src/image/tests/reference_images.rs:73,1
    - Dst: fs::create_dir_all
      Src: /src/image/tests/reference_images.rs:74,1
    - Dst: unwrap
      Src: /src/image/tests/reference_images.rs:74,1
    - Dst: push
      Src: /src/image/tests/reference_images.rs:75,1
    - Dst: Option::save
      Src: /src/image/tests/reference_images.rs:80,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/reference_images.rs:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 82
    functionName: render_images
    functionSourceFile: /src/image/tests/reference_images.rs
    functionUses: 0
    functionsReached:
    - Option::as_bytes
    - as_os_str
    - fs::create_dir_all
    - image::open
    - push
    - Crc32::new
    - ImageResult::pop
    - clone
    - collect
    - ImageResult::unwrap
    - Option::update
    - ImageResult::components
    - unwrap
    - Option::save
    - process_images
    linkageType: ''
    returnType: void
    signature: fn render_images()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::rsplitn'
      Src: /src/image/tests/reference_images.rs:110,1
    - Dst: next
      Src: /src/image/tests/reference_images.rs:113,1
    - Dst: unwrap
      Src: /src/image/tests/reference_images.rs:113,1
    - Dst: next
      Src: /src/image/tests/reference_images.rs:117,1
    - Dst: ok_or
      Src: /src/image/tests/reference_images.rs:117,1
    - Dst: split
      Src: /src/image/tests/reference_images.rs:118,1
    - Dst: split('_').collect::<Vec<_>>
      Src: /src/image/tests/reference_images.rs:118,1
    - Dst: len
      Src: /src/image/tests/reference_images.rs:121,1
    - Dst: parse_crc
      Src: /src/image/tests/reference_images.rs:123,1
    - Dst: Option::ok_or
      Src: /src/image/tests/reference_images.rs:123,1
    - Dst: len
      Src: /src/image/tests/reference_images.rs:125,1
    - Dst: parse_crc
      Src: /src/image/tests/reference_images.rs:127,1
    - Dst: Option::ok_or
      Src: /src/image/tests/reference_images.rs:127,1
    - Dst: parse
      Src: /src/image/tests/reference_images.rs:128,1
    - Dst: map_err
      Src: /src/image/tests/reference_images.rs:128,1
    - Dst: FrameInfo::checked_sub
      Src: /src/image/tests/reference_images.rs:130,1
    - Dst: ok_or
      Src: /src/image/tests/reference_images.rs:130,1
    - Dst: Err
      Src: /src/image/tests/reference_images.rs:133,1
    - Dst: next
      Src: /src/image/tests/reference_images.rs:137,1
    - Dst: ok_or
      Src: /src/image/tests/reference_images.rs:137,1
    - Dst: to_owned
      Src: /src/image/tests/reference_images.rs:137,1
    - Dst: Ok
      Src: /src/image/tests/reference_images.rs:142,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 71
    argCount: 1
    argNames:
    - filename
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 147
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 147
    functionName: ReferenceTestCase::from_str
    functionSourceFile: /src/image/tests/reference_images.rs
    functionUses: 0
    functionsReached:
    - Err
    - parse
    - parse_crc
    - '&str::rsplitn'
    - ok_or
    - split('_').collect::<Vec<_>>
    - split
    - Option::ok_or
    - map_err
    - len
    - next
    - unwrap
    - FrameInfo::checked_sub
    - to_owned
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_str(filename: &str) -> Result<Self, Self::Err>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from_str_radix
      Src: /src/image/tests/reference_images.rs:152,1
    - Dst: ok
      Src: /src/image/tests/reference_images.rs:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - src
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: parse_crc
    functionSourceFile: /src/image/tests/reference_images.rs
    functionUses: 1
    functionsReached:
    - u32::from_str_radix
    - ok
    linkageType: ''
    returnType: Option
    signature: 'fn parse_crc(src: &str) -> Option<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: process_images
      Src: /src/image/tests/reference_images.rs:157,1
    - Dst: Some
      Src: /src/image/tests/reference_images.rs:157,1
    - Dst: image::open
      Src: /src/image/tests/reference_images.rs:160,1
    - Dst: ImageResult::components
      Src: /src/image/tests/reference_images.rs:170,1
    - Dst: collect
      Src: /src/image/tests/reference_images.rs:170,1
    - Dst: ImageResult::pop
      Src: /src/image/tests/reference_images.rs:171,1
    - Dst: unwrap
      Src: /src/image/tests/reference_images.rs:171,1
    - Dst: ImageResult::pop
      Src: /src/image/tests/reference_images.rs:171,1
    - Dst: unwrap
      Src: /src/image/tests/reference_images.rs:171,1
    - Dst: as_os_str
      Src: /src/image/tests/reference_images.rs:175,1
    - Dst: to_str
      Src: /src/image/tests/reference_images.rs:175,1
    - Dst: unwrap
      Src: /src/image/tests/reference_images.rs:175,1
    - Dst: parse
      Src: /src/image/tests/reference_images.rs:176,1
    - Dst: unwrap
      Src: /src/image/tests/reference_images.rs:176,1
    - Dst: clone
      Src: /src/image/tests/reference_images.rs:178,1
    - Dst: push
      Src: /src/image/tests/reference_images.rs:179,1
    - Dst: push
      Src: /src/image/tests/reference_images.rs:180,1
    - Dst: push
      Src: /src/image/tests/reference_images.rs:181,1
    - Dst: as_os_str
      Src: /src/image/tests/reference_images.rs:181,1
    - Dst: push
      Src: /src/image/tests/reference_images.rs:182,1
    - Dst: ImageReader::open
      Src: /src/image/tests/reference_images.rs:189,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/reference_images.rs:189,1
    - Dst: with_guessed_format
      Src: /src/image/tests/reference_images.rs:189,1
    - Dst: unwrap
      Src: /src/image/tests/reference_images.rs:189,1
    - Dst: format
      Src: /src/image/tests/reference_images.rs:189,1
    - Dst: Some
      Src: /src/image/tests/reference_images.rs:196,1
    - Dst: io::BufReader::new
      Src: /src/image/tests/reference_images.rs:199,1
    - Dst: fs::File::open
      Src: /src/image/tests/reference_images.rs:199,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/reference_images.rs:199,1
    - Dst: image::codecs::gif::GifDecoder::new
      Src: /src/image/tests/reference_images.rs:200,1
    - Dst: ImageResult::into_frames
      Src: /src/image/tests/reference_images.rs:208,1
    - Dst: animation::Frames::collect_frames
      Src: /src/image/tests/reference_images.rs:208,1
    - Dst: ImageResult::drain
      Src: /src/image/tests/reference_images.rs:217,1
    - Dst: next
      Src: /src/image/tests/reference_images.rs:217,1
    - Dst: unwrap
      Src: /src/image/tests/reference_images.rs:217,1
    - Dst: Some
      Src: /src/image/tests/reference_images.rs:220,1
    - Dst: DynamicImage::from
      Src: /src/image/tests/reference_images.rs:220,1
    - Dst: FrameInfo::into_buffer
      Src: /src/image/tests/reference_images.rs:220,1
    - Dst: Some
      Src: /src/image/tests/reference_images.rs:224,1
    - Dst: io::BufReader::new
      Src: /src/image/tests/reference_images.rs:227,1
    - Dst: fs::File::open
      Src: /src/image/tests/reference_images.rs:227,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/reference_images.rs:227,1
    - Dst: image::codecs::png::PngDecoder::new
      Src: /src/image/tests/reference_images.rs:228,1
    - Dst: ImageResult::apng
      Src: /src/image/tests/reference_images.rs:229,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/reference_images.rs:229,1
    - Dst: ImageResult::into_frames
      Src: /src/image/tests/reference_images.rs:236,1
    - Dst: animation::Frames::collect_frames
      Src: /src/image/tests/reference_images.rs:236,1
    - Dst: ImageResult::drain
      Src: /src/image/tests/reference_images.rs:245,1
    - Dst: next
      Src: /src/image/tests/reference_images.rs:245,1
    - Dst: unwrap
      Src: /src/image/tests/reference_images.rs:245,1
    - Dst: Some
      Src: /src/image/tests/reference_images.rs:248,1
    - Dst: DynamicImage::from
      Src: /src/image/tests/reference_images.rs:248,1
    - Dst: FrameInfo::into_buffer
      Src: /src/image/tests/reference_images.rs:248,1
    - Dst: None::is_none
      Src: /src/image/tests/reference_images.rs:251,1
    - Dst: image::open
      Src: /src/image/tests/reference_images.rs:259,1
    - Dst: Some
      Src: /src/image/tests/reference_images.rs:260,1
    - Dst: None::as_mut
      Src: /src/image/tests/reference_images.rs:270,1
    - Dst: Crc32::new
      Src: /src/image/tests/reference_images.rs:275,1
    - Dst: Self::update
      Src: /src/image/tests/reference_images.rs:280,1
    - Dst: None::as_bytes
      Src: /src/image/tests/reference_images.rs:280,1
    - Dst: None::as_bytes
      Src: /src/image/tests/reference_images.rs:285,1
    - Dst: '&[u8]::chunks'
      Src: /src/image/tests/reference_images.rs:285,1
    - Dst: Self::update
      Src: /src/image/tests/reference_images.rs:286,1
    - Dst: u16::from_ne_bytes
      Src: /src/image/tests/reference_images.rs:286,1
    - Dst: DynamicImage::try_into
      Src: /src/image/tests/reference_images.rs:286,1
    - Dst: unwrap
      Src: /src/image/tests/reference_images.rs:286,1
    - Dst: to_le_bytes
      Src: /src/image/tests/reference_images.rs:286,1
    - Dst: None::as_bytes
      Src: /src/image/tests/reference_images.rs:290,1
    - Dst: '&[u8]::chunks'
      Src: /src/image/tests/reference_images.rs:290,1
    - Dst: Self::update
      Src: /src/image/tests/reference_images.rs:291,1
    - Dst: f32::from_ne_bytes
      Src: /src/image/tests/reference_images.rs:291,1
    - Dst: DynamicImage::try_into
      Src: /src/image/tests/reference_images.rs:291,1
    - Dst: unwrap
      Src: /src/image/tests/reference_images.rs:291,1
    - Dst: to_le_bytes
      Src: /src/image/tests/reference_images.rs:291,1
    - Dst: Self::finalize
      Src: /src/image/tests/reference_images.rs:296,1
    - Dst: None::to_rgb16
      Src: /src/image/tests/reference_images.rs:302,1
    - Dst: Rgb16Image::into
      Src: /src/image/tests/reference_images.rs:302,1
    - Dst: None::to_rgba16
      Src: /src/image/tests/reference_images.rs:305,1
    - Dst: Rgba16Image::into
      Src: /src/image/tests/reference_images.rs:305,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 208
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 343
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 343
    functionName: check_references
    functionSourceFile: /src/image/tests/reference_images.rs
    functionUses: 0
    functionsReached:
    - as_os_str
    - ImageReader::open
    - image::open
    - f32::from_ne_bytes
    - Some
    - '&[u8]::chunks'
    - Rgb16Image::into
    - collect
    - unwrap
    - ImageResult::drain
    - Rgba16Image::into
    - Self::finalize
    - io::BufReader::new
    - parse
    - ImageResult::into_frames
    - DynamicImage::from
    - push
    - image::codecs::gif::GifDecoder::new
    - FrameInfo::into_buffer
    - with_guessed_format
    - to_str
    - ImageResult::apng
    - u16::from_ne_bytes
    - format
    - None::to_rgba16
    - animation::Frames::collect_frames
    - clone
    - Crc32::new
    - ImageResult::unwrap
    - Self::update
    - ImageResult::components
    - to_le_bytes
    - None::to_rgb16
    - fs::File::open
    - ImageResult::pop
    - DynamicImage::try_into
    - image::codecs::png::PngDecoder::new
    - next
    - None::is_none
    - None::as_bytes
    - io::Result::unwrap
    - process_images
    - None::as_mut
    linkageType: ''
    returnType: void
    signature: fn check_references()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufReader::new
      Src: /src/image/tests/reference_images.rs:355,1
    - Dst: File::open
      Src: /src/image/tests/reference_images.rs:355,1
    - Dst: read_u32::<LE>
      Src: /src/image/tests/reference_images.rs:356,1
    - Dst: read_u32::<LE>
      Src: /src/image/tests/reference_images.rs:357,1
    - Dst: read_u32::<LE>
      Src: /src/image/tests/reference_images.rs:358,1
    - Dst: Vec::with_capacity
      Src: /src/image/tests/reference_images.rs:362,1
    - Dst: Result::push
      Src: /src/image/tests/reference_images.rs:364,1
    - Dst: read_f32::<LE>
      Src: /src/image/tests/reference_images.rs:364,1
    - Dst: Result::push
      Src: /src/image/tests/reference_images.rs:365,1
    - Dst: read_f32::<LE>
      Src: /src/image/tests/reference_images.rs:365,1
    - Dst: Result::push
      Src: /src/image/tests/reference_images.rs:366,1
    - Dst: read_f32::<LE>
      Src: /src/image/tests/reference_images.rs:366,1
    - Dst: Ok
      Src: /src/image/tests/reference_images.rs:368,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 1
    argNames:
    - path
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 369
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 369
    functionName: c::h::e::c::k::_::h::d::r::_::r::e::f::e::r::e::n::c::e::s::read_raw_file
    functionSourceFile: /src/image/tests/reference_images.rs
    functionUses: 0
    functionsReached:
    - Result::push
    - Vec::with_capacity
    - File::open
    - read_u32::<LE>
    - read_f32::<LE>
    - BufReader::new
    - Ok
    linkageType: ''
    returnType: ::std::io::Result
    signature: 'fn read_raw_file<P: AsRef<Path>>(path: P) -> ::std::io::Result<Vec<f32>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/tests/reference_images.rs:371,1
    - Dst: collect
      Src: /src/image/tests/reference_images.rs:371,1
    - Dst: push
      Src: /src/image/tests/reference_images.rs:372,1
    - Dst: push
      Src: /src/image/tests/reference_images.rs:373,1
    - Dst: iter
      Src: /src/image/tests/reference_images.rs:374,1
    - Dst: collect
      Src: /src/image/tests/reference_images.rs:374,1
    - Dst: ImageResult::push
      Src: /src/image/tests/reference_images.rs:375,1
    - Dst: ImageResult::push
      Src: /src/image/tests/reference_images.rs:376,1
    - Dst: ImageResult::push
      Src: /src/image/tests/reference_images.rs:377,1
    - Dst: ImageResult::push
      Src: /src/image/tests/reference_images.rs:378,1
    - Dst: glob::glob
      Src: /src/image/tests/reference_images.rs:380,1
    - Dst: unwrap
      Src: /src/image/tests/reference_images.rs:380,1
    - Dst: filter_map
      Src: /src/image/tests/reference_images.rs:380,1
    - Dst: clone
      Src: /src/image/tests/reference_images.rs:382,1
    - Dst: ImageResult::components
      Src: /src/image/tests/reference_images.rs:384,1
    - Dst: rev
      Src: /src/image/tests/reference_images.rs:384,1
    - Dst: take
      Src: /src/image/tests/reference_images.rs:384,1
    - Dst: "components()\n            .rev()\n            .take(2)\n            .collect::<Vec<_>>"
      Src: /src/image/tests/reference_images.rs:384,1
    - Dst: iter
      Src: /src/image/tests/reference_images.rs:384,1
    - Dst: rev
      Src: /src/image/tests/reference_images.rs:384,1
    - Dst: push
      Src: /src/image/tests/reference_images.rs:393,1
    - Dst: set_extension
      Src: /src/image/tests/reference_images.rs:398,1
    - Dst: image::codecs::hdr::HdrDecoder::new
      Src: /src/image/tests/reference_images.rs:402,1
    - Dst: io::BufReader::new
      Src: /src/image/tests/reference_images.rs:402,1
    - Dst: fs::File::open
      Src: /src/image/tests/reference_images.rs:402,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/reference_images.rs:402,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/reference_images.rs:402,1
    - Dst: DynamicImage::from_decoder
      Src: /src/image/tests/reference_images.rs:404,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/reference_images.rs:404,1
    - Dst: Option::into_vec
      Src: /src/image/tests/reference_images.rs:405,1
    - Dst: read_raw_file
      Src: /src/image/tests/reference_images.rs:409,1
    - Dst: ::std::io::Result::unwrap
      Src: /src/image/tests/reference_images.rs:409,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 121
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 412
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 412
    functionName: check_hdr_references
    functionSourceFile: /src/image/tests/reference_images.rs
    functionUses: 0
    functionsReached:
    - read_raw_file
    - collect
    - unwrap
    - DynamicImage::from_decoder
    - io::BufReader::new
    - push
    - glob::glob
    - rev
    - iter
    - clone
    - ImageResult::unwrap
    - ImageResult::components
    - set_extension
    - filter_map
    - "components()\n            .rev()\n            .take(2)\n            .collect::<Vec<_>>"
    - ::std::io::Result::unwrap
    - Option::into_vec
    - ImageResult::push
    - image::codecs::hdr::HdrDecoder::new
    - fs::File::open
    - io::Result::unwrap
    - take
    linkageType: ''
    returnType: void
    signature: fn check_hdr_references()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: process_images
      Src: /src/image/tests/truncate_images.rs:41,1
    - Dst: Some
      Src: /src/image/tests/truncate_images.rs:41,1
    - Dst: fs::File::open
      Src: /src/image/tests/truncate_images.rs:43,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/truncate_images.rs:43,1
    - Dst: Vec::with_capacity
      Src: /src/image/tests/truncate_images.rs:46,1
    - Dst: take
      Src: /src/image/tests/truncate_images.rs:47,1
    - Dst: read_to_end
      Src: /src/image/tests/truncate_images.rs:47,1
    - Dst: unwrap
      Src: /src/image/tests/truncate_images.rs:47,1
    - Dst: io::Result::len
      Src: /src/image/tests/truncate_images.rs:48,1
    - Dst: step_by
      Src: /src/image/tests/truncate_images.rs:48,1
    - Dst: image::load_from_memory
      Src: /src/image/tests/truncate_images.rs:49,1
    - Dst: ImageResult::ok
      Src: /src/image/tests/truncate_images.rs:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: truncate_images
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 0
    functionsReached:
    - read_to_end
    - io::Result::len
    - fs::File::open
    - Vec::with_capacity
    - Some
    - image::load_from_memory
    - ImageResult::ok
    - step_by
    - unwrap
    - io::Result::unwrap
    - process_images
    - take
    linkageType: ''
    returnType: void
    signature: 'fn truncate_images(decoder: &str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: truncate_images
      Src: /src/image/tests/truncate_images.rs:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: truncate_tga
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 0
    functionsReached:
    - truncate_images
    linkageType: ''
    returnType: void
    signature: fn truncate_tga()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: truncate_images
      Src: /src/image/tests/truncate_images.rs:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: truncate_tiff
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 0
    functionsReached:
    - truncate_images
    linkageType: ''
    returnType: void
    signature: fn truncate_tiff()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: truncate_images
      Src: /src/image/tests/truncate_images.rs:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: truncate_png
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 0
    functionsReached:
    - truncate_images
    linkageType: ''
    returnType: void
    signature: fn truncate_png()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: truncate_images
      Src: /src/image/tests/truncate_images.rs:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: truncate_gif
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 0
    functionsReached:
    - truncate_images
    linkageType: ''
    returnType: void
    signature: fn truncate_gif()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: truncate_images
      Src: /src/image/tests/truncate_images.rs:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: truncate_bmp
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 0
    functionsReached:
    - truncate_images
    linkageType: ''
    returnType: void
    signature: fn truncate_bmp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: truncate_images
      Src: /src/image/tests/truncate_images.rs:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: truncate_ico
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 0
    functionsReached:
    - truncate_images
    linkageType: ''
    returnType: void
    signature: fn truncate_ico()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: truncate_images
      Src: /src/image/tests/truncate_images.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: truncate_jpg
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 0
    functionsReached:
    - truncate_images
    linkageType: ''
    returnType: void
    signature: fn truncate_jpg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: truncate_images
      Src: /src/image/tests/truncate_images.rs:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: truncate_hdr
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 0
    functionsReached:
    - truncate_images
    linkageType: ''
    returnType: void
    signature: fn truncate_hdr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: truncate_images
      Src: /src/image/tests/truncate_images.rs:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 3
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: truncate_farbfeld
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 0
    functionsReached:
    - truncate_images
    linkageType: ''
    returnType: void
    signature: fn truncate_farbfeld()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: truncate_images
      Src: /src/image/tests/truncate_images.rs:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: truncate_exr
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 0
    functionsReached:
    - truncate_images
    linkageType: ''
    returnType: void
    signature: fn truncate_exr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: truncate_images
      Src: /src/image/tests/truncate_images.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: truncate_pcx
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 0
    functionsReached:
    - truncate_images
    linkageType: ''
    returnType: void
    signature: fn truncate_pcx()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: process_images
      Src: /src/image/tests/regression.rs:41,1
    - Dst: image::open
      Src: /src/image/tests/regression.rs:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: check_regressions
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - process_images
    - image::open
    linkageType: ''
    returnType: void
    signature: fn check_regressions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/tests/regression.rs:49,1
    - Dst: "iter()\n        .collect::<PathBuf>"
      Src: /src/image/tests/regression.rs:49,1
    - Dst: join
      Src: /src/image/tests/regression.rs:49,1
    - Dst: join
      Src: /src/image/tests/regression.rs:49,1
    - Dst: join
      Src: /src/image/tests/regression.rs:49,1
    - Dst: glob::glob
      Src: /src/image/tests/regression.rs:56,1
    - Dst: unwrap
      Src: /src/image/tests/regression.rs:56,1
    - Dst: filter_map
      Src: /src/image/tests/regression.rs:56,1
    - Dst: fs::read
      Src: /src/image/tests/regression.rs:57,1
    - Dst: bool::unwrap
      Src: /src/image/tests/regression.rs:57,1
    - Dst: Cursor::new
      Src: /src/image/tests/regression.rs:58,1
    - Dst: image_webp::WebPDecoder::new
      Src: /src/image/tests/regression.rs:59,1
    - Dst: Self::clone
      Src: /src/image/tests/regression.rs:59,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/regression.rs:59,1
    - Dst: num_frames
      Src: /src/image/tests/regression.rs:59,1
    - Dst: WebPDecoder::new
      Src: /src/image/tests/regression.rs:62,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/regression.rs:62,1
    - Dst: ImageResult::into_frames
      Src: /src/image/tests/regression.rs:66,1
    - Dst: animation::Frames::take
      Src: /src/image/tests/regression.rs:66,1
    - Dst: enumerate
      Src: /src/image/tests/regression.rs:66,1
    - Dst: inspect
      Src: /src/image/tests/regression.rs:66,1
    - Dst: count
      Src: /src/image/tests/regression.rs:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 78
    functionName: check_webp_frames_regressions
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - enumerate
    - animation::Frames::take
    - WebPDecoder::new
    - unwrap
    - num_frames
    - join
    - ImageResult::into_frames
    - glob::glob
    - image_webp::WebPDecoder::new
    - count
    - iter
    - inspect
    - ImageResult::unwrap
    - Cursor::new
    - bool::unwrap
    - Self::clone
    - "iter()\n        .collect::<PathBuf>"
    - fs::read
    - filter_map
    linkageType: ''
    returnType: void
    signature: fn check_webp_frames_regressions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/tests/regression.rs:85,1
    - Dst: "iter()\n        .collect::<PathBuf>"
      Src: /src/image/tests/regression.rs:85,1
    - Dst: join
      Src: /src/image/tests/regression.rs:85,1
    - Dst: join
      Src: /src/image/tests/regression.rs:85,1
    - Dst: join
      Src: /src/image/tests/regression.rs:85,1
    - Dst: glob::glob
      Src: /src/image/tests/regression.rs:93,1
    - Dst: unwrap
      Src: /src/image/tests/regression.rs:93,1
    - Dst: filter_map
      Src: /src/image/tests/regression.rs:93,1
    - Dst: BufReader::new
      Src: /src/image/tests/regression.rs:96,1
    - Dst: File::open
      Src: /src/image/tests/regression.rs:96,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/regression.rs:96,1
    - Dst: image::load
      Src: /src/image/tests/regression.rs:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 100
    functionName: bad_bmps
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - File::open
    - iter
    - image::load
    - io::Result::unwrap
    - glob::glob
    - unwrap
    - filter_map
    - BufReader::new
    - "iter()\n        .collect::<PathBuf>"
    - join
    linkageType: ''
    returnType: void
    signature: fn bad_bmps()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: image::load_from_memory
      Src: /src/image/tests/regression.rs:114,1
    - Dst: ImageResult::unwrap_err
      Src: /src/image/tests/regression.rs:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 120
    functionName: bad_gif_oom
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - image::load_from_memory
    - ImageResult::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn bad_gif_oom()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::new
      Src: /src/image/tests/limits.rs:26,1
    - Dst: Vec::new
      Src: /src/image/tests/limits.rs:27,1
    - Dst: Vec::write_to
      Src: /src/image/tests/limits.rs:28,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:29,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - format
    argTypes:
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: test_image
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - RgbImage::new
    - ImageResult::unwrap
    - Vec::write_to
    - Cursor::new
    - Vec::new
    linkageType: ''
    returnType: Vec
    signature: 'fn test_image(format: ImageFormat) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::no_limits
      Src: /src/image/tests/limits.rs:36,1
    - Dst: Some
      Src: /src/image/tests/limits.rs:37,1
    - Dst: Some
      Src: /src/image/tests/limits.rs:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: width_height_limits
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - Some
    - Limits::no_limits
    linkageType: ''
    returnType: Limits
    signature: fn width_height_limits() -> Limits
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::no_limits
      Src: /src/image/tests/limits.rs:44,1
    - Dst: Some
      Src: /src/image/tests/limits.rs:45,1
    - Dst: into
      Src: /src/image/tests/limits.rs:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: allocation_limits
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - Some
    - Limits::no_limits
    - into
    linkageType: ''
    returnType: Limits
    signature: fn allocation_limits() -> Limits
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::no_limits
      Src: /src/image/tests/limits.rs:51,1
    - Dst: Some
      Src: /src/image/tests/limits.rs:52,1
    - Dst: Some
      Src: /src/image/tests/limits.rs:53,1
    - Dst: Some
      Src: /src/image/tests/limits.rs:54,1
    - Dst: into
      Src: /src/image/tests/limits.rs:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: permissive_limits
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - Some
    - Limits::no_limits
    - into
    linkageType: ''
    returnType: Limits
    signature: fn permissive_limits() -> Limits
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReader::new
      Src: /src/image/tests/limits.rs:63,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:63,1
    - Dst: Result::set_format
      Src: /src/image/tests/limits.rs:64,1
    - Dst: Result::limits
      Src: /src/image/tests/limits.rs:65,1
    - Dst: Result::decode
      Src: /src/image/tests/limits.rs:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - input
    - format
    - limits
    argTypes:
    - '&[u8]'
    - ImageFormat
    - Limits
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: load_through_reader
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - Result::set_format
    - ImageReader::new
    - Result::limits
    - Cursor::new
    - Result::decode
    linkageType: ''
    returnType: Result
    signature: 'fn load_through_reader(input: &[u8],format: ImageFormat,limits: Limits,)
      -> Result<image::DynamicImage, image::ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:74,1
    - Dst: GifDecoder::new
      Src: /src/image/tests/limits.rs:84,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:84,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 97
    functionName: gif
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - test_image
    - Cursor::new
    - GifDecoder::new
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn gif()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:104,1
    - Dst: PngDecoder::new
      Src: /src/image/tests/limits.rs:114,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:114,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 124
    functionName: png
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 1
    functionsReached:
    - test_image
    - ImageResult::unwrap
    - Cursor::new
    - PngDecoder::new
    linkageType: ''
    returnType: void
    signature: fn png()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:131,1
    - Dst: JpegDecoder::new
      Src: /src/image/tests/limits.rs:141,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:141,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 144
    functionName: jpeg
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - test_image
    - Cursor::new
    - JpegDecoder::new
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn jpeg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:151,1
    - Dst: WebPDecoder::new
      Src: /src/image/tests/limits.rs:161,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:161,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 164
    functionName: webp
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - test_image
    - WebPDecoder::new
    - Cursor::new
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn webp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:171,1
    - Dst: permissive_limits
      Src: /src/image/tests/limits.rs:179,1
    - Dst: Some
      Src: /src/image/tests/limits.rs:180,1
    - Dst: into
      Src: /src/image/tests/limits.rs:180,1
    - Dst: load_through_reader
      Src: /src/image/tests/limits.rs:181,1
    - Dst: Result::unwrap
      Src: /src/image/tests/limits.rs:181,1
    - Dst: TiffDecoder::new
      Src: /src/image/tests/limits.rs:188,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:188,1
    - Dst: Result::unwrap
      Src: /src/image/tests/limits.rs:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 191
    functionName: tiff
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - load_through_reader
    - Some
    - permissive_limits
    - into
    - Result::unwrap
    - Cursor::new
    - test_image
    - TiffDecoder::new
    linkageType: ''
    returnType: void
    signature: fn tiff()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:198,1
    - Dst: AvifDecoder::new
      Src: /src/image/tests/limits.rs:208,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:208,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 211
    functionName: avif
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - test_image
    - Cursor::new
    - AvifDecoder::new
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn avif()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:218,1
    - Dst: BmpDecoder::new
      Src: /src/image/tests/limits.rs:228,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:228,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 231
    functionName: bmp
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - test_image
    - BmpDecoder::new
    - Cursor::new
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn bmp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/tests/conversions.rs:8,1
    - Dst: image::Rgb::<u16>
      Src: /src/image/tests/conversions.rs:8,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/tests/conversions.rs:12,1
    - Dst: image::Rgb::<u8>
      Src: /src/image/tests/conversions.rs:12,1
    - Dst: ImageBuffer::convert
      Src: /src/image/tests/conversions.rs:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 16
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 16
    functionName: test_rgbu8_to_rgbu16
    functionSourceFile: /src/image/tests/conversions.rs
    functionUses: 0
    functionsReached:
    - image::Rgb::<u8>
    - image::Rgb::<u16>
    - ImageBuffer::from_pixel
    - ImageBuffer::convert
    linkageType: ''
    returnType: void
    signature: fn test_rgbu8_to_rgbu16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/tests/conversions.rs:20,1
    - Dst: image::Rgba::<u16>
      Src: /src/image/tests/conversions.rs:23,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/tests/conversions.rs:26,1
    - Dst: image::Rgba::<u8>
      Src: /src/image/tests/conversions.rs:29,1
    - Dst: ImageBuffer::convert
      Src: /src/image/tests/conversions.rs:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 34
    functionName: test_rgbau8_to_rgbau16
    functionSourceFile: /src/image/tests/conversions.rs
    functionUses: 0
    functionsReached:
    - image::Rgba::<u8>
    - image::Rgba::<u16>
    - ImageBuffer::convert
    - ImageBuffer::from_pixel
    linkageType: ''
    returnType: void
    signature: fn test_rgbau8_to_rgbau16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GifDecoder::new
      Src: /src/image/tests/limits_anim.rs:12,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits_anim.rs:12,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits_anim.rs:12,1
    - Dst: ImageResult::set_limits
      Src: /src/image/tests/limits_anim.rs:13,1
    - Dst: ImageResult::into_frames
      Src: /src/image/tests/limits_anim.rs:15,1
    - Dst: Ok
      Src: /src/image/tests/limits_anim.rs:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - data
    - limits
    argTypes:
    - '&[u8]'
    - Limits
    constantsTouched: []
    func_position:
      end: 21
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 21
    functionName: gif_decode
    functionSourceFile: /src/image/tests/limits_anim.rs
    functionUses: 0
    functionsReached:
    - ImageResult::into_frames
    - ImageResult::unwrap
    - Cursor::new
    - ImageResult::set_limits
    - Ok
    - GifDecoder::new
    linkageType: ''
    returnType: ImageResult
    signature: 'fn gif_decode(data: &[u8], limits: Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult<()>::expect_err
      Src: /src/image/tests/limits_anim.rs:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - res
    argTypes:
    - ImageResult<()>
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: assert_limit_error
    functionSourceFile: /src/image/tests/limits_anim.rs
    functionUses: 0
    functionsReached:
    - ImageResult<()>::expect_err
    linkageType: ''
    returnType: void
    signature: 'fn assert_limit_error(res: ImageResult<()>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/image/tests/limits_anim.rs:40,1
    - Dst: bool::unwrap
      Src: /src/image/tests/limits_anim.rs:40,1
    - Dst: Limits::default
      Src: /src/image/tests/limits_anim.rs:42,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:43,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:44,1
    - Dst: assert_limit_error
      Src: /src/image/tests/limits_anim.rs:45,1
    - Dst: gif_decode
      Src: /src/image/tests/limits_anim.rs:45,1
    - Dst: Limits::default
      Src: /src/image/tests/limits_anim.rs:47,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:49,1
    - Dst: assert_limit_error
      Src: /src/image/tests/limits_anim.rs:50,1
    - Dst: gif_decode
      Src: /src/image/tests/limits_anim.rs:50,1
    - Dst: Limits::default
      Src: /src/image/tests/limits_anim.rs:52,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:57,1
    - Dst: assert_limit_error
      Src: /src/image/tests/limits_anim.rs:58,1
    - Dst: gif_decode
      Src: /src/image/tests/limits_anim.rs:58,1
    - Dst: Limits::default
      Src: /src/image/tests/limits_anim.rs:60,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:61,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:62,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:63,1
    - Dst: gif_decode
      Src: /src/image/tests/limits_anim.rs:65,1
    - Dst: ImageResult::expect
      Src: /src/image/tests/limits_anim.rs:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 67
    functionName: animated_full_frame_discard
    functionSourceFile: /src/image/tests/limits_anim.rs
    functionUses: 0
    functionsReached:
    - std::fs::read
    - Some
    - assert_limit_error
    - Limits::default
    - bool::unwrap
    - ImageResult::expect
    - gif_decode
    linkageType: ''
    returnType: void
    signature: fn animated_full_frame_discard()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/image/tests/limits_anim.rs:73,1
    - Dst: bool::unwrap
      Src: /src/image/tests/limits_anim.rs:73,1
    - Dst: Limits::default
      Src: /src/image/tests/limits_anim.rs:75,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:76,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:77,1
    - Dst: assert_limit_error
      Src: /src/image/tests/limits_anim.rs:78,1
    - Dst: gif_decode
      Src: /src/image/tests/limits_anim.rs:78,1
    - Dst: Limits::default
      Src: /src/image/tests/limits_anim.rs:80,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:82,1
    - Dst: assert_limit_error
      Src: /src/image/tests/limits_anim.rs:83,1
    - Dst: gif_decode
      Src: /src/image/tests/limits_anim.rs:83,1
    - Dst: Limits::default
      Src: /src/image/tests/limits_anim.rs:85,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:91,1
    - Dst: assert_limit_error
      Src: /src/image/tests/limits_anim.rs:92,1
    - Dst: gif_decode
      Src: /src/image/tests/limits_anim.rs:92,1
    - Dst: Limits::default
      Src: /src/image/tests/limits_anim.rs:94,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:95,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:96,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:97,1
    - Dst: gif_decode
      Src: /src/image/tests/limits_anim.rs:99,1
    - Dst: ImageResult::expect
      Src: /src/image/tests/limits_anim.rs:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 101
    functionName: animated_frame_combine
    functionSourceFile: /src/image/tests/limits_anim.rs
    functionUses: 0
    functionsReached:
    - std::fs::read
    - Some
    - assert_limit_error
    - Limits::default
    - bool::unwrap
    - ImageResult::expect
    - gif_decode
    linkageType: ''
    returnType: void
    signature: fn animated_frame_combine()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs::create_dir_all
      Src: /src/image/tests/save_pnm.rs:12,1
    - Dst: expect
      Src: /src/image/tests/save_pnm.rs:12,1
    - Dst: image::open
      Src: /src/image/tests/save_pnm.rs:15,1
    - Dst: io::Result::expect
      Src: /src/image/tests/save_pnm.rs:15,1
    - Dst: Option::save
      Src: /src/image/tests/save_pnm.rs:16,1
    - Dst: ImageResult::expect
      Src: /src/image/tests/save_pnm.rs:16,1
    - Dst: image::open
      Src: /src/image/tests/save_pnm.rs:19,1
    - Dst: io::Result::expect
      Src: /src/image/tests/save_pnm.rs:19,1
    - Dst: Option::as_luma16
      Src: /src/image/tests/save_pnm.rs:23,1
    - Dst: Option::unwrap
      Src: /src/image/tests/save_pnm.rs:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 29
    functionName: save_16bit_to_pbm
    functionSourceFile: /src/image/tests/save_pnm.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - fs::create_dir_all
    - image::open
    - Option::save
    - io::Result::expect
    - ImageResult::expect
    - expect
    - Option::as_luma16
    linkageType: ''
    returnType: void
    signature: fn save_16bit_to_pbm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs::create_dir_all
      Src: /src/image/tests/save_pnm.rs:34,1
    - Dst: expect
      Src: /src/image/tests/save_pnm.rs:34,1
    - Dst: image::open
      Src: /src/image/tests/save_pnm.rs:37,1
    - Dst: io::Result::expect
      Src: /src/image/tests/save_pnm.rs:37,1
    - Dst: Option::save
      Src: /src/image/tests/save_pnm.rs:38,1
    - Dst: ImageResult::expect
      Src: /src/image/tests/save_pnm.rs:38,1
    - Dst: image::open
      Src: /src/image/tests/save_pnm.rs:41,1
    - Dst: io::Result::expect
      Src: /src/image/tests/save_pnm.rs:41,1
    - Dst: Option::as_rgb16
      Src: /src/image/tests/save_pnm.rs:45,1
    - Dst: Option::unwrap
      Src: /src/image/tests/save_pnm.rs:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: save_16bit_to_ppm
    functionSourceFile: /src/image/tests/save_pnm.rs
    functionUses: 0
    functionsReached:
    - Option::as_rgb16
    - Option::unwrap
    - fs::create_dir_all
    - image::open
    - Option::save
    - io::Result::expect
    - ImageResult::expect
    - expect
    linkageType: ''
    returnType: void
    signature: fn save_16bit_to_ppm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: image::open
      Src: /src/image/tests/save_jpeg.rs:9,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/save_jpeg.rs:9,1
    - Dst: JpegEncoder::new
      Src: /src/image/tests/save_jpeg.rs:12,1
    - Dst: Option::write_with_encoder
      Src: /src/image/tests/save_jpeg.rs:13,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/save_jpeg.rs:13,1
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/tests/save_jpeg.rs:17,1
    - Dst: Option::write_with_encoder
      Src: /src/image/tests/save_jpeg.rs:18,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/save_jpeg.rs:18,1
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/tests/save_jpeg.rs:24,1
    - Dst: Option::write_with_encoder
      Src: /src/image/tests/save_jpeg.rs:25,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/save_jpeg.rs:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 29
    functionName: jqeg_qualitys
    functionSourceFile: /src/image/tests/save_jpeg.rs
    functionUses: 0
    functionsReached:
    - image::open
    - ImageResult::unwrap
    - JpegEncoder::new
    - Option::write_with_encoder
    - io::Result::unwrap
    - JpegEncoder::new_with_quality
    linkageType: ''
    returnType: void
    signature: fn jqeg_qualitys()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: image::codecs::webp::WebPDecoder::new
      Src: /src/image/fuzz-afl/reproducers/reproduce_webp.rs:12,1
    - Dst: Cursor::new
      Src: /src/image/fuzz-afl/reproducers/reproduce_webp.rs:12,1
    - Dst: ImageResult::dimensions
      Src: /src/image/fuzz-afl/reproducers/reproduce_webp.rs:13,1
    - Dst: u32::saturating_mul
      Src: /src/image/fuzz-afl/reproducers/reproduce_webp.rs:15,1
    - Dst: Err
      Src: /src/image/fuzz-afl/reproducers/reproduce_webp.rs:16,1
    - Dst: ImageError::Limits
      Src: /src/image/fuzz-afl/reproducers/reproduce_webp.rs:16,1
    - Dst: LimitError::from_kind
      Src: /src/image/fuzz-afl/reproducers/reproduce_webp.rs:16,1
    - Dst: DynamicImage::from_decoder
      Src: /src/image/fuzz-afl/reproducers/reproduce_webp.rs:19,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 20
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 20
    functionName: webp_decode
    functionSourceFile: /src/image/fuzz-afl/reproducers/reproduce_webp.rs
    functionUses: 0
    functionsReached:
    - LimitError::from_kind
    - Err
    - ImageResult::dimensions
    - image::codecs::webp::WebPDecoder::new
    - u32::saturating_mul
    - ImageError::Limits
    - Cursor::new
    - DynamicImage::from_decoder
    linkageType: ''
    returnType: ImageResult
    signature: 'fn webp_decode(data: &[u8]) -> ImageResult<DynamicImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: image::open
      Src: /src/image/examples/scaledown/main.rs:28,1
    - Dst: io::Result::unwrap
      Src: /src/image/examples/scaledown/main.rs:28,1
    - Dst: Instant::now
      Src: /src/image/examples/scaledown/main.rs:36,1
    - Dst: Option::resize
      Src: /src/image/examples/scaledown/main.rs:37,1
    - Dst: File::create
      Src: /src/image/examples/scaledown/main.rs:39,1
    - Dst: unwrap
      Src: /src/image/examples/scaledown/main.rs:39,1
    - Dst: ImageBuffer::write_to
      Src: /src/image/examples/scaledown/main.rs:40,1
    - Dst: ImageResult::unwrap
      Src: /src/image/examples/scaledown/main.rs:40,1
    - Dst: Instant::now
      Src: /src/image/examples/scaledown/main.rs:44,1
    - Dst: Option::thumbnail
      Src: /src/image/examples/scaledown/main.rs:45,1
    - Dst: File::create
      Src: /src/image/examples/scaledown/main.rs:47,1
    - Dst: unwrap
      Src: /src/image/examples/scaledown/main.rs:47,1
    - Dst: ImageBuffer::write_to
      Src: /src/image/examples/scaledown/main.rs:48,1
    - Dst: ImageResult::unwrap
      Src: /src/image/examples/scaledown/main.rs:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 50
    functionName: main
    functionSourceFile: /src/image/examples/scaledown/main.rs
    functionUses: 0
    functionsReached:
    - Option::resize
    - ImageBuffer::write_to
    - File::create
    - image::open
    - Instant::now
    - ImageResult::unwrap
    - unwrap
    - io::Result::unwrap
    - Option::thumbnail
    linkageType: ''
    returnType: void
    signature: fn main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: image::codecs::pnm::PnmDecoder::new
      Src: /src/image/fuzz-afl/reproducers/reproduce_pnm.rs:10,1
    - Dst: ImageResult::dimensions
      Src: /src/image/fuzz-afl/reproducers/reproduce_pnm.rs:11,1
    - Dst: u32::saturating_mul
      Src: /src/image/fuzz-afl/reproducers/reproduce_pnm.rs:13,1
    - Dst: Err
      Src: /src/image/fuzz-afl/reproducers/reproduce_pnm.rs:14,1
    - Dst: ImageError::Limits
      Src: /src/image/fuzz-afl/reproducers/reproduce_pnm.rs:14,1
    - Dst: LimitError::from_kind
      Src: /src/image/fuzz-afl/reproducers/reproduce_pnm.rs:14,1
    - Dst: DynamicImage::from_decoder
      Src: /src/image/fuzz-afl/reproducers/reproduce_pnm.rs:17,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 18
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 18
    functionName: pnm_decode
    functionSourceFile: /src/image/fuzz-afl/reproducers/reproduce_pnm.rs
    functionUses: 0
    functionsReached:
    - LimitError::from_kind
    - Err
    - ImageResult::dimensions
    - image::codecs::pnm::PnmDecoder::new
    - u32::saturating_mul
    - ImageError::Limits
    - DynamicImage::from_decoder
    linkageType: ''
    returnType: ImageResult
    signature: 'fn pnm_decode(data: &[u8]) -> ImageResult<DynamicImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::env::args
      Src: /src/image/fuzz-afl/reproducers/utils.rs:2,1
    - Dst: Vec::collect
      Src: /src/image/fuzz-afl/reproducers/utils.rs:2,1
    - Dst: Vec::len
      Src: /src/image/fuzz-afl/reproducers/utils.rs:3,1
    - Dst: std::process::exit
      Src: /src/image/fuzz-afl/reproducers/utils.rs:5,1
    - Dst: std::fs::read
      Src: /src/image/fuzz-afl/reproducers/utils.rs:7,1
    - Dst: bool::expect
      Src: /src/image/fuzz-afl/reproducers/utils.rs:7,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 10
      start: 1
    functionDepth: 1
    functionLinenumber: 1
    functionLinenumberEnd: 10
    functionName: read_file_from_args
    functionSourceFile: /src/image/fuzz-afl/reproducers/utils.rs
    functionUses: 0
    functionsReached:
    - std::fs::read
    - Vec::collect
    - std::process::exit
    - Vec::len
    - std::env::args
    - bool::expect
    linkageType: ''
    returnType: Vec
    signature: pub fn read_file_from_args() -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/metadata.rs:39,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:40,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:41,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:42,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:43,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:44,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:45,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - exif_orientation
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 49
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 49
    functionName: Orientation::from_exif
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_exif(exif_orientation: u8) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: Orientation::to_exif
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn to_exif(self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_exif_chunk_inner
      Src: /src/image/src/metadata.rs:76,1
    - Dst: Option::map
      Src: /src/image/src/metadata.rs:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: Orientation::from_exif_chunk
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 0
    functionsReached:
    - Option::map
    - Self::from_exif_chunk_inner
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_exif_chunk(chunk: &[u8]) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_exif_chunk_inner
      Src: /src/image/src/metadata.rs:88,1
    - Dst: Cursor::new
      Src: /src/image/src/metadata.rs:89,1
    - Dst: Self::set_position
      Src: /src/image/src/metadata.rs:90,1
    - Dst: to_exif
      Src: /src/image/src/metadata.rs:91,1
    - Dst: into
      Src: /src/image/src/metadata.rs:91,1
    - Dst: write_u16::<BigEndian>
      Src: /src/image/src/metadata.rs:93,1
    - Dst: unwrap
      Src: /src/image/src/metadata.rs:93,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/metadata.rs:94,1
    - Dst: unwrap
      Src: /src/image/src/metadata.rs:94,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 100
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 100
    functionName: Orientation::remove_from_exif_chunk
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 0
    functionsReached:
    - write_u16::<BigEndian>
    - Self::from_exif_chunk_inner
    - Some
    - write_u16::<LittleEndian>
    - to_exif
    - into
    - Self::set_position
    - Cursor::new
    - unwrap
    linkageType: ''
    returnType: Option
    signature: 'pub fn remove_from_exif_chunk(chunk: &mut [u8]) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image/src/metadata.rs:105,1
    - Dst: Result::read_exact
      Src: /src/image/src/metadata.rs:108,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:108,1
    - Dst: Self::locate_orientation_entry::<LittleEndian>
      Src: /src/image/src/metadata.rs:112,1
    - Dst: map
      Src: /src/image/src/metadata.rs:112,1
    - Dst: Self::locate_orientation_entry::<BigEndian>
      Src: /src/image/src/metadata.rs:116,1
    - Dst: map
      Src: /src/image/src/metadata.rs:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: Orientation::from_exif_chunk_inner
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 0
    functionsReached:
    - Result::read_exact
    - map
    - Self::locate_orientation_entry::<LittleEndian>
    - Self::locate_orientation_entry::<BigEndian>
    - ok
    - Cursor::new
    linkageType: ''
    returnType: Option
    signature: 'fn from_exif_chunk_inner(chunk: &[u8]) -> Option<(Self, u64, ExifEndian)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_u32::<B>
      Src: /src/image/src/metadata.rs:129,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:129,1
    - Dst: Result::set_position
      Src: /src/image/src/metadata.rs:130,1
    - Dst: u64::from
      Src: /src/image/src/metadata.rs:130,1
    - Dst: read_u16::<B>
      Src: /src/image/src/metadata.rs:131,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:131,1
    - Dst: read_u16::<B>
      Src: /src/image/src/metadata.rs:133,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:133,1
    - Dst: read_u16::<B>
      Src: /src/image/src/metadata.rs:134,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:134,1
    - Dst: read_u32::<B>
      Src: /src/image/src/metadata.rs:135,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:135,1
    - Dst: read_u16::<B>
      Src: /src/image/src/metadata.rs:136,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:136,1
    - Dst: read_u16::<B>
      Src: /src/image/src/metadata.rs:137,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:137,1
    - Dst: Result::position
      Src: /src/image/src/metadata.rs:139,1
    - Dst: Self::from_exif
      Src: /src/image/src/metadata.rs:140,1
    - Dst: ImageResult::min
      Src: /src/image/src/metadata.rs:140,1
    - Dst: ImageResult::map
      Src: /src/image/src/metadata.rs:141,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 62
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Cursor<&[u8]>'
    constantsTouched: []
    func_position:
      end: 146
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 146
    functionName: Orientation::locate_orientation_entry
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 0
    functionsReached:
    - Result::set_position
    - ok
    - ImageResult::map
    - read_u16::<B>
    - Result::position
    - read_u32::<B>
    - Self::from_exif
    - u64::from
    - ImageResult::min
    linkageType: ''
    returnType: Option
    signature: 'fn locate_orientation_entry<B>(reader: &mut Cursor<&[u8]>) -> Option<(Self,
      u64)>whereB: byteorder_lite::ByteOrder,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image/src/metadata.rs:167,1
    - Dst: JpegDecoder::new
      Src: /src/image/src/metadata.rs:168,1
    - Dst: ImageResult::expect
      Src: /src/image/src/metadata.rs:168,1
    - Dst: ImageResult::exif_metadata
      Src: /src/image/src/metadata.rs:169,1
    - Dst: ImageResult::expect
      Src: /src/image/src/metadata.rs:169,1
    - Dst: expect
      Src: /src/image/src/metadata.rs:169,1
    - Dst: Orientation::from_exif_chunk
      Src: /src/image/src/metadata.rs:174,1
    - Dst: Option::expect
      Src: /src/image/src/metadata.rs:174,1
    - Dst: Orientation::remove_from_exif_chunk
      Src: /src/image/src/metadata.rs:178,1
    - Dst: Option::expect
      Src: /src/image/src/metadata.rs:178,1
    - Dst: Orientation::from_exif_chunk
      Src: /src/image/src/metadata.rs:182,1
    - Dst: Option::expect
      Src: /src/image/src/metadata.rs:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 185
    functionName: tests::test_extraction_and_clearing
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 0
    functionsReached:
    - Orientation::from_exif_chunk
    - Cursor::new
    - Option::expect
    - ImageResult::expect
    - expect
    - Orientation::remove_from_exif_chunk
    - JpegDecoder::new
    - ImageResult::exif_metadata
    linkageType: ''
    returnType: void
    signature: fn test_extraction_and_clearing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/traits.rs:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: '[u8]::as_bytes'
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - bytemuck::cast_slice
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_bytes(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/traits.rs:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: '[u16]::as_bytes'
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - bytemuck::cast_slice
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_bytes(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/traits.rs:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: '[f32]::as_bytes'
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - bytemuck::cast_slice
    linkageType: ''
    returnType: '&[u8]'
    signature: fn as_bytes(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: declare_primitive
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::max_value
      Src: /src/image/src/traits.rs:77,1
    - Dst: to_larger
      Src: /src/image/src/traits.rs:77,1
    - Dst: Self::max_value
      Src: /src/image/src/traits.rs:78,1
    - Dst: Self::min_value
      Src: /src/image/src/traits.rs:79,1
    - Dst: to_larger
      Src: /src/image/src/traits.rs:79,1
    - Dst: Self::min_value
      Src: /src/image/src/traits.rs:80,1
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:82,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - n
    argTypes:
    - Self::Larger
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: Enlargeable::clamp_from
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - to_larger
    - NumCast::from
    - Self::max_value
    - Self::unwrap
    - Self::min_value
    linkageType: ''
    returnType: Self
    signature: 'fn clamp_from(n: Self::Larger) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:87,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Enlargeable::to_larger
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - NumCast::from
    - Self::unwrap
    linkageType: ''
    returnType: Self::Larger
    signature: fn to_larger(self) -> Self::Larger
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: <Self::Ratio as NumCast>::from
      Src: /src/image/src/traits.rs:135,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:135,1
    - Dst: <Self::Ratio as NumCast>::from
      Src: /src/image/src/traits.rs:136,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:136,1
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:140,1
    - Dst: Self::max_value
      Src: /src/image/src/traits.rs:140,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:140,1
    - Dst: Self::max_value
      Src: /src/image/src/traits.rs:141,1
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:142,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:142,1
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:143,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:143,1
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:145,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 3
    argNames:
    - a
    - b
    - ratio
    argTypes:
    - Self
    - Self
    - Self::Ratio
    constantsTouched: []
    func_position:
      end: 147
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 147
    functionName: Lerp::lerp
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - <Self::Ratio as NumCast>::from
    - Self::max_value
    - NumCast::from
    - Self::unwrap
    linkageType: ''
    returnType: Self
    signature: 'fn lerp(a: Self, b: Self, ratio: Self::Ratio) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - ratio
    argTypes:
    - Self
    - Self
    - Self::Ratio
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: f32::lerp
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn lerp(a: Self, b: Self, ratio: Self::Ratio) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: apply_with_alpha
      Src: /src/image/src/traits.rs:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 337
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 337
    functionName: Pixel::map_without_alpha
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - apply_with_alpha
    linkageType: ''
    returnType: Self
    signature: 'fn map_without_alpha<F>(&self, f: F) -> SelfwhereF: FnMut(Self::Subpixel)
      -> Self::Subpixel,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pixel::apply_with_alpha
      Src: /src/image/src/traits.rs:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 346
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 346
    functionName: Pixel::apply_without_alpha
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - Pixel::apply_with_alpha
    linkageType: ''
    returnType: void
    signature: 'fn apply_without_alpha<F>(&mut self, f: F)whereF: FnMut(Self::Subpixel)
      -> Self::Subpixel,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: ColorType::bytes_per_pixel
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn bytes_per_pixel(self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: ColorType::has_alpha
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn has_alpha(self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: ColorType::has_color
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn has_color(self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: <u16 as From<u8>>::from
      Src: /src/image/src/color.rs:76,1
    - Dst: ColorType::bytes_per_pixel
      Src: /src/image/src/color.rs:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: ColorType::bits_per_pixel
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - <u16 as From<u8>>::from
    - ColorType::bytes_per_pixel
    linkageType: ''
    returnType: u16
    signature: pub fn bits_per_pixel(self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ColorType::into
      Src: /src/image/src/color.rs:82,1
    - Dst: ::std::io::Result::channel_count
      Src: /src/image/src/color.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: ColorType::channel_count
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - ::std::io::Result::channel_count
    - ColorType::into
    linkageType: ''
    returnType: u8
    signature: pub fn channel_count(self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 197
    functionName: ExtendedColorType::channel_count
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn channel_count(self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 231
    functionName: ExtendedColorType::bits_per_pixel
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn bits_per_pixel(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExtendedColorType::bits_per_pixel
      Src: /src/image/src/color.rs:235,1
    - Dst: div_ceil
      Src: /src/image/src/color.rs:236,1
    - Dst: saturating_mul
      Src: /src/image/src/color.rs:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: ExtendedColorType::buffer_size
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - div_ceil
    - ExtendedColorType::bits_per_pixel
    - saturating_mul
    linkageType: ''
    returnType: u64
    signature: 'pub(crate) fn buffer_size(self, width: u32, height: u32) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - ColorType
    constantsTouched: []
    func_position:
      end: 254
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 254
    functionName: ExtendedColorType::from
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(c: ColorType) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_from_slice
      Src: /src/image/src/color.rs:33,1
    - Dst: <$ident<T> as Pixel>::from_slice
      Src: /src/image/src/color.rs:39,1
    - Dst: '&[T]::as_ptr'
      Src: /src/image/src/color.rs:44,1
    - Dst: '&[T]::as_mut_ptr'
      Src: /src/image/src/color.rs:48,1
    - Dst: Rgb
      Src: /src/image/src/color.rs:52,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:52,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:52,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:52,1
    - Dst: from_color
      Src: /src/image/src/color.rs:53,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:58,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:58,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:58,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:58,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:58,1
    - Dst: from_color
      Src: /src/image/src/color.rs:59,1
    - Dst: Luma
      Src: /src/image/src/color.rs:64,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:64,1
    - Dst: from_color
      Src: /src/image/src/color.rs:65,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:70,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:70,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:70,1
    - Dst: from_color
      Src: /src/image/src/color.rs:71,1
    - Dst: clone
      Src: /src/image/src/color.rs:76,1
    - Dst: apply
      Src: /src/image/src/color.rs:77,1
    - Dst: f
      Src: /src/image/src/color.rs:83,1
    - Dst: clone
      Src: /src/image/src/color.rs:88,1
    - Dst: apply_with_alpha
      Src: /src/image/src/color.rs:89,1
    - Dst: iter_mut
      Src: /src/image/src/color.rs:95,1
    - Dst: f
      Src: /src/image/src/color.rs:96,1
    - Dst: get_mut
      Src: /src/image/src/color.rs:100,1
    - Dst: g
      Src: /src/image/src/color.rs:101,1
    - Dst: clone
      Src: /src/image/src/color.rs:106,1
    - Dst: apply2
      Src: /src/image/src/color.rs:107,1
    - Dst: iter_mut
      Src: /src/image/src/color.rs:112,1
    - Dst: zip
      Src: /src/image/src/color.rs:112,1
    - Dst: iter
      Src: /src/image/src/color.rs:112,1
    - Dst: f
      Src: /src/image/src/color.rs:113,1
    - Dst: Invert::invert
      Src: /src/image/src/color.rs:118,1
    - Dst: Self
      Src: /src/image/src/color.rs:143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 152
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 411
      start: 257
    functionDepth: 4
    functionLinenumber: 257
    functionLinenumberEnd: 411
    functionName: define_colors
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - apply_with_alpha
    - '&[T]::as_ptr'
    - g
    - '&[T]::as_mut_ptr'
    - apply
    - Zero::zero
    - Self
    - Rgba
    - Rgb
    - f
    - Invert::invert
    - iter
    - copy_from_slice
    - clone
    - Luma
    - iter_mut
    - get_mut
    - <$ident<T> as Pixel>::from_slice
    - apply2
    - zip
    - from_color
    - LumaA
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - sample
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 436
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 436
    functionName: T::from_primitive
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from_primitive(sample: T) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f32::max
      Src: /src/image/src/color.rs:449,1
    - Dst: round
      Src: /src/image/src/color.rs:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - float
    - max
    argTypes:
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 451
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 451
    functionName: normalize_float
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - round
    - f32::max
    linkageType: ''
    returnType: f32
    signature: 'fn normalize_float(float: f32, max: f32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NumCast::from
      Src: /src/image/src/color.rs:478,1
    - Dst: from
      Src: /src/image/src/color.rs:478,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - c16
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 479
      start: 468
    functionDepth: 3
    functionLinenumber: 468
    functionLinenumberEnd: 479
    functionName: u8::from_primitive
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - from
    - NumCast::from
    - Self::unwrap
    linkageType: ''
    returnType: Self
    signature: 'fn from_primitive(c16: u16) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::to_u64
      Src: /src/image/src/color.rs:498,1
    - Dst: Option::unwrap
      Src: /src/image/src/color.rs:498,1
    - Dst: NumCast::from
      Src: /src/image/src/color.rs:499,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - c8
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 500
      start: 497
    functionDepth: 3
    functionLinenumber: 497
    functionLinenumberEnd: 500
    functionName: u16::from_primitive
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - NumCast::from
    - u8::to_u64
    - Self::unwrap
    linkageType: ''
    returnType: Self
    signature: 'fn from_primitive(c8: u8) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::into
      Src: /src/image/src/color.rs:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - impl Into<u32>
    constantsTouched: []
    func_position:
      end: 471
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 471
    functionName: u::8::::::::f::r::o::m::_::p::r::i::m::i::t::i::v::e::from
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Option::into
    linkageType: ''
    returnType: u32
    signature: 'fn from(c: impl Into<u32>) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clamp
      Src: /src/image/src/color.rs:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - int
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: f32::from_primitive
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - clamp
    linkageType: ''
    returnType: Self
    signature: 'fn from_primitive(int: u8) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: O::from_channels
      Src: /src/image/src/color.rs:528,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:528,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:528,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:528,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:528,1
    - Dst: from_color
      Src: /src/image/src/color.rs:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 531
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 531
    functionName: S::into_color
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Zero::zero
    - O::from_channels
    - from_color
    linkageType: ''
    returnType: O
    signature: fn into_color(&self) -> O
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: <T::Larger as NumCast>::from
      Src: /src/image/src/color.rs:540,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:540,1
    - Dst: to_larger
      Src: /src/image/src/color.rs:540,1
    - Dst: <T::Larger as NumCast>::from
      Src: /src/image/src/color.rs:541,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:541,1
    - Dst: to_larger
      Src: /src/image/src/color.rs:541,1
    - Dst: <T::Larger as NumCast>::from
      Src: /src/image/src/color.rs:542,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:542,1
    - Dst: to_larger
      Src: /src/image/src/color.rs:542,1
    - Dst: T::clamp_from
      Src: /src/image/src/color.rs:543,1
    - Dst: <T::Larger as NumCast>::from
      Src: /src/image/src/color.rs:543,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 1
    argNames:
    - rgb
    argTypes:
    - '&[T]'
    constantsTouched: []
    func_position:
      end: 544
      start: 539
    functionDepth: 3
    functionLinenumber: 539
    functionLinenumberEnd: 544
    functionName: rgb_to_luma
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - to_larger
    - T::clamp_from
    - Self::unwrap
    - <T::Larger as NumCast>::from
    linkageType: ''
    returnType: T
    signature: 'fn rgb_to_luma<T: Primitive + Enlargeable>(rgb: &[T]) -> T'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Luma::channels_mut
      Src: /src/image/src/color.rs:583,1
    - Dst: '&Rgba<S>::channels'
      Src: /src/image/src/color.rs:584,1
    - Dst: rgb_to_luma
      Src: /src/image/src/color.rs:585,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Rgba<S>'
    constantsTouched: []
    func_position:
      end: 587
      start: 582
    functionDepth: 4
    functionLinenumber: 582
    functionLinenumberEnd: 587
    functionName: Luma::from_color
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - T::from_primitive
    - Luma::channels_mut
    - '&Rgba<S>::channels'
    - rgb_to_luma
    linkageType: ''
    returnType: void
    signature: 'fn from_color(&mut self, other: &Rgba<S>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LumaA::channels_mut
      Src: /src/image/src/color.rs:633,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:634,1
    - Dst: '&Luma<S>::channels'
      Src: /src/image/src/color.rs:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Luma<S>'
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: LumaA::from_color
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - T::from_primitive
    - '&Luma<S>::channels'
    - LumaA::channels_mut
    linkageType: ''
    returnType: void
    signature: 'fn from_color(&mut self, other: &Luma<S>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:690,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:691,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - gray
    argTypes:
    - '&Luma<S>'
    constantsTouched: []
    func_position:
      end: 694
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 694
    functionName: Rgba::from_color
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - T::from_primitive
    linkageType: ''
    returnType: void
    signature: 'fn from_color(&mut self, gray: &Luma<S>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:745,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:746,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Luma<S>'
    constantsTouched: []
    func_position:
      end: 748
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 748
    functionName: Rgb::from_color
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - T::from_primitive
    linkageType: ''
    returnType: void
    signature: 'fn from_color(&mut self, other: &Luma<S>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_f32
      Src: /src/image/src/color.rs:760,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:760,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:765,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:765,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:766,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:766,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:769,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:769,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:770,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:770,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:783,1
    - Dst: NumCast::from
      Src: /src/image/src/color.rs:784,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:784,1
    - Dst: NumCast::from
      Src: /src/image/src/color.rs:785,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 64
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&LumaA<T>'
    constantsTouched: []
    func_position:
      end: 787
      start: 758
    functionDepth: 3
    functionLinenumber: 758
    functionLinenumberEnd: 787
    functionName: LumaA::blend
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - NumCast::from
    - unwrap
    - Self::unwrap
    - to_f32
    - LumaA
    linkageType: ''
    returnType: void
    signature: 'fn blend(&mut self, other: &LumaA<T>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Luma<T>'
    constantsTouched: []
    func_position:
      end: 793
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 793
    functionName: Luma::blend
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn blend(&mut self, other: &Luma<T>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/image/src/color.rs:800,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:810,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:810,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:814,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:814,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:815,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:815,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:816,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:816,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:817,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:817,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:820,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:820,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:821,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:821,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:822,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:822,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:823,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:823,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:851,1
    - Dst: NumCast::from
      Src: /src/image/src/color.rs:852,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:852,1
    - Dst: NumCast::from
      Src: /src/image/src/color.rs:853,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:853,1
    - Dst: NumCast::from
      Src: /src/image/src/color.rs:854,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:854,1
    - Dst: NumCast::from
      Src: /src/image/src/color.rs:855,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:855,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 137
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Rgba<T>'
    constantsTouched: []
    func_position:
      end: 857
      start: 797
    functionDepth: 3
    functionLinenumber: 797
    functionLinenumberEnd: 857
    functionName: Rgba::blend
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - is_zero
    - NumCast::from
    - unwrap
    - Self::unwrap
    - to_f32
    linkageType: ''
    returnType: void
    signature: 'fn blend(&mut self, other: &Rgba<T>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Rgb<T>'
    constantsTouched: []
    func_position:
      end: 863
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 863
    functionName: Rgb::blend
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn blend(&mut self, other: &Rgb<T>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LumaA
      Src: /src/image/src/color.rs:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 878
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 878
    functionName: LumaA::invert
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - LumaA
    linkageType: ''
    returnType: void
    signature: fn invert(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Luma
      Src: /src/image/src/color.rs:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 889
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 889
    functionName: Luma::invert
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Luma
    linkageType: ''
    returnType: void
    signature: fn invert(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgba
      Src: /src/image/src/color.rs:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 899
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 899
    functionName: Rgba::invert
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgba
    linkageType: ''
    returnType: void
    signature: fn invert(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgb
      Src: /src/image/src/color.rs:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 913
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 913
    functionName: Rgb::invert
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgb
    linkageType: ''
    returnType: void
    signature: fn invert(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgba
      Src: /src/image/src/color.rs:922,1
    - Dst: apply_with_alpha
      Src: /src/image/src/color.rs:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 925
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 925
    functionName: tests::test_apply_with_alpha_rgba
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - apply_with_alpha
    - Rgba
    linkageType: ''
    returnType: void
    signature: fn test_apply_with_alpha_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgb
      Src: /src/image/src/color.rs:929,1
    - Dst: apply_with_alpha
      Src: /src/image/src/color.rs:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 932
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 932
    functionName: tests::test_apply_with_alpha_rgb
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgb
    - apply_with_alpha
    linkageType: ''
    returnType: void
    signature: fn test_apply_with_alpha_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgba
      Src: /src/image/src/color.rs:936,1
    - Dst: map_with_alpha
      Src: /src/image/src/color.rs:936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 938
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 938
    functionName: tests::test_map_with_alpha_rgba
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - map_with_alpha
    linkageType: ''
    returnType: void
    signature: fn test_map_with_alpha_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgb
      Src: /src/image/src/color.rs:942,1
    - Dst: map_with_alpha
      Src: /src/image/src/color.rs:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 944
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 944
    functionName: tests::test_map_with_alpha_rgb
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgb
    - map_with_alpha
    linkageType: ''
    returnType: void
    signature: fn test_map_with_alpha_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: LumaA
      Src: /src/image/src/color.rs:948,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:949,1
    - Dst: blend
      Src: /src/image/src/color.rs:950,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:954,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:955,1
    - Dst: blend
      Src: /src/image/src/color.rs:956,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:960,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:961,1
    - Dst: blend
      Src: /src/image/src/color.rs:962,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:966,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:967,1
    - Dst: blend
      Src: /src/image/src/color.rs:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 971
      start: 947
    functionDepth: 4
    functionLinenumber: 947
    functionLinenumberEnd: 971
    functionName: tests::test_blend_luma_alpha
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - blend
    - LumaA
    linkageType: ''
    returnType: void
    signature: fn test_blend_luma_alpha()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgba
      Src: /src/image/src/color.rs:975,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:976,1
    - Dst: blend
      Src: /src/image/src/color.rs:977,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:980,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:981,1
    - Dst: blend
      Src: /src/image/src/color.rs:982,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:985,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:986,1
    - Dst: blend
      Src: /src/image/src/color.rs:987,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:990,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:991,1
    - Dst: blend
      Src: /src/image/src/color.rs:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 994
      start: 974
    functionDepth: 4
    functionLinenumber: 974
    functionLinenumberEnd: 994
    functionName: tests::test_blend_rgba
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - blend
    linkageType: ''
    returnType: void
    signature: fn test_blend_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgba
      Src: /src/image/src/color.rs:998,1
    - Dst: apply_without_alpha
      Src: /src/image/src/color.rs:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1001
    functionName: tests::test_apply_without_alpha_rgba
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - apply_without_alpha
    linkageType: ''
    returnType: void
    signature: fn test_apply_without_alpha_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgb
      Src: /src/image/src/color.rs:1005,1
    - Dst: apply_without_alpha
      Src: /src/image/src/color.rs:1006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 1004
    functionDepth: 1
    functionLinenumber: 1004
    functionLinenumberEnd: 1008
    functionName: tests::test_apply_without_alpha_rgb
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgb
    - apply_without_alpha
    linkageType: ''
    returnType: void
    signature: fn test_apply_without_alpha_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgba
      Src: /src/image/src/color.rs:1012,1
    - Dst: map_without_alpha
      Src: /src/image/src/color.rs:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1014
    functionName: tests::test_map_without_alpha_rgba
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - map_without_alpha
    linkageType: ''
    returnType: void
    signature: fn test_map_without_alpha_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgb
      Src: /src/image/src/color.rs:1018,1
    - Dst: map_without_alpha
      Src: /src/image/src/color.rs:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1020
    functionName: tests::test_map_without_alpha_rgb
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgb
    - map_without_alpha
    linkageType: ''
    returnType: void
    signature: fn test_map_without_alpha_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1042
    functionName: tests::test_lossless_conversions
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_lossless_conversions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgb::from
      Src: /src/image/src/color.rs:1047,1
    - Dst: u8::to_luma
      Src: /src/image/src/color.rs:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1045
    functionDepth: 3
    functionLinenumber: 1045
    functionLinenumberEnd: 1050
    functionName: tests::accuracy_conversion
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgb::from
    - u8::to_luma
    linkageType: ''
    returnType: void
    signature: fn accuracy_conversion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Result::len
      Src: /src/image/src/io.rs:35,1
    - Dst: io::Result::try_reserve
      Src: /src/image/src/io.rs:36,1
    - Dst: R::take
      Src: /src/image/src/io.rs:37,1
    - Dst: read_to_end
      Src: /src/image/src/io.rs:37,1
    - Dst: Ok
      Src: /src/image/src/io.rs:38,1
    - Dst: io::Result::truncate
      Src: /src/image/src/io.rs:40,1
    - Dst: Err
      Src: /src/image/src/io.rs:41,1
    - Dst: err
      Src: /src/image/src/io.rs:41,1
    - Dst: unwrap_or
      Src: /src/image/src/io.rs:41,1
    - Dst: into
      Src: /src/image/src/io.rs:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - vec
    - len
    argTypes:
    - '&mut Vec<u8>'
    - usize
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: R::read_exact_vec
    functionSourceFile: /src/image/src/io.rs
    functionUses: 0
    functionsReached:
    - R::take
    - io::Result::len
    - read_to_end
    - Err
    - err
    - into
    - unwrap_or
    - io::Result::truncate
    - io::Result::try_reserve
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn read_exact_vec(&mut self, vec: &mut Vec<u8>, len: usize) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - format
    - kind
    argTypes:
    - ImageFormatHint
    - UnsupportedErrorKind
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: UnsupportedError::from_format_and_kind
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_format_and_kind(format: ImageFormatHint, kind: UnsupportedErrorKind)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/error.rs:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: UnsupportedError::kind
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: UnsupportedErrorKind
    signature: pub fn kind(&self) -> UnsupportedErrorKind
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/error.rs:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: UnsupportedError::format_hint
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: ImageFormatHint
    signature: pub fn format_hint(&self) -> ImageFormatHint
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/error.rs:221,1
    - Dst: ImageError::into
      Src: /src/image/src/error.rs:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - format
    - err
    argTypes:
    - ImageFormatHint
    - impl Into<Box<dyn Error + Send + Sync>>
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: DecodingError::new
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - Some
    - ImageError::into
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(format: ImageFormatHint, err: impl Into<Box<dyn Error +
      Send + Sync>>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - format
    argTypes:
    - ImageFormatHint
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: DecodingError::from_format_hint
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_format_hint(format: ImageFormatHint) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/error.rs:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: DecodingError::format_hint
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: ImageFormatHint
    signature: pub fn format_hint(&self) -> ImageFormatHint
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/error.rs:248,1
    - Dst: ImageError::into
      Src: /src/image/src/error.rs:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - format
    - err
    argTypes:
    - ImageFormatHint
    - impl Into<Box<dyn Error + Send + Sync>>
    constantsTouched: []
    func_position:
      end: 250
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 250
    functionName: EncodingError::new
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - Some
    - ImageError::into
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(format: ImageFormatHint, err: impl Into<Box<dyn Error +
      Send + Sync>>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - format
    argTypes:
    - ImageFormatHint
    constantsTouched: []
    func_position:
      end: 261
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 261
    functionName: EncodingError::from_format_hint
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_format_hint(format: ImageFormatHint) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/error.rs:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: EncodingError::format_hint
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: ImageFormatHint
    signature: pub fn format_hint(&self) -> ImageFormatHint
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kind
    argTypes:
    - ParameterErrorKind
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: ParameterError::from_kind
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_kind(kind: ParameterErrorKind) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/error.rs:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: ParameterError::kind
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: ParameterErrorKind
    signature: pub fn kind(&self) -> ParameterErrorKind
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kind
    argTypes:
    - LimitErrorKind
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: LimitError::from_kind
    functionSourceFile: /src/image/src/error.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_kind(kind: LimitErrorKind) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/error.rs:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: LimitError::kind
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: LimitErrorKind
    signature: pub fn kind(&self) -> LimitErrorKind
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kind
    argTypes:
    - LimitErrorKind
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: LimitError::from
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(kind: LimitErrorKind) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Parameter
      Src: /src/image/src/images/flat.rs:1489,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/images/flat.rs:1489,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/images/flat.rs:1492,1
    - Dst: DecodingError::new
      Src: /src/image/src/images/flat.rs:1492,1
    - Dst: NormalFormRequiredError
      Src: /src/image/src/images/flat.rs:1494,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/images/flat.rs:1496,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/images/flat.rs:1497,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/images/flat.rs:1500,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/images/flat.rs:1500,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/images/flat.rs:1502,1
    - Dst: bool::into
      Src: /src/image/src/images/flat.rs:1502,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - error
    argTypes:
    - Error
    constantsTouched: []
    func_position:
      end: 1506
      start: 1478
    functionDepth: 2
    functionLinenumber: 1478
    functionLinenumberEnd: 1506
    functionName: ImageError::from
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - ParameterError::from_kind
    - DecodingError::new
    - UnsupportedError::from_format_and_kind
    - ImageError::Decoding
    - NormalFormRequiredError
    - ImageError::Unsupported
    - bool::into
    - UnsupportedErrorKind::Color
    - ImageError::Parameter
    linkageType: ''
    returnType: ImageError
    signature: 'fn from(error: Error) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::extension
      Src: /src/image/src/error.rs:327,1
    - Dst: ImageFormatHint::PathExtension
      Src: /src/image/src/error.rs:328,1
    - Dst: Option::into
      Src: /src/image/src/error.rs:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&''_ std::path::Path'
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 331
    functionName: ImageFormatHint::from
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - ImageResult::extension
    - ImageFormatHint::PathExtension
    - Option::into
    linkageType: ''
    returnType: Self
    signature: 'fn from(path: &''_ std::path::Path) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageFormatHint::clone
      Src: /src/image/src/error.rs:337,1
    - Dst: UnsupportedErrorKind::Format
      Src: /src/image/src/error.rs:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hint
    argTypes:
    - ImageFormatHint
    constantsTouched: []
    func_position:
      end: 340
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 340
    functionName: UnsupportedError::from
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - ImageFormatHint::clone
    - UnsupportedErrorKind::Format
    linkageType: ''
    returnType: Self
    signature: 'fn from(hint: ImageFormatHint) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::fmt
      Src: /src/image/src/error.rs:349,1
    - Dst: ImageError::fmt
      Src: /src/image/src/error.rs:350,1
    - Dst: ImageError::fmt
      Src: /src/image/src/error.rs:351,1
    - Dst: ImageError::fmt
      Src: /src/image/src/error.rs:352,1
    - Dst: ImageError::fmt
      Src: /src/image/src/error.rs:353,1
    - Dst: ImageError::fmt
      Src: /src/image/src/error.rs:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 356
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 356
    functionName: ImageError::fmt
    functionSourceFile: /src/image/src/error.rs
    functionUses: 1
    functionsReached:
    - ImageError::fmt
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, fmt: &mut fmt::Formatter) -> Result<(), fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::source
      Src: /src/image/src/error.rs:362,1
    - Dst: ImageError::source
      Src: /src/image/src/error.rs:363,1
    - Dst: ImageError::source
      Src: /src/image/src/error.rs:364,1
    - Dst: ImageError::source
      Src: /src/image/src/error.rs:365,1
    - Dst: ImageError::source
      Src: /src/image/src/error.rs:366,1
    - Dst: ImageError::source
      Src: /src/image/src/error.rs:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 369
    functionName: ImageError::source
    functionSourceFile: /src/image/src/error.rs
    functionUses: 1
    functionsReached:
    - ImageError::source
    linkageType: ''
    returnType: Option
    signature: fn source(&self) -> Option<&(dyn Error + 'static)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 401
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 401
    functionName: UnsupportedError::fmt
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, fmt: &mut fmt::Formatter) -> Result<(), fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/error.rs:428,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 429
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 429
    functionName: ParameterError::fmt
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, fmt: &mut fmt::Formatter) -> Result<(), fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/error.rs:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 438
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 438
    functionName: ParameterError::source
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn source(&self) -> Option<&(dyn Error + 'static)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 451
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 451
    functionName: EncodingError::fmt
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, fmt: &mut fmt::Formatter) -> Result<(), fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/error.rs:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 460
    functionName: EncodingError::source
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn source(&self) -> Option<&(dyn Error + 'static)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 474
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 474
    functionName: DecodingError::fmt
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, fmt: &mut fmt::Formatter) -> Result<(), fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/error.rs:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 483
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 483
    functionName: DecodingError::source
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn source(&self) -> Option<&(dyn Error + 'static)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/error.rs:493,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 496
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 496
    functionName: LimitError::fmt
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, fmt: &mut fmt::Formatter) -> Result<(), fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 509
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 509
    functionName: ImageFormatHint::fmt
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, fmt: &mut fmt::Formatter) -> Result<(), fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 523
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 523
    functionName: t::e::s::t::s::::::::t::e::s::t::_::s::e::n::d::_::s::y::n::c::_::s::t::a::b::i::l::i::t::y::assert_send_sync
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn assert_send_sync<T: Send + Sync>()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert_send_sync::<ImageError>
      Src: /src/image/src/error.rs:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 526
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 526
    functionName: tests::test_send_sync_stability
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - assert_send_sync::<ImageError>
    linkageType: ''
    returnType: void
    signature: fn test_send_sync_stability()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 316
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 316
    functionName: insert_as_doc
    functionSourceFile: /src/image/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - iterator
    argTypes:
    - Box<dyn Iterator<Item = ImageResult<Frame>> + 'a>
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: Frames::new
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(iterator: Box<dyn Iterator<Item = ImageResult<Frame>> +
      ''a>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Frames::collect
      Src: /src/image/src/animation.rs:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Frames::collect_frames
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 1
    functionsReached:
    - Frames::collect
    linkageType: ''
    returnType: ImageResult
    signature: pub fn collect_frames(self) -> ImageResult<Vec<Frame>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/image/src/animation.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: Frames::next
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<ImageResult<Frame>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/animation.rs:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: Frame::clone
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone_from
      Src: /src/image/src/animation.rs:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - source
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: Frame::clone_from
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - clone_from
    linkageType: ''
    returnType: void
    signature: 'fn clone_from(&mut self, source: &Self)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Delay::from_ratio
      Src: /src/image/src/animation.rs:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - RgbaImage
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 82
    functionName: Frame::new
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Delay::from_ratio
    linkageType: ''
    returnType: Frame
    signature: 'pub fn new(buffer: RgbaImage) -> Frame'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - buffer
    - left
    - top
    - delay
    argTypes:
    - RgbaImage
    - u32
    - u32
    - Delay
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: Frame::from_parts
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Frame
    signature: 'pub fn from_parts(buffer: RgbaImage, left: u32, top: u32, delay: Delay)
      -> Frame'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: Frame::delay
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Delay
    signature: pub fn delay(&self) -> Delay
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: Frame::buffer
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&RgbaImage'
    signature: pub fn buffer(&self) -> &RgbaImage
  - 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: Frame::buffer_mut
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut RgbaImage'
    signature: pub fn buffer_mut(&mut self) -> &mut RgbaImage
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: Frame::into_buffer
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RgbaImage
    signature: pub fn into_buffer(self) -> RgbaImage
  - 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: Frame::left
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn left(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: Frame::top
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn top(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ratio::new
      Src: /src/image/src/animation.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: Delay::from_numer_denom_ms
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Ratio::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_numer_denom_ms(numerator: u32, denominator: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::as_millis
      Src: /src/image/src/animation.rs:173,1
    - Dst: min
      Src: /src/image/src/animation.rs:173,1
    - Dst: Self::as_nanos
      Src: /src/image/src/animation.rs:174,1
    - Dst: Self::closest_bounded_fraction
      Src: /src/image/src/animation.rs:183,1
    - Dst: Self::from_numer_denom_ms
      Src: /src/image/src/animation.rs:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - duration
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 185
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 185
    functionName: Delay::from_saturating_duration
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Self::as_millis
    - Self::as_nanos
    - Self::from_numer_denom_ms
    - Self::closest_bounded_fraction
    - min
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_saturating_duration(duration: Duration) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: Delay::numer_denom_ms
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32)
    signature: pub fn numer_denom_ms(self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ratio
    argTypes:
    - Ratio
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: Delay::from_ratio
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn from_ratio(ratio: Ratio) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: Delay::into_ratio
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ratio
    signature: pub(crate) fn into_ratio(self) -> Ratio
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/image/src/animation.rs:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames: []
    argTypes:
    - (u64, u64)
    - (u64, u64)
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: D::e::l::a::y::::::::c::l::o::s::e::s::t::_::b::o::u::n::d::e::d::_::f::r::a::c::t::i::o::n::compare_fraction
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - cmp
    linkageType: ''
    returnType: Ordering
    signature: 'fn compare_fraction((an, ad): (u64, u64), (bn, bd): (u64, u64)) ->
      Ordering'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/image/src/animation.rs:228,1
    - Dst: min
      Src: /src/image/src/animation.rs:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames: []
    argTypes:
    - (u64, u64)
    - (u64, u64)
    constantsTouched: []
    func_position:
      end: 231
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 231
    functionName: D::e::l::a::y::::::::c::l::o::s::e::s::t::_::b::o::u::n::d::e::d::_::f::r::a::c::t::i::o::n::abs_diff_nom
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - max
    - min
    linkageType: ''
    returnType: u64
    signature: 'fn abs_diff_nom((an, ad): (u64, u64), (bn, bd): (u64, u64)) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/image/src/animation.rs:233,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:233,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:239,1
    - Dst: compare_fraction
      Src: /src/image/src/animation.rs:245,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:250,1
    - Dst: compare_fraction
      Src: /src/image/src/animation.rs:257,1
    - Dst: abs_diff_nom
      Src: /src/image/src/animation.rs:268,1
    - Dst: abs_diff_nom
      Src: /src/image/src/animation.rs:270,1
    - Dst: cmp
      Src: /src/image/src/animation.rs:275,1
    - Dst: compare_fraction
      Src: /src/image/src/animation.rs:283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 89
    argCount: 3
    argNames:
    - denom_bound
    - nom
    - denom
    argTypes:
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 294
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 294
    functionName: Delay::closest_bounded_fraction
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - cmp
    - compare_fraction
    - u64::from
    - abs_diff_nom
    linkageType: ''
    returnType: (u32, u32)
    signature: 'fn closest_bounded_fraction(denom_bound: u32, nom: u32, denom: u32)
      -> (u32, u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Delay::into_ratio
      Src: /src/image/src/animation.rs:299,1
    - Dst: Self::to_integer
      Src: /src/image/src/animation.rs:300,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:302,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:302,1
    - Dst: Duration::from_millis
      Src: /src/image/src/animation.rs:303,1
    - Dst: Self::into
      Src: /src/image/src/animation.rs:303,1
    - Dst: Duration::from_nanos
      Src: /src/image/src/animation.rs:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - delay
    argTypes:
    - Delay
    constantsTouched: []
    func_position:
      end: 304
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 304
    functionName: Duration::from
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Duration::from_nanos
    - Self::to_integer
    - Delay::into_ratio
    - Self::into
    - u64::from
    - Duration::from_millis
    linkageType: ''
    returnType: Self
    signature: 'fn from(delay: Delay) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 321
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: Ratio::new
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn new(numerator: u32, denominator: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 326
    functionName: Ratio::to_integer
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub(crate) fn to_integer(self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ratio::cmp
      Src: /src/image/src/animation.rs:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: Ratio::eq
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Ratio::cmp
    linkageType: ''
    returnType: bool
    signature: 'fn eq(&self, other: &Self) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/animation.rs:339,1
    - Dst: Ratio::cmp
      Src: /src/image/src/animation.rs:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: Ratio::partial_cmp
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Some
    - Ratio::cmp
    linkageType: ''
    returnType: Option
    signature: 'fn partial_cmp(&self, other: &Self) -> Option<Ordering>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/image/src/animation.rs:360,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:360,1
    - Dst: cmp
      Src: /src/image/src/animation.rs:360,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:360,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 361
      start: 344
    functionDepth: 3
    functionLinenumber: 344
    functionLinenumberEnd: 361
    functionName: Ratio::cmp
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 2
    functionsReached:
    - cmp
    - u64::from
    linkageType: ''
    returnType: Ordering
    signature: 'fn cmp(&self, other: &Self) -> Ordering'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Delay::from_numer_denom_ms
      Src: /src/image/src/animation.rs:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: tests::simple
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Delay::from_numer_denom_ms
    linkageType: ''
    returnType: void
    signature: fn simple()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Delay::from_numer_denom_ms
      Src: /src/image/src/animation.rs:376,1
    - Dst: Duration::from
      Src: /src/image/src/animation.rs:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 375
    functionDepth: 4
    functionLinenumber: 375
    functionLinenumberEnd: 381
    functionName: tests::fps_30
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Delay::from_numer_denom_ms
    - Duration::from
    linkageType: ''
    returnType: void
    signature: fn fps_30()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Duration::from_secs
      Src: /src/image/src/animation.rs:385,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 6
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: tests::duration_outlier
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Delay::from_saturating_duration
    - Duration::from_secs
    linkageType: ''
    returnType: void
    signature: fn duration_outlier()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Duration::from_millis
      Src: /src/image/src/animation.rs:392,1
    - Dst: Duration::from_micros
      Src: /src/image/src/animation.rs:392,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:393,1
    - Dst: Duration::from_millis
      Src: /src/image/src/animation.rs:396,1
    - Dst: Duration::from_micros
      Src: /src/image/src/animation.rs:396,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:397,1
    - Dst: Duration::from_millis
      Src: /src/image/src/animation.rs:401,1
    - Dst: Duration::from_micros
      Src: /src/image/src/animation.rs:401,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 405
      start: 391
    functionDepth: 6
    functionLinenumber: 391
    functionLinenumberEnd: 405
    functionName: tests::duration_approx
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Duration::from_millis
    - Delay::from_saturating_duration
    - Duration::from_micros
    linkageType: ''
    returnType: void
    signature: fn duration_approx()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Duration::from_secs
      Src: /src/image/src/animation.rs:411,1
    - Dst: Duration::from_nanos
      Src: /src/image/src/animation.rs:411,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 414
      start: 408
    functionDepth: 6
    functionLinenumber: 408
    functionLinenumberEnd: 414
    functionName: tests::precise
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Duration::from_nanos
    - Delay::from_saturating_duration
    - Duration::from_secs
    linkageType: ''
    returnType: void
    signature: fn precise()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Delay::from_numer_denom_ms
      Src: /src/image/src/animation.rs:419,1
    - Dst: Duration::from
      Src: /src/image/src/animation.rs:420,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 425
      start: 417
    functionDepth: 6
    functionLinenumber: 417
    functionLinenumberEnd: 425
    functionName: tests::small
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Delay::from_saturating_duration
    - Delay::from_numer_denom_ms
    - Duration::from
    linkageType: ''
    returnType: void
    signature: fn small()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::default
      Src: /src/image/src/io/image_reader_type.rs:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffered_reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: ImageReader::new
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 1
    functionsReached:
    - Limits::default
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(buffered_reader: R) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/io/image_reader_type.rs:95,1
    - Dst: Limits::default
      Src: /src/image/src/io/image_reader_type.rs:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buffered_reader
    - format
    argTypes:
    - R
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: ImageReader::with_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Some
    - Limits::default
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_format(buffered_reader: R, format: ImageFormat) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: ImageReader::format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: pub fn format(&self) -> Option<ImageFormat>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/io/image_reader_type.rs:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - format
    argTypes:
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: ImageReader::set_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub fn set_format(&mut self, format: ImageFormat)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: ImageReader::clear_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn clear_format(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::no_limits
      Src: /src/image/src/io/image_reader_type.rs:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: ImageReader::no_limits
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Limits::no_limits
    linkageType: ''
    returnType: void
    signature: pub fn no_limits(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - limits
    argTypes:
    - Limits
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: ImageReader::limits
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn limits(&mut self, limits: Limits)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: ImageReader::into_inner
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: R
    signature: pub fn into_inner(self) -> R
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:148,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:150,1
    - Dst: avif::AvifDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:150,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:152,1
    - Dst: png::PngDecoder::with_limits
      Src: /src/image/src/io/image_reader_type.rs:152,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:154,1
    - Dst: gif::GifDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:154,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:156,1
    - Dst: jpeg::JpegDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:156,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:158,1
    - Dst: webp::WebPDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:158,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:160,1
    - Dst: tiff::TiffDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:160,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:162,1
    - Dst: tga::TgaDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:162,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:164,1
    - Dst: dds::DdsDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:164,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:166,1
    - Dst: bmp::BmpDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:166,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:168,1
    - Dst: ico::IcoDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:168,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:170,1
    - Dst: hdr::HdrDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:170,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:172,1
    - Dst: openexr::OpenExrDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:172,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:174,1
    - Dst: pnm::PnmDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:174,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:176,1
    - Dst: farbfeld::FarbfeldDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:176,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:178,1
    - Dst: qoi::QoiDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:178,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:180,1
    - Dst: pcx::PCXDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:180,1
    - Dst: Err
      Src: /src/image/src/io/image_reader_type.rs:182,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/image_reader_type.rs:182,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/io/image_reader_type.rs:183,1
    - Dst: into
      Src: /src/image/src/io/image_reader_type.rs:183,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 3
    argNames:
    - format
    - reader
    - limits_for_png
    argTypes:
    - ImageFormat
    - R
    - Limits
    constantsTouched: []
    func_position:
      end: 187
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 187
    functionName: ImageReader::make_decoder
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - farbfeld::FarbfeldDecoder::new
    - tga::TgaDecoder::new
    - Ok
    - Err
    - bmp::BmpDecoder::new
    - tiff::TiffDecoder::new
    - hdr::HdrDecoder::new
    - pnm::PnmDecoder::new
    - ico::IcoDecoder::new
    - gif::GifDecoder::new
    - dds::DdsDecoder::new
    - Box::new
    - qoi::QoiDecoder::new
    - webp::WebPDecoder::new
    - avif::AvifDecoder::new
    - into
    - openexr::OpenExrDecoder::new
    - pcx::PCXDecoder::new
    - png::PngDecoder::with_limits
    - jpeg::JpegDecoder::new
    - ImageFormatHint::Exact
    - ImageError::Unsupported
    linkageType: ''
    returnType: ImageResult
    signature: 'fn make_decoder(format: ImageFormat,reader: R,limits_for_png: Limits,)
      -> ImageResult<Box<dyn ImageDecoder + ''a>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::make_decoder
      Src: /src/image/src/io/image_reader_type.rs:192,1
    - Dst: ImageReader::require_format
      Src: /src/image/src/io/image_reader_type.rs:192,1
    - Dst: clone
      Src: /src/image/src/io/image_reader_type.rs:192,1
    - Dst: ImageResult::set_limits
      Src: /src/image/src/io/image_reader_type.rs:193,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 3
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: ImageReader::into_decoder
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - ImageReader::require_format
    - clone
    - Self::make_decoder
    - ImageResult::set_limits
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: pub fn into_decoder(mut self) -> ImageResult<impl ImageDecoder + 'a>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReader::guess_format
      Src: /src/image/src/io/image_reader_type.rs:226,1
    - Dst: Self::or
      Src: /src/image/src/io/image_reader_type.rs:228,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 230
    functionName: ImageReader::with_guessed_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Self::or
    - ImageReader::guess_format
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: pub fn with_guessed_format(mut self) -> io::Result<Self>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stream_position
      Src: /src/image/src/io/image_reader_type.rs:236,1
    - Dst: io::copy
      Src: /src/image/src/io/image_reader_type.rs:237,1
    - Dst: by_ref
      Src: /src/image/src/io/image_reader_type.rs:239,1
    - Dst: take
      Src: /src/image/src/io/image_reader_type.rs:239,1
    - Dst: Cursor::new
      Src: /src/image/src/io/image_reader_type.rs:240,1
    - Dst: seek
      Src: /src/image/src/io/image_reader_type.rs:242,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/io/image_reader_type.rs:242,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:244,1
    - Dst: free_functions::guess_format_impl
      Src: /src/image/src/io/image_reader_type.rs:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 245
    functionName: ImageReader::guess_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 1
    functionsReached:
    - free_functions::guess_format_impl
    - seek
    - SeekFrom::Start
    - stream_position
    - io::copy
    - Ok
    - Cursor::new
    - take
    - by_ref
    linkageType: ''
    returnType: io::Result
    signature: fn guess_format(&mut self) -> io::Result<Option<ImageFormat>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReader::into_decoder
      Src: /src/image/src/io/image_reader_type.rs:253,1
    - Dst: ImageResult::map
      Src: /src/image/src/io/image_reader_type.rs:253,1
    - Dst: dimensions
      Src: /src/image/src/io/image_reader_type.rs:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: ImageReader::into_dimensions
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - dimensions
    - ImageReader::into_decoder
    - ImageResult::map
    linkageType: ''
    returnType: ImageResult
    signature: pub fn into_dimensions(self) -> ImageResult<(u32, u32)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReader::require_format
      Src: /src/image/src/io/image_reader_type.rs:262,1
    - Dst: Self::make_decoder
      Src: /src/image/src/io/image_reader_type.rs:265,1
    - Dst: Limits::clone
      Src: /src/image/src/io/image_reader_type.rs:265,1
    - Dst: Limits::reserve
      Src: /src/image/src/io/image_reader_type.rs:269,1
    - Dst: ImageResult::total_bytes
      Src: /src/image/src/io/image_reader_type.rs:269,1
    - Dst: ImageResult::set_limits
      Src: /src/image/src/io/image_reader_type.rs:270,1
    - Dst: DynamicImage::from_decoder
      Src: /src/image/src/io/image_reader_type.rs:272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 273
    functionName: ImageReader::decode
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Limits::reserve
    - ImageReader::require_format
    - Limits::clone
    - Self::make_decoder
    - ImageResult::total_bytes
    - ImageResult::set_limits
    - DynamicImage::from_decoder
    linkageType: ''
    returnType: ImageResult
    signature: pub fn decode(mut self) -> ImageResult<DynamicImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ok_or_else
      Src: /src/image/src/io/image_reader_type.rs:276,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/image_reader_type.rs:277,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/io/image_reader_type.rs:277,1
    - Dst: UnsupportedErrorKind::Format
      Src: /src/image/src/io/image_reader_type.rs:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 282
    functionName: ImageReader::require_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 2
    functionsReached:
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - UnsupportedErrorKind::Format
    - ok_or_else
    linkageType: ''
    returnType: ImageResult
    signature: fn require_format(&mut self) -> ImageResult<ImageFormat>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::open_impl
      Src: /src/image/src/io/image_reader_type.rs:298,1
    - Dst: ImageResult::as_ref
      Src: /src/image/src/io/image_reader_type.rs:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 299
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 299
    functionName: ImageReader::open
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 1
    functionsReached:
    - Self::open_impl
    - ImageResult::as_ref
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn open<P>(path: P) -> io::Result<Self>whereP: AsRef<Path>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:302,1
    - Dst: BufReader::new
      Src: /src/image/src/io/image_reader_type.rs:303,1
    - Dst: File::open
      Src: /src/image/src/io/image_reader_type.rs:303,1
    - Dst: ImageFormat::from_path
      Src: /src/image/src/io/image_reader_type.rs:304,1
    - Dst: ImageResult::ok
      Src: /src/image/src/io/image_reader_type.rs:304,1
    - Dst: Limits::default
      Src: /src/image/src/io/image_reader_type.rs:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&Path'
    constantsTouched: []
    func_position:
      end: 307
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 307
    functionName: ImageReader::open_impl
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - ImageFormat::from_path
    - File::open
    - ImageResult::ok
    - Limits::default
    - BufReader::new
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn open_impl(path: &Path) -> io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/io/encoder.rs:55,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/io/encoder.rs:55,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/io/encoder.rs:57,1
    - Dst: '&str::into'
      Src: /src/image/src/io/encoder.rs:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - icc_profile
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: ImageEncoder::set_icc_profile
    functionSourceFile: /src/image/src/io/encoder.rs
    functionUses: 0
    functionsReached:
    - UnsupportedError::from_format_and_kind
    - Err
    - '&str::into'
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: Result
    signature: 'fn set_icc_profile(&mut self, icc_profile: Vec<u8>) -> Result<(),
      UnsupportedError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 2
    argNames:
    - _input
    argTypes:
    - MethodSealedToImage
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: ImageEncoder::make_compatible_img
    functionSourceFile: /src/image/src/io/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: 'fn make_compatible_img(&self,_: MethodSealedToImage,_input: &DynamicImage,)
      -> Option<DynamicImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_image
      Src: /src/image/src/io/encoder.rs:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - buf
    - width
    - height
    - color
    argTypes:
    - Box<Self>
    - '&''_ [u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: T::write_image
    functionSourceFile: /src/image/src/io/encoder.rs
    functionUses: 0
    functionsReached:
    - write_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(self: Box<Self>,buf: &''_ [u8],width: u32,height: u32,color:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::color
      Src: /src/image/src/io/encoder.rs:105,1
    - Dst: Some
      Src: /src/image/src/io/encoder.rs:107,1
    - Dst: Option::to_luma8
      Src: /src/image/src/io/encoder.rs:107,1
    - Dst: GrayImage::into
      Src: /src/image/src/io/encoder.rs:107,1
    - Dst: Some
      Src: /src/image/src/io/encoder.rs:108,1
    - Dst: Option::to_luma_alpha8
      Src: /src/image/src/io/encoder.rs:108,1
    - Dst: GrayAlphaImage::into
      Src: /src/image/src/io/encoder.rs:108,1
    - Dst: Some
      Src: /src/image/src/io/encoder.rs:109,1
    - Dst: Option::to_rgb8
      Src: /src/image/src/io/encoder.rs:109,1
    - Dst: RgbImage::into
      Src: /src/image/src/io/encoder.rs:109,1
    - Dst: Some
      Src: /src/image/src/io/encoder.rs:110,1
    - Dst: Option::to_rgba8
      Src: /src/image/src/io/encoder.rs:110,1
    - Dst: Result::into
      Src: /src/image/src/io/encoder.rs:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - img
    argTypes:
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: dynimage_conversion_8bit
    functionSourceFile: /src/image/src/io/encoder.rs
    functionUses: 0
    functionsReached:
    - Option::to_luma8
    - Some
    - Option::to_rgb8
    - RgbImage::into
    - GrayAlphaImage::into
    - Option::to_luma_alpha8
    - Option::to_rgba8
    - Result::into
    - GrayImage::into
    - Option::color
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn dynimage_conversion_8bit(img: &DynamicImage) -> Option<DynamicImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/io/limits.rs:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: Limits::default
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 5
    functionsReached:
    - Some
    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: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: Limits::no_limits
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Limits
    signature: pub fn no_limits() -> Limits
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/io/limits.rs:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _supported
    argTypes:
    - '&LimitSupport'
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: Limits::check_support
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn check_support(&self, _supported: &LimitSupport) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/io/limits.rs:76,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/limits.rs:76,1
    - Dst: error::LimitError::from_kind
      Src: /src/image/src/io/limits.rs:76,1
    - Dst: Err
      Src: /src/image/src/io/limits.rs:84,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/limits.rs:84,1
    - Dst: error::LimitError::from_kind
      Src: /src/image/src/io/limits.rs:84,1
    - Dst: Ok
      Src: /src/image/src/io/limits.rs:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 91
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 91
    functionName: Limits::check_dimensions
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 0
    functionsReached:
    - Err
    - error::LimitError::from_kind
    - ImageError::Limits
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn check_dimensions(&self, width: u32, height: u32) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image/src/io/limits.rs:96,1
    - Dst: Err
      Src: /src/image/src/io/limits.rs:98,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/limits.rs:98,1
    - Dst: error::LimitError::from_kind
      Src: /src/image/src/io/limits.rs:98,1
    - Dst: Ok
      Src: /src/image/src/io/limits.rs:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - amount
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 107
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 107
    functionName: Limits::reserve
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 1
    functionsReached:
    - Err
    - error::LimitError::from_kind
    - ImageError::Limits
    - as_mut
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn reserve(&mut self, amount: u64) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::try_from
      Src: /src/image/src/io/limits.rs:113,1
    - Dst: Limits::reserve
      Src: /src/image/src/io/limits.rs:114,1
    - Dst: is_some
      Src: /src/image/src/io/limits.rs:115,1
    - Dst: Err
      Src: /src/image/src/io/limits.rs:115,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/limits.rs:115,1
    - Dst: error::LimitError::from_kind
      Src: /src/image/src/io/limits.rs:116,1
    - Dst: Ok
      Src: /src/image/src/io/limits.rs:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - amount
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: Limits::reserve_usize
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 0
    functionsReached:
    - Err
    - Limits::reserve
    - is_some
    - error::LimitError::from_kind
    - ImageError::Limits
    - Ok
    - u64::try_from
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn reserve_usize(&mut self, amount: usize) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_dimensions
      Src: /src/image/src/io/limits.rs:136,1
    - Dst: u64::from
      Src: /src/image/src/io/limits.rs:137,1
    - Dst: Self::saturating_mul
      Src: /src/image/src/io/limits.rs:137,1
    - Dst: u64::from
      Src: /src/image/src/io/limits.rs:138,1
    - Dst: T::saturating_mul
      Src: /src/image/src/io/limits.rs:137,1
    - Dst: ExtendedColorType::bytes_per_pixel
      Src: /src/image/src/io/limits.rs:139,1
    - Dst: u8::into
      Src: /src/image/src/io/limits.rs:139,1
    - Dst: Limits::reserve
      Src: /src/image/src/io/limits.rs:140,1
    - Dst: Ok
      Src: /src/image/src/io/limits.rs:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - width
    - height
    - color_type
    argTypes:
    - u32
    - u32
    - ColorType
    constantsTouched: []
    func_position:
      end: 142
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 142
    functionName: Limits::reserve_buffer
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 0
    functionsReached:
    - ExtendedColorType::bytes_per_pixel
    - Limits::reserve
    - Self::saturating_mul
    - Limits::check_dimensions
    - u8::into
    - u64::from
    - T::saturating_mul
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn reserve_buffer(&mut self,width: u32,height: u32,color_type:
      ColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image/src/io/limits.rs:149,1
    - Dst: saturating_add
      Src: /src/image/src/io/limits.rs:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - amount
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: Limits::free
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - saturating_add
    linkageType: ''
    returnType: void
    signature: 'pub fn free(&mut self, amount: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::try_from
      Src: /src/image/src/io/limits.rs:158,1
    - Dst: Limits::free
      Src: /src/image/src/io/limits.rs:159,1
    - Dst: is_some
      Src: /src/image/src/io/limits.rs:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - amount
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: Limits::free_usize
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 0
    functionsReached:
    - Limits::free
    - u64::try_from
    - is_some
    linkageType: ''
    returnType: void
    signature: 'pub fn free_usize(&mut self, amount: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageDecoder::color_type
      Src: /src/image/src/io/decoder.rs:16,1
    - Dst: ExtendedColorType::into
      Src: /src/image/src/io/decoder.rs:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: ImageDecoder::original_color_type
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - ExtendedColorType::into
    - ImageDecoder::color_type
    linkageType: ''
    returnType: ExtendedColorType
    signature: fn original_color_type(&self) -> ExtendedColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/io/decoder.rs:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: ImageDecoder::icc_profile
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/io/decoder.rs:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: ImageDecoder::exif_metadata
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn exif_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/io/decoder.rs:39,1
    - Dst: ImageDecoder::exif_metadata
      Src: /src/image/src/io/decoder.rs:39,1
    - Dst: and_then
      Src: /src/image/src/io/decoder.rs:39,1
    - Dst: Orientation::from_exif_chunk
      Src: /src/image/src/io/decoder.rs:41,1
    - Dst: unwrap_or
      Src: /src/image/src/io/decoder.rs:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: ImageDecoder::orientation
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - Orientation::from_exif_chunk
    - unwrap_or
    - ImageDecoder::exif_metadata
    - and_then
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn orientation(&mut self) -> ImageResult<Orientation>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageDecoder::dimensions
      Src: /src/image/src/io/decoder.rs:52,1
    - Dst: u64::from
      Src: /src/image/src/io/decoder.rs:53,1
    - Dst: u64::from
      Src: /src/image/src/io/decoder.rs:53,1
    - Dst: u64::from
      Src: /src/image/src/io/decoder.rs:54,1
    - Dst: ImageDecoder::color_type
      Src: /src/image/src/io/decoder.rs:54,1
    - Dst: ExtendedColorType::bytes_per_pixel
      Src: /src/image/src/io/decoder.rs:54,1
    - Dst: saturating_mul
      Src: /src/image/src/io/decoder.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: ImageDecoder::total_bytes
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - ExtendedColorType::bytes_per_pixel
    - ImageDecoder::dimensions
    - u64::from
    - ImageDecoder::color_type
    - saturating_mul
    linkageType: ''
    returnType: u64
    signature: fn total_bytes(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_support
      Src: /src/image/src/io/decoder.rs:98,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/io/decoder.rs:98,1
    - Dst: ImageDecoder::dimensions
      Src: /src/image/src/io/decoder.rs:99,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/io/decoder.rs:100,1
    - Dst: Ok
      Src: /src/image/src/io/decoder.rs:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - limits
    argTypes:
    - crate::Limits
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 5
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: ImageDecoder::set_limits
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - crate::LimitSupport::default
    - ImageDecoder::dimensions
    - Limits::check_dimensions
    - Limits::check_support
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: crate::Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dimensions
      Src: /src/image/src/io/decoder.rs:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 5
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: Box::dimensions
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - dimensions
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: color_type
      Src: /src/image/src/io/decoder.rs:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: Box::color_type
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - color_type
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: original_color_type
      Src: /src/image/src/io/decoder.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: Box::original_color_type
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - original_color_type
    linkageType: ''
    returnType: ExtendedColorType
    signature: fn original_color_type(&self) -> ExtendedColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: icc_profile
      Src: /src/image/src/io/decoder.rs:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Box::icc_profile
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - icc_profile
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exif_metadata
      Src: /src/image/src/io/decoder.rs:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: Box::exif_metadata
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - exif_metadata
    linkageType: ''
    returnType: ImageResult
    signature: fn exif_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: total_bytes
      Src: /src/image/src/io/decoder.rs:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 6
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: Box::total_bytes
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - total_bytes
    linkageType: ''
    returnType: u64
    signature: fn total_bytes(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::read_image_boxed
      Src: /src/image/src/io/decoder.rs:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: Box::read_image
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - T::read_image_boxed
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(self, buf: &mut [u8]) -> ImageResult<()>whereSelf: Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::read_image_boxed
      Src: /src/image/src/io/decoder.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: Box::read_image_boxed
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - T::read_image_boxed
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_limits
      Src: /src/image/src/io/decoder.rs:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - limits
    argTypes:
    - crate::Limits
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 6
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: Box::set_limits
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - set_limits
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: crate::Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::io::free_functions::decoder_to_vec
      Src: /src/image/src/io/decoder.rs:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 201
    functionName: tests::total_bytes_overflow
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - crate::io::free_functions::decoder_to_vec
    linkageType: ''
    returnType: void
    signature: fn total_bytes_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReader::new
      Src: /src/image/src/io/free_functions.rs:22,1
    - Dst: Result::set_format
      Src: /src/image/src/io/free_functions.rs:23,1
    - Dst: Result::decode
      Src: /src/image/src/io/free_functions.rs:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - r
    - format
    argTypes:
    - R
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 6
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: load
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 1
    functionsReached:
    - Result::set_format
    - ImageReader::new
    - Result::decode
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn load<R: BufRead + Seek>(r: R, format: ImageFormat) -> ImageResult<DynamicImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageFormat::from_path
      Src: /src/image/src/io/free_functions.rs:39,1
    - Dst: ImageResult::as_ref
      Src: /src/image/src/io/free_functions.rs:39,1
    - Dst: save_buffer_with_format
      Src: /src/image/src/io/free_functions.rs:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - path
    - buf
    - width
    - height
    - color
    argTypes:
    - impl AsRef<Path>
    - '&[u8]'
    - u32
    - u32
    - impl Into<ExtendedColorType>
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: save_buffer
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 0
    functionsReached:
    - ImageFormat::from_path
    - ImageResult::as_ref
    - save_buffer_with_format
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn save_buffer(path: impl AsRef<Path>,buf: &[u8],width: u32,height:
      u32,color: impl Into<ExtendedColorType>,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufWriter::new
      Src: /src/image/src/io/free_functions.rs:55,1
    - Dst: File::create
      Src: /src/image/src/io/free_functions.rs:55,1
    - Dst: encoder_for_format
      Src: /src/image/src/io/free_functions.rs:56,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/io/free_functions.rs:57,1
    - Dst: bool::into
      Src: /src/image/src/io/free_functions.rs:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - path
    - buf
    - width
    - height
    - color
    - format
    argTypes:
    - impl AsRef<Path>
    - '&[u8]'
    - u32
    - u32
    - impl Into<ExtendedColorType>
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: save_buffer_with_format
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 1
    functionsReached:
    - File::create
    - BufWriter::new
    - ImageResult::write_image
    - encoder_for_format
    - bool::into
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn save_buffer_with_format(path: impl AsRef<Path>,buf: &[u8],width:
      u32,height: u32,color: impl Into<ExtendedColorType>,format: ImageFormat,) ->
      ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:64,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:66,1
    - Dst: png::PngEncoder::new
      Src: /src/image/src/io/free_functions.rs:66,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:68,1
    - Dst: jpeg::JpegEncoder::new
      Src: /src/image/src/io/free_functions.rs:68,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:70,1
    - Dst: pnm::PnmEncoder::new
      Src: /src/image/src/io/free_functions.rs:70,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:72,1
    - Dst: gif::GifEncoder::new
      Src: /src/image/src/io/free_functions.rs:72,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:74,1
    - Dst: ico::IcoEncoder::new
      Src: /src/image/src/io/free_functions.rs:74,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:76,1
    - Dst: bmp::BmpEncoder::new
      Src: /src/image/src/io/free_functions.rs:76,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:78,1
    - Dst: farbfeld::FarbfeldEncoder::new
      Src: /src/image/src/io/free_functions.rs:78,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:80,1
    - Dst: tga::TgaEncoder::new
      Src: /src/image/src/io/free_functions.rs:80,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:82,1
    - Dst: openexr::OpenExrEncoder::new
      Src: /src/image/src/io/free_functions.rs:82,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:84,1
    - Dst: tiff::TiffEncoder::new
      Src: /src/image/src/io/free_functions.rs:84,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:86,1
    - Dst: avif::AvifEncoder::new
      Src: /src/image/src/io/free_functions.rs:86,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:88,1
    - Dst: qoi::QoiEncoder::new
      Src: /src/image/src/io/free_functions.rs:88,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:90,1
    - Dst: webp::WebPEncoder::new_lossless
      Src: /src/image/src/io/free_functions.rs:90,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:92,1
    - Dst: hdr::HdrEncoder::new
      Src: /src/image/src/io/free_functions.rs:92,1
    - Dst: Err
      Src: /src/image/src/io/free_functions.rs:94,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/free_functions.rs:94,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/io/free_functions.rs:95,1
    - Dst: UnsupportedErrorKind::Format
      Src: /src/image/src/io/free_functions.rs:97,1
    - Dst: ImageFormatHint::Name
      Src: /src/image/src/io/free_functions.rs:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 2
    argNames:
    - format
    - buffered_write
    argTypes:
    - ImageFormat
    - '&''a mut W'
    constantsTouched: []
    func_position:
      end: 102
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 102
    functionName: encoder_for_format
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 1
    functionsReached:
    - UnsupportedErrorKind::Format
    - gif::GifEncoder::new
    - Ok
    - qoi::QoiEncoder::new
    - Err
    - png::PngEncoder::new
    - ico::IcoEncoder::new
    - Box::new
    - tiff::TiffEncoder::new
    - bmp::BmpEncoder::new
    - hdr::HdrEncoder::new
    - ImageFormatHint::Name
    - farbfeld::FarbfeldEncoder::new
    - pnm::PnmEncoder::new
    - tga::TgaEncoder::new
    - webp::WebPEncoder::new_lossless
    - jpeg::JpegEncoder::new
    - avif::AvifEncoder::new
    - openexr::OpenExrEncoder::new
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn encoder_for_format<''a, W: Write + Seek>(format: ImageFormat,buffered_write:
      &''a mut W,) -> ImageResult<Box<dyn ImageEncoderBoxed + ''a>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: guess_format_impl
      Src: /src/image/src/io/free_functions.rs:140,1
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:141,1
    - Dst: Err
      Src: /src/image/src/io/free_functions.rs:142,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/free_functions.rs:142,1
    - Dst: into
      Src: /src/image/src/io/free_functions.rs:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: guess_format
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 1
    functionsReached:
    - Err
    - guess_format_impl
    - into
    - ImageError::Unsupported
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn guess_format(buffer: &[u8]) -> ImageResult<ImageFormat>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::is_empty
      Src: /src/image/src/io/free_functions.rs:148,1
    - Dst: '&RgbaImage::starts_with'
      Src: /src/image/src/io/free_functions.rs:149,1
    - Dst: Some
      Src: /src/image/src/io/free_functions.rs:150,1
    - Dst: '&RgbaImage::len'
      Src: /src/image/src/io/free_functions.rs:152,1
    - Dst: len
      Src: /src/image/src/io/free_functions.rs:152,1
    - Dst: '&RgbaImage::iter'
      Src: /src/image/src/io/free_functions.rs:153,1
    - Dst: zip
      Src: /src/image/src/io/free_functions.rs:153,1
    - Dst: std::iter
      Src: /src/image/src/io/free_functions.rs:155,1
    - Dst: zip
      Src: /src/image/src/io/free_functions.rs:153,1
    - Dst: ImageResult::iter
      Src: /src/image/src/io/free_functions.rs:156,1
    - Dst: chain
      Src: /src/image/src/io/free_functions.rs:156,1
    - Dst: iter::repeat
      Src: /src/image/src/io/free_functions.rs:156,1
    - Dst: all
      Src: /src/image/src/io/free_functions.rs:153,1
    - Dst: Some
      Src: /src/image/src/io/free_functions.rs:159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 164
      start: 146
    functionDepth: 7
    functionLinenumber: 146
    functionLinenumberEnd: 164
    functionName: guess_format_impl
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 2
    functionsReached:
    - ImageResult::iter
    - chain
    - all
    - Some
    - '&RgbaImage::iter'
    - iter::repeat
    - '&RgbaImage::starts_with'
    - len
    - '&RgbaImage::len'
    - std::iter
    - zip
    - ImageResult::is_empty
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn guess_format_impl(buffer: &[u8]) -> Option<ImageFormat>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::try_from
      Src: /src/image/src/io/free_functions.rs:188,1
    - Dst: unwrap
      Src: /src/image/src/io/free_functions.rs:188,1
    - Dst: u64::try_from
      Src: /src/image/src/io/free_functions.rs:189,1
    - Dst: unwrap
      Src: /src/image/src/io/free_functions.rs:189,1
    - Dst: u64::from
      Src: /src/image/src/io/free_functions.rs:192,1
    - Dst: u64::from
      Src: /src/image/src/io/free_functions.rs:193,1
    - Dst: u64::from
      Src: /src/image/src/io/free_functions.rs:194,1
    - Dst: u64::from
      Src: /src/image/src/io/free_functions.rs:195,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/io/free_functions.rs:197,1
    - Dst: u64::from
      Src: /src/image/src/io/free_functions.rs:198,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/io/free_functions.rs:198,1
    - Dst: ExtendedColorType::bytes_per_pixel
      Src: /src/image/src/io/free_functions.rs:198,1
    - Dst: u64::from
      Src: /src/image/src/io/free_functions.rs:199,1
    - Dst: Vec::new
      Src: /src/image/src/io/free_functions.rs:210,1
    - Dst: Some
      Src: /src/image/src/io/free_functions.rs:221,1
    - Dst: ImageResult::saturating_sub
      Src: /src/image/src/io/free_functions.rs:223,1
    - Dst: min
      Src: /src/image/src/io/free_functions.rs:224,1
    - Dst: min
      Src: /src/image/src/io/free_functions.rs:224,1
    - Dst: write_all
      Src: /src/image/src/io/free_functions.rs:228,1
    - Dst: unwrap
      Src: /src/image/src/io/free_functions.rs:228,1
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:234,1
    - Dst: seek_scanline
      Src: /src/image/src/io/free_functions.rs:240,1
    - Dst: read_scanline
      Src: /src/image/src/io/free_functions.rs:247,1
    - Dst: Self::resize
      Src: /src/image/src/io/free_functions.rs:250,1
    - Dst: read_scanline
      Src: /src/image/src/io/free_functions.rs:251,1
    - Dst: Some
      Src: /src/image/src/io/free_functions.rs:252,1
    - Dst: ImageResult::saturating_sub
      Src: /src/image/src/io/free_functions.rs:254,1
    - Dst: min
      Src: /src/image/src/io/free_functions.rs:255,1
    - Dst: min
      Src: /src/image/src/io/free_functions.rs:255,1
    - Dst: write_all
      Src: /src/image/src/io/free_functions.rs:259,1
    - Dst: unwrap
      Src: /src/image/src/io/free_functions.rs:259,1
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:267,1
    - Dst: u64::from
      Src: /src/image/src/io/free_functions.rs:270,1
    - Dst: u64::from
      Src: /src/image/src/io/free_functions.rs:271,1
    - Dst: Err
      Src: /src/image/src/io/free_functions.rs:275,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/io/free_functions.rs:275,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/io/free_functions.rs:275,1
    - Dst: Err
      Src: /src/image/src/io/free_functions.rs:280,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/free_functions.rs:280,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/io/free_functions.rs:280,1
    - Dst: u64::from
      Src: /src/image/src/io/free_functions.rs:285,1
    - Dst: read_image_range
      Src: /src/image/src/io/free_functions.rs:288,1
    - Dst: io::Result::chunks_mut
      Src: /src/image/src/io/free_functions.rs:290,1
    - Dst: zip
      Src: /src/image/src/io/free_functions.rs:290,1
    - Dst: read_image_range
      Src: /src/image/src/io/free_functions.rs:293,1
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:299,1
    - Dst: seek_scanline
      Src: /src/image/src/io/free_functions.rs:299,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 209
    argCount: 10
    argNames:
    - x
    - y
    - width
    - height
    - buf
    - row_pitch
    - decoder
    - scanline_bytes
    - seek_scanline
    - read_scanline
    argTypes:
    - u32
    - u32
    - u32
    - u32
    - '&mut [u8]'
    - usize
    - '&mut D'
    - usize
    - F1
    - F2
    constantsTouched: []
    func_position:
      end: 300
      start: 170
    functionDepth: 5
    functionLinenumber: 170
    functionLinenumberEnd: 300
    functionName: load_rect
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 0
    functionsReached:
    - ExtendedColorType::bytes_per_pixel
    - Self::resize
    - ImageResult::dimensions
    - Some
    - ParameterError::from_kind
    - ImageError::Limits
    - unwrap
    - u64::from
    - Ok
    - u64::try_from
    - ImageResult::color_type
    - Err
    - read_scanline
    - LimitError::from_kind
    - ImageResult::saturating_sub
    - Vec::new
    - write_all
    - io::Result::chunks_mut
    - read_image_range
    - seek_scanline
    - zip
    - ImageError::Parameter
    - min
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn load_rect<D, F1, F2, E>(x: u32,y: u32,width: u32,height:
      u32,buf: &mut [u8],row_pitch: usize,decoder: &mut D,scanline_bytes: usize,mut
      seek_scanline: F1,mut read_scanline: F2,) -> ImageResult<()>whereD: ImageDecoder,F1:
      FnMut(&mut D, u64) -> io::Result<()>,F2: FnMut(&mut D, &mut [u8]) -> Result<(),
      E>,ImageError: From<E>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::try_from
      Src: /src/image/src/io/free_functions.rs:310,1
    - Dst: ImageResult::total_bytes
      Src: /src/image/src/io/free_functions.rs:310,1
    - Dst: u64::is_err
      Src: /src/image/src/io/free_functions.rs:311,1
    - Dst: u64::unwrap
      Src: /src/image/src/io/free_functions.rs:311,1
    - Dst: Err
      Src: /src/image/src/io/free_functions.rs:312,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/free_functions.rs:312,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/io/free_functions.rs:312,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/io/free_functions.rs:318,1
    - Dst: bytemuck::cast_slice_mut
      Src: /src/image/src/io/free_functions.rs:318,1
    - Dst: io::Result::as_mut_slice
      Src: /src/image/src/io/free_functions.rs:318,1
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - impl ImageDecoder
    constantsTouched: []
    func_position:
      end: 320
      start: 306
    functionDepth: 6
    functionLinenumber: 306
    functionLinenumberEnd: 320
    functionName: decoder_to_vec
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 1
    functionsReached:
    - LimitError::from_kind
    - ImageResult::read_image
    - Err
    - io::Result::as_mut_slice
    - usize::try_from
    - ImageError::Limits
    - Ok
    - ImageResult::total_bytes
    - u64::is_err
    - bytemuck::cast_slice_mut
    - u64::unwrap
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn decoder_to_vec<T>(decoder: impl ImageDecoder) -> ImageResult<Vec<T>>whereT:
      crate::traits::Primitive + bytemuck::Pod,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - m
    - n
    argTypes:
    - '&mut MockDecoder'
    - u64
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: t::e::s::t::s::::::::t::e::s::t::_::l::o::a::d::_::r::e::c::t::seek_scanline
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn seek_scanline(m: &mut MockDecoder, n: u64) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:362,1
    - Dst: min
      Src: /src/image/src/io/free_functions.rs:365,1
    - Dst: copy_from_slice
      Src: /src/image/src/io/free_functions.rs:366,1
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 2
    argNames:
    - m
    - buf
    argTypes:
    - '&mut MockDecoder'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 369
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 369
    functionName: t::e::s::t::s::::::::t::e::s::t::_::l::o::a::d::_::r::e::c::t::read_scanline
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 0
    functionsReached:
    - copy_from_slice
    - Ok
    - min
    linkageType: ''
    returnType: io::Result
    signature: 'fn read_scanline(m: &mut MockDecoder, buf: &mut [u8]) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load_rect
      Src: /src/image/src/io/free_functions.rs:374,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/io/free_functions.rs:374,1
    - Dst: load_rect
      Src: /src/image/src/io/free_functions.rs:394,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/io/free_functions.rs:394,1
    - Dst: load_rect
      Src: /src/image/src/io/free_functions.rs:413,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/io/free_functions.rs:413,1
    - Dst: load_rect
      Src: /src/image/src/io/free_functions.rs:432,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/io/free_functions.rs:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 330
    functionDepth: 6
    functionLinenumber: 330
    functionLinenumberEnd: 450
    functionName: tests::test_load_rect
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 0
    functionsReached:
    - load_rect
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_load_rect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Result::copy_from_slice
      Src: /src/image/src/io/free_functions.rs:485,1
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - _m
    - buf
    argTypes:
    - '&mut MockDecoder'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 487
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 487
    functionName: t::e::s::t::s::::::::t::e::s::t::_::l::o::a::d::_::r::e::c::t::_::s::i::n::g::l::e::_::s::c::a::n::l::i::n::e::read_scanline
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 0
    functionsReached:
    - io::Result::copy_from_slice
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn read_scanline(_m: &mut MockDecoder, buf: &mut [u8]) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:481,1
    - Dst: load_rect
      Src: /src/image/src/io/free_functions.rs:490,1
    - Dst: len
      Src: /src/image/src/io/free_functions.rs:498,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/io/free_functions.rs:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 504
      start: 453
    functionDepth: 6
    functionLinenumber: 453
    functionLinenumberEnd: 504
    functionName: tests::test_load_rect_single_scanline
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - load_rect
    - Ok
    - len
    linkageType: ''
    returnType: void
    signature: fn test_load_rect_single_scanline()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::to_str
      Src: /src/image/src/io/format.rs:79,1
    - Dst: to_ascii_lowercase
      Src: /src/image/src/io/format.rs:79,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:81,1
    - Dst: Option::as_str
      Src: /src/image/src/io/format.rs:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ext
    argTypes:
    - '&OsStr'
    constantsTouched: []
    func_position:
      end: 100
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 100
    functionName: I::m::a::g::e::F::o::r::m::a::t::::::::f::r::o::m::_::e::x::t::e::n::s::i::o::n::inner
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached:
    - to_ascii_lowercase
    - Some
    - Option::as_str
    - Option::to_str
    linkageType: ''
    returnType: Option
    signature: 'fn inner(ext: &OsStr) -> Option<ImageFormat>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/image/src/io/format.rs:102,1
    - Dst: Option::as_ref
      Src: /src/image/src/io/format.rs:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ext
    argTypes:
    - S
    constantsTouched: []
    func_position:
      end: 103
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 103
    functionName: ImageFormat::from_extension
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached:
    - inner
    - Option::as_ref
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_extension<S>(ext: S) -> Option<Self>whereS: AsRef<OsStr>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::extension
      Src: /src/image/src/io/format.rs:124,1
    - Dst: Option::and_then
      Src: /src/image/src/io/format.rs:125,1
    - Dst: ok_or_else
      Src: /src/image/src/io/format.rs:125,1
    - Dst: ImageFormatHint::PathExtension
      Src: /src/image/src/io/format.rs:130,1
    - Dst: f32::into
      Src: /src/image/src/io/format.rs:130,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/format.rs:132,1
    - Dst: ImageFormatHint::into
      Src: /src/image/src/io/format.rs:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&Path'
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 4
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: I::m::a::g::e::F::o::r::m::a::t::::::::f::r::o::m::_::p::a::t::h::inner
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached:
    - ImageResult::extension
    - f32::into
    - ok_or_else
    - Option::and_then
    - ImageFormatHint::into
    - ImageError::Unsupported
    - ImageFormatHint::PathExtension
    linkageType: ''
    returnType: ImageResult
    signature: 'fn inner(path: &Path) -> ImageResult<ImageFormat>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/image/src/io/format.rs:136,1
    - Dst: ImageResult::as_ref
      Src: /src/image/src/io/format.rs:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - path
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 137
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 137
    functionName: ImageFormat::from_path
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 2
    functionsReached:
    - inner
    - ImageResult::as_ref
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn from_path<P>(path: P) -> ImageResult<Self>whereP: AsRef<Path>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::as_ref
      Src: /src/image/src/io/format.rs:153,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:154,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:155,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:156,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:157,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:158,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:159,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:160,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:161,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:162,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:163,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:164,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:165,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:169,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:172,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - mime_type
    argTypes:
    - M
    constantsTouched: []
    func_position:
      end: 176
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 176
    functionName: ImageFormat::from_mime_type
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached:
    - Option::as_ref
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_mime_type<M>(mime_type: M) -> Option<Self>whereM: AsRef<str>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 223
    functionName: ImageFormat::to_mime_type
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static str'
    signature: pub fn to_mime_type(&self) -> &'static str
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 248
    functionName: ImageFormat::can_read
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn can_read(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 273
    functionName: ImageFormat::can_write
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn can_write(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 305
    functionName: ImageFormat::extensions_str
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static [&''static str]'
    signature: pub fn extensions_str(self) -> &'static [&'static str]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 329
    functionName: ImageFormat::reading_enabled
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn reading_enabled(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 353
    functionName: ImageFormat::writing_enabled
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn writing_enabled(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/io/format.rs:357,1
    - Dst: copied
      Src: /src/image/src/io/format.rs:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 377
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 377
    functionName: ImageFormat::all
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached:
    - copied
    - iter
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn all() -> impl Iterator<Item = ImageFormat>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageFormat::from_path
      Src: /src/image/src/io/format.rs:390,1
    - Dst: Path::new
      Src: /src/image/src/io/format.rs:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 391
      start: 389
    functionDepth: 4
    functionLinenumber: 389
    functionLinenumberEnd: 391
    functionName: t::e::s::t::s::::::::t::e::s::t::_::i::m::a::g::e::_::f::o::r::m::a::t::_::f::r::o::m::_::p::a::t::h::from_path
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached:
    - ImageFormat::from_path
    - Path::new
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_path(s: &str) -> ImageResult<ImageFormat>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 414
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 414
    functionName: tests::test_image_format_from_path
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_image_format_from_path()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Path::new
      Src: /src/image/src/io/format.rs:423,1
    - Dst: Self::to_owned
      Src: /src/image/src/io/format.rs:423,1
    - Dst: Self::extensions_str
      Src: /src/image/src/io/format.rs:424,1
    - Dst: ImageFormat::from_path
      Src: /src/image/src/io/format.rs:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 432
    functionName: tests::image_formats_are_recognized
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached:
    - ImageFormat::from_path
    - Path::new
    - Self::to_owned
    - Self::extensions_str
    linkageType: ''
    returnType: void
    signature: fn image_formats_are_recognized()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageFormat::all
      Src: /src/image/src/io/format.rs:436,1
    - Dst: impl Iterator::collect
      Src: /src/image/src/io/format.rs:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 442
      start: 435
    functionDepth: 2
    functionLinenumber: 435
    functionLinenumberEnd: 442
    functionName: tests::all
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached:
    - ImageFormat::all
    - impl Iterator::collect
    linkageType: ''
    returnType: void
    signature: fn all()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 452
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 452
    functionName: tests::reading_enabled
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn reading_enabled()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 462
    functionName: tests::writing_enabled
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn writing_enabled()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pcx::Reader::new
      Src: /src/image/src/codecs/pcx.rs:34,1
    - Dst: Self::map_err
      Src: /src/image/src/codecs/pcx.rs:34,1
    - Dst: u32::from
      Src: /src/image/src/codecs/pcx.rs:35,1
    - Dst: Option::width
      Src: /src/image/src/codecs/pcx.rs:35,1
    - Dst: u32::from
      Src: /src/image/src/codecs/pcx.rs:35,1
    - Dst: Option::height
      Src: /src/image/src/codecs/pcx.rs:35,1
    - Dst: Ok
      Src: /src/image/src/codecs/pcx.rs:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: PCXDecoder::new
    functionSourceFile: /src/image/src/codecs/pcx.rs
    functionUses: 1
    functionsReached:
    - pcx::Reader::new
    - Self::map_err
    - Ok
    - u32::from
    - Option::width
    - Option::height
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(r: R) -> Result<PCXDecoder<R>, ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/pcx.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - err
    argTypes:
    - io::Error
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: ImageError::from_pcx_decode
    functionSourceFile: /src/image/src/codecs/pcx.rs
    functionUses: 0
    functionsReached:
    - ImageError::IoError
    linkageType: ''
    returnType: ImageError
    signature: 'fn from_pcx_decode(err: io::Error) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/image/src/codecs/pcx.rs:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: PCXReader::read
    functionSourceFile: /src/image/src/codecs/pcx.rs
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: position
      Src: /src/image/src/codecs/pcx.rs:58,1
    - Dst: io::Result::is_empty
      Src: /src/image/src/codecs/pcx.rs:58,1
    - Dst: mem::swap
      Src: /src/image/src/codecs/pcx.rs:59,1
    - Dst: get_mut
      Src: /src/image/src/codecs/pcx.rs:59,1
    - Dst: Ok
      Src: /src/image/src/codecs/pcx.rs:60,1
    - Dst: io::Result::len
      Src: /src/image/src/codecs/pcx.rs:60,1
    - Dst: read_to_end
      Src: /src/image/src/codecs/pcx.rs:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: PCXReader::read_to_end
    functionSourceFile: /src/image/src/codecs/pcx.rs
    functionUses: 0
    functionsReached:
    - io::Result::len
    - position
    - read_to_end
    - mem::swap
    - get_mut
    - Ok
    - io::Result::is_empty
    linkageType: ''
    returnType: io::Result
    signature: 'fn read_to_end(&mut self, buf: &mut Vec<u8>) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: PCXDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/pcx.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: PCXDecoder::color_type
    functionSourceFile: /src/image/src/codecs/pcx.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_paletted
      Src: /src/image/src/codecs/pcx.rs:77,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/pcx.rs:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 99
    functionName: PCXDecoder::original_color_type
    functionSourceFile: /src/image/src/codecs/pcx.rs
    functionUses: 0
    functionsReached:
    - ExtendedColorType::Unknown
    - is_paletted
    linkageType: ''
    returnType: ExtendedColorType
    signature: fn original_color_type(&self) -> ExtendedColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: height
      Src: /src/image/src/codecs/pcx.rs:104,1
    - Dst: width
      Src: /src/image/src/codecs/pcx.rs:105,1
    - Dst: palette_length
      Src: /src/image/src/codecs/pcx.rs:107,1
    - Dst: next_row_rgb
      Src: /src/image/src/codecs/pcx.rs:112,1
    - Dst: map_err
      Src: /src/image/src/codecs/pcx.rs:112,1
    - Dst: iter::repeat
      Src: /src/image/src/codecs/pcx.rs:123,1
    - Dst: ImageResult::take
      Src: /src/image/src/codecs/pcx.rs:123,1
    - Dst: collect
      Src: /src/image/src/codecs/pcx.rs:123,1
    - Dst: next_row_paletted
      Src: /src/image/src/codecs/pcx.rs:127,1
    - Dst: map_err
      Src: /src/image/src/codecs/pcx.rs:127,1
    - Dst: iter::repeat
      Src: /src/image/src/codecs/pcx.rs:133,1
    - Dst: ImageResult::take
      Src: /src/image/src/codecs/pcx.rs:133,1
    - Dst: collect
      Src: /src/image/src/codecs/pcx.rs:133,1
    - Dst: read_palette
      Src: /src/image/src/codecs/pcx.rs:134,1
    - Dst: map_err
      Src: /src/image/src/codecs/pcx.rs:134,1
    - Dst: Ok
      Src: /src/image/src/codecs/pcx.rs:151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 105
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 152
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 152
    functionName: PCXDecoder::read_image
    functionSourceFile: /src/image/src/codecs/pcx.rs
    functionUses: 0
    functionsReached:
    - next_row_rgb
    - ImageResult::take
    - map_err
    - width
    - iter::repeat
    - collect
    - next_row_paletted
    - palette_length
    - height
    - read_palette
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/pcx.rs:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: PCXDecoder::read_image_boxed
    functionSourceFile: /src/image/src/codecs/pcx.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::read_exact
      Src: /src/image/src/codecs/farbfeld.rs:42,1
    - Dst: map_err
      Src: /src/image/src/codecs/farbfeld.rs:42,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/farbfeld.rs:43,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/farbfeld.rs:43,1
    - Dst: into
      Src: /src/image/src/codecs/farbfeld.rs:43,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:45,1
    - Dst: u32::from_be_bytes
      Src: /src/image/src/codecs/farbfeld.rs:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - from
    argTypes:
    - '&mut R'
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: F::a::r::b::f::e::l::d::R::e::a::d::e::r::::::::n::e::w::read_dimm
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - DecodingError::new
    - map_err
    - into
    - Ok
    - ImageError::Decoding
    - u32::from_be_bytes
    - Self::read_exact
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_dimm<R: Read>(from: &mut R) -> ImageResult<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: R::read_exact
      Src: /src/image/src/codecs/farbfeld.rs:49,1
    - Dst: map_err
      Src: /src/image/src/codecs/farbfeld.rs:49,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/farbfeld.rs:50,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/farbfeld.rs:50,1
    - Dst: into
      Src: /src/image/src/codecs/farbfeld.rs:50,1
    - Dst: Err
      Src: /src/image/src/codecs/farbfeld.rs:53,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/farbfeld.rs:53,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/farbfeld.rs:53,1
    - Dst: into
      Src: /src/image/src/codecs/farbfeld.rs:54,1
    - Dst: read_dimm
      Src: /src/image/src/codecs/farbfeld.rs:60,1
    - Dst: read_dimm
      Src: /src/image/src/codecs/farbfeld.rs:61,1
    - Dst: crate::utils::check_dimension_overflow
      Src: /src/image/src/codecs/farbfeld.rs:67,1
    - Dst: Err
      Src: /src/image/src/codecs/farbfeld.rs:73,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/farbfeld.rs:73,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/farbfeld.rs:74,1
    - Dst: into
      Src: /src/image/src/codecs/farbfeld.rs:75,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/farbfeld.rs:76,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:84,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 60
    argCount: 1
    argNames:
    - buffered_read
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 85
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 85
    functionName: FarbfeldReader::new
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - Err
    - DecodingError::new
    - map_err
    - crate::utils::check_dimension_overflow
    - into
    - Ok
    - R::read_exact
    - ImageError::Decoding
    - UnsupportedError::from_format_and_kind
    - read_dimm
    - ImageError::Unsupported
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: ImageResult
    signature: 'fn new(mut buffered_read: R) -> ImageResult<FarbfeldReader<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/image/src/codecs/farbfeld.rs:91,1
    - Dst: io::Result::len
      Src: /src/image/src/codecs/farbfeld.rs:98,1
    - Dst: cache_byte
      Src: /src/image/src/codecs/farbfeld.rs:99,1
    - Dst: io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/farbfeld.rs:103,1
    - Dst: consume_channel
      Src: /src/image/src/codecs/farbfeld.rs:104,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:110,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 47
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: FarbfeldReader::read
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - io::Result::len
    - cache_byte
    - Ok
    - consume_channel
    - io::Result::chunks_exact_mut
    - take
    linkageType: ''
    returnType: io::Result
    signature: 'fn read(&mut self, mut buf: &mut [u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i64::try_from
      Src: /src/image/src/codecs/farbfeld.rs:118,1
    - Dst: ok
      Src: /src/image/src/codecs/farbfeld.rs:118,1
    - Dst: checked_sub
      Src: /src/image/src/codecs/farbfeld.rs:118,1
    - Dst: i64::try_from
      Src: /src/image/src/codecs/farbfeld.rs:120,1
    - Dst: ok
      Src: /src/image/src/codecs/farbfeld.rs:120,1
    - Dst: i64::try_from
      Src: /src/image/src/codecs/farbfeld.rs:122,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/farbfeld.rs:122,1
    - Dst: Some
      Src: /src/image/src/codecs/farbfeld.rs:125,1
    - Dst: i64::try_from
      Src: /src/image/src/codecs/farbfeld.rs:125,1
    - Dst: u64::checked_sub
      Src: /src/image/src/codecs/farbfeld.rs:125,1
    - Dst: ok
      Src: /src/image/src/codecs/farbfeld.rs:125,1
    - Dst: i64::try_from
      Src: /src/image/src/codecs/farbfeld.rs:129,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/farbfeld.rs:129,1
    - Dst: Some
      Src: /src/image/src/codecs/farbfeld.rs:132,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - original_offset
    - end_offset
    - pos
    argTypes:
    - u64
    - u64
    - SeekFrom
    constantsTouched: []
    func_position:
      end: 136
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 136
    functionName: F::a::r::b::f::e::l::d::R::e::a::d::e::r::::::::s::e::e::k::parse_offset
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - i64::try_from
    - u64::checked_sub
    - Some
    - ok
    - checked_sub
    - unwrap_or
    linkageType: ''
    returnType: Option
    signature: 'fn parse_offset(original_offset: u64, end_offset: u64, pos: SeekFrom)
      -> Option<i64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/image/src/codecs/farbfeld.rs:139,1
    - Dst: u64::from
      Src: /src/image/src/codecs/farbfeld.rs:139,1
    - Dst: parse_offset
      Src: /src/image/src/codecs/farbfeld.rs:141,1
    - Dst: Option::ok_or_else
      Src: /src/image/src/codecs/farbfeld.rs:141,1
    - Dst: io::Error::new
      Src: /src/image/src/codecs/farbfeld.rs:142,1
    - Dst: seek
      Src: /src/image/src/codecs/farbfeld.rs:149,1
    - Dst: SeekFrom::Current
      Src: /src/image/src/codecs/farbfeld.rs:149,1
    - Dst: checked_sub
      Src: /src/image/src/codecs/farbfeld.rs:151,1
    - Dst: wrapping_neg
      Src: /src/image/src/codecs/farbfeld.rs:151,1
    - Dst: checked_add
      Src: /src/image/src/codecs/farbfeld.rs:153,1
    - Dst: expect
      Src: /src/image/src/codecs/farbfeld.rs:150,1
    - Dst: seek
      Src: /src/image/src/codecs/farbfeld.rs:158,1
    - Dst: SeekFrom::Current
      Src: /src/image/src/codecs/farbfeld.rs:158,1
    - Dst: cache_byte
      Src: /src/image/src/codecs/farbfeld.rs:159,1
    - Dst: seek
      Src: /src/image/src/codecs/farbfeld.rs:160,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/farbfeld.rs:160,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:165,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 99
    argCount: 1
    argNames:
    - pos
    argTypes:
    - SeekFrom
    constantsTouched: []
    func_position:
      end: 166
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 166
    functionName: FarbfeldReader::seek
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - parse_offset
    - seek
    - SeekFrom::Start
    - wrapping_neg
    - cache_byte
    - Option::ok_or_else
    - checked_sub
    - SeekFrom::Current
    - checked_add
    - u64::from
    - io::Error::new
    - expect
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn seek(&mut self, pos: SeekFrom) -> io::Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::read_exact
      Src: /src/image/src/codecs/farbfeld.rs:171,1
    - Dst: ImageResult::write_all
      Src: /src/image/src/codecs/farbfeld.rs:172,1
    - Dst: u16::from_be_bytes
      Src: /src/image/src/codecs/farbfeld.rs:172,1
    - Dst: to_ne_bytes
      Src: /src/image/src/codecs/farbfeld.rs:172,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - '&mut R'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: consume_channel
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 1
    functionsReached:
    - u16::from_be_bytes
    - Self::read_exact
    - ImageResult::write_all
    - to_ne_bytes
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn consume_channel<R: Read>(from: &mut R, mut to: &mut [u8]) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: consume_channel
      Src: /src/image/src/codecs/farbfeld.rs:179,1
    - Dst: Some
      Src: /src/image/src/codecs/farbfeld.rs:180,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - from
    - cached_byte
    argTypes:
    - '&mut R'
    - '&mut Option<u8>'
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: cache_byte
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 2
    functionsReached:
    - Some
    - consume_channel
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn cache_byte<R: Read>(from: &mut R, cached_byte: &mut Option<u8>)
      -> io::Result<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:192,1
    - Dst: FarbfeldReader::new
      Src: /src/image/src/codecs/farbfeld.rs:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buffered_read
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: FarbfeldDecoder::new
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 1
    functionsReached:
    - FarbfeldReader::new
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(buffered_read: R) -> ImageResult<FarbfeldDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: FarbfeldDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: FarbfeldDecoder::color_type
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_exact
      Src: /src/image/src/codecs/farbfeld.rs:209,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: FarbfeldDecoder::read_image
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - read_exact
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/farbfeld.rs:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: FarbfeldDecoder::read_image_boxed
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stream_position
      Src: /src/image/src/codecs/farbfeld.rs:230,1
    - Dst: io::free_functions::load_rect
      Src: /src/image/src/codecs/farbfeld.rs:231,1
    - Dst: seek
      Src: /src/image/src/codecs/farbfeld.rs:240,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/farbfeld.rs:240,1
    - Dst: map
      Src: /src/image/src/codecs/farbfeld.rs:240,1
    - Dst: read_exact
      Src: /src/image/src/codecs/farbfeld.rs:241,1
    - Dst: seek
      Src: /src/image/src/codecs/farbfeld.rs:243,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/farbfeld.rs:243,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 6
    argNames:
    - x
    - y
    - width
    - height
    - buf
    - row_pitch
    argTypes:
    - u32
    - u32
    - u32
    - u32
    - '&mut [u8]'
    - usize
    constantsTouched: []
    func_position:
      end: 245
      start: 219
    functionDepth: 4
    functionLinenumber: 219
    functionLinenumberEnd: 245
    functionName: FarbfeldDecoder::read_rect
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - seek
    - SeekFrom::Start
    - map
    - read_exact
    - Ok
    - io::free_functions::load_rect
    - stream_position
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_rect(&mut self,x: u32,y: u32,width: u32,height: u32,buf: &mut
      [u8],row_pitch: usize,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - buffered_writer
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: FarbfeldEncoder::new
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: FarbfeldEncoder
    signature: 'pub fn new(buffered_writer: W) -> FarbfeldEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/image/src/codecs/farbfeld.rs:266,1
    - Dst: u64::from
      Src: /src/image/src/codecs/farbfeld.rs:266,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/farbfeld.rs:266,1
    - Dst: FarbfeldEncoder::encode_impl
      Src: /src/image/src/codecs/farbfeld.rs:273,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - data
    - width
    - height
    argTypes:
    - '&[u8]'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: FarbfeldEncoder::encode
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - FarbfeldEncoder::encode_impl
    - saturating_mul
    - Ok
    - u64::from
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn encode(self, data: &[u8], width: u32, height: u32) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_all
      Src: /src/image/src/codecs/farbfeld.rs:278,1
    - Dst: write_all
      Src: /src/image/src/codecs/farbfeld.rs:280,1
    - Dst: u32::to_be_bytes
      Src: /src/image/src/codecs/farbfeld.rs:280,1
    - Dst: write_all
      Src: /src/image/src/codecs/farbfeld.rs:281,1
    - Dst: u32::to_be_bytes
      Src: /src/image/src/codecs/farbfeld.rs:281,1
    - Dst: ImageResult::chunks_exact
      Src: /src/image/src/codecs/farbfeld.rs:283,1
    - Dst: write_all
      Src: /src/image/src/codecs/farbfeld.rs:284,1
    - Dst: u16::from_ne_bytes
      Src: /src/image/src/codecs/farbfeld.rs:285,1
    - Dst: io::Result::try_into
      Src: /src/image/src/codecs/farbfeld.rs:285,1
    - Dst: unwrap
      Src: /src/image/src/codecs/farbfeld.rs:285,1
    - Dst: to_be_bytes
      Src: /src/image/src/codecs/farbfeld.rs:285,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 3
    argNames:
    - data
    - width
    - height
    argTypes:
    - '&[u8]'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 289
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 289
    functionName: FarbfeldEncoder::encode_impl
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 1
    functionsReached:
    - u16::from_ne_bytes
    - ImageResult::chunks_exact
    - write_all
    - to_be_bytes
    - io::Result::try_into
    - u32::to_be_bytes
    - unwrap
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn encode_impl(mut self, data: &[u8], width: u32, height: u32) ->
      io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/farbfeld.rs:302,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/farbfeld.rs:302,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/farbfeld.rs:303,1
    - Dst: into
      Src: /src/image/src/codecs/farbfeld.rs:304,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/farbfeld.rs:305,1
    - Dst: FarbfeldEncoder::encode
      Src: /src/image/src/codecs/farbfeld.rs:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 311
      start: 294
    functionDepth: 4
    functionLinenumber: 294
    functionLinenumberEnd: 311
    functionName: FarbfeldEncoder::write_image
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - FarbfeldEncoder::encode
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - UnsupportedErrorKind::Color
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_rect
      Src: /src/image/src/codecs/farbfeld.rs:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 5
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: tests::read_rect_1x2
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - read_rect
    linkageType: ''
    returnType: void
    signature: fn read_rect_1x2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_rect
      Src: /src/image/src/codecs/farbfeld.rs:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 5
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: tests::read_rect_2x2
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - read_rect
    linkageType: ''
    returnType: void
    signature: fn read_rect_2x2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_rect
      Src: /src/image/src/codecs/farbfeld.rs:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 347
    functionDepth: 5
    functionLinenumber: 347
    functionLinenumberEnd: 353
    functionName: tests::read_rect_2x1
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - read_rect
    linkageType: ''
    returnType: void
    signature: fn read_rect_2x1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_rect
      Src: /src/image/src/codecs/farbfeld.rs:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 364
      start: 356
    functionDepth: 5
    functionLinenumber: 356
    functionLinenumberEnd: 364
    functionName: tests::read_rect_2x3
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - read_rect
    linkageType: ''
    returnType: void
    signature: fn read_rect_2x3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/farbfeld.rs:371,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/farbfeld.rs:372,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/farbfeld.rs:373,1
    - Dst: Self::seek
      Src: /src/image/src/codecs/farbfeld.rs:374,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/farbfeld.rs:374,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/farbfeld.rs:374,1
    - Dst: FarbfeldDecoder::new
      Src: /src/image/src/codecs/farbfeld.rs:377,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/farbfeld.rs:377,1
    - Dst: read_rect
      Src: /src/image/src/codecs/farbfeld.rs:377,1
    - Dst: unwrap
      Src: /src/image/src/codecs/farbfeld.rs:377,1
    - Dst: degenerate_pixels
      Src: /src/image/src/codecs/farbfeld.rs:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 383
      start: 367
    functionDepth: 4
    functionLinenumber: 367
    functionLinenumberEnd: 383
    functionName: tests::read_rect_in_stream
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - FarbfeldDecoder::new
    - SeekFrom::Start
    - Self::seek
    - extend_from_slice
    - ImageResult::unwrap
    - unwrap
    - Cursor::new
    - read_rect
    - degenerate_pixels
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn read_rect_in_stream()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1267
    functionDepth: 0
    functionLinenumber: 1267
    functionLinenumberEnd: 1279
    functionName: tests::dimension_overflow
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn dimension_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FarbfeldDecoder::new
      Src: /src/image/src/codecs/farbfeld.rs:394,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/farbfeld.rs:394,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/farbfeld.rs:394,1
    - Dst: read_rect
      Src: /src/image/src/codecs/farbfeld.rs:394,1
    - Dst: unwrap
      Src: /src/image/src/codecs/farbfeld.rs:394,1
    - Dst: degenerate_pixels
      Src: /src/image/src/codecs/farbfeld.rs:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 5
    argNames:
    - x
    - y
    - width
    - height
    - exp_wide
    argTypes:
    - u32
    - u32
    - u32
    - u32
    - '&[u16]'
    constantsTouched: []
    func_position:
      end: 400
      start: 392
    functionDepth: 5
    functionLinenumber: 392
    functionLinenumberEnd: 400
    functionName: tests::read_rect
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - FarbfeldDecoder::new
    - ImageResult::unwrap
    - unwrap
    - Cursor::new
    - read_rect
    - degenerate_pixels
    linkageType: ''
    returnType: void
    signature: 'fn read_rect(x: u32, y: u32, width: u32, height: u32, exp_wide: &[u16])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NativeEndian::write_u16_into
      Src: /src/image/src/codecs/farbfeld.rs:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exp_wide
    argTypes:
    - '&[u16]'
    constantsTouched: []
    func_position:
      end: 406
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 406
    functionName: tests::degenerate_pixels
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - NativeEndian::write_u16_into
    linkageType: ''
    returnType: Vec
    signature: 'fn degenerate_pixels(exp_wide: &[u16]) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: DxtVariant::decoded_bytes_per_block
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn decoded_bytes_per_block(self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: DxtVariant::encoded_bytes_per_block
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn encoded_bytes_per_block(self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: DxtVariant::color_type
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColorType
    signature: pub(crate) fn color_type(self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/dxt.rs:87,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/dxt.rs:87,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/dxt.rs:87,1
    - Dst: Ok
      Src: /src/image/src/codecs/dxt.rs:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - r
    - width
    - height
    - variant
    argTypes:
    - R
    - u32
    - u32
    - DxtVariant
    constantsTouched: []
    func_position:
      end: 100
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 100
    functionName: DxtDecoder::new
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - ImageError::Parameter
    - ParameterError::from_kind
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn new(r: R,width: u32,height: u32,variant: DxtVariant,)
      -> Result<DxtDecoder<R>, ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: decoded_bytes_per_block
      Src: /src/image/src/codecs/dxt.rs:103,1
    - Dst: u64::from
      Src: /src/image/src/codecs/dxt.rs:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: DxtDecoder::scanline_bytes
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 0
    functionsReached:
    - decoded_bytes_per_block
    - u64::from
    linkageType: ''
    returnType: u64
    signature: fn scanline_bytes(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encoded_bytes_per_block
      Src: /src/image/src/codecs/dxt.rs:115,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/dxt.rs:116,1
    - Dst: read_exact_vec
      Src: /src/image/src/codecs/dxt.rs:117,1
    - Dst: decode_dxt1_row
      Src: /src/image/src/codecs/dxt.rs:120,1
    - Dst: decode_dxt3_row
      Src: /src/image/src/codecs/dxt.rs:121,1
    - Dst: decode_dxt5_row
      Src: /src/image/src/codecs/dxt.rs:122,1
    - Dst: Ok
      Src: /src/image/src/codecs/dxt.rs:125,1
    - Dst: io::Result::len
      Src: /src/image/src/codecs/dxt.rs:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 126
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 126
    functionName: DxtDecoder::read_scanline
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 0
    functionsReached:
    - io::Result::len
    - encoded_bytes_per_block
    - decode_dxt3_row
    - read_exact_vec
    - decode_dxt1_row
    - decode_dxt5_row
    - Vec::new
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn read_scanline(&mut self, buf: &mut [u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: DxtDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: color_type
      Src: /src/image/src/codecs/dxt.rs:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: DxtDecoder::color_type
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 0
    functionsReached:
    - color_type
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Result::chunks_mut
      Src: /src/image/src/codecs/dxt.rs:144,1
    - Dst: DxtDecoder::scanline_bytes
      Src: /src/image/src/codecs/dxt.rs:144,1
    - Dst: u64::max
      Src: /src/image/src/codecs/dxt.rs:144,1
    - Dst: DxtDecoder::read_scanline
      Src: /src/image/src/codecs/dxt.rs:145,1
    - Dst: Ok
      Src: /src/image/src/codecs/dxt.rs:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: DxtDecoder::read_image
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 0
    functionsReached:
    - DxtDecoder::scanline_bytes
    - DxtDecoder::read_scanline
    - u64::max
    - io::Result::chunks_mut
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/dxt.rs:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: DxtDecoder::read_image_boxed
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - value
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 172
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 172
    functionName: enc565_decode
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Rgb
    signature: 'fn enc565_decode(value: u16) -> Rgb'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::from
      Src: /src/image/src/codecs/dxt.rs:186,1
    - Dst: u16::from
      Src: /src/image/src/codecs/dxt.rs:186,1
    - Dst: u16::from
      Src: /src/image/src/codecs/dxt.rs:191,1
    - Dst: u16::from
      Src: /src/image/src/codecs/dxt.rs:191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 2
    argNames:
    - alpha0
    - alpha1
    argTypes:
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 195
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 195
    functionName: alpha_table_dxt5
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 0
    functionsReached:
    - u16::from
    linkageType: ''
    returnType: '[u8; 8]'
    signature: 'fn alpha_table_dxt5(alpha0: u8, alpha1: u8) -> [u8; 8]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [u8]::len'
      Src: /src/image/src/codecs/dxt.rs:203,1
    - Dst: u16::from
      Src: /src/image/src/codecs/dxt.rs:206,1
    - Dst: u16::from
      Src: /src/image/src/codecs/dxt.rs:206,1
    - Dst: u16::from
      Src: /src/image/src/codecs/dxt.rs:207,1
    - Dst: u16::from
      Src: /src/image/src/codecs/dxt.rs:207,1
    - Dst: u32::from
      Src: /src/image/src/codecs/dxt.rs:208,1
    - Dst: u32::from
      Src: /src/image/src/codecs/dxt.rs:209,1
    - Dst: u32::from
      Src: /src/image/src/codecs/dxt.rs:210,1
    - Dst: u32::from
      Src: /src/image/src/codecs/dxt.rs:211,1
    - Dst: enc565_decode
      Src: /src/image/src/codecs/dxt.rs:216,1
    - Dst: enc565_decode
      Src: /src/image/src/codecs/dxt.rs:217,1
    - Dst: u16::from
      Src: /src/image/src/codecs/dxt.rs:223,1
    - Dst: u16::from
      Src: /src/image/src/codecs/dxt.rs:223,1
    - Dst: u16::from
      Src: /src/image/src/codecs/dxt.rs:224,1
    - Dst: u16::from
      Src: /src/image/src/codecs/dxt.rs:224,1
    - Dst: u16::from
      Src: /src/image/src/codecs/dxt.rs:229,1
    - Dst: u16::from
      Src: /src/image/src/codecs/dxt.rs:229,1
    - Dst: div_ceil
      Src: /src/image/src/codecs/dxt.rs:229,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/dxt.rs:236,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 124
    argCount: 3
    argNames:
    - source
    - dest
    - is_dxt1
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - bool
    constantsTouched: []
    func_position:
      end: 239
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 239
    functionName: decode_dxt_colors
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 0
    functionsReached:
    - div_ceil
    - copy_from_slice
    - enc565_decode
    - u16::from
    - u32::from
    - '&mut [u8]::len'
    linkageType: ''
    returnType: void
    signature: 'fn decode_dxt_colors(source: &[u8], dest: &mut [u8], is_dxt1: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/codecs/dxt.rs:246,1
    - Dst: rev
      Src: /src/image/src/codecs/dxt.rs:246,1
    - Dst: fold
      Src: /src/image/src/codecs/dxt.rs:246,1
    - Dst: u64::from
      Src: /src/image/src/codecs/dxt.rs:249,1
    - Dst: alpha_table_dxt5
      Src: /src/image/src/codecs/dxt.rs:252,1
    - Dst: decode_dxt_colors
      Src: /src/image/src/codecs/dxt.rs:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 261
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 261
    functionName: decode_dxt5_block
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 0
    functionsReached:
    - alpha_table_dxt5
    - rev
    - iter
    - fold
    - decode_dxt_colors
    - u64::from
    linkageType: ''
    returnType: void
    signature: 'fn decode_dxt5_block(source: &[u8], dest: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/codecs/dxt.rs:268,1
    - Dst: rev
      Src: /src/image/src/codecs/dxt.rs:268,1
    - Dst: fold
      Src: /src/image/src/codecs/dxt.rs:268,1
    - Dst: u64::from
      Src: /src/image/src/codecs/dxt.rs:271,1
    - Dst: decode_dxt_colors
      Src: /src/image/src/codecs/dxt.rs:279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 280
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 280
    functionName: decode_dxt3_block
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 0
    functionsReached:
    - rev
    - iter
    - fold
    - decode_dxt_colors
    - u64::from
    linkageType: ''
    returnType: void
    signature: 'fn decode_dxt3_block(source: &[u8], dest: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: decode_dxt_colors
      Src: /src/image/src/codecs/dxt.rs:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: decode_dxt1_block
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 0
    functionsReached:
    - decode_dxt_colors
    linkageType: ''
    returnType: void
    signature: 'fn decode_dxt1_block(source: &[u8], dest: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::len
      Src: /src/image/src/codecs/dxt.rs:292,1
    - Dst: Option::chunks
      Src: /src/image/src/codecs/dxt.rs:298,1
    - Dst: io::Result::enumerate
      Src: /src/image/src/codecs/dxt.rs:298,1
    - Dst: decode_dxt1_block
      Src: /src/image/src/codecs/dxt.rs:299,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/dxt.rs:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 307
      start: 290
    functionDepth: 5
    functionLinenumber: 290
    functionLinenumberEnd: 307
    functionName: decode_dxt1_row
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 1
    functionsReached:
    - Option::len
    - io::Result::enumerate
    - decode_dxt1_block
    - copy_from_slice
    - Option::chunks
    linkageType: ''
    returnType: void
    signature: 'fn decode_dxt1_row(source: &[u8], dest: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::len
      Src: /src/image/src/codecs/dxt.rs:313,1
    - Dst: Option::chunks
      Src: /src/image/src/codecs/dxt.rs:319,1
    - Dst: io::Result::enumerate
      Src: /src/image/src/codecs/dxt.rs:319,1
    - Dst: decode_dxt3_block
      Src: /src/image/src/codecs/dxt.rs:320,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/dxt.rs:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 328
      start: 311
    functionDepth: 4
    functionLinenumber: 311
    functionLinenumberEnd: 328
    functionName: decode_dxt3_row
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 1
    functionsReached:
    - Option::len
    - io::Result::enumerate
    - copy_from_slice
    - decode_dxt3_block
    - Option::chunks
    linkageType: ''
    returnType: void
    signature: 'fn decode_dxt3_row(source: &[u8], dest: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::len
      Src: /src/image/src/codecs/dxt.rs:334,1
    - Dst: Option::chunks
      Src: /src/image/src/codecs/dxt.rs:340,1
    - Dst: io::Result::enumerate
      Src: /src/image/src/codecs/dxt.rs:340,1
    - Dst: decode_dxt5_block
      Src: /src/image/src/codecs/dxt.rs:341,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/dxt.rs:346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 349
      start: 332
    functionDepth: 4
    functionLinenumber: 332
    functionLinenumberEnd: 349
    functionName: decode_dxt5_row
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 1
    functionsReached:
    - Option::len
    - io::Result::enumerate
    - copy_from_slice
    - decode_dxt5_block
    - Option::chunks
    linkageType: ''
    returnType: void
    signature: 'fn decode_dxt5_row(source: &[u8], dest: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gif::DecodeOptions::new
      Src: /src/image/src/codecs/gif.rs:58,1
    - Dst: ImageResult::set_color_output
      Src: /src/image/src/codecs/gif.rs:59,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:61,1
    - Dst: ImageResult::read_info
      Src: /src/image/src/codecs/gif.rs:62,1
    - Dst: map_err
      Src: /src/image/src/codecs/gif.rs:62,1
    - Dst: Limits::no_limits
      Src: /src/image/src/codecs/gif.rs:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: GifDecoder::new
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 4
    functionsReached:
    - ImageResult::set_color_output
    - gif::DecodeOptions::new
    - map_err
    - Limits::no_limits
    - ImageResult::read_info
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(r: R) -> ImageResult<GifDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/image/src/codecs/gif.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: GifReader::read
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: position
      Src: /src/image/src/codecs/gif.rs:79,1
    - Dst: io::Result::is_empty
      Src: /src/image/src/codecs/gif.rs:79,1
    - Dst: mem::swap
      Src: /src/image/src/codecs/gif.rs:80,1
    - Dst: get_mut
      Src: /src/image/src/codecs/gif.rs:80,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:81,1
    - Dst: io::Result::len
      Src: /src/image/src/codecs/gif.rs:81,1
    - Dst: read_to_end
      Src: /src/image/src/codecs/gif.rs:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: GifReader::read_to_end
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - io::Result::len
    - position
    - read_to_end
    - mem::swap
    - get_mut
    - Ok
    - io::Result::is_empty
    linkageType: ''
    returnType: io::Result
    signature: 'fn read_to_end(&mut self, buf: &mut Vec<u8>) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/image/src/codecs/gif.rs:91,1
    - Dst: width
      Src: /src/image/src/codecs/gif.rs:91,1
    - Dst: u32::from
      Src: /src/image/src/codecs/gif.rs:92,1
    - Dst: height
      Src: /src/image/src/codecs/gif.rs:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: GifDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - width
    - u32::from
    - height
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: GifDecoder::color_type
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_support
      Src: /src/image/src/codecs/gif.rs:101,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/gif.rs:101,1
    - Dst: GifDecoder::dimensions
      Src: /src/image/src/codecs/gif.rs:103,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/codecs/gif.rs:104,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - limits
    argTypes:
    - Limits
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 4
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: GifDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - GifDecoder::dimensions
    - crate::LimitSupport::default
    - Limits::check_dimensions
    - Limits::check_support
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next_frame_info
      Src: /src/image/src/codecs/gif.rs:114,1
    - Dst: map_err
      Src: /src/image/src/codecs/gif.rs:114,1
    - Dst: FrameInfo::new_from_frame
      Src: /src/image/src/codecs/gif.rs:119,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:121,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/gif.rs:121,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/gif.rs:121,1
    - Dst: GifDecoder::dimensions
      Src: /src/image/src/codecs/gif.rs:127,1
    - Dst: u64::from
      Src: /src/image/src/codecs/gif.rs:131,1
    - Dst: u64::from
      Src: /src/image/src/codecs/gif.rs:131,1
    - Dst: u64::from
      Src: /src/image/src/codecs/gif.rs:131,1
    - Dst: usize::try_from
      Src: /src/image/src/codecs/gif.rs:136,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:136,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/gif.rs:136,1
    - Dst: GifDecoder::color_type
      Src: /src/image/src/codecs/gif.rs:138,1
    - Dst: ColorType::bytes_per_pixel
      Src: /src/image/src/codecs/gif.rs:138,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:136,1
    - Dst: io::Result::split_at_mut
      Src: /src/image/src/codecs/gif.rs:144,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/gif.rs:144,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:144,1
    - Dst: Option::split_at_mut
      Src: /src/image/src/codecs/gif.rs:146,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/gif.rs:146,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:146,1
    - Dst: read_into_buffer
      Src: /src/image/src/codecs/gif.rs:155,1
    - Dst: map_err
      Src: /src/image/src/codecs/gif.rs:155,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/gif.rs:165,1
    - Dst: and_then
      Src: /src/image/src/codecs/gif.rs:165,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/gif.rs:167,1
    - Dst: ok_or
      Src: /src/image/src/codecs/gif.rs:165,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/gif.rs:168,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/gif.rs:168,1
    - Dst: reserve_usize
      Src: /src/image/src/codecs/gif.rs:172,1
    - Dst: free_usize
      Src: /src/image/src/codecs/gif.rs:174,1
    - Dst: read_into_buffer
      Src: /src/image/src/codecs/gif.rs:176,1
    - Dst: map_err
      Src: /src/image/src/codecs/gif.rs:176,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/gif.rs:180,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/gif.rs:181,1
    - Dst: Option::is_none
      Src: /src/image/src/codecs/gif.rs:186,1
    - Dst: Option::is_none
      Src: /src/image/src/codecs/gif.rs:186,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:187,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/gif.rs:187,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/gif.rs:188,1
    - Dst: into
      Src: /src/image/src/codecs/gif.rs:189,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/gif.rs:190,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/gif.rs:198,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/gif.rs:199,1
    - Dst: Option::enumerate_pixels_mut
      Src: /src/image/src/codecs/gif.rs:201,1
    - Dst: wrapping_sub
      Src: /src/image/src/codecs/gif.rs:202,1
    - Dst: Option::wrapping_sub
      Src: /src/image/src/codecs/gif.rs:203,1
    - Dst: Option::get_pixel
      Src: /src/image/src/codecs/gif.rs:206,1
    - Dst: color::Rgba
      Src: /src/image/src/codecs/gif.rs:209,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:214,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 166
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 215
      start: 111
    functionDepth: 4
    functionLinenumber: 111
    functionLinenumberEnd: 215
    functionName: GifDecoder::read_image
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - ParameterError::from_kind
    - usize::try_from
    - map_err
    - ImageError::Limits
    - unwrap
    - u64::from
    - free_usize
    - Option::wrapping_sub
    - wrapping_sub
    - UnsupportedErrorKind::GenericFeature
    - Ok
    - Err
    - io::Result::split_at_mut
    - GifDecoder::color_type
    - Option::get_pixel
    - color::Rgba
    - reserve_usize
    - Option::is_none
    - GifDecoder::dimensions
    - LimitError::from_kind
    - read_into_buffer
    - into
    - FrameInfo::new_from_frame
    - checked_mul
    - ColorType::bytes_per_pixel
    - ImageBuffer::from_raw
    - Option::unwrap
    - ok_or
    - next_frame_info
    - UnsupportedError::from_format_and_kind
    - Option::split_at_mut
    - and_then
    - ImageError::Unsupported
    - Option::enumerate_pixels_mut
    - ImageError::Parameter
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/gif.rs:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 219
    functionName: GifDecoder::read_image_boxed
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/gif.rs:237,1
    - Dst: clone
      Src: /src/image/src/codecs/gif.rs:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - GifDecoder<R>
    constantsTouched: []
    func_position:
      end: 250
      start: 236
    functionDepth: 7
    functionLinenumber: 236
    functionLinenumberEnd: 250
    functionName: GifFrameIterator::new
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - clone
    - ImageResult::dimensions
    linkageType: ''
    returnType: GifFrameIterator
    signature: 'fn new(decoder: GifDecoder<R>) -> GifFrameIterator<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Rgba<u8>::channels'
      Src: /src/image/src/codecs/gif.rs:348,1
    - Dst: color::Rgba
      Src: /src/image/src/codecs/gif.rs:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - dispose
    - previous
    - current
    argTypes:
    - DisposalMethod
    - '&mut Rgba<u8>'
    - '&mut Rgba<u8>'
    constantsTouched: []
    func_position:
      end: 371
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 371
    functionName: G::i::f::F::r::a::m::e::I::t::e::r::a::t::o::r::::::::n::e::x::t::blend_and_dispose_pixel
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - color::Rgba
    - '&mut Rgba<u8>::channels'
    linkageType: ''
    returnType: void
    signature: 'fn blend_and_dispose_pixel(dispose: DisposalMethod,previous: &mut
      Rgba<u8>,current: &mut Rgba<u8>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/image/src/codecs/gif.rs:267,1
    - Dst: reserve_buffer
      Src: /src/image/src/codecs/gif.rs:268,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:272,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:272,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:274,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/codecs/gif.rs:274,1
    - Dst: color::Rgba
      Src: /src/image/src/codecs/gif.rs:277,1
    - Dst: as_mut
      Src: /src/image/src/codecs/gif.rs:281,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:281,1
    - Dst: next_frame_info
      Src: /src/image/src/codecs/gif.rs:285,1
    - Dst: FrameInfo::new_from_frame
      Src: /src/image/src/codecs/gif.rs:288,1
    - Dst: ::std::io::Result::kind
      Src: /src/image/src/codecs/gif.rs:296,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:300,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:300,1
    - Dst: ImageError::from_decoding
      Src: /src/image/src/codecs/gif.rs:300,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:303,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:303,1
    - Dst: ImageError::from_decoding
      Src: /src/image/src/codecs/gif.rs:303,1
    - Dst: clone
      Src: /src/image/src/codecs/gif.rs:312,1
    - Dst: reserve_buffer
      Src: /src/image/src/codecs/gif.rs:315,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:316,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:316,1
    - Dst: read_into_buffer
      Src: /src/image/src/codecs/gif.rs:320,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:321,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:321,1
    - Dst: ImageError::from_decoding
      Src: /src/image/src/codecs/gif.rs:321,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/gif.rs:329,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:330,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:330,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/gif.rs:330,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/gif.rs:331,1
    - Dst: into
      Src: /src/image/src/codecs/gif.rs:332,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/gif.rs:333,1
    - Dst: dimensions
      Src: /src/image/src/codecs/gif.rs:377,1
    - Dst: enumerate_pixels_mut
      Src: /src/image/src/codecs/gif.rs:379,1
    - Dst: get_pixel_mut
      Src: /src/image/src/codecs/gif.rs:380,1
    - Dst: blend_and_dispose_pixel
      Src: /src/image/src/codecs/gif.rs:381,1
    - Dst: reserve_buffer
      Src: /src/image/src/codecs/gif.rs:386,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:387,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:387,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/codecs/gif.rs:389,1
    - Dst: wrapping_sub
      Src: /src/image/src/codecs/gif.rs:390,1
    - Dst: Option::wrapping_sub
      Src: /src/image/src/codecs/gif.rs:391,1
    - Dst: get_pixel_mut
      Src: /src/image/src/codecs/gif.rs:392,1
    - Dst: width
      Src: /src/image/src/codecs/gif.rs:394,1
    - Dst: height
      Src: /src/image/src/codecs/gif.rs:394,1
    - Dst: get_pixel
      Src: /src/image/src/codecs/gif.rs:395,1
    - Dst: blend_and_dispose_pixel
      Src: /src/image/src/codecs/gif.rs:396,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:405,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:405,1
    - Dst: animation::Frame::from_parts
      Src: /src/image/src/codecs/gif.rs:405,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 185
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 411
      start: 256
    functionDepth: 7
    functionLinenumber: 256
    functionLinenumberEnd: 411
    functionName: GifFrameIterator::next
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - blend_and_dispose_pixel
    - Some
    - unwrap
    - Option::wrapping_sub
    - wrapping_sub
    - UnsupportedErrorKind::GenericFeature
    - Ok
    - is_none
    - Err
    - reserve_buffer
    - color::Rgba
    - height
    - ImageBuffer::from_fn
    - get_pixel_mut
    - ImageError::from_decoding
    - read_into_buffer
    - enumerate_pixels_mut
    - clone
    - into
    - FrameInfo::new_from_frame
    - dimensions
    - ::std::io::Result::kind
    - get_pixel
    - ImageBuffer::from_raw
    - width
    - next_frame_info
    - as_mut
    - UnsupportedError::from_format_and_kind
    - animation::Frame::from_parts
    - ImageError::Unsupported
    - ImageBuffer::from_pixel
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<ImageResult<animation::Frame>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: animation::Frames::new
      Src: /src/image/src/codecs/gif.rs:416,1
    - Dst: Box::new
      Src: /src/image/src/codecs/gif.rs:416,1
    - Dst: GifFrameIterator::new
      Src: /src/image/src/codecs/gif.rs:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 417
      start: 415
    functionDepth: 8
    functionLinenumber: 415
    functionLinenumberEnd: 417
    functionName: GifDecoder::into_frames
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - GifFrameIterator::new
    - Box::new
    - animation::Frames::new
    linkageType: ''
    returnType: animation::Frames
    signature: fn into_frames(self) -> animation::Frames<'a>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/image/src/codecs/gif.rs:432,1
    - Dst: u32::from
      Src: /src/image/src/codecs/gif.rs:433,1
    - Dst: u32::from
      Src: /src/image/src/codecs/gif.rs:434,1
    - Dst: u32::from
      Src: /src/image/src/codecs/gif.rs:435,1
    - Dst: animation::Delay::from_ratio
      Src: /src/image/src/codecs/gif.rs:438,1
    - Dst: Ratio::new
      Src: /src/image/src/codecs/gif.rs:438,1
    - Dst: u32::from
      Src: /src/image/src/codecs/gif.rs:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - frame
    argTypes:
    - '&Frame'
    constantsTouched: []
    func_position:
      end: 440
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 440
    functionName: FrameInfo::new_from_frame
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 2
    functionsReached:
    - Ratio::new
    - animation::Delay::from_ratio
    - u32::from
    linkageType: ''
    returnType: FrameInfo
    signature: 'fn new_from_frame(frame: &Frame) -> FrameInfo'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gif::Repeat::Finite
      Src: /src/image/src/codecs/gif.rs:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 458
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 458
    functionName: Repeat::to_gif_enum
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - gif::Repeat::Finite
    linkageType: ''
    returnType: gif::Repeat
    signature: pub(crate) fn to_gif_enum(self) -> gif::Repeat
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_speed
      Src: /src/image/src/codecs/gif.rs:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 473
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 473
    functionName: GifEncoder::new
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 1
    functionsReached:
    - Self::new_with_speed
    linkageType: ''
    returnType: GifEncoder
    signature: 'pub fn new(w: W) -> GifEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - w
    - speed
    argTypes:
    - W
    - i32
    constantsTouched: []
    func_position:
      end: 489
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 489
    functionName: GifEncoder::new_with_speed
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: GifEncoder
    signature: 'pub fn new_with_speed(w: W, speed: i32) -> GifEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::set_repeat
      Src: /src/image/src/codecs/gif.rs:494,1
    - Dst: ImageResult::to_gif_enum
      Src: /src/image/src/codecs/gif.rs:495,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/gif.rs:494,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:498,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - repeat
    argTypes:
    - Repeat
    constantsTouched: []
    func_position:
      end: 500
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 500
    functionName: GifEncoder::set_repeat
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - ImageResult::set_repeat
    - Some
    - ImageResult::map_err
    - ImageResult::to_gif_enum
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn set_repeat(&mut self, repeat: Repeat) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GifEncoder::gif_dimensions
      Src: /src/image/src/codecs/gif.rs:510,1
    - Dst: GifEncoder::encode_gif
      Src: /src/image/src/codecs/gif.rs:513,1
    - Dst: Frame::from_rgb_speed
      Src: /src/image/src/codecs/gif.rs:513,1
    - Dst: GifEncoder::encode_gif
      Src: /src/image/src/codecs/gif.rs:515,1
    - Dst: Frame::from_rgba_speed
      Src: /src/image/src/codecs/gif.rs:515,1
    - Dst: ImageResult::to_owned
      Src: /src/image/src/codecs/gif.rs:518,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:521,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/gif.rs:521,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/gif.rs:522,1
    - Dst: into
      Src: /src/image/src/codecs/gif.rs:523,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/gif.rs:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 4
    argNames:
    - data
    - width
    - height
    - color
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 528
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 528
    functionName: GifEncoder::encode
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - ImageResult::to_owned
    - Err
    - Frame::from_rgba_speed
    - GifEncoder::gif_dimensions
    - into
    - UnsupportedError::from_format_and_kind
    - Frame::from_rgb_speed
    - ImageError::Unsupported
    - GifEncoder::encode_gif
    - UnsupportedErrorKind::Color
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn encode(&mut self,data: &[u8],width: u32,height: u32,color:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GifEncoder::convert_frame
      Src: /src/image/src/codecs/gif.rs:532,1
    - Dst: GifEncoder::encode_gif
      Src: /src/image/src/codecs/gif.rs:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - img_frame
    argTypes:
    - animation::Frame
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: GifEncoder::encode_frame
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - GifEncoder::convert_frame
    - GifEncoder::encode_gif
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn encode_frame(&mut self, img_frame: animation::Frame) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GifEncoder::encode_frame
      Src: /src/image/src/codecs/gif.rs:543,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - frames
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 546
      start: 538
    functionDepth: 2
    functionLinenumber: 538
    functionLinenumberEnd: 546
    functionName: GifEncoder::encode_frames
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - GifEncoder::encode_frame
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn encode_frames<F>(&mut self, frames: F) -> ImageResult<()>whereF:
      IntoIterator<Item = animation::Frame>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GifEncoder::encode_frame
      Src: /src/image/src/codecs/gif.rs:556,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:558,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - frames
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 559
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 559
    functionName: GifEncoder::try_encode_frames
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - GifEncoder::encode_frame
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn try_encode_frames<F>(&mut self, frames: F) -> ImageResult<()>whereF:
      IntoIterator<Item = ImageResult<animation::Frame>>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: animation::Frame::delay
      Src: /src/image/src/codecs/gif.rs:566,1
    - Dst: Delay::into_ratio
      Src: /src/image/src/codecs/gif.rs:566,1
    - Dst: Ratio::to_integer
      Src: /src/image/src/codecs/gif.rs:566,1
    - Dst: animation::Frame::into_buffer
      Src: /src/image/src/codecs/gif.rs:568,1
    - Dst: GifEncoder::gif_dimensions
      Src: /src/image/src/codecs/gif.rs:569,1
    - Dst: RgbaImage::width
      Src: /src/image/src/codecs/gif.rs:569,1
    - Dst: RgbaImage::height
      Src: /src/image/src/codecs/gif.rs:569,1
    - Dst: Frame::from_rgba_speed
      Src: /src/image/src/codecs/gif.rs:572,1
    - Dst: try_into
      Src: /src/image/src/codecs/gif.rs:577,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/gif.rs:577,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - img_frame
    argTypes:
    - animation::Frame
    constantsTouched: []
    func_position:
      end: 580
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 580
    functionName: GifEncoder::convert_frame
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 1
    functionsReached:
    - RgbaImage::width
    - Frame::from_rgba_speed
    - RgbaImage::height
    - animation::Frame::into_buffer
    - GifEncoder::gif_dimensions
    - animation::Frame::delay
    - try_into
    - unwrap_or
    - Delay::into_ratio
    - Ratio::to_integer
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn convert_frame(&mut self,img_frame: animation::Frame,)
      -> ImageResult<Frame<''static>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::try_from
      Src: /src/image/src/codecs/gif.rs:584,1
    - Dst: ok
      Src: /src/image/src/codecs/gif.rs:584,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/gif.rs:585,1
    - Dst: ok
      Src: /src/image/src/codecs/gif.rs:585,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 587
    functionName: G::i::f::E::n::c::o::d::e::r::::::::g::i::f::_::d::i::m::e::n::s::i::o::n::s::inner_dimensions
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - Some
    - u16::try_from
    - ok
    linkageType: ''
    returnType: Option
    signature: 'fn inner_dimensions(width: u32, height: u32) -> Option<(u16, u16)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inner_dimensions
      Src: /src/image/src/codecs/gif.rs:590,1
    - Dst: Option::ok_or_else
      Src: /src/image/src/codecs/gif.rs:590,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/gif.rs:591,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/gif.rs:591,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 595
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 595
    functionName: GifEncoder::gif_dimensions
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 2
    functionsReached:
    - inner_dimensions
    - Option::ok_or_else
    - ImageError::Parameter
    - ParameterError::from_kind
    linkageType: ''
    returnType: ImageResult
    signature: 'fn gif_dimensions(&self, width: u32, height: u32) -> ImageResult<(u16,
      u16)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/image/src/codecs/gif.rs:602,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:602,1
    - Dst: gif::Encoder::new
      Src: /src/image/src/codecs/gif.rs:603,1
    - Dst: FarbfeldEncoder::map_err
      Src: /src/image/src/codecs/gif.rs:603,1
    - Dst: ImageResult::set_repeat
      Src: /src/image/src/codecs/gif.rs:606,1
    - Dst: ImageResult::to_gif_enum
      Src: /src/image/src/codecs/gif.rs:607,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/gif.rs:606,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:610,1
    - Dst: as_mut
      Src: /src/image/src/codecs/gif.rs:611,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:611,1
    - Dst: write_frame
      Src: /src/image/src/codecs/gif.rs:616,1
    - Dst: map_err
      Src: /src/image/src/codecs/gif.rs:616,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 1
    argNames:
    - frame
    argTypes:
    - Frame
    constantsTouched: []
    func_position:
      end: 619
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 619
    functionName: GifEncoder::encode_gif
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 2
    functionsReached:
    - ImageResult::set_repeat
    - Some
    - ImageResult::map_err
    - map_err
    - FarbfeldEncoder::map_err
    - write_frame
    - as_mut
    - gif::Encoder::new
    - unwrap
    - ImageResult::to_gif_enum
    - take
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn encode_gif(&mut self, mut frame: Frame) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GifEncoder::encode
      Src: /src/image/src/codecs/gif.rs:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 630
      start: 622
    functionDepth: 4
    functionLinenumber: 622
    functionLinenumberEnd: 630
    functionName: GifEncoder::write_image
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - GifEncoder::encode
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(mut self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/gif.rs:638,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/gif.rs:638,1
    - Dst: into
      Src: /src/image/src/codecs/gif.rs:638,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/gif.rs:640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - err
    argTypes:
    - gif::DecodingError
    constantsTouched: []
    func_position:
      end: 642
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 642
    functionName: ImageError::from_decoding
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 1
    functionsReached:
    - DecodingError::new
    - ImageError::IoError
    - ImageError::Decoding
    - into
    linkageType: ''
    returnType: ImageError
    signature: 'fn from_decoding(err: gif::DecodingError) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/gif.rs:648,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/gif.rs:648,1
    - Dst: into
      Src: /src/image/src/codecs/gif.rs:648,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/gif.rs:650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - err
    argTypes:
    - gif::EncodingError
    constantsTouched: []
    func_position:
      end: 652
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 652
    functionName: ImageError::from_encoding
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - ImageError::Encoding
    - ImageError::IoError
    - EncodingError::new
    - into
    linkageType: ''
    returnType: ImageError
    signature: 'fn from_encoding(err: gif::EncodingError) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GifDecoder::new
      Src: /src/image/src/codecs/gif.rs:671,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/gif.rs:671,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/gif.rs:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 675
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 675
    functionName: test::frames_exceeding_logical_screen_size
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - GifDecoder::new
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn frames_exceeding_logical_screen_size()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Decoder::new
      Src: /src/image/src/codecs/tiff.rs:42,1
    - Dst: Result::map_err
      Src: /src/image/src/codecs/tiff.rs:42,1
    - Dst: Option::dimensions
      Src: /src/image/src/codecs/tiff.rs:44,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/tiff.rs:44,1
    - Dst: Option::colortype
      Src: /src/image/src/codecs/tiff.rs:45,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:45,1
    - Dst: find_tag_unsigned_vec::<u16>
      Src: /src/image/src/codecs/tiff.rs:46,1
    - Dst: check_sample_format
      Src: /src/image/src/codecs/tiff.rs:49,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:53,1
    - Dst: ImageError::from_tiff_decode
      Src: /src/image/src/codecs/tiff.rs:53,1
    - Dst: Option::find_tag
      Src: /src/image/src/codecs/tiff.rs:56,1
    - Dst: map
      Src: /src/image/src/codecs/tiff.rs:56,1
    - Dst: and_then
      Src: /src/image/src/codecs/tiff.rs:58,1
    - Dst: Result::into_u16
      Src: /src/image/src/codecs/tiff.rs:58,1
    - Dst: ok
      Src: /src/image/src/codecs/tiff.rs:58,1
    - Dst: unwrap_or_default
      Src: /src/image/src/codecs/tiff.rs:58,1
    - Dst: unwrap_or_default
      Src: /src/image/src/codecs/tiff.rs:56,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:63,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:63,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:64,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:65,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:66,1
    - Dst: String::from
      Src: /src/image/src/codecs/tiff.rs:66,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:86,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:86,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:88,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:88,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:88,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:89,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:89,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:89,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:90,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:90,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:90,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:92,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:92,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:92,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:98,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:98,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:99,1
    - Dst: min
      Src: /src/image/src/codecs/tiff.rs:99,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:102,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:102,1
    - Dst: ExtendedColorType::into
      Src: /src/image/src/codecs/tiff.rs:108,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:111,1
    - Dst: Some
      Src: /src/image/src/codecs/tiff.rs:115,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 95
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 117
      start: 41
    functionDepth: 7
    functionLinenumber: 41
    functionLinenumberEnd: 117
    functionName: TiffDecoder::new
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 2
    functionsReached:
    - err_unknown_color_type
    - Some
    - map_err
    - String::from
    - UnsupportedErrorKind::GenericFeature
    - Ok
    - Result::map_err
    - Option::colortype
    - Err
    - Result::into_u16
    - find_tag_unsigned_vec::<u16>
    - saturating_mul
    - ExtendedColorType::into
    - unwrap_or_default
    - Option::dimensions
    - ImageResult::map_err
    - into
    - Decoder::new
    - check_sample_format
    - Option::find_tag
    - ImageError::from_tiff_decode
    - map
    - ok
    - UnsupportedError::from_format_and_kind
    - and_then
    - ImageError::Unsupported
    - min
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(r: R) -> Result<TiffDecoder<R>, ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TiffDecoder::dimensions
      Src: /src/image/src/codecs/tiff.rs:121,1
    - Dst: u64::from
      Src: /src/image/src/codecs/tiff.rs:122,1
    - Dst: u64::from
      Src: /src/image/src/codecs/tiff.rs:122,1
    - Dst: u64::from
      Src: /src/image/src/codecs/tiff.rs:126,1
    - Dst: TiffDecoder::color_type
      Src: /src/image/src/codecs/tiff.rs:126,1
    - Dst: ColorType::bytes_per_pixel
      Src: /src/image/src/codecs/tiff.rs:126,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: TiffDecoder::total_bytes_buffer
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - u64::from
    - ColorType::bytes_per_pixel
    - TiffDecoder::color_type
    - TiffDecoder::dimensions
    - saturating_mul
    linkageType: ''
    returnType: u64
    signature: fn total_bytes_buffer(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:141,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:141,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:142,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:143,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:144,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:151,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:151,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:152,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:153,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:154,1
    - Dst: SampleFormat::from_u16
      Src: /src/image/src/codecs/tiff.rs:162,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:163,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:164,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:165,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:165,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:166,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:167,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - sample_format
    - color_type
    argTypes:
    - u16
    - tiff::ColorType
    constantsTouched: []
    func_position:
      end: 174
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 174
    functionName: check_sample_format
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - Err
    - into
    - SampleFormat::from_u16
    - Ok
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: Result
    signature: 'fn check_sample_format(sample_format: u16, color_type: tiff::ColorType)
      -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:177,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:177,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:178,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/tiff.rs:179,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/tiff.rs:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: err_unknown_color_type
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - into
    - ExtendedColorType::Unknown
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - UnsupportedErrorKind::Color
    linkageType: ''
    returnType: ImageError
    signature: 'fn err_unknown_color_type(value: u8) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/tiff.rs:186,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tiff.rs:190,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tiff.rs:190,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:190,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:193,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:193,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:194,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:195,1
    - Dst: to_string
      Src: /src/image/src/codecs/tiff.rs:195,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/tiff.rs:199,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/tiff.rs:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - err
    argTypes:
    - tiff::TiffError
    constantsTouched: []
    func_position:
      end: 202
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 202
    functionName: ImageError::from_tiff_decode
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - LimitError::from_kind
    - DecodingError::new
    - ImageError::IoError
    - ImageError::Limits
    - into
    - to_string
    - UnsupportedError::from_format_and_kind
    - ImageError::Decoding
    - ImageError::Unsupported
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: ImageError
    signature: 'fn from_tiff_decode(err: tiff::TiffError) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/tiff.rs:206,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/tiff.rs:210,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/tiff.rs:210,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:210,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:213,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:213,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:214,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:215,1
    - Dst: to_string
      Src: /src/image/src/codecs/tiff.rs:215,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/tiff.rs:219,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/tiff.rs:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - err
    argTypes:
    - tiff::TiffError
    constantsTouched: []
    func_position:
      end: 222
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 222
    functionName: ImageError::from_tiff_encode
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - LimitError::from_kind
    - ImageError::Encoding
    - EncodingError::new
    - ImageError::IoError
    - ImageError::Limits
    - into
    - to_string
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: ImageError
    signature: 'fn from_tiff_encode(err: tiff::TiffError) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/image/src/codecs/tiff.rs:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: TiffReader::read
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: position
      Src: /src/image/src/codecs/tiff.rs:236,1
    - Dst: io::Result::is_empty
      Src: /src/image/src/codecs/tiff.rs:236,1
    - Dst: mem::swap
      Src: /src/image/src/codecs/tiff.rs:237,1
    - Dst: get_mut
      Src: /src/image/src/codecs/tiff.rs:237,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:238,1
    - Dst: io::Result::len
      Src: /src/image/src/codecs/tiff.rs:238,1
    - Dst: read_to_end
      Src: /src/image/src/codecs/tiff.rs:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 242
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 242
    functionName: TiffReader::read_to_end
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - io::Result::len
    - position
    - read_to_end
    - mem::swap
    - get_mut
    - Ok
    - io::Result::is_empty
    linkageType: ''
    returnType: io::Result
    signature: 'fn read_to_end(&mut self, buf: &mut Vec<u8>) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: TiffDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: TiffDecoder::color_type
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: TiffDecoder::original_color_type
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExtendedColorType
    signature: fn original_color_type(&self) -> ExtendedColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:260,1
    - Dst: ImageResult::get_tag_u8_vec
      Src: /src/image/src/codecs/tiff.rs:260,1
    - Dst: Tag::Unknown
      Src: /src/image/src/codecs/tiff.rs:260,1
    - Dst: ok
      Src: /src/image/src/codecs/tiff.rs:260,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 264
    functionName: TiffDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - ok
    - Ok
    - Tag::Unknown
    - ImageResult::get_tag_u8_vec
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:268,1
    - Dst: ImageResult::find_tag
      Src: /src/image/src/codecs/tiff.rs:268,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:268,1
    - Dst: and_then
      Src: /src/image/src/codecs/tiff.rs:268,1
    - Dst: Orientation::from_exif
      Src: /src/image/src/codecs/tiff.rs:271,1
    - Dst: DynamicImage::into_u16
      Src: /src/image/src/codecs/tiff.rs:271,1
    - Dst: ok
      Src: /src/image/src/codecs/tiff.rs:271,1
    - Dst: min
      Src: /src/image/src/codecs/tiff.rs:271,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/tiff.rs:268,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 276
    functionName: TiffDecoder::orientation
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::into_u16
    - map_err
    - ImageResult::find_tag
    - ok
    - unwrap_or
    - Orientation::from_exif
    - and_then
    - Ok
    - min
    linkageType: ''
    returnType: ImageResult
    signature: fn orientation(&mut self) -> ImageResult<Orientation>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_support
      Src: /src/image/src/codecs/tiff.rs:279,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/tiff.rs:279,1
    - Dst: TiffDecoder::dimensions
      Src: /src/image/src/codecs/tiff.rs:281,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/codecs/tiff.rs:282,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/tiff.rs:284,1
    - Dst: saturating_sub
      Src: /src/image/src/codecs/tiff.rs:285,1
    - Dst: TiffDecoder::total_bytes_buffer
      Src: /src/image/src/codecs/tiff.rs:285,1
    - Dst: Default::default
      Src: /src/image/src/codecs/tiff.rs:287,1
    - Dst: usize::try_from
      Src: /src/image/src/codecs/tiff.rs:289,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/tiff.rs:289,1
    - Dst: usize::try_from
      Src: /src/image/src/codecs/tiff.rs:291,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/tiff.rs:291,1
    - Dst: Some
      Src: /src/image/src/codecs/tiff.rs:293,1
    - Dst: take
      Src: /src/image/src/codecs/tiff.rs:293,1
    - Dst: unwrap
      Src: /src/image/src/codecs/tiff.rs:293,1
    - Dst: with_limits
      Src: /src/image/src/codecs/tiff.rs:293,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 1
    argNames:
    - limits
    argTypes:
    - crate::Limits
    constantsTouched: []
    func_position:
      end: 296
      start: 278
    functionDepth: 4
    functionLinenumber: 278
    functionLinenumberEnd: 296
    functionName: TiffDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - crate::LimitSupport::default
    - saturating_sub
    - usize::try_from
    - Some
    - with_limits
    - Ok
    - unwrap_or
    - Limits::check_dimensions
    - TiffDecoder::total_bytes_buffer
    - unwrap
    - Limits::check_support
    - TiffDecoder::dimensions
    - Default::default
    - take
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: crate::Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unwrap
      Src: /src/image/src/codecs/tiff.rs:300,1
    - Dst: read_image
      Src: /src/image/src/codecs/tiff.rs:300,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:300,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/tiff.rs:307,1
    - Dst: DynamicImage::chunks_exact
      Src: /src/image/src/codecs/tiff.rs:308,1
    - Dst: Self::write_all
      Src: /src/image/src/codecs/tiff.rs:309,1
    - Dst: cmyk_to_rgb
      Src: /src/image/src/codecs/tiff.rs:309,1
    - Dst: u32::div_ceil
      Src: /src/image/src/codecs/tiff.rs:314,1
    - Dst: DynamicImage::chunks_exact
      Src: /src/image/src/codecs/tiff.rs:316,1
    - Dst: zip
      Src: /src/image/src/codecs/tiff.rs:316,1
    - Dst: io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/tiff.rs:318,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:320,1
    - Dst: utils::expand_bits
      Src: /src/image/src/codecs/tiff.rs:320,1
    - Dst: io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:324,1
    - Dst: io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:327,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:327,1
    - Dst: io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:330,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:330,1
    - Dst: io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:333,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:333,1
    - Dst: io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:336,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:336,1
    - Dst: io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:339,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:339,1
    - Dst: io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:342,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:342,1
    - Dst: io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:345,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:345,1
    - Dst: io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:348,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:348,1
    - Dst: io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:351,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:351,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:355,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 96
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 356
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 356
    functionName: TiffDecoder::read_image
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - u32::div_ceil
    - map_err
    - cmyk_to_rgb
    - DynamicImage::chunks_exact
    - copy_from_slice
    - io::Result::copy_from_slice
    - Self::write_all
    - unwrap
    - Cursor::new
    - read_image
    - zip
    - bytemuck::cast_slice
    - io::Result::chunks_exact_mut
    - utils::expand_bits
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/tiff.rs:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 360
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 360
    functionName: TiffDecoder::read_image_boxed
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:369,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:370,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:371,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - cmyk
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 378
      start: 368
    functionDepth: 3
    functionLinenumber: 368
    functionLinenumberEnd: 378
    functionName: cmyk_to_rgb
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - f32::from
    linkageType: ''
    returnType: '[u8; 3]'
    signature: 'fn cmyk_to_rgb(cmyk: &[u8]) -> [u8; 3]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytemuck::try_cast_slice
      Src: /src/image/src/codecs/tiff.rs:382,1
    - Dst: map
      Src: /src/image/src/codecs/tiff.rs:382,1
    - Dst: or_else
      Src: /src/image/src/codecs/tiff.rs:382,1
    - Dst: bytemuck::allocation::pod_collect_to_vec
      Src: /src/image/src/codecs/tiff.rs:390,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:391,1
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/tiff.rs:391,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:398,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/tiff.rs:398,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/tiff.rs:398,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/tiff.rs:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 406
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 406
    functionName: u8_slice_as_pod
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - bytemuck::allocation::pod_collect_to_vec
    - Err
    - or_else
    - ParameterError::from_kind
    - map
    - ParameterErrorKind::Generic
    - bytemuck::try_cast_slice
    - Ok
    - ImageError::Parameter
    - std::borrow::Cow::Owned
    linkageType: ''
    returnType: ImageResult
    signature: 'fn u8_slice_as_pod<P: bytemuck::Pod>(buf: &[u8]) -> ImageResult<std::borrow::Cow<''_,
      [P]>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 412
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 412
    functionName: TiffEncoder::new
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TiffEncoder
    signature: 'pub fn new(w: W) -> TiffEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExtendedColorType::buffer_size
      Src: /src/image/src/codecs/tiff.rs:432,1
    - Dst: tiff::encoder::TiffEncoder::new
      Src: /src/image/src/codecs/tiff.rs:440,1
    - Dst: TiffEncoder::map_err
      Src: /src/image/src/codecs/tiff.rs:440,1
    - Dst: write_image::<Gray8>
      Src: /src/image/src/codecs/tiff.rs:442,1
    - Dst: write_image::<RGB8>
      Src: /src/image/src/codecs/tiff.rs:443,1
    - Dst: write_image::<RGBA8>
      Src: /src/image/src/codecs/tiff.rs:444,1
    - Dst: write_image::<Gray16>
      Src: /src/image/src/codecs/tiff.rs:446,1
    - Dst: u8_slice_as_pod::<u16>
      Src: /src/image/src/codecs/tiff.rs:446,1
    - Dst: as_ref
      Src: /src/image/src/codecs/tiff.rs:446,1
    - Dst: write_image::<RGB16>
      Src: /src/image/src/codecs/tiff.rs:449,1
    - Dst: u8_slice_as_pod::<u16>
      Src: /src/image/src/codecs/tiff.rs:449,1
    - Dst: as_ref
      Src: /src/image/src/codecs/tiff.rs:449,1
    - Dst: write_image::<RGBA16>
      Src: /src/image/src/codecs/tiff.rs:452,1
    - Dst: u8_slice_as_pod::<u16>
      Src: /src/image/src/codecs/tiff.rs:452,1
    - Dst: as_ref
      Src: /src/image/src/codecs/tiff.rs:452,1
    - Dst: write_image::<RGB32Float>
      Src: /src/image/src/codecs/tiff.rs:454,1
    - Dst: u8_slice_as_pod::<f32>
      Src: /src/image/src/codecs/tiff.rs:457,1
    - Dst: as_ref
      Src: /src/image/src/codecs/tiff.rs:457,1
    - Dst: write_image::<RGBA32Float>
      Src: /src/image/src/codecs/tiff.rs:459,1
    - Dst: u8_slice_as_pod::<f32>
      Src: /src/image/src/codecs/tiff.rs:462,1
    - Dst: as_ref
      Src: /src/image/src/codecs/tiff.rs:462,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:465,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:465,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:466,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:467,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/tiff.rs:468,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:441,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:475,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 58
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 476
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 476
    functionName: TiffEncoder::encode
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - write_image::<Gray8>
    - map_err
    - u8_slice_as_pod::<u16>
    - u8_slice_as_pod::<f32>
    - Ok
    - Err
    - write_image::<Gray16>
    - write_image::<RGBA8>
    - UnsupportedErrorKind::Color
    - write_image::<RGB8>
    - ExtendedColorType::buffer_size
    - into
    - write_image::<RGBA32Float>
    - as_ref
    - write_image::<RGB16>
    - TiffEncoder::map_err
    - tiff::encoder::TiffEncoder::new
    - UnsupportedError::from_format_and_kind
    - write_image::<RGBA16>
    - write_image::<RGB32Float>
    - ImageError::Unsupported
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn encode(self,buf: &[u8],width: u32,height: u32,color_type: ExtendedColorType,)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TiffEncoder::encode
      Src: /src/image/src/codecs/tiff.rs:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 489
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 489
    functionName: TiffEncoder::write_image
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - TiffEncoder::encode
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_str
      Src: /src/image/src/codecs/ico/decoder.rs:47,1
    - Dst: write_str
      Src: /src/image/src/codecs/ico/decoder.rs:49,1
    - Dst: write_str
      Src: /src/image/src/codecs/ico/decoder.rs:51,1
    - Dst: write_str
      Src: /src/image/src/codecs/ico/decoder.rs:55,1
    - Dst: write_str
      Src: /src/image/src/codecs/ico/decoder.rs:57,1
    - Dst: write_str
      Src: /src/image/src/codecs/ico/decoder.rs:59,1
    - Dst: write_fmt
      Src: /src/image/src/codecs/ico/decoder.rs:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 69
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 69
    functionName: DecoderError::fmt
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - write_fmt
    - write_str
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_u32::<LittleEndian>
      Src: /src/image/src/codecs/dds.rs:120,1
    - Dst: Err
      Src: /src/image/src/codecs/dds.rs:122,1
    - Dst: DecoderError::PixelFormatSizeInvalid
      Src: /src/image/src/codecs/dds.rs:122,1
    - Dst: into
      Src: /src/image/src/codecs/dds.rs:122,1
    - Dst: Ok
      Src: /src/image/src/codecs/dds.rs:125,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/image/src/codecs/dds.rs:126,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/dds.rs:129,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/image/src/codecs/dds.rs:132,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/image/src/codecs/dds.rs:133,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/image/src/codecs/dds.rs:134,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/image/src/codecs/dds.rs:135,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/image/src/codecs/dds.rs:136,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut dyn Read'
    constantsTouched: []
    func_position:
      end: 138
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 138
    functionName: PixelFormat::from_reader
    functionSourceFile: /src/image/src/codecs/dds.rs
    functionUses: 0
    functionsReached:
    - DecoderError::PixelFormatSizeInvalid
    - Err
    - Result::read_exact
    - into
    - read_u32::<LittleEndian>
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_reader(r: &mut dyn Read) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/tga/header.rs:124,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/tga/header.rs:125,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/tga/header.rs:126,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/tga/header.rs:127,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:128,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:129,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/tga/header.rs:130,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:131,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:132,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:133,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:134,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/tga/header.rs:135,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/tga/header.rs:136,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut dyn Read'
    constantsTouched: []
    func_position:
      end: 138
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 138
    functionName: Header::from_reader
    functionSourceFile: /src/image/src/codecs/tga/header.rs
    functionUses: 0
    functionsReached:
    - Result::read_u8
    - read_u16::<LittleEndian>
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn from_reader(r: &mut dyn Read) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_u32::<LittleEndian>
      Src: /src/image/src/codecs/dds.rs:190,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/image/src/codecs/dds.rs:191,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/image/src/codecs/dds.rs:192,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/image/src/codecs/dds.rs:193,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/image/src/codecs/dds.rs:194,1
    - Dst: validate
      Src: /src/image/src/codecs/dds.rs:203,1
    - Dst: Ok
      Src: /src/image/src/codecs/dds.rs:205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut dyn Read'
    constantsTouched: []
    func_position:
      end: 206
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: DX10Header::from_reader
    functionSourceFile: /src/image/src/codecs/dds.rs
    functionUses: 0
    functionsReached:
    - read_u32::<LittleEndian>
    - Ok
    - validate
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_reader(r: &mut dyn Read) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/dds.rs:212,1
    - Dst: DecoderError::DxgiFormatInvalid
      Src: /src/image/src/codecs/dds.rs:212,1
    - Dst: into
      Src: /src/image/src/codecs/dds.rs:212,1
    - Dst: Err
      Src: /src/image/src/codecs/dds.rs:218,1
    - Dst: DecoderError::ResourceDimensionInvalid
      Src: /src/image/src/codecs/dds.rs:218,1
    - Dst: into
      Src: /src/image/src/codecs/dds.rs:218,1
    - Dst: Err
      Src: /src/image/src/codecs/dds.rs:224,1
    - Dst: DecoderError::Dx10FlagsInvalid
      Src: /src/image/src/codecs/dds.rs:224,1
    - Dst: into
      Src: /src/image/src/codecs/dds.rs:224,1
    - Dst: Err
      Src: /src/image/src/codecs/dds.rs:230,1
    - Dst: DecoderError::Dx10ArraySizeInvalid
      Src: /src/image/src/codecs/dds.rs:230,1
    - Dst: into
      Src: /src/image/src/codecs/dds.rs:230,1
    - Dst: Err
      Src: /src/image/src/codecs/dds.rs:235,1
    - Dst: DecoderError::Dx10FlagsInvalid
      Src: /src/image/src/codecs/dds.rs:235,1
    - Dst: into
      Src: /src/image/src/codecs/dds.rs:235,1
    - Dst: Ok
      Src: /src/image/src/codecs/dds.rs:238,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 239
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 239
    functionName: DX10Header::validate
    functionSourceFile: /src/image/src/codecs/dds.rs
    functionUses: 0
    functionsReached:
    - Err
    - DecoderError::Dx10ArraySizeInvalid
    - into
    - DecoderError::DxgiFormatInvalid
    - DecoderError::Dx10FlagsInvalid
    - DecoderError::ResourceDimensionInvalid
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn validate(&self) -> Result<(), ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/dds.rs:252,1
    - Dst: Err
      Src: /src/image/src/codecs/dds.rs:254,1
    - Dst: into
      Src: /src/image/src/codecs/dds.rs:254,1
    - Dst: Header::from_reader
      Src: /src/image/src/codecs/dds.rs:257,1
    - Dst: DX10Header::from_reader
      Src: /src/image/src/codecs/dds.rs:266,1
    - Dst: Err
      Src: /src/image/src/codecs/dds.rs:275,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/dds.rs:275,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/dds.rs:276,1
    - Dst: into
      Src: /src/image/src/codecs/dds.rs:277,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/dds.rs:278,1
    - Dst: Err
      Src: /src/image/src/codecs/dds.rs:288,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/dds.rs:288,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/dds.rs:289,1
    - Dst: into
      Src: /src/image/src/codecs/dds.rs:290,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/dds.rs:291,1
    - Dst: color_type
      Src: /src/image/src/codecs/dds.rs:298,1
    - Dst: bytes_per_pixel
      Src: /src/image/src/codecs/dds.rs:298,1
    - Dst: crate::utils::check_dimension_overflow
      Src: /src/image/src/codecs/dds.rs:300,1
    - Dst: Err
      Src: /src/image/src/codecs/dds.rs:302,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/dds.rs:302,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/dds.rs:303,1
    - Dst: into
      Src: /src/image/src/codecs/dds.rs:304,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/dds.rs:305,1
    - Dst: DxtDecoder::new
      Src: /src/image/src/codecs/dds.rs:314,1
    - Dst: Ok
      Src: /src/image/src/codecs/dds.rs:315,1
    - Dst: Err
      Src: /src/image/src/codecs/dds.rs:318,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/dds.rs:318,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/dds.rs:319,1
    - Dst: into
      Src: /src/image/src/codecs/dds.rs:320,1
    - Dst: UnsupportedErrorKind::Format
      Src: /src/image/src/codecs/dds.rs:321,1
    - Dst: ImageFormatHint::Name
      Src: /src/image/src/codecs/dds.rs:321,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/dds.rs:321,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 81
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 325
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 325
    functionName: DdsDecoder::new
    functionSourceFile: /src/image/src/codecs/dds.rs
    functionUses: 1
    functionsReached:
    - Err
    - Result::read_exact
    - DxtDecoder::new
    - color_type
    - crate::utils::check_dimension_overflow
    - into
    - Ok
    - UnsupportedErrorKind::Format
    - UnsupportedError::from_format_and_kind
    - DX10Header::from_reader
    - Header::from_reader
    - '&str::to_string'
    - bytes_per_pixel
    - ImageFormatHint::Name
    - ImageError::Unsupported
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(mut r: R) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dimensions
      Src: /src/image/src/codecs/dds.rs:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 329
    functionDepth: 8
    functionLinenumber: 329
    functionLinenumberEnd: 331
    functionName: DdsDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/dds.rs
    functionUses: 0
    functionsReached:
    - dimensions
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: color_type
      Src: /src/image/src/codecs/dds.rs:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 335
    functionName: DdsDecoder::color_type
    functionSourceFile: /src/image/src/codecs/dds.rs
    functionUses: 0
    functionsReached:
    - color_type
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/dds.rs:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 339
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 339
    functionName: DdsDecoder::read_image
    functionSourceFile: /src/image/src/codecs/dds.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/dds.rs:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 343
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 343
    functionName: DdsDecoder::read_image_boxed
    functionSourceFile: /src/image/src/codecs/dds.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 365
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 365
    functionName: test::dimension_overflow
    functionSourceFile: /src/image/src/codecs/dds.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn dimension_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_limits
      Src: /src/image/src/codecs/png.rs:40,1
    - Dst: Limits::no_limits
      Src: /src/image/src/codecs/png.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: PngDecoder::new
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 2
    functionsReached:
    - Limits::no_limits
    - Self::with_limits
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(r: R) -> ImageResult<PngDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_support
      Src: /src/image/src/codecs/png.rs:45,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/png.rs:45,1
    - Dst: usize::try_from
      Src: /src/image/src/codecs/png.rs:47,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/png.rs:47,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/png.rs:47,1
    - Dst: png::Decoder::new_with_limits
      Src: /src/image/src/codecs/png.rs:48,1
    - Dst: ImageResult::set_ignore_text_chunk
      Src: /src/image/src/codecs/png.rs:49,1
    - Dst: ImageResult::read_header_info
      Src: /src/image/src/codecs/png.rs:51,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:51,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/codecs/png.rs:52,1
    - Dst: ImageResult::set_transformations
      Src: /src/image/src/codecs/png.rs:57,1
    - Dst: ImageResult::read_info
      Src: /src/image/src/codecs/png.rs:58,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:58,1
    - Dst: Result::output_color_type
      Src: /src/image/src/codecs/png.rs:59,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:71,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:71,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:74,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:74,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:77,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:77,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:80,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:80,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:84,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:84,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:87,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:87,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:90,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:90,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:93,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:93,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:97,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:97,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:100,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:100,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:103,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:103,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:106,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:106,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:110,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:110,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/png.rs:110,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 83
    argCount: 2
    argNames:
    - r
    - limits
    argTypes:
    - R
    - Limits
    constantsTouched: []
    func_position:
      end: 119
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 119
    functionName: PngDecoder::with_limits
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - png::Decoder::new_with_limits
    - Err
    - crate::LimitSupport::default
    - ImageResult::set_ignore_text_chunk
    - usize::try_from
    - Result::output_color_type
    - map_err
    - Ok
    - unwrap_or
    - ImageResult::read_header_info
    - ExtendedColorType::Unknown
    - Limits::check_dimensions
    - ImageResult::set_transformations
    - Limits::check_support
    - ImageResult::read_info
    - unsupported_color
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn with_limits(r: R, limits: Limits) -> ImageResult<PngDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:130,1
    - Dst: info
      Src: /src/image/src/codecs/png.rs:130,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:130,1
    - Dst: f64::from
      Src: /src/image/src/codecs/png.rs:134,1
    - Dst: into_scaled
      Src: /src/image/src/codecs/png.rs:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: PngDecoder::gamma_value
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - map
    - info
    - f64::from
    - into_scaled
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: pub fn gamma_value(&self) -> ImageResult<Option<f64>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:148,1
    - Dst: ApngDecoder::new
      Src: /src/image/src/codecs/png.rs:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: PngDecoder::apng
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - ApngDecoder::new
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: pub fn apng(self) -> ImageResult<ApngDecoder<R>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:158,1
    - Dst: info
      Src: /src/image/src/codecs/png.rs:158,1
    - Dst: is_some
      Src: /src/image/src/codecs/png.rs:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: PngDecoder::is_apng
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - info
    - Ok
    - is_some
    linkageType: ''
    returnType: ImageResult
    signature: pub fn is_apng(&self) -> ImageResult<bool>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/png.rs:163,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/png.rs:163,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:164,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/png.rs:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ect
    argTypes:
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 167
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: unsupported_color
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - UnsupportedErrorKind::Color
    - into
    linkageType: ''
    returnType: ImageError
    signature: 'fn unsupported_color(ect: ExtendedColorType) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: info
      Src: /src/image/src/codecs/png.rs:171,1
    - Dst: size
      Src: /src/image/src/codecs/png.rs:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: PngDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - size
    - info
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: PngDecoder::color_type
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:179,1
    - Dst: info
      Src: /src/image/src/codecs/png.rs:179,1
    - Dst: as_ref
      Src: /src/image/src/codecs/png.rs:179,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:179,1
    - Dst: to_vec
      Src: /src/image/src/codecs/png.rs:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 10
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: PngDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - map
    - to_vec
    - info
    - as_ref
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next_frame
      Src: /src/image/src/codecs/png.rs:186,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:186,1
    - Dst: PngDecoder::color_type
      Src: /src/image/src/codecs/png.rs:191,1
    - Dst: ColorType::bytes_per_pixel
      Src: /src/image/src/codecs/png.rs:191,1
    - Dst: PngDecoder::color_type
      Src: /src/image/src/codecs/png.rs:191,1
    - Dst: ColorType::channel_count
      Src: /src/image/src/codecs/png.rs:191,1
    - Dst: io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/png.rs:195,1
    - Dst: for_each
      Src: /src/image/src/codecs/png.rs:195,1
    - Dst: BigEndian::read_u16
      Src: /src/image/src/codecs/png.rs:196,1
    - Dst: NativeEndian::write_u16
      Src: /src/image/src/codecs/png.rs:197,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 202
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 202
    functionName: PngDecoder::read_image
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - for_each
    - map_err
    - BigEndian::read_u16
    - io::Result::chunks_exact_mut
    - Ok
    - ColorType::bytes_per_pixel
    - PngDecoder::color_type
    - ColorType::channel_count
    - next_frame
    - NativeEndian::write_u16
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/png.rs:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: PngDecoder::read_image_boxed
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_support
      Src: /src/image/src/codecs/png.rs:209,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/png.rs:209,1
    - Dst: info
      Src: /src/image/src/codecs/png.rs:210,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/codecs/png.rs:211,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - limits
    argTypes:
    - Limits
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: PngDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - crate::LimitSupport::default
    - info
    - Limits::check_dimensions
    - Limits::check_support
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: info
      Src: /src/image/src/codecs/png.rs:245,1
    - Dst: ImageResult::animation_control
      Src: /src/image/src/codecs/png.rs:246,1
    - Dst: is_none
      Src: /src/image/src/codecs/png.rs:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - inner
    argTypes:
    - PngDecoder<R>
    constantsTouched: []
    func_position:
      end: 263
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 263
    functionName: ApngDecoder::new
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - ImageResult::animation_control
    - info
    - is_none
    linkageType: ''
    returnType: Self
    signature: 'fn new(inner: PngDecoder<R>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dimensions
      Src: /src/image/src/codecs/png.rs:273,1
    - Dst: is_none
      Src: /src/image/src/codecs/png.rs:276,1
    - Dst: Limits::reserve_buffer
      Src: /src/image/src/codecs/png.rs:277,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:278,1
    - Dst: RgbaImage::new
      Src: /src/image/src/codecs/png.rs:278,1
    - Dst: is_none
      Src: /src/image/src/codecs/png.rs:281,1
    - Dst: Limits::reserve_buffer
      Src: /src/image/src/codecs/png.rs:282,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:283,1
    - Dst: RgbaImage::new
      Src: /src/image/src/codecs/png.rs:283,1
    - Dst: checked_sub
      Src: /src/image/src/codecs/png.rs:288,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:289,1
    - Dst: clone
      Src: /src/image/src/codecs/png.rs:300,1
    - Dst: Limits::reserve_usize
      Src: /src/image/src/codecs/png.rs:301,1
    - Dst: output_buffer_size
      Src: /src/image/src/codecs/png.rs:301,1
    - Dst: next_frame
      Src: /src/image/src/codecs/png.rs:305,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:305,1
    - Dst: ApngDecoder::animatable_color_type
      Src: /src/image/src/codecs/png.rs:312,1
    - Dst: as_mut
      Src: /src/image/src/codecs/png.rs:315,1
    - Dst: unwrap
      Src: /src/image/src/codecs/png.rs:315,1
    - Dst: as_mut
      Src: /src/image/src/codecs/png.rs:316,1
    - Dst: unwrap
      Src: /src/image/src/codecs/png.rs:316,1
    - Dst: clone_from
      Src: /src/image/src/codecs/png.rs:322,1
    - Dst: clone_from
      Src: /src/image/src/codecs/png.rs:325,1
    - Dst: sub_image
      Src: /src/image/src/codecs/png.rs:327,1
    - Dst: pixels
      Src: /src/image/src/codecs/png.rs:330,1
    - Dst: collect
      Src: /src/image/src/codecs/png.rs:330,1
    - Dst: put_pixel
      Src: /src/image/src/codecs/png.rs:333,1
    - Dst: Rgba::from
      Src: /src/image/src/codecs/png.rs:333,1
    - Dst: pixels_mut
      Src: /src/image/src/codecs/png.rs:337,1
    - Dst: for_each
      Src: /src/image/src/codecs/png.rs:337,1
    - Dst: Rgba::from
      Src: /src/image/src/codecs/png.rs:338,1
    - Dst: expect
      Src: /src/image/src/codecs/png.rs:343,1
    - Dst: sub_image
      Src: /src/image/src/codecs/png.rs:346,1
    - Dst: copy_from
      Src: /src/image/src/codecs/png.rs:347,1
    - Dst: to_image
      Src: /src/image/src/codecs/png.rs:348,1
    - Dst: unwrap
      Src: /src/image/src/codecs/png.rs:347,1
    - Dst: clone
      Src: /src/image/src/codecs/png.rs:356,1
    - Dst: output_buffer_size
      Src: /src/image/src/codecs/png.rs:359,1
    - Dst: Limits::reserve_usize
      Src: /src/image/src/codecs/png.rs:360,1
    - Dst: next_frame
      Src: /src/image/src/codecs/png.rs:364,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:364,1
    - Dst: info
      Src: /src/image/src/codecs/png.rs:368,1
    - Dst: ImageResult::frame_control
      Src: /src/image/src/codecs/png.rs:372,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:390,1
    - Dst: Limits::reserve_buffer
      Src: /src/image/src/codecs/png.rs:393,1
    - Dst: ImageBuffer::<Luma<_>, _>::from_raw
      Src: /src/image/src/codecs/png.rs:396,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/png.rs:396,1
    - Dst: DynamicImage::ImageLuma8
      Src: /src/image/src/codecs/png.rs:397,1
    - Dst: into_rgba8
      Src: /src/image/src/codecs/png.rs:397,1
    - Dst: ImageBuffer::<LumaA<_>, _>::from_raw
      Src: /src/image/src/codecs/png.rs:400,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/png.rs:400,1
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/src/codecs/png.rs:401,1
    - Dst: into_rgba8
      Src: /src/image/src/codecs/png.rs:401,1
    - Dst: ImageBuffer::<Rgb<_>, _>::from_raw
      Src: /src/image/src/codecs/png.rs:404,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/png.rs:404,1
    - Dst: DynamicImage::ImageRgb8
      Src: /src/image/src/codecs/png.rs:405,1
    - Dst: into_rgba8
      Src: /src/image/src/codecs/png.rs:405,1
    - Dst: ImageBuffer::<Rgba<_>, _>::from_raw
      Src: /src/image/src/codecs/png.rs:407,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/png.rs:407,1
    - Dst: Limits::free_usize
      Src: /src/image/src/codecs/png.rs:415,1
    - Dst: copy_from
      Src: /src/image/src/codecs/png.rs:419,1
    - Dst: expect
      Src: /src/image/src/codecs/png.rs:419,1
    - Dst: Option::enumerate_pixels
      Src: /src/image/src/codecs/png.rs:425,1
    - Dst: get_pixel_mut
      Src: /src/image/src/codecs/png.rs:426,1
    - Dst: blend
      Src: /src/image/src/codecs/png.rs:426,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:435,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:435,1
    - Dst: as_ref
      Src: /src/image/src/codecs/png.rs:435,1
    - Dst: unwrap
      Src: /src/image/src/codecs/png.rs:435,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 266
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 436
      start: 268
    functionDepth: 8
    functionLinenumber: 268
    functionLinenumberEnd: 436
    functionName: ApngDecoder::mix_next_frame
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - for_each
    - Limits::reserve_buffer
    - ImageResult::frame_control
    - Some
    - into_rgba8
    - pixels
    - map_err
    - info
    - Limits::free_usize
    - output_buffer_size
    - collect
    - unwrap
    - ImageBuffer::<Rgba<_>, _>::from_raw
    - put_pixel
    - ImageBuffer::<Rgb<_>, _>::from_raw
    - next_frame
    - Ok
    - is_none
    - blend
    - RgbaImage::new
    - ApngDecoder::animatable_color_type
    - clone_from
    - DynamicImage::ImageRgb8
    - copy_from
    - Rgba::from
    - expect
    - get_pixel_mut
    - Option::enumerate_pixels
    - clone
    - checked_sub
    - ImageResult::unwrap
    - dimensions
    - DynamicImage::ImageLuma8
    - as_ref
    - pixels_mut
    - Limits::reserve_usize
    - to_image
    - sub_image
    - as_mut
    - ImageBuffer::<LumaA<_>, _>::from_raw
    - DynamicImage::ImageLumaA8
    - ImageBuffer::<Luma<_>, _>::from_raw
    linkageType: ''
    returnType: Result
    signature: fn mix_next_frame(&mut self) -> Result<Option<&RgbaImage>, ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:440,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:443,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:443,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 447
    functionName: ApngDecoder::animatable_color_type
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - Err
    - Ok
    - into
    - unsupported_color
    linkageType: ''
    returnType: Result
    signature: fn animatable_color_type(&self) -> Result<(), ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Frames::new
      Src: /src/image/src/codecs/png.rs:478,1
    - Dst: Box::new
      Src: /src/image/src/codecs/png.rs:478,1
    - Dst: FrameIterator
      Src: /src/image/src/codecs/png.rs:478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 479
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 479
    functionName: ApngDecoder::into_frames
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - Frames::new
    - FrameIterator
    linkageType: ''
    returnType: Frames
    signature: fn into_frames(self) -> Frames<'a>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CompressionType::default
      Src: /src/image/src/codecs/png.rs:539,1
    - Dst: FilterType::default
      Src: /src/image/src/codecs/png.rs:540,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/png.rs:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 543
      start: 536
    functionDepth: 2
    functionLinenumber: 536
    functionLinenumberEnd: 543
    functionName: PngEncoder::new
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - Vec::new
    - CompressionType::default
    - FilterType::default
    linkageType: ''
    returnType: PngEncoder
    signature: 'pub fn new(w: W) -> PngEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/png.rs:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - w
    - compression
    - filter
    argTypes:
    - W
    - CompressionType
    - FilterType
    constantsTouched: []
    func_position:
      end: 568
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 568
    functionName: PngEncoder::new_with_quality
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    linkageType: ''
    returnType: PngEncoder
    signature: 'pub fn new_with_quality(w: W,compression: CompressionType,filter:
      FilterType,) -> PngEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:587,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/png.rs:587,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/png.rs:588,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:589,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/png.rs:590,1
    - Dst: png::Info::with_size
      Src: /src/image/src/codecs/png.rs:612,1
    - Dst: is_empty
      Src: /src/image/src/codecs/png.rs:614,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:615,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/png.rs:615,1
    - Dst: png::Encoder::with_info
      Src: /src/image/src/codecs/png.rs:619,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:619,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/png.rs:619,1
    - Dst: ::std::io::Result::into
      Src: /src/image/src/codecs/png.rs:619,1
    - Dst: ImageResult::set_color
      Src: /src/image/src/codecs/png.rs:621,1
    - Dst: ImageResult::set_depth
      Src: /src/image/src/codecs/png.rs:622,1
    - Dst: ImageResult::set_compression
      Src: /src/image/src/codecs/png.rs:623,1
    - Dst: ImageResult::set_filter
      Src: /src/image/src/codecs/png.rs:624,1
    - Dst: ImageResult::set_adaptive_filter
      Src: /src/image/src/codecs/png.rs:625,1
    - Dst: ImageResult::write_header
      Src: /src/image/src/codecs/png.rs:626,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/png.rs:626,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/png.rs:628,1
    - Dst: ::std::io::Result::into
      Src: /src/image/src/codecs/png.rs:628,1
    - Dst: write_image_data
      Src: /src/image/src/codecs/png.rs:629,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:629,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/png.rs:631,1
    - Dst: ::std::io::Result::into
      Src: /src/image/src/codecs/png.rs:631,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 81
    argCount: 4
    argNames:
    - data
    - width
    - height
    - color
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 632
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 632
    functionName: PngEncoder::encode_inner
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - Some
    - map_err
    - png::Encoder::with_info
    - ImageResult::set_adaptive_filter
    - ImageResult::set_filter
    - ImageResult::set_compression
    - Err
    - Cow::Borrowed
    - ImageResult::write_header
    - png::Info::with_size
    - UnsupportedErrorKind::Color
    - is_empty
    - ImageResult::set_depth
    - ImageResult::map_err
    - ImageError::IoError
    - ImageResult::set_color
    - into
    - write_image_data
    - ::std::io::Result::into
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    linkageType: ''
    returnType: ImageResult
    signature: 'fn encode_inner(self,data: &[u8],width: u32,height: u32,color: ExtendedColorType,)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExtendedColorType::buffer_size
      Src: /src/image/src/codecs/png.rs:651,1
    - Dst: PngEncoder::encode_inner
      Src: /src/image/src/codecs/png.rs:666,1
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/codecs/png.rs:674,1
    - Dst: io::Result::len
      Src: /src/image/src/codecs/png.rs:674,1
    - Dst: extend
      Src: /src/image/src/codecs/png.rs:675,1
    - Dst: io::Result::chunks_exact
      Src: /src/image/src/codecs/png.rs:675,1
    - Dst: flat_map
      Src: /src/image/src/codecs/png.rs:675,1
    - Dst: PngEncoder::encode_inner
      Src: /src/image/src/codecs/png.rs:680,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:682,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/png.rs:682,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/png.rs:682,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:683,1
    - Dst: BadPngRepresentation::ColorType
      Src: /src/image/src/codecs/png.rs:684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 687
      start: 642
    functionDepth: 2
    functionLinenumber: 642
    functionLinenumberEnd: 687
    functionName: PngEncoder::write_image
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - ExtendedColorType::buffer_size
    - utils::vec_try_with_capacity
    - io::Result::len
    - Err
    - ImageError::Encoding
    - flat_map
    - EncodingError::new
    - BadPngRepresentation::ColorType
    - into
    - PngEncoder::encode_inner
    - extend
    - io::Result::chunks_exact
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - icc_profile
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 692
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 692
    functionName: PngEncoder::set_icc_profile
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_icc_profile(&mut self, icc_profile: Vec<u8>) -> Result<(),
      UnsupportedError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/png.rs:699,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/png.rs:702,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/png.rs:702,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:702,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/png.rs:708,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/png.rs:708,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/png.rs:709,1
    - Dst: ImageError::to_string
      Src: /src/image/src/codecs/png.rs:709,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/png.rs:712,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/png.rs:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - err
    argTypes:
    - png::DecodingError
    constantsTouched: []
    func_position:
      end: 715
      start: 696
    functionDepth: 2
    functionLinenumber: 696
    functionLinenumberEnd: 715
    functionName: ImageError::from_png
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - LimitError::from_kind
    - ParameterError::from_kind
    - DecodingError::new
    - ImageError::IoError
    - ParameterErrorKind::Generic
    - ImageError::Limits
    - into
    - ImageError::Decoding
    - ImageError::to_string
    - ImageError::Parameter
    linkageType: ''
    returnType: ImageError
    signature: 'fn from_png(err: png::DecodingError) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 725
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 725
    functionName: BadPngRepresentation::fmt
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PngDecoder::new
      Src: /src/image/src/codecs/png.rs:738,1
    - Dst: BufReader::new
      Src: /src/image/src/codecs/png.rs:738,1
    - Dst: std::fs::File::open
      Src: /src/image/src/codecs/png.rs:739,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/png.rs:739,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/png.rs:738,1
    - Dst: decoder_to_vec
      Src: /src/image/src/codecs/png.rs:752,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/png.rs:752,1
    - Dst: bytes
      Src: /src/image/src/codecs/png.rs:752,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:752,1
    - Dst: expect
      Src: /src/image/src/codecs/png.rs:755,1
    - Dst: "expect(\"Unable to read file\")\n            .bytes()\n            .map(|x|\
        \ x.expect(\"Unable to read byte\"))\n            .collect::<Vec<u8>>"
      Src: /src/image/src/codecs/png.rs:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 759
      start: 737
    functionDepth: 10
    functionLinenumber: 737
    functionLinenumberEnd: 759
    functionName: tests::ensure_no_decoder_off_by_one
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - expect
    - map
    - std::fs::File::open
    - bytes
    - "expect(\"Unable to read file\")\n            .bytes()\n            .map(|x|\
      \ x.expect(\"Unable to read byte\"))\n            .collect::<Vec<u8>>"
    - io::Result::unwrap
    - ImageResult::expect
    - BufReader::new
    - decoder_to_vec
    - PngDecoder::new
    linkageType: ''
    returnType: void
    signature: fn ensure_no_decoder_off_by_one()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/image/src/codecs/png.rs:766,1
    - Dst: bool::unwrap
      Src: /src/image/src/codecs/png.rs:766,1
    - Dst: PngDecoder::new
      Src: /src/image/src/codecs/png.rs:770,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/png.rs:770,1
    - Dst: ImageResult::err
      Src: /src/image/src/codecs/png.rs:770,1
    - Dst: ImageError::unwrap
      Src: /src/image/src/codecs/png.rs:770,1
    - Dst: source
      Src: /src/image/src/codecs/png.rs:771,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/png.rs:771,1
    - Dst: "source()\n            .unwrap()\n            .downcast_ref::<png::DecodingError>"
      Src: /src/image/src/codecs/png.rs:771,1
    - Dst: expect
      Src: /src/image/src/codecs/png.rs:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 776
      start: 762
    functionDepth: 4
    functionLinenumber: 762
    functionLinenumberEnd: 776
    functionName: tests::underlying_error
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - expect
    - std::fs::read
    - source
    - Cursor::new
    - "source()\n            .unwrap()\n            .downcast_ref::<png::DecodingError>"
    - bool::unwrap
    - ImageResult::err
    - ImageError::unwrap
    - PngDecoder::new
    linkageType: ''
    returnType: void
    signature: fn underlying_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::new_rgb32f
      Src: /src/image/src/codecs/png.rs:781,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/png.rs:782,1
    - Dst: Vec::write_to
      Src: /src/image/src/codecs/png.rs:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 784
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 784
    functionName: tests::encode_bad_color_type
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - Vec::write_to
    - DynamicImage::new_rgb32f
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn encode_bad_color_type()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_alpha_preference
      Src: /src/image/src/codecs/openexr.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - source
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: OpenExrDecoder::new
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 1
    functionsReached:
    - Self::with_alpha_preference
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(source: R) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exr::block::read
      Src: /src/image/src/codecs/openexr.rs:66,1
    - Dst: bool::map_err
      Src: /src/image/src/codecs/openexr.rs:66,1
    - Dst: headers
      Src: /src/image/src/codecs/openexr.rs:68,1
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:68,1
    - Dst: position
      Src: /src/image/src/codecs/openexr.rs:68,1
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:73,1
    - Dst: all
      Src: /src/image/src/codecs/openexr.rs:73,1
    - Dst: find_index_of_channel
      Src: /src/image/src/codecs/openexr.rs:76,1
    - Dst: Text::from
      Src: /src/image/src/codecs/openexr.rs:76,1
    - Dst: is_some
      Src: /src/image/src/codecs/openexr.rs:76,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/openexr.rs:68,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/openexr.rs:82,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/openexr.rs:82,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/openexr.rs:83,1
    - Dst: headers
      Src: /src/image/src/codecs/openexr.rs:88,1
    - Dst: find_index_of_channel
      Src: /src/image/src/codecs/openexr.rs:88,1
    - Dst: Text::from
      Src: /src/image/src/codecs/openexr.rs:90,1
    - Dst: is_some
      Src: /src/image/src/codecs/openexr.rs:88,1
    - Dst: Ok
      Src: /src/image/src/codecs/openexr.rs:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 2
    argNames:
    - source
    - alpha_preference
    argTypes:
    - R
    - Option<bool>
    constantsTouched: []
    func_position:
      end: 99
      start: 64
    functionDepth: 7
    functionLinenumber: 64
    functionLinenumberEnd: 99
    functionName: OpenExrDecoder::with_alpha_preference
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - position
    - all
    - bool::map_err
    - headers
    - iter
    - exr::block::read
    - is_some
    - DecodingError::new
    - ImageFormatHint::Exact
    - ImageError::Decoding
    - ok_or_else
    - Text::from
    - Ok
    - find_index_of_channel
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn with_alpha_preference(source: R, alpha_preference: Option<bool>)
      -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: meta_data
      Src: /src/image/src/codecs/openexr.rs:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: OpenExrDecoder::selected_exr_header
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - meta_data
    linkageType: ''
    returnType: '&exr::meta::header::Header'
    signature: fn selected_exr_header(&self) -> &exr::meta::header::Header
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenExrDecoder::selected_exr_header
      Src: /src/image/src/codecs/openexr.rs:109,1
    - Dst: u64::width
      Src: /src/image/src/codecs/openexr.rs:114,1
    - Dst: u64::height
      Src: /src/image/src/codecs/openexr.rs:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: OpenExrDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - u64::width
    - u64::height
    - OpenExrDecoder::selected_exr_header
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unwrap_or
      Src: /src/image/src/codecs/openexr.rs:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: OpenExrDecoder::color_type
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - unwrap_or
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: OpenExrDecoder::original_color_type
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExtendedColorType
    signature: fn original_color_type(&self) -> ExtendedColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenExrDecoder::selected_exr_header
      Src: /src/image/src/codecs/openexr.rs:136,1
    - Dst: OpenExrDecoder::color_type
      Src: /src/image/src/codecs/openexr.rs:137,1
    - Dst: ColorType::channel_count
      Src: /src/image/src/codecs/openexr.rs:137,1
    - Dst: OpenExrDecoder::selected_exr_header
      Src: /src/image/src/codecs/openexr.rs:139,1
    - Dst: OpenExrDecoder::selected_exr_header
      Src: /src/image/src/codecs/openexr.rs:141,1
    - Dst: OpenExrDecoder::dimensions
      Src: /src/image/src/codecs/openexr.rs:145,1
    - Dst: OpenExrDecoder::color_type
      Src: /src/image/src/codecs/openexr.rs:146,1
    - Dst: ColorType::bytes_per_pixel
      Src: /src/image/src/codecs/openexr.rs:146,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/openexr.rs:147,1
    - Dst: and_then
      Src: /src/image/src/codecs/openexr.rs:147,1
    - Dst: u64::checked_mul
      Src: /src/image/src/codecs/openexr.rs:149,1
    - Dst: map
      Src: /src/image/src/codecs/openexr.rs:152,1
    - Dst: '&mut [u8]::len'
      Src: /src/image/src/codecs/openexr.rs:153,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/openexr.rs:152,1
    - Dst: read
      Src: /src/image/src/codecs/openexr.rs:164,1
    - Dst: bool::no_deep_data
      Src: /src/image/src/codecs/openexr.rs:164,1
    - Dst: largest_resolution_level
      Src: /src/image/src/codecs/openexr.rs:164,1
    - Dst: rgba_channels
      Src: /src/image/src/codecs/openexr.rs:164,1
    - Dst: to_i32
      Src: /src/image/src/codecs/openexr.rs:171,1
    - Dst: x
      Src: /src/image/src/codecs/openexr.rs:175,1
    - Dst: y
      Src: /src/image/src/codecs/openexr.rs:176,1
    - Dst: x
      Src: /src/image/src/codecs/openexr.rs:177,1
    - Dst: width
      Src: /src/image/src/codecs/openexr.rs:177,1
    - Dst: y
      Src: /src/image/src/codecs/openexr.rs:178,1
    - Dst: height
      Src: /src/image/src/codecs/openexr.rs:178,1
    - Dst: to_usize
      Src: /src/image/src/codecs/openexr.rs:181,1
    - Dst: unwrap
      Src: /src/image/src/codecs/openexr.rs:181,1
    - Dst: flat_index_for_size
      Src: /src/image/src/codecs/openexr.rs:183,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/openexr.rs:185,1
    - Dst: first_valid_layer
      Src: /src/image/src/codecs/openexr.rs:164,1
    - Dst: all_attributes
      Src: /src/image/src/codecs/openexr.rs:164,1
    - Dst: from_chunks
      Src: /src/image/src/codecs/openexr.rs:164,1
    - Dst: map_err
      Src: /src/image/src/codecs/openexr.rs:164,1
    - Dst: '&mut [u8]::copy_from_slice'
      Src: /src/image/src/codecs/openexr.rs:202,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/openexr.rs:202,1
    - Dst: as_slice
      Src: /src/image/src/codecs/openexr.rs:203,1
    - Dst: Ok
      Src: /src/image/src/codecs/openexr.rs:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 124
    argCount: 1
    argNames:
    - unaligned_bytes
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 206
      start: 135
    functionDepth: 5
    functionLinenumber: 135
    functionLinenumberEnd: 206
    functionName: OpenExrDecoder::read_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - y
    - x
    - map_err
    - bool::no_deep_data
    - unwrap
    - all_attributes
    - u64::checked_mul
    - Ok
    - read
    - '&mut [u8]::copy_from_slice'
    - to_usize
    - height
    - flat_index_for_size
    - first_valid_layer
    - OpenExrDecoder::selected_exr_header
    - rgba_channels
    - copy_from_slice
    - OpenExrDecoder::dimensions
    - checked_mul
    - unwrap_or
    - from_chunks
    - bytemuck::cast_slice
    - ColorType::bytes_per_pixel
    - ColorType::channel_count
    - '&mut [u8]::len'
    - map
    - as_slice
    - width
    - to_i32
    - OpenExrDecoder::color_type
    - and_then
    - largest_resolution_level
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(self, unaligned_bytes: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/openexr.rs:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: OpenExrDecoder::read_image_boxed
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExtendedColorType::bits_per_pixel
      Src: /src/image/src/codecs/openexr.rs:228,1
    - Dst: "Image // TODO compression method zip??\n                ::from_channels"
      Src: /src/image/src/codecs/openexr.rs:232,1
    - Dst: SpecificChannels::rgb
      Src: /src/image/src/codecs/openexr.rs:235,1
    - Dst: u8::flat_index_for_size
      Src: /src/image/src/codecs/openexr.rs:236,1
    - Dst: Vec2
      Src: /src/image/src/codecs/openexr.rs:236,1
    - Dst: bytemuck::pod_read_unaligned
      Src: /src/image/src/codecs/openexr.rs:239,1
    - Dst: write
      Src: /src/image/src/codecs/openexr.rs:232,1
    - Dst: to_buffered
      Src: /src/image/src/codecs/openexr.rs:232,1
    - Dst: map_err
      Src: /src/image/src/codecs/openexr.rs:232,1
    - Dst: "Image // TODO compression method zip??\n                ::from_channels"
      Src: /src/image/src/codecs/openexr.rs:253,1
    - Dst: SpecificChannels::rgba
      Src: /src/image/src/codecs/openexr.rs:256,1
    - Dst: u8::flat_index_for_size
      Src: /src/image/src/codecs/openexr.rs:257,1
    - Dst: Vec2
      Src: /src/image/src/codecs/openexr.rs:257,1
    - Dst: bytemuck::pod_read_unaligned
      Src: /src/image/src/codecs/openexr.rs:260,1
    - Dst: write
      Src: /src/image/src/codecs/openexr.rs:253,1
    - Dst: to_buffered
      Src: /src/image/src/codecs/openexr.rs:253,1
    - Dst: map_err
      Src: /src/image/src/codecs/openexr.rs:253,1
    - Dst: Err
      Src: /src/image/src/codecs/openexr.rs:275,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/openexr.rs:275,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/openexr.rs:275,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/openexr.rs:276,1
    - Dst: Ok
      Src: /src/image/src/codecs/openexr.rs:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 61
    argCount: 5
    argNames:
    - buffered_write
    - unaligned_bytes
    - width
    - height
    - color_type
    argTypes:
    - impl Write + Seek
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 283
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 283
    functionName: write_buffer
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - to_buffered
    - SpecificChannels::rgba
    - Err
    - ImageError::Encoding
    - EncodingError::new
    - "Image // TODO compression method zip??\n                ::from_channels"
    - u8::flat_index_for_size
    - SpecificChannels::rgb
    - map_err
    - ImageFormatHint::Exact
    - Vec2
    - bytemuck::pod_read_unaligned
    - ExtendedColorType::bits_per_pixel
    - write
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_buffer(mut buffered_write: impl Write + Seek,unaligned_bytes:
      &[u8],width: u32,height: u32,color_type: ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/image/src/codecs/openexr.rs:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - write
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 295
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 295
    functionName: OpenExrEncoder::new
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 1
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(write: W) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExtendedColorType::buffer_size
      Src: /src/image/src/codecs/openexr.rs:314,1
    - Dst: write_buffer
      Src: /src/image/src/codecs/openexr.rs:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 323
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 323
    functionName: OpenExrEncoder::write_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - ExtendedColorType::buffer_size
    - write_buffer
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/openexr.rs:327,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/openexr.rs:327,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/openexr.rs:328,1
    - Dst: Error::to_string
      Src: /src/image/src/codecs/openexr.rs:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - exr_error
    argTypes:
    - Error
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 331
    functionName: to_image_err
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - DecodingError::new
    - Error::to_string
    - ImageError::Decoding
    - ImageFormatHint::Exact
    linkageType: ''
    returnType: ImageError
    signature: 'fn to_image_err(exr_error: Error) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_buffer
      Src: /src/image/src/codecs/openexr.rs:352,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/openexr.rs:354,1
    - Dst: Vec::as_raw
      Src: /src/image/src/codecs/openexr.rs:354,1
    - Dst: '&Container::as_slice'
      Src: /src/image/src/codecs/openexr.rs:354,1
    - Dst: Vec::width
      Src: /src/image/src/codecs/openexr.rs:355,1
    - Dst: Vec::height
      Src: /src/image/src/codecs/openexr.rs:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - write
    - image
    argTypes:
    - impl Write + Seek
    - '&Rgb32FImage'
    constantsTouched: []
    func_position:
      end: 359
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 359
    functionName: test::write_rgb_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - Vec::height
    - write_buffer
    - Vec::width
    - bytemuck::cast_slice
    - '&Container::as_slice'
    - Vec::as_raw
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_rgb_image(write: impl Write + Seek, image: &Rgb32FImage)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_buffer
      Src: /src/image/src/codecs/openexr.rs:365,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/openexr.rs:367,1
    - Dst: Vec::as_raw
      Src: /src/image/src/codecs/openexr.rs:367,1
    - Dst: '&Container::as_slice'
      Src: /src/image/src/codecs/openexr.rs:367,1
    - Dst: Vec::width
      Src: /src/image/src/codecs/openexr.rs:368,1
    - Dst: Vec::height
      Src: /src/image/src/codecs/openexr.rs:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - write
    - image
    argTypes:
    - impl Write + Seek
    - '&Rgba32FImage'
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 3
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: test::write_rgba_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - Vec::height
    - write_buffer
    - Vec::width
    - bytemuck::cast_slice
    - '&Container::as_slice'
    - Vec::as_raw
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_rgba_image(write: impl Write + Seek, image: &Rgba32FImage)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_as_rgba_image
      Src: /src/image/src/codecs/openexr.rs:376,1
    - Dst: BufReader::new
      Src: /src/image/src/codecs/openexr.rs:376,1
    - Dst: File::open
      Src: /src/image/src/codecs/openexr.rs:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - impl AsRef<Path>
    constantsTouched: []
    func_position:
      end: 377
      start: 375
    functionDepth: 5
    functionLinenumber: 375
    functionLinenumberEnd: 377
    functionName: test::read_as_rgba_image_from_file
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - File::open
    - BufReader::new
    - read_as_rgba_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_as_rgba_image_from_file(path: impl AsRef<Path>) -> ImageResult<Rgba32FImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_as_rgb_image
      Src: /src/image/src/codecs/openexr.rs:381,1
    - Dst: BufReader::new
      Src: /src/image/src/codecs/openexr.rs:381,1
    - Dst: File::open
      Src: /src/image/src/codecs/openexr.rs:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - impl AsRef<Path>
    constantsTouched: []
    func_position:
      end: 382
      start: 380
    functionDepth: 5
    functionLinenumber: 380
    functionLinenumberEnd: 382
    functionName: test::read_as_rgb_image_from_file
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - File::open
    - BufReader::new
    - read_as_rgb_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_as_rgb_image_from_file(path: impl AsRef<Path>) -> ImageResult<Rgb32FImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenExrDecoder::with_alpha_preference
      Src: /src/image/src/codecs/openexr.rs:386,1
    - Dst: Some
      Src: /src/image/src/codecs/openexr.rs:386,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/openexr.rs:387,1
    - Dst: decoder_to_vec
      Src: /src/image/src/codecs/openexr.rs:388,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/openexr.rs:390,1
    - Dst: Option::ok_or_else
      Src: /src/image/src/codecs/openexr.rs:390,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/openexr.rs:394,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/openexr.rs:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - read
    argTypes:
    - impl BufRead + Seek
    constantsTouched: []
    func_position:
      end: 396
      start: 385
    functionDepth: 8
    functionLinenumber: 385
    functionLinenumberEnd: 396
    functionName: test::read_as_rgb_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - LimitError::from_kind
    - ImageResult::dimensions
    - Some
    - Option::ok_or_else
    - ImageError::Limits
    - OpenExrDecoder::with_alpha_preference
    - ImageBuffer::from_raw
    - decoder_to_vec
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_as_rgb_image(read: impl BufRead + Seek) -> ImageResult<Rgb32FImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenExrDecoder::with_alpha_preference
      Src: /src/image/src/codecs/openexr.rs:400,1
    - Dst: Some
      Src: /src/image/src/codecs/openexr.rs:400,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/openexr.rs:401,1
    - Dst: decoder_to_vec
      Src: /src/image/src/codecs/openexr.rs:402,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/openexr.rs:404,1
    - Dst: Option::ok_or_else
      Src: /src/image/src/codecs/openexr.rs:404,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/openexr.rs:408,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/openexr.rs:408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - read
    argTypes:
    - impl BufRead + Seek
    constantsTouched: []
    func_position:
      end: 410
      start: 399
    functionDepth: 8
    functionLinenumber: 399
    functionLinenumberEnd: 410
    functionName: test::read_as_rgba_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - LimitError::from_kind
    - ImageResult::dimensions
    - Some
    - Option::ok_or_else
    - ImageError::Limits
    - OpenExrDecoder::with_alpha_preference
    - ImageBuffer::from_raw
    - decoder_to_vec
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_as_rgba_image(read: impl BufRead + Seek) -> ImageResult<Rgba32FImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:422,1
    - Dst: iter().collect::<PathBuf>
      Src: /src/image/src/codecs/openexr.rs:422,1
    - Dst: join
      Src: /src/image/src/codecs/openexr.rs:423,1
    - Dst: join
      Src: /src/image/src/codecs/openexr.rs:425,1
    - Dst: HdrDecoder::new
      Src: /src/image/src/codecs/openexr.rs:428,1
    - Dst: BufReader::new
      Src: /src/image/src/codecs/openexr.rs:428,1
    - Dst: File::open
      Src: /src/image/src/codecs/openexr.rs:428,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/openexr.rs:428,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:428,1
    - Dst: DynamicImage::from_decoder
      Src: /src/image/src/codecs/openexr.rs:429,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:429,1
    - Dst: read_as_rgb_image_from_file
      Src: /src/image/src/codecs/openexr.rs:434,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:434,1
    - Dst: pixels
      Src: /src/image/src/codecs/openexr.rs:437,1
    - Dst: Vec::zip
      Src: /src/image/src/codecs/openexr.rs:437,1
    - Dst: pixels
      Src: /src/image/src/codecs/openexr.rs:437,1
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:438,1
    - Dst: zip
      Src: /src/image/src/codecs/openexr.rs:438,1
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:438,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 448
      start: 413
    functionDepth: 10
    functionLinenumber: 413
    functionLinenumberEnd: 448
    functionName: test::compare_exr_hdr
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - File::open
    - iter
    - pixels
    - read_as_rgb_image_from_file
    - ImageResult::unwrap
    - HdrDecoder::new
    - zip
    - io::Result::unwrap
    - iter().collect::<PathBuf>
    - BufReader::new
    - Vec::zip
    - DynamicImage::from_decoder
    - join
    linkageType: ''
    returnType: void
    signature: fn compare_exr_hdr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/image/src/codecs/openexr.rs:452,1
    - Dst: cycle
      Src: /src/image/src/codecs/openexr.rs:452,1
    - Dst: next
      Src: /src/image/src/codecs/openexr.rs:455,1
    - Dst: unwrap
      Src: /src/image/src/codecs/openexr.rs:455,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/codecs/openexr.rs:457,1
    - Dst: Rgba
      Src: /src/image/src/codecs/openexr.rs:458,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:458,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:458,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:458,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:458,1
    - Dst: write_rgba_image
      Src: /src/image/src/codecs/openexr.rs:462,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/openexr.rs:462,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:462,1
    - Dst: read_as_rgba_image
      Src: /src/image/src/codecs/openexr.rs:463,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/openexr.rs:463,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 451
    functionDepth: 9
    functionLinenumber: 451
    functionLinenumberEnd: 466
    functionName: test::roundtrip_rgba
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - Rgba
    - next_random
    - write_rgba_image
    - ImageResult::unwrap
    - next
    - unwrap
    - Cursor::new
    - read_as_rgba_image
    - cycle
    - ImageBuffer::from_fn
    linkageType: ''
    returnType: void
    signature: fn roundtrip_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/image/src/codecs/openexr.rs:470,1
    - Dst: cycle
      Src: /src/image/src/codecs/openexr.rs:470,1
    - Dst: next
      Src: /src/image/src/codecs/openexr.rs:473,1
    - Dst: unwrap
      Src: /src/image/src/codecs/openexr.rs:473,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/codecs/openexr.rs:475,1
    - Dst: Rgb
      Src: /src/image/src/codecs/openexr.rs:476,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:476,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:476,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:476,1
    - Dst: write_rgb_image
      Src: /src/image/src/codecs/openexr.rs:480,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/openexr.rs:480,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:480,1
    - Dst: read_as_rgb_image
      Src: /src/image/src/codecs/openexr.rs:481,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/openexr.rs:481,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 484
      start: 469
    functionDepth: 9
    functionLinenumber: 469
    functionLinenumberEnd: 484
    functionName: test::roundtrip_rgb
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - next_random
    - write_rgb_image
    - ImageResult::unwrap
    - read_as_rgb_image
    - next
    - unwrap
    - Cursor::new
    - Rgb
    - cycle
    - ImageBuffer::from_fn
    linkageType: ''
    returnType: void
    signature: fn roundtrip_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:488,1
    - Dst: "iter()\n            .collect::<PathBuf>"
      Src: /src/image/src/codecs/openexr.rs:488,1
    - Dst: join
      Src: /src/image/src/codecs/openexr.rs:488,1
    - Dst: read_as_rgb_image_from_file
      Src: /src/image/src/codecs/openexr.rs:493,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:493,1
    - Dst: read_as_rgba_image_from_file
      Src: /src/image/src/codecs/openexr.rs:494,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:494,1
    - Dst: pixels
      Src: /src/image/src/codecs/openexr.rs:498,1
    - Dst: Vec::zip
      Src: /src/image/src/codecs/openexr.rs:498,1
    - Dst: pixels
      Src: /src/image/src/codecs/openexr.rs:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 501
      start: 487
    functionDepth: 10
    functionLinenumber: 487
    functionLinenumberEnd: 501
    functionName: test::compare_rgba_rgb
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - read_as_rgba_image_from_file
    - iter
    - pixels
    - read_as_rgb_image_from_file
    - ImageResult::unwrap
    - "iter()\n            .collect::<PathBuf>"
    - Vec::zip
    - join
    linkageType: ''
    returnType: void
    signature: fn compare_rgba_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:514,1
    - Dst: iter().collect::<PathBuf>
      Src: /src/image/src/codecs/openexr.rs:514,1
    - Dst: join
      Src: /src/image/src/codecs/openexr.rs:515,1
    - Dst: join
      Src: /src/image/src/codecs/openexr.rs:516,1
    - Dst: read_first_flat_layer_from_file
      Src: /src/image/src/codecs/openexr.rs:520,1
    - Dst: unwrap
      Src: /src/image/src/codecs/openexr.rs:520,1
    - Dst: read_first_flat_layer_from_file
      Src: /src/image/src/codecs/openexr.rs:521,1
    - Dst: unwrap
      Src: /src/image/src/codecs/openexr.rs:521,1
    - Dst: read_as_rgba_image_from_file
      Src: /src/image/src/codecs/openexr.rs:534,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:534,1
    - Dst: read_as_rgba_image_from_file
      Src: /src/image/src/codecs/openexr.rs:535,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 541
      start: 504
    functionDepth: 10
    functionLinenumber: 504
    functionLinenumberEnd: 541
    functionName: test::compare_cropped
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - read_first_flat_layer_from_file
    - read_as_rgba_image_from_file
    - iter
    - ImageResult::unwrap
    - unwrap
    - iter().collect::<PathBuf>
    - join
    linkageType: ''
    returnType: void
    signature: fn compare_cropped()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: qoi::Decoder::from_stream
      Src: /src/image/src/codecs/qoi.rs:20,1
    - Dst: map_err
      Src: /src/image/src/codecs/qoi.rs:20,1
    - Dst: Ok
      Src: /src/image/src/codecs/qoi.rs:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: QoiDecoder::new
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 1
    functionsReached:
    - qoi::Decoder::from_stream
    - map_err
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(reader: R) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: header
      Src: /src/image/src/codecs/qoi.rs:27,1
    - Dst: header
      Src: /src/image/src/codecs/qoi.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: QoiDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - header
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: header
      Src: /src/image/src/codecs/qoi.rs:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: QoiDecoder::color_type
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - header
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: decode_to_buf
      Src: /src/image/src/codecs/qoi.rs:38,1
    - Dst: map_err
      Src: /src/image/src/codecs/qoi.rs:38,1
    - Dst: Ok
      Src: /src/image/src/codecs/qoi.rs:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: QoiDecoder::read_image
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - map_err
    - decode_to_buf
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/qoi.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: QoiDecoder::read_image_boxed
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/qoi.rs:48,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/qoi.rs:48,1
    - Dst: into
      Src: /src/image/src/codecs/qoi.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - error
    argTypes:
    - qoi::Error
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: decoding_error
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - DecodingError::new
    - ImageError::Decoding
    - into
    linkageType: ''
    returnType: ImageError
    signature: 'fn decoding_error(error: qoi::Error) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/qoi.rs:52,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/qoi.rs:52,1
    - Dst: into
      Src: /src/image/src/codecs/qoi.rs:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - error
    argTypes:
    - qoi::Error
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: encoding_error
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - ImageError::Encoding
    - EncodingError::new
    - into
    linkageType: ''
    returnType: ImageError
    signature: 'fn encoding_error(error: qoi::Error) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - writer
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: QoiEncoder::new
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(writer: W) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/qoi.rs:80,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/qoi.rs:80,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/qoi.rs:80,1
    - Dst: into
      Src: /src/image/src/codecs/qoi.rs:81,1
    - Dst: ExtendedColorType::buffer_size
      Src: /src/image/src/codecs/qoi.rs:86,1
    - Dst: qoi::encode_to_vec
      Src: /src/image/src/codecs/qoi.rs:95,1
    - Dst: map_err
      Src: /src/image/src/codecs/qoi.rs:95,1
    - Dst: write_all
      Src: /src/image/src/codecs/qoi.rs:98,1
    - Dst: flush
      Src: /src/image/src/codecs/qoi.rs:99,1
    - Dst: Ok
      Src: /src/image/src/codecs/qoi.rs:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 102
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 102
    functionName: QoiEncoder::write_image
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - ExtendedColorType::buffer_size
    - Err
    - flush
    - ImageError::Encoding
    - EncodingError::new
    - write_all
    - map_err
    - into
    - qoi::encode_to_vec
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(mut self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QoiDecoder::new
      Src: /src/image/src/codecs/qoi.rs:112,1
    - Dst: File::open
      Src: /src/image/src/codecs/qoi.rs:112,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/qoi.rs:112,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/qoi.rs:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 5
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: tests::decode_test_image
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - File::open
    - ImageResult::expect
    - QoiDecoder::new
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn decode_test_image()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExtendedColorType::bits_per_pixel
      Src: /src/image/src/codecs/hdr/encoder.rs:24,1
    - Dst: '&[u8]::chunks_exact'
      Src: /src/image/src/codecs/hdr/encoder.rs:25,1
    - Dst: map
      Src: /src/image/src/codecs/hdr/encoder.rs:25,1
    - Dst: to_rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:27,1
    - Dst: Rgb::<f32>
      Src: /src/image/src/codecs/hdr/encoder.rs:27,1
    - Dst: bytemuck::pod_read_unaligned
      Src: /src/image/src/codecs/hdr/encoder.rs:27,1
    - Dst: HdrEncoder::encode_pixels
      Src: /src/image/src/codecs/hdr/encoder.rs:30,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/encoder.rs:33,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/hdr/encoder.rs:33,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/hdr/encoder.rs:33,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/hdr/encoder.rs:34,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/hdr/encoder.rs:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 4
    argNames:
    - unaligned_bytes
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 38
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 38
    functionName: HdrEncoder::write_image
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - to_rgbe8
    - Err
    - '&[u8]::chunks_exact'
    - map
    - ImageError::Encoding
    - EncodingError::new
    - Rgb::<f32>
    - ImageFormatHint::Exact
    - bytemuck::pod_read_unaligned
    - ExtendedColorType::bits_per_pixel
    - '&str::to_string'
    - HdrEncoder::encode_pixels
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(self,unaligned_bytes: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: HdrEncoder::new
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: HdrEncoder
    signature: 'pub fn new(w: W) -> HdrEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HdrEncoder::encode_pixels
      Src: /src/image/src/codecs/hdr/encoder.rs:50,1
    - Dst: iter
      Src: /src/image/src/codecs/hdr/encoder.rs:50,1
    - Dst: map
      Src: /src/image/src/codecs/hdr/encoder.rs:50,1
    - Dst: to_rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - rgb
    - width
    - height
    argTypes:
    - '&[Rgb<f32>]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: HdrEncoder::encode
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - map
    - iter
    - to_rgbe8
    - HdrEncoder::encode_pixels
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn encode(self, rgb: &[Rgb<f32>], width: usize, height: usize)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::write_all
      Src: /src/image/src/codecs/hdr/encoder.rs:68,1
    - Dst: Self::write_all
      Src: /src/image/src/codecs/hdr/encoder.rs:69,1
    - Dst: Self::write_all
      Src: /src/image/src/codecs/hdr/encoder.rs:70,1
    - Dst: Self::write_all
      Src: /src/image/src/codecs/hdr/encoder.rs:71,1
    - Dst: Self::write_all
      Src: /src/image/src/codecs/hdr/encoder.rs:72,1
    - Dst: as_bytes
      Src: /src/image/src/codecs/hdr/encoder.rs:72,1
    - Dst: contains
      Src: /src/image/src/codecs/hdr/encoder.rs:74,1
    - Dst: write_rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:76,1
    - Dst: codecs::hdr::rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:80,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/hdr/encoder.rs:90,1
    - Dst: zip
      Src: /src/image/src/codecs/hdr/encoder.rs:90,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/hdr/encoder.rs:92,1
    - Dst: zip
      Src: /src/image/src/codecs/hdr/encoder.rs:90,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/hdr/encoder.rs:93,1
    - Dst: zip
      Src: /src/image/src/codecs/hdr/encoder.rs:90,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/hdr/encoder.rs:94,1
    - Dst: zip
      Src: /src/image/src/codecs/hdr/encoder.rs:90,1
    - Dst: write_rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:103,1
    - Dst: clear
      Src: /src/image/src/codecs/hdr/encoder.rs:104,1
    - Dst: rle_compress
      Src: /src/image/src/codecs/hdr/encoder.rs:105,1
    - Dst: Self::write_all
      Src: /src/image/src/codecs/hdr/encoder.rs:106,1
    - Dst: clear
      Src: /src/image/src/codecs/hdr/encoder.rs:107,1
    - Dst: rle_compress
      Src: /src/image/src/codecs/hdr/encoder.rs:108,1
    - Dst: Self::write_all
      Src: /src/image/src/codecs/hdr/encoder.rs:109,1
    - Dst: clear
      Src: /src/image/src/codecs/hdr/encoder.rs:110,1
    - Dst: rle_compress
      Src: /src/image/src/codecs/hdr/encoder.rs:111,1
    - Dst: Self::write_all
      Src: /src/image/src/codecs/hdr/encoder.rs:112,1
    - Dst: clear
      Src: /src/image/src/codecs/hdr/encoder.rs:113,1
    - Dst: rle_compress
      Src: /src/image/src/codecs/hdr/encoder.rs:114,1
    - Dst: Self::write_all
      Src: /src/image/src/codecs/hdr/encoder.rs:115,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/encoder.rs:118,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 156
    argCount: 3
    argNames:
    - flattened_rgbe_pixels
    - width
    - height
    argTypes:
    - impl ExactSizeIterator<Item = Rgbe8Pixel>
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 119
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 119
    functionName: HdrEncoder::encode_pixels
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 2
    functionsReached:
    - rle_compress
    - write_rgbe8
    - contains
    - clear
    - iter_mut
    - Self::write_all
    - zip
    - codecs::hdr::rgbe8
    - Ok
    - as_bytes
    linkageType: ''
    returnType: ImageResult
    signature: 'fn encode_pixels(mut self,mut flattened_rgbe_pixels: impl ExactSizeIterator<Item
      = Rgbe8Pixel>,width: usize,height: usize,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&''a [u8]'
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: RunIterator::new
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RunIterator
    signature: 'fn new(data: &''a [u8]) -> RunIterator<''a>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/codecs/hdr/encoder.rs:148,1
    - Dst: iter
      Src: /src/image/src/codecs/hdr/encoder.rs:152,1
    - Dst: take_while
      Src: /src/image/src/codecs/hdr/encoder.rs:152,1
    - Dst: take
      Src: /src/image/src/codecs/hdr/encoder.rs:152,1
    - Dst: count
      Src: /src/image/src/codecs/hdr/encoder.rs:152,1
    - Dst: self::RunOrNot::Run
      Src: /src/image/src/codecs/hdr/encoder.rs:158,1
    - Dst: self::RunOrNot::Norun
      Src: /src/image/src/codecs/hdr/encoder.rs:160,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 165
    functionName: RunIterator::next
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - count
    - self::RunOrNot::Run
    - Some
    - iter
    - take_while
    - len
    - self::RunOrNot::Norun
    - take
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<Self::Item>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&''a [u8]'
    constantsTouched: []
    func_position:
      end: 179
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 179
    functionName: NorunCombineIterator::new
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - RunIterator::new
    linkageType: ''
    returnType: NorunCombineIterator
    signature: 'fn new(data: &''a [u8]) -> NorunCombineIterator<''a>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/image/src/codecs/hdr/encoder.rs:188,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:191,1
    - Dst: self::RunOrNot::Run
      Src: /src/image/src/codecs/hdr/encoder.rs:191,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/encoder.rs:195,1
    - Dst: cmp
      Src: /src/image/src/codecs/hdr/encoder.rs:199,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:200,1
    - Dst: self::RunOrNot::Norun
      Src: /src/image/src/codecs/hdr/encoder.rs:200,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:204,1
    - Dst: self::RunOrNot::Norun
      Src: /src/image/src/codecs/hdr/encoder.rs:204,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:206,1
    - Dst: self::RunOrNot::Norun
      Src: /src/image/src/codecs/hdr/encoder.rs:206,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:210,1
    - Dst: self::RunOrNot::Norun
      Src: /src/image/src/codecs/hdr/encoder.rs:210,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:217,1
    - Dst: self::RunOrNot::Run
      Src: /src/image/src/codecs/hdr/encoder.rs:217,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:218,1
    - Dst: self::RunOrNot::Norun
      Src: /src/image/src/codecs/hdr/encoder.rs:218,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:222,1
    - Dst: self::RunOrNot::Norun
      Src: /src/image/src/codecs/hdr/encoder.rs:222,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/encoder.rs:228,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:230,1
    - Dst: self::RunOrNot::Norun
      Src: /src/image/src/codecs/hdr/encoder.rs:230,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:235,1
    - Dst: self::RunOrNot::Run
      Src: /src/image/src/codecs/hdr/encoder.rs:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 186
    functionDepth: 5
    functionLinenumber: 186
    functionLinenumberEnd: 245
    functionName: NorunCombineIterator::next
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - cmp
    - self::RunOrNot::Run
    - Some
    - next
    - self::RunOrNot::Norun
    - take
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<Self::Item>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::clear
      Src: /src/image/src/codecs/hdr/encoder.rs:250,1
    - Dst: ImageResult::is_empty
      Src: /src/image/src/codecs/hdr/encoder.rs:251,1
    - Dst: ImageResult::push
      Src: /src/image/src/codecs/hdr/encoder.rs:252,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:258,1
    - Dst: ImageResult::push
      Src: /src/image/src/codecs/hdr/encoder.rs:262,1
    - Dst: ImageResult::push
      Src: /src/image/src/codecs/hdr/encoder.rs:263,1
    - Dst: ImageResult::push
      Src: /src/image/src/codecs/hdr/encoder.rs:267,1
    - Dst: ImageResult::extend_from_slice
      Src: /src/image/src/codecs/hdr/encoder.rs:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 2
    argNames:
    - data
    - rle
    argTypes:
    - '&[u8]'
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 272
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 272
    functionName: rle_compress
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 1
    functionsReached:
    - ImageResult::push
    - ImageResult::clear
    - NorunCombineIterator::new
    - ImageResult::extend_from_slice
    - ImageResult::is_empty
    linkageType: ''
    returnType: void
    signature: 'fn rle_compress(data: &[u8], rle: &mut Vec<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::write_all
      Src: /src/image/src/codecs/hdr/encoder.rs:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - w
    - v
    argTypes:
    - '&mut W'
    - Rgbe8Pixel
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: write_rgbe8
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 1
    functionsReached:
    - Self::write_all
    linkageType: ''
    returnType: Result
    signature: 'fn write_rgbe8<W: Write>(w: &mut W, v: Rgbe8Pixel) -> Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f32::max
      Src: /src/image/src/codecs/hdr/encoder.rs:281,1
    - Dst: f32::max
      Src: /src/image/src/codecs/hdr/encoder.rs:281,1
    - Dst: log2
      Src: /src/image/src/codecs/hdr/encoder.rs:286,1
    - Dst: floor
      Src: /src/image/src/codecs/hdr/encoder.rs:286,1
    - Dst: f32::powi
      Src: /src/image/src/codecs/hdr/encoder.rs:287,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/hdr/encoder.rs:289,1
    - Dst: zip
      Src: /src/image/src/codecs/hdr/encoder.rs:289,1
    - Dst: Rgb<f32>::iter
      Src: /src/image/src/codecs/hdr/encoder.rs:289,1
    - Dst: f32::trunc
      Src: /src/image/src/codecs/hdr/encoder.rs:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 1
    argNames:
    - pix
    argTypes:
    - Rgb<f32>
    constantsTouched: []
    func_position:
      end: 297
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 297
    functionName: to_rgbe8
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 2
    functionsReached:
    - f32::powi
    - floor
    - log2
    - iter_mut
    - zip
    - f32::trunc
    - f32::max
    - Rgb<f32>::iter
    linkageType: ''
    returnType: Rgbe8Pixel
    signature: 'pub(crate) fn to_rgbe8(pix: Rgb<f32>) -> Rgbe8Pixel'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/codecs/hdr/encoder.rs:329,1
    - Dst: zip
      Src: /src/image/src/codecs/hdr/encoder.rs:329,1
    - Dst: iter
      Src: /src/image/src/codecs/hdr/encoder.rs:330,1
    - Dst: fold
      Src: /src/image/src/codecs/hdr/encoder.rs:329,1
    - Dst: f32::max
      Src: /src/image/src/codecs/hdr/encoder.rs:331,1
    - Dst: abs
      Src: /src/image/src/codecs/hdr/encoder.rs:331,1
    - Dst: iter
      Src: /src/image/src/codecs/hdr/encoder.rs:333,1
    - Dst: chain
      Src: /src/image/src/codecs/hdr/encoder.rs:333,1
    - Dst: iter
      Src: /src/image/src/codecs/hdr/encoder.rs:334,1
    - Dst: fold
      Src: /src/image/src/codecs/hdr/encoder.rs:333,1
    - Dst: f32::max
      Src: /src/image/src/codecs/hdr/encoder.rs:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Rgb<f32>
    - Rgb<f32>
    constantsTouched: []
    func_position:
      end: 341
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 341
    functionName: t::o::_::r::g::b::e::8::_::t::e::s::t::relative_dist
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - chain
    - iter
    - fold
    - zip
    - abs
    - f32::max
    linkageType: ''
    returnType: f32
    signature: 'fn relative_dist(a: Rgb<f32>, b: Rgb<f32>) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: codecs::hdr::rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:308,1
    - Dst: codecs::hdr::rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:310,1
    - Dst: codecs::hdr::rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:312,1
    - Dst: codecs::hdr::rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:314,1
    - Dst: codecs::hdr::rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:316,1
    - Dst: codecs::hdr::rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:322,1
    - Dst: color::Rgb
      Src: /src/image/src/codecs/hdr/encoder.rs:349,1
    - Dst: to_rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:350,1
    - Dst: Rgbe8Pixel::to_hdr
      Src: /src/image/src/codecs/hdr/encoder.rs:350,1
    - Dst: relative_dist
      Src: /src/image/src/codecs/hdr/encoder.rs:351,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 360
    functionName: to_rgbe8_test
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - to_rgbe8
    - relative_dist
    - codecs::hdr::rgbe8
    - Rgbe8Pixel::to_hdr
    - color::Rgb
    linkageType: ''
    returnType: void
    signature: fn to_rgbe8_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:365,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:368,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:372,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:376,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:380,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:385,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:390,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:395,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:400,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:405,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 414
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 414
    functionName: runiterator_test
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - RunIterator::new
    linkageType: ''
    returnType: void
    signature: fn runiterator_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::append
      Src: /src/image/src/codecs/hdr/encoder.rs:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - v
    - other
    argTypes:
    - Vec<T>
    - Vec<T>
    constantsTouched: []
    func_position:
      end: 421
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 421
    functionName: n::o::r::u::n::c::o::m::b::i::n::e::_::t::e::s::t::a
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::append
    linkageType: ''
    returnType: Vec
    signature: 'fn a<T>(mut v: Vec<T>, mut other: Vec<T>) -> Vec<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:424,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:428,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:433,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:438,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:443,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:449,1
    - Dst: a
      Src: /src/image/src/codecs/hdr/encoder.rs:456,1
    - Dst: a
      Src: /src/image/src/codecs/hdr/encoder.rs:456,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:457,1
    - Dst: a
      Src: /src/image/src/codecs/hdr/encoder.rs:463,1
    - Dst: a
      Src: /src/image/src/codecs/hdr/encoder.rs:463,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:464,1
    - Dst: std::iter::repeat
      Src: /src/image/src/codecs/hdr/encoder.rs:470,1
    - Dst: ImageResult::flat_map
      Src: /src/image/src/codecs/hdr/encoder.rs:470,1
    - Dst: take
      Src: /src/image/src/codecs/hdr/encoder.rs:470,1
    - Dst: collect
      Src: /src/image/src/codecs/hdr/encoder.rs:470,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 86
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 479
      start: 417
    functionDepth: 5
    functionLinenumber: 417
    functionLinenumberEnd: 479
    functionName: noruncombine_test
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - NorunCombineIterator::new
    - a
    - ImageResult::flat_map
    - collect
    - std::iter::repeat
    - take
    linkageType: ''
    returnType: void
    signature: fn noruncombine_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: DecoderError::source
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn source(&self) -> Option<&(dyn error::Error + 'static)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_str
      Src: /src/image/src/codecs/hdr/decoder.rs:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: LineType::fmt
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - write_str
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - r
    - g
    - b
    - e
    argTypes:
    - u8
    - u8
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: rgbe8
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Rgbe8Pixel
    signature: 'pub(crate) fn rgbe8(r: u8, g: u8, b: u8, e: u8) -> Rgbe8Pixel'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgb
      Src: /src/image/src/codecs/hdr/decoder.rs:147,1
    - Dst: f32::exp2
      Src: /src/image/src/codecs/hdr/decoder.rs:150,1
    - Dst: <f32 as From<_>>::from
      Src: /src/image/src/codecs/hdr/decoder.rs:150,1
    - Dst: Rgb
      Src: /src/image/src/codecs/hdr/decoder.rs:151,1
    - Dst: <f32 as From<_>>::from
      Src: /src/image/src/codecs/hdr/decoder.rs:152,1
    - Dst: <f32 as From<_>>::from
      Src: /src/image/src/codecs/hdr/decoder.rs:153,1
    - Dst: <f32 as From<_>>::from
      Src: /src/image/src/codecs/hdr/decoder.rs:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 157
    functionName: Rgbe8Pixel::to_hdr
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - Rgb
    - f32::exp2
    - <f32 as From<_>>::from
    linkageType: ''
    returnType: Rgb
    signature: pub(crate) fn to_hdr(self) -> Rgb<f32>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HdrDecoder::with_strictness
      Src: /src/image/src/codecs/hdr/decoder.rs:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: HdrDecoder::new
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 3
    functionsReached:
    - HdrDecoder::with_strictness
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(reader: R) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_strictness
      Src: /src/image/src/codecs/hdr/decoder.rs:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: HdrDecoder::new_nonstrict
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - Self::with_strictness
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new_nonstrict(reader: R) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HdrMetadata::new
      Src: /src/image/src/codecs/hdr/decoder.rs:181,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/hdr/decoder.rs:188,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:190,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:190,1
    - Dst: read_line_u8
      Src: /src/image/src/codecs/hdr/decoder.rs:193,1
    - Dst: read_line_u8
      Src: /src/image/src/codecs/hdr/decoder.rs:200,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:203,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:203,1
    - Dst: io::Result::is_empty
      Src: /src/image/src/codecs/hdr/decoder.rs:206,1
    - Dst: String::from_utf8_lossy
      Src: /src/image/src/codecs/hdr/decoder.rs:215,1
    - Dst: HdrMetadata::update_header_info
      Src: /src/image/src/codecs/hdr/decoder.rs:216,1
    - Dst: read_line_u8
      Src: /src/image/src/codecs/hdr/decoder.rs:222,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:225,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:225,1
    - Dst: String::from_utf8_lossy
      Src: /src/image/src/codecs/hdr/decoder.rs:228,1
    - Dst: parse_dimensions_line
      Src: /src/image/src/codecs/hdr/decoder.rs:229,1
    - Dst: crate::utils::check_dimension_overflow
      Src: /src/image/src/codecs/hdr/decoder.rs:234,1
    - Dst: bytes_per_pixel
      Src: /src/image/src/codecs/hdr/decoder.rs:234,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:236,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/hdr/decoder.rs:236,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/hdr/decoder.rs:237,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:238,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/hdr/decoder.rs:239,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:246,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 85
    argCount: 2
    argNames:
    - reader
    - strict
    argTypes:
    - R
    - bool
    constantsTouched: []
    func_position:
      end: 257
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 257
    functionName: HdrDecoder::with_strictness
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - read_line_u8
    - Err
    - Result::read_exact
    - parse_dimensions_line
    - crate::utils::check_dimension_overflow
    - HdrMetadata::update_header_info
    - into
    - Ok
    - HdrMetadata::new
    - UnsupportedError::from_format_and_kind
    - String::from_utf8_lossy
    - bytes_per_pixel
    - ImageError::Unsupported
    - UnsupportedErrorKind::GenericFeature
    - io::Result::is_empty
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn with_strictness(mut reader: R, strict: bool) -> ImageResult<HdrDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/codecs/hdr/decoder.rs:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 262
    functionName: HdrDecoder::metadata
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: HdrMetadata
    signature: pub fn metadata(&self) -> HdrMetadata
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:277,1
    - Dst: '&mut [T]::chunks_mut'
      Src: /src/image/src/codecs/hdr/decoder.rs:280,1
    - Dst: read_scanline
      Src: /src/image/src/codecs/hdr/decoder.rs:286,1
    - Dst: Option::iter_mut
      Src: /src/image/src/codecs/hdr/decoder.rs:287,1
    - Dst: zip
      Src: /src/image/src/codecs/hdr/decoder.rs:287,1
    - Dst: io::Result::iter
      Src: /src/image/src/codecs/hdr/decoder.rs:287,1
    - Dst: f
      Src: /src/image/src/codecs/hdr/decoder.rs:288,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 2
    argNames:
    - f
    - output_slice
    argTypes:
    - F
    - '&mut [T]'
    constantsTouched: []
    func_position:
      end: 292
      start: 265
    functionDepth: 5
    functionLinenumber: 265
    functionLinenumberEnd: 292
    functionName: HdrDecoder::read_image_transform
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - read_scanline
    - Option::iter_mut
    - io::Result::iter
    - zip
    - '&mut [T]::chunks_mut'
    - f
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_transform<T: Send, F: Send + Sync + Fn(Rgbe8Pixel) ->
      T>(mut self,f: F,output_slice: &mut [T],) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    functionName: HdrDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: HdrDecoder::color_type
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HdrDecoder::read_image_transform
      Src: /src/image/src/codecs/hdr/decoder.rs:308,1
    - Dst: to_hdr
      Src: /src/image/src/codecs/hdr/decoder.rs:308,1
    - Dst: Option::into_iter
      Src: /src/image/src/codecs/hdr/decoder.rs:310,1
    - Dst: enumerate
      Src: /src/image/src/codecs/hdr/decoder.rs:310,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/hdr/decoder.rs:311,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/hdr/decoder.rs:311,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 315
      start: 304
    functionDepth: 6
    functionLinenumber: 304
    functionLinenumberEnd: 315
    functionName: HdrDecoder::read_image
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - to_hdr
    - enumerate
    - Option::into_iter
    - copy_from_slice
    - bytemuck::cast_slice
    - HdrDecoder::read_image_transform
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/hdr/decoder.rs:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 319
    functionName: HdrDecoder::read_image_boxed
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Result::len
      Src: /src/image/src/codecs/hdr/decoder.rs:325,1
    - Dst: read_rgbe
      Src: /src/image/src/codecs/hdr/decoder.rs:327,1
    - Dst: decode_component
      Src: /src/image/src/codecs/hdr/decoder.rs:332,1
    - Dst: decode_component
      Src: /src/image/src/codecs/hdr/decoder.rs:333,1
    - Dst: decode_component
      Src: /src/image/src/codecs/hdr/decoder.rs:334,1
    - Dst: decode_component
      Src: /src/image/src/codecs/hdr/decoder.rs:335,1
    - Dst: decode_old_rle
      Src: /src/image/src/codecs/hdr/decoder.rs:338,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:340,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 2
    argNames:
    - r
    - buf
    argTypes:
    - '&mut R'
    - '&mut [Rgbe8Pixel]'
    constantsTouched: []
    func_position:
      end: 341
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 341
    functionName: read_scanline
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 3
    functionsReached:
    - io::Result::len
    - read_rgbe
    - decode_component
    - decode_old_rle
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_scanline<R: Read>(r: &mut R, buf: &mut [Rgbe8Pixel]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/hdr/decoder.rs:346,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut R'
    constantsTouched: []
    func_position:
      end: 348
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 348
    functionName: read_byte
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - Result::read_exact
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn read_byte<R: Read>(r: &mut R) -> io::Result<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_byte
      Src: /src/image/src/codecs/hdr/decoder.rs:362,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:366,1
    - Dst: DecoderError::WrongScanlineLength
      Src: /src/image/src/codecs/hdr/decoder.rs:366,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:366,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/hdr/decoder.rs:369,1
    - Dst: iter
      Src: /src/image/src/codecs/hdr/decoder.rs:370,1
    - Dst: enumerate
      Src: /src/image/src/codecs/hdr/decoder.rs:370,1
    - Dst: set_component
      Src: /src/image/src/codecs/hdr/decoder.rs:371,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:379,1
    - Dst: DecoderError::WrongScanlineLength
      Src: /src/image/src/codecs/hdr/decoder.rs:379,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:379,1
    - Dst: read_byte
      Src: /src/image/src/codecs/hdr/decoder.rs:382,1
    - Dst: set_component
      Src: /src/image/src/codecs/hdr/decoder.rs:384,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:391,1
    - Dst: DecoderError::WrongScanlineLength
      Src: /src/image/src/codecs/hdr/decoder.rs:391,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:391,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:393,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 79
    argCount: 3
    argNames:
    - r
    - width
    - set_component
    argTypes:
    - '&mut R'
    - usize
    - S
    constantsTouched: []
    func_position:
      end: 394
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 394
    functionName: decode_component
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - Result::read_exact
    - enumerate
    - set_component
    - read_byte
    - iter
    - into
    - DecoderError::WrongScanlineLength
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn decode_component<R: Read, S: FnMut(usize, u8)>(r: &mut R,width:
      usize,mut set_component: S,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/codecs/hdr/decoder.rs:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pix
    argTypes:
    - Rgbe8Pixel
    constantsTouched: []
    func_position:
      end: 411
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 411
    functionName: d::e::c::o::d::e::_::o::l::d::_::r::l::e::rl_marker
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn rl_marker(pix: Rgbe8Pixel) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Result::len
      Src: /src/image/src/codecs/hdr/decoder.rs:401,1
    - Dst: rl_marker
      Src: /src/image/src/codecs/hdr/decoder.rs:414,1
    - Dst: Option::is_some
      Src: /src/image/src/codecs/hdr/decoder.rs:414,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:415,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:415,1
    - Dst: read_rgbe
      Src: /src/image/src/codecs/hdr/decoder.rs:423,1
    - Dst: rl_marker
      Src: /src/image/src/codecs/hdr/decoder.rs:426,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:436,1
    - Dst: DecoderError::WrongScanlineLength
      Src: /src/image/src/codecs/hdr/decoder.rs:436,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:436,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:448,1
    - Dst: DecoderError::WrongScanlineLength
      Src: /src/image/src/codecs/hdr/decoder.rs:448,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:448,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:450,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 73
    argCount: 3
    argNames:
    - r
    - fb
    - buf
    argTypes:
    - '&mut R'
    - Rgbe8Pixel
    - '&mut [Rgbe8Pixel]'
    constantsTouched: []
    func_position:
      end: 451
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 451
    functionName: decode_old_rle
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - io::Result::len
    - Err
    - Option::is_some
    - read_rgbe
    - rl_marker
    - into
    - DecoderError::WrongScanlineLength
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn decode_old_rle<R: Read>(r: &mut R, fb: Rgbe8Pixel, buf: &mut [Rgbe8Pixel])
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/hdr/decoder.rs:455,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut R'
    constantsTouched: []
    func_position:
      end: 460
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 460
    functionName: read_rgbe
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 2
    functionsReached:
    - Result::read_exact
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn read_rgbe<R: Read>(r: &mut R) -> io::Result<Rgbe8Pixel>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 503
    functionName: HdrMetadata::new
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: HdrMetadata
    signature: fn new() -> HdrMetadata
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: split_at_first
      Src: /src/image/src/codecs/hdr/decoder.rs:510,1
    - Dst: Option::map
      Src: /src/image/src/codecs/hdr/decoder.rs:510,1
    - Dst: trim
      Src: /src/image/src/codecs/hdr/decoder.rs:510,1
    - Dst: push
      Src: /src/image/src/codecs/hdr/decoder.rs:513,1
    - Dst: to_owned
      Src: /src/image/src/codecs/hdr/decoder.rs:515,1
    - Dst: S::Larger::to_owned
      Src: /src/image/src/codecs/hdr/decoder.rs:515,1
    - Dst: push
      Src: /src/image/src/codecs/hdr/decoder.rs:516,1
    - Dst: String::new
      Src: /src/image/src/codecs/hdr/decoder.rs:518,1
    - Dst: io::Result::to_owned
      Src: /src/image/src/codecs/hdr/decoder.rs:518,1
    - Dst: S::Larger::trim
      Src: /src/image/src/codecs/hdr/decoder.rs:523,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:525,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/hdr/decoder.rs:525,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/hdr/decoder.rs:526,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:527,1
    - Dst: UnsupportedErrorKind::Format
      Src: /src/image/src/codecs/hdr/decoder.rs:528,1
    - Dst: ImageFormatHint::Name
      Src: /src/image/src/codecs/hdr/decoder.rs:528,1
    - Dst: limit_string_len
      Src: /src/image/src/codecs/hdr/decoder.rs:528,1
    - Dst: S::Larger::trim
      Src: /src/image/src/codecs/hdr/decoder.rs:536,1
    - Dst: trim().parse::<f32>
      Src: /src/image/src/codecs/hdr/decoder.rs:536,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/decoder.rs:538,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/hdr/decoder.rs:538,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:542,1
    - Dst: DecoderError::UnparsableF32
      Src: /src/image/src/codecs/hdr/decoder.rs:542,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:542,1
    - Dst: S::Larger::trim
      Src: /src/image/src/codecs/hdr/decoder.rs:552,1
    - Dst: trim().parse::<f32>
      Src: /src/image/src/codecs/hdr/decoder.rs:552,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/decoder.rs:554,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/hdr/decoder.rs:554,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:559,1
    - Dst: DecoderError::UnparsableF32
      Src: /src/image/src/codecs/hdr/decoder.rs:559,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:559,1
    - Dst: parse_space_separated_f32
      Src: /src/image/src/codecs/hdr/decoder.rs:570,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:573,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:573,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/hdr/decoder.rs:575,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/decoder.rs:577,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:581,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:594,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 120
    argCount: 2
    argNames:
    - line
    - strict
    argTypes:
    - '&str'
    - bool
    constantsTouched: []
    func_position:
      end: 595
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 595
    functionName: HdrMetadata::update_header_info
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - Option::map
    - trim().parse::<f32>
    - Some
    - trim
    - parse_space_separated_f32
    - UnsupportedErrorKind::Format
    - Ok
    - limit_string_len
    - Err
    - push
    - split_at_first
    - S::Larger::trim
    - String::new
    - into
    - unwrap_or
    - DecoderError::UnparsableF32
    - S::Larger::to_owned
    - ImageFormatHint::Name
    - to_owned
    - io::Result::to_owned
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    linkageType: ''
    returnType: ImageResult
    signature: 'fn update_header_info(&mut self, line: &str, strict: bool) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Result::split_whitespace
      Src: /src/image/src/codecs/hdr/decoder.rs:599,1
    - Dst: '&mut [f32]::iter_mut'
      Src: /src/image/src/codecs/hdr/decoder.rs:600,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:601,1
    - Dst: parse::<f32>
      Src: /src/image/src/codecs/hdr/decoder.rs:602,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:604,1
    - Dst: DecoderError::UnparsableF32
      Src: /src/image/src/codecs/hdr/decoder.rs:604,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:604,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:608,1
    - Dst: DecoderError::LineTooShort
      Src: /src/image/src/codecs/hdr/decoder.rs:608,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:608,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:611,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:611,1
    - Dst: is_some
      Src: /src/image/src/codecs/hdr/decoder.rs:611,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 3
    argNames:
    - line
    - vals
    - line_tp
    argTypes:
    - '&str'
    - '&mut [f32]'
    - LineType
    constantsTouched: []
    func_position:
      end: 612
      start: 598
    functionDepth: 2
    functionLinenumber: 598
    functionLinenumberEnd: 612
    functionName: parse_space_separated_f32
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - io::Result::split_whitespace
    - DecoderError::LineTooShort
    - Err
    - is_some
    - into
    - DecoderError::UnparsableF32
    - parse::<f32>
    - next
    - '&mut [f32]::iter_mut'
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn parse_space_separated_f32(line: &str, vals: &mut [f32], line_tp:
      LineType) -> ImageResult<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Result::split_whitespace
      Src: /src/image/src/codecs/hdr/decoder.rs:619,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:620,1
    - Dst: ok_or
      Src: /src/image/src/codecs/hdr/decoder.rs:620,1
    - Dst: DecoderError::DimensionsLineTooShort
      Src: /src/image/src/codecs/hdr/decoder.rs:622,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:623,1
    - Dst: ok_or
      Src: /src/image/src/codecs/hdr/decoder.rs:623,1
    - Dst: DecoderError::DimensionsLineTooShort
      Src: /src/image/src/codecs/hdr/decoder.rs:625,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:626,1
    - Dst: ok_or
      Src: /src/image/src/codecs/hdr/decoder.rs:626,1
    - Dst: DecoderError::DimensionsLineTooShort
      Src: /src/image/src/codecs/hdr/decoder.rs:628,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:629,1
    - Dst: ok_or
      Src: /src/image/src/codecs/hdr/decoder.rs:629,1
    - Dst: DecoderError::DimensionsLineTooShort
      Src: /src/image/src/codecs/hdr/decoder.rs:631,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:632,1
    - Dst: is_some
      Src: /src/image/src/codecs/hdr/decoder.rs:632,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:634,1
    - Dst: DecoderError::DimensionsLineTooLong
      Src: /src/image/src/codecs/hdr/decoder.rs:634,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:634,1
    - Dst: parse::<u32>
      Src: /src/image/src/codecs/hdr/decoder.rs:642,1
    - Dst: map_err
      Src: /src/image/src/codecs/hdr/decoder.rs:642,1
    - Dst: DecoderError::UnparsableU32
      Src: /src/image/src/codecs/hdr/decoder.rs:644,1
    - Dst: parse::<u32>
      Src: /src/image/src/codecs/hdr/decoder.rs:645,1
    - Dst: map_err
      Src: /src/image/src/codecs/hdr/decoder.rs:645,1
    - Dst: DecoderError::UnparsableU32
      Src: /src/image/src/codecs/hdr/decoder.rs:647,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:648,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:650,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/hdr/decoder.rs:650,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/hdr/decoder.rs:651,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:652,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/hdr/decoder.rs:653,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 64
    argCount: 2
    argNames:
    - line
    - strict
    argTypes:
    - '&str'
    - bool
    constantsTouched: []
    func_position:
      end: 661
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 661
    functionName: parse_dimensions_line
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - io::Result::split_whitespace
    - Err
    - DecoderError::UnparsableU32
    - is_some
    - DecoderError::DimensionsLineTooShort
    - ok_or
    - map_err
    - into
    - DecoderError::DimensionsLineTooLong
    - next
    - parse::<u32>
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Ok
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: ImageResult
    signature: 'fn parse_dimensions_line(line: &str, strict: bool) -> ImageResult<(u32,
      u32)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chars
      Src: /src/image/src/codecs/hdr/decoder.rs:665,1
    - Dst: count
      Src: /src/image/src/codecs/hdr/decoder.rs:665,1
    - Dst: chars
      Src: /src/image/src/codecs/hdr/decoder.rs:667,1
    - Dst: take
      Src: /src/image/src/codecs/hdr/decoder.rs:667,1
    - Dst: chain
      Src: /src/image/src/codecs/hdr/decoder.rs:667,1
    - Dst: '&str::chars'
      Src: /src/image/src/codecs/hdr/decoder.rs:667,1
    - Dst: collect
      Src: /src/image/src/codecs/hdr/decoder.rs:667,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - '&str'
    - usize
    constantsTouched: []
    func_position:
      end: 671
      start: 664
    functionDepth: 2
    functionLinenumber: 664
    functionLinenumberEnd: 671
    functionName: limit_string_len
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - count
    - chain
    - into
    - collect
    - chars
    - '&str::chars'
    - take
    linkageType: ''
    returnType: String
    signature: 'fn limit_string_len(s: &str, len: usize) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/image/src/codecs/hdr/decoder.rs:676,1
    - Dst: len
      Src: /src/image/src/codecs/hdr/decoder.rs:678,1
    - Dst: '&str::len'
      Src: /src/image/src/codecs/hdr/decoder.rs:678,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/decoder.rs:679,1
    - Dst: '&str::len'
      Src: /src/image/src/codecs/hdr/decoder.rs:679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - s
    - separator
    argTypes:
    - '&''a str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 681
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 681
    functionName: split_at_first
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - Some
    - find
    - '&str::len'
    - len
    linkageType: ''
    returnType: Option
    signature: 'fn split_at_first<''a>(s: &''a str, separator: &str) -> Option<(&''a
      str, &''a str)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::with_capacity
      Src: /src/image/src/codecs/hdr/decoder.rs:689,1
    - Dst: Result::read
      Src: /src/image/src/codecs/hdr/decoder.rs:692,1
    - Dst: Result::is_empty
      Src: /src/image/src/codecs/hdr/decoder.rs:693,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:694,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:696,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/decoder.rs:696,1
    - Dst: Result::push
      Src: /src/image/src/codecs/hdr/decoder.rs:698,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut R'
    constantsTouched: []
    func_position:
      end: 700
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 700
    functionName: read_line_u8
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::read
    - Result::push
    - Vec::with_capacity
    - Some
    - Result::is_empty
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn read_line_u8<R: Read>(r: &mut R) -> io::Result<Option<Vec<u8>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 730
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 730
    functionName: tests::split_at_first_test
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn split_at_first_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:734,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/hdr/decoder.rs:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 743
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 743
    functionName: tests::read_line_u8_test
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - into
    linkageType: ''
    returnType: void
    signature: fn read_line_u8_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - w
    argTypes:
    - '&''a mut W'
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: BmpEncoder::new
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(w: &''a mut W) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpEncoder::encode_with_palette
      Src: /src/image/src/codecs/bmp/encoder.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - image
    - width
    - height
    - c
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: BmpEncoder::encode
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - BmpEncoder::encode_with_palette
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn encode(&mut self,image: &[u8],width: u32,height: u32,c: ExtendedColorType,)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::is_some
      Src: /src/image/src/codecs/bmp/encoder.rs:55,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/encoder.rs:56,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/bmp/encoder.rs:56,1
    - Dst: io::Error::new
      Src: /src/image/src/codecs/bmp/encoder.rs:56,1
    - Dst: Option::buffer_size
      Src: /src/image/src/codecs/bmp/encoder.rs:64,1
    - Dst: get_pixel_info
      Src: /src/image/src/codecs/bmp/encoder.rs:75,1
    - Dst: u32::checked_mul
      Src: /src/image/src/codecs/bmp/encoder.rs:77,1
    - Dst: and_then
      Src: /src/image/src/codecs/bmp/encoder.rs:77,1
    - Dst: DynamicImage::checked_mul
      Src: /src/image/src/codecs/bmp/encoder.rs:79,1
    - Dst: and_then
      Src: /src/image/src/codecs/bmp/encoder.rs:77,1
    - Dst: DynamicImage::checked_add
      Src: /src/image/src/codecs/bmp/encoder.rs:80,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/bmp/encoder.rs:77,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/bmp/encoder.rs:82,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/bmp/encoder.rs:82,1
    - Dst: BITMAPFILEHEADER_SIZE::checked_add
      Src: /src/image/src/codecs/bmp/encoder.rs:87,1
    - Dst: and_then
      Src: /src/image/src/codecs/bmp/encoder.rs:87,1
    - Dst: DynamicImage::checked_add
      Src: /src/image/src/codecs/bmp/encoder.rs:89,1
    - Dst: and_then
      Src: /src/image/src/codecs/bmp/encoder.rs:87,1
    - Dst: DynamicImage::checked_add
      Src: /src/image/src/codecs/bmp/encoder.rs:90,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/bmp/encoder.rs:87,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/bmp/encoder.rs:92,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/bmp/encoder.rs:92,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/bmp/encoder.rs:93,1
    - Dst: write_u8
      Src: /src/image/src/codecs/bmp/encoder.rs:99,1
    - Dst: write_u8
      Src: /src/image/src/codecs/bmp/encoder.rs:100,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:101,1
    - Dst: writer.write_u16::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:102,1
    - Dst: writer.write_u16::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:103,1
    - Dst: "writer\n            .write_u32::<LittleEndian>"
      Src: /src/image/src/codecs/bmp/encoder.rs:104,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:108,1
    - Dst: writer.write_i32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:109,1
    - Dst: writer.write_i32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:110,1
    - Dst: writer.write_u16::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:111,1
    - Dst: "writer\n            .write_u16::<LittleEndian>"
      Src: /src/image/src/codecs/bmp/encoder.rs:112,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:116,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:118,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:120,1
    - Dst: writer.write_i32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:121,1
    - Dst: writer.write_i32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:122,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:123,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:124,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:127,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:128,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:129,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:130,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:131,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:135,1
    - Dst: BmpEncoder::encode_rgb
      Src: /src/image/src/codecs/bmp/encoder.rs:141,1
    - Dst: BmpEncoder::encode_rgba
      Src: /src/image/src/codecs/bmp/encoder.rs:142,1
    - Dst: BmpEncoder::encode_gray
      Src: /src/image/src/codecs/bmp/encoder.rs:144,1
    - Dst: BmpEncoder::encode_gray
      Src: /src/image/src/codecs/bmp/encoder.rs:147,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/encoder.rs:150,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/bmp/encoder.rs:150,1
    - Dst: io::Error::new
      Src: /src/image/src/codecs/bmp/encoder.rs:150,1
    - Dst: get_unsupported_error_message
      Src: /src/image/src/codecs/bmp/encoder.rs:152,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:157,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 228
    argCount: 5
    argNames:
    - image
    - width
    - height
    - c
    - palette
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    - Option<&[[u8; 3]]>
    constantsTouched: []
    func_position:
      end: 158
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 158
    functionName: BmpEncoder::encode_with_palette
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached:
    - DynamicImage::checked_mul
    - ParameterError::from_kind
    - EncodingError::new
    - write_u8
    - BITMAPFILEHEADER_SIZE::checked_add
    - writer.write_i32::<LittleEndian>
    - writer.write_u32::<LittleEndian>
    - "writer\n            .write_u16::<LittleEndian>"
    - Ok
    - Err
    - u32::checked_mul
    - "writer\n            .write_u32::<LittleEndian>"
    - ImageResult::is_some
    - BmpEncoder::encode_gray
    - Option::buffer_size
    - get_unsupported_error_message
    - ImageError::IoError
    - BmpEncoder::encode_rgb
    - get_pixel_info
    - DynamicImage::checked_add
    - ok_or_else
    - BmpEncoder::encode_rgba
    - ImageError::Encoding
    - ImageFormatHint::Exact
    - writer.write_u16::<LittleEndian>
    - io::Error::new
    - and_then
    - ImageError::Parameter
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn encode_with_palette(&mut self,image: &[u8],width: u32,height:
      u32,c: ExtendedColorType,palette: Option<&[[u8; 3]]>,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rev
      Src: /src/image/src/codecs/bmp/encoder.rs:172,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/bmp/encoder.rs:175,1
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:180,1
    - Dst: BmpEncoder::write_row_pad
      Src: /src/image/src/codecs/bmp/encoder.rs:182,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 5
    argNames:
    - image
    - width
    - height
    - row_pad_size
    - bytes_per_pixel
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 186
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 186
    functionName: BmpEncoder::encode_rgb
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached:
    - rev
    - write_all
    - BmpEncoder::write_row_pad
    - chunks_exact
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn encode_rgb(&mut self,image: &[u8],width: u32,height: u32,row_pad_size:
      u32,bytes_per_pixel: u32,) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rev
      Src: /src/image/src/codecs/bmp/encoder.rs:200,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/bmp/encoder.rs:203,1
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:209,1
    - Dst: BmpEncoder::write_row_pad
      Src: /src/image/src/codecs/bmp/encoder.rs:211,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 5
    argNames:
    - image
    - width
    - height
    - row_pad_size
    - bytes_per_pixel
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 215
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 215
    functionName: BmpEncoder::encode_rgba
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached:
    - rev
    - write_all
    - BmpEncoder::write_row_pad
    - chunks_exact
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn encode_rgba(&mut self,image: &[u8],width: u32,height: u32,row_pad_size:
      u32,bytes_per_pixel: u32,) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:230,1
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:235,1
    - Dst: rev
      Src: /src/image/src/codecs/bmp/encoder.rs:242,1
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:249,1
    - Dst: write_u8
      Src: /src/image/src/codecs/bmp/encoder.rs:254,1
    - Dst: BmpEncoder::write_row_pad
      Src: /src/image/src/codecs/bmp/encoder.rs:259,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:262,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 67
    argCount: 6
    argNames:
    - image
    - width
    - height
    - row_pad_size
    - bytes_per_pixel
    - palette
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - u32
    - u32
    - Option<&[[u8; 3]]>
    constantsTouched: []
    func_position:
      end: 263
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 263
    functionName: BmpEncoder::encode_gray
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached:
    - rev
    - write_all
    - write_u8
    - BmpEncoder::write_row_pad
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn encode_gray(&mut self,image: &[u8],width: u32,height: u32,row_pad_size:
      u32,bytes_per_pixel: u32,palette: Option<&[[u8; 3]]>,) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_u8
      Src: /src/image/src/codecs/bmp/encoder.rs:267,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - row_pad_size
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: BmpEncoder::write_row_pad
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 3
    functionsReached:
    - write_u8
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn write_row_pad(&mut self, row_pad_size: u32) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpEncoder::encode
      Src: /src/image/src/codecs/bmp/encoder.rs:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 284
      start: 276
    functionDepth: 4
    functionLinenumber: 276
    functionLinenumberEnd: 284
    functionName: BmpEncoder::write_image
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - BmpEncoder::encode
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(mut self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::io::encoder::dynimage_conversion_8bit
      Src: /src/image/src/codecs/bmp/encoder.rs:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - img
    argTypes:
    - crate::io::encoder::MethodSealedToImage
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 292
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 292
    functionName: BmpEncoder::make_compatible_img
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - crate::io::encoder::dynimage_conversion_8bit
    linkageType: ''
    returnType: Option
    signature: 'fn make_compatible_img(&self,_: crate::io::encoder::MethodSealedToImage,img:
      &DynamicImage,) -> Option<DynamicImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - c
    argTypes:
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: get_unsupported_error_message
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: 'fn get_unsupported_error_message(c: ExtendedColorType) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::map
      Src: /src/image/src/codecs/bmp/encoder.rs:310,1
    - Dst: len
      Src: /src/image/src/codecs/bmp/encoder.rs:310,1
    - Dst: ImageResult::unwrap_or
      Src: /src/image/src/codecs/bmp/encoder.rs:310,1
    - Dst: ImageResult::map
      Src: /src/image/src/codecs/bmp/encoder.rs:315,1
    - Dst: len
      Src: /src/image/src/codecs/bmp/encoder.rs:315,1
    - Dst: ImageResult::unwrap_or
      Src: /src/image/src/codecs/bmp/encoder.rs:315,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/encoder.rs:318,1
    - Dst: io::Error::new
      Src: /src/image/src/codecs/bmp/encoder.rs:318,1
    - Dst: get_unsupported_error_message
      Src: /src/image/src/codecs/bmp/encoder.rs:320,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 2
    argNames:
    - c
    - palette
    argTypes:
    - ExtendedColorType
    - Option<&[[u8; 3]]>
    constantsTouched: []
    func_position:
      end: 326
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 326
    functionName: get_pixel_info
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - len
    - ImageResult::map
    - ImageResult::unwrap_or
    - io::Error::new
    - get_unsupported_error_message
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn get_pixel_info(c: ExtendedColorType,palette: Option<&[[u8; 3]]>,)
      -> io::Result<(u32, u32, u32)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/encoder.rs:466,1
    - Dst: TgaEncoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:468,1
    - Dst: TgaEncoder::disable_rle
      Src: /src/image/src/codecs/tga/encoder.rs:468,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/tga/encoder.rs:469,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/tga/encoder.rs:469,1
    - Dst: TgaDecoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:474,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/tga/encoder.rs:474,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/tga/encoder.rs:474,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/tga/encoder.rs:477,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/tga/encoder.rs:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 4
    argNames:
    - image
    - width
    - height
    - c
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 479
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 479
    functionName: tests::round_trip_image
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - TgaEncoder::disable_rle
    - ImageResult::read_image
    - Cursor::new
    - TgaEncoder::new
    - Vec::new
    - ImageResult::expect
    - ImageResult::encode
    - TgaDecoder::new
    linkageType: ''
    returnType: Vec
    signature: 'fn round_trip_image(image: &[u8],width: u32,height: u32,c: ExtendedColorType,)
      -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/tga/encoder.rs:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 487
      start: 482
    functionDepth: 5
    functionLinenumber: 482
    functionLinenumberEnd: 487
    functionName: tests::round_trip_single_pixel_rgb
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - round_trip_image
    linkageType: ''
    returnType: void
    signature: fn round_trip_single_pixel_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/bmp/encoder.rs:366,1
    - Dst: BmpEncoder::new
      Src: /src/image/src/codecs/bmp/encoder.rs:368,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/bmp/encoder.rs:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 365
    functionDepth: 4
    functionLinenumber: 365
    functionLinenumberEnd: 371
    functionName: tests::huge_files_return_error
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - ImageResult::encode
    - BmpEncoder::new
    linkageType: ''
    returnType: void
    signature: fn huge_files_return_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/tga/encoder.rs:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 5
    functionLinenumber: 490
    functionLinenumberEnd: 495
    functionName: tests::round_trip_single_pixel_rgba
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - round_trip_image
    linkageType: ''
    returnType: void
    signature: fn round_trip_single_pixel_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/tga/encoder.rs:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 5
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: tests::round_trip_3px_rgb
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - round_trip_image
    linkageType: ''
    returnType: void
    signature: fn round_trip_3px_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/tga/encoder.rs:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 498
    functionDepth: 5
    functionLinenumber: 498
    functionLinenumberEnd: 503
    functionName: tests::round_trip_gray
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - round_trip_image
    linkageType: ''
    returnType: void
    signature: fn round_trip_gray()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/tga/encoder.rs:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 511
      start: 506
    functionDepth: 5
    functionLinenumber: 506
    functionLinenumberEnd: 511
    functionName: tests::round_trip_graya
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - round_trip_image
    linkageType: ''
    returnType: void
    signature: fn round_trip_graya()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Result::next
      Src: /src/image/src/codecs/bmp/decoder.rs:113,1
    - Dst: io::Result::next
      Src: /src/image/src/codecs/bmp/decoder.rs:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: RowIterator::next
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - io::Result::next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<&'a mut [u8]>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_str
      Src: /src/image/src/codecs/bmp/decoder.rs:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: ChannelWidthError::fmt
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - write_str
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: num_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:241,1
    - Dst: Option::map
      Src: /src/image/src/codecs/bmp/decoder.rs:241,1
    - Dst: ImageResult::ok_or_else
      Src: /src/image/src/codecs/bmp/decoder.rs:241,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/decoder.rs:244,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/decoder.rs:244,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:245,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/bmp/decoder.rs:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - width
    - length
    - channels
    argTypes:
    - i32
    - i32
    - usize
    constantsTouched: []
    func_position:
      end: 251
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 251
    functionName: check_for_overflow
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - Option::map
    - num_bytes
    - into
    - ImageResult::ok_or_else
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: ImageResult
    signature: 'fn check_for_overflow(width: i32, length: i32, channels: usize) ->
      ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::checked_mul
      Src: /src/image/src/codecs/bmp/decoder.rs:259,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/bmp/decoder.rs:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - width
    - length
    - channels
    argTypes:
    - i32
    - i32
    - usize
    constantsTouched: []
    func_position:
      end: 264
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 264
    functionName: num_bytes
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - usize::checked_mul
    - checked_mul
    linkageType: ''
    returnType: Option
    signature: 'fn num_bytes(width: i32, length: i32, channels: usize) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::checked_mul
      Src: /src/image/src/codecs/bmp/decoder.rs:281,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:281,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/bmp/decoder.rs:282,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:282,1
    - Dst: '&RgbaImage::chunks_mut'
      Src: /src/image/src/codecs/bmp/decoder.rs:286,1
    - Dst: rev
      Src: /src/image/src/codecs/bmp/decoder.rs:286,1
    - Dst: func
      Src: /src/image/src/codecs/bmp/decoder.rs:287,1
    - Dst: '&RgbaImage::chunks_mut'
      Src: /src/image/src/codecs/bmp/decoder.rs:290,1
    - Dst: func
      Src: /src/image/src/codecs/bmp/decoder.rs:291,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:294,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 6
    argNames:
    - buffer
    - width
    - height
    - channels
    - top_down
    - func
    argTypes:
    - '&mut [u8]'
    - i32
    - i32
    - usize
    - bool
    - F
    constantsTouched: []
    func_position:
      end: 295
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 295
    functionName: with_rows
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - rev
    - usize::checked_mul
    - func
    - checked_mul
    - unwrap
    - '&RgbaImage::chunks_mut'
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn with_rows<F>(buffer: &mut [u8],width: i32,height: i32,channels:
      usize,top_down: bool,mut func: F,) -> io::Result<()>whereF: FnMut(&mut [u8])
      -> io::Result<()>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::take
      Src: /src/image/src/codecs/bmp/decoder.rs:303,1
    - Dst: '&mut ChunksMut<u8>::next'
      Src: /src/image/src/codecs/bmp/decoder.rs:304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 4
    argNames:
    - pixel_iter
    - palette
    - indices
    - n_pixels
    argTypes:
    - '&mut ChunksMut<u8>'
    - '&[[u8; 3]]'
    - T
    - usize
    constantsTouched: []
    func_position:
      end: 314
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 314
    functionName: set_8bit_pixel_run
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - Option::take
    - '&mut ChunksMut<u8>::next'
    linkageType: ''
    returnType: bool
    signature: 'fn set_8bit_pixel_run<''a, T: Iterator<Item = &''a u8>>(pixel_iter:
      &mut ChunksMut<u8>,palette: &[[u8; 3]],indices: T,n_pixels: usize,) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - pixel_iter
    - palette
    - indices
    - n_pixels
    argTypes:
    - '&mut ChunksMut<u8>'
    - '&[[u8; 3]]'
    - T
    - usize
    constantsTouched: []
    func_position:
      end: 343
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 343
    functionName: set_4bit_pixel_run
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn set_4bit_pixel_run<''a, T: Iterator<Item = &''a u8>>(pixel_iter:
      &mut ChunksMut<u8>,palette: &[[u8; 3]],indices: T,mut n_pixels: usize,) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pixel_iter
    - palette
    - indices
    - n_pixels
    argTypes:
    - '&mut ChunksMut<u8>'
    - '&[[u8; 3]]'
    - T
    - usize
    constantsTouched: []
    func_position:
      end: 375
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 375
    functionName: set_2bit_pixel_run
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn set_2bit_pixel_run<''a, T: Iterator<Item = &''a u8>>(pixel_iter:
      &mut ChunksMut<u8>,palette: &[[u8; 3]],indices: T,mut n_pixels: usize,) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut ChunksMut<u8>::next'
      Src: /src/image/src/codecs/bmp/decoder.rs:385,1
    - Dst: usize::from
      Src: /src/image/src/codecs/bmp/decoder.rs:386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 3
    argNames:
    - pixel_iter
    - palette
    - indices
    argTypes:
    - '&mut ChunksMut<u8>'
    - '&[[u8; 3]]'
    - T
    constantsTouched: []
    func_position:
      end: 400
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 400
    functionName: set_1bit_pixel_run
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - usize::from
    - '&mut ChunksMut<u8>::next'
    linkageType: ''
    returnType: void
    signature: 'fn set_1bit_pixel_run<''a, T: Iterator<Item = &''a u8>>(pixel_iter:
      &mut ChunksMut<u8>,palette: &[[u8; 3]],indices: T,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:411,1
    - Dst: ImageResult::trailing_zeros
      Src: /src/image/src/codecs/bmp/decoder.rs:413,1
    - Dst: trailing_zeros
      Src: /src/image/src/codecs/bmp/decoder.rs:414,1
    - Dst: ImageResult::count_ones
      Src: /src/image/src/codecs/bmp/decoder.rs:415,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:416,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:416,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:419,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:419,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:425,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 2
    argNames:
    - mask
    - max_len
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 426
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 426
    functionName: Bitfield::from_mask
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - ImageResult::count_ones
    - trailing_zeros
    - into
    - ImageResult::trailing_zeros
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_mask(mask: u32, max_len: u32) -> ImageResult<Bitfield>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 1
    argNames:
    - data
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 441
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 441
    functionName: Bitfield::read
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn read(&self, data: u32) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bitfield::from_mask
      Src: /src/image/src/codecs/bmp/decoder.rs:461,1
    - Dst: Bitfield::from_mask
      Src: /src/image/src/codecs/bmp/decoder.rs:462,1
    - Dst: Bitfield::from_mask
      Src: /src/image/src/codecs/bmp/decoder.rs:463,1
    - Dst: Bitfield::from_mask
      Src: /src/image/src/codecs/bmp/decoder.rs:464,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:467,1
    - Dst: DecoderError::BitfieldMaskMissing
      Src: /src/image/src/codecs/bmp/decoder.rs:467,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:467,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:469,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - r_mask
    - g_mask
    - b_mask
    - a_mask
    - max_len
    argTypes:
    - u32
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 470
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 470
    functionName: Bitfields::from_mask
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - Bitfield::from_mask
    - Err
    - into
    - DecoderError::BitfieldMaskMissing
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_mask(r_mask: u32,g_mask: u32,b_mask: u32,a_mask: u32,max_len:
      u32,) -> ImageResult<Bitfields>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 525
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 525
    functionName: BmpDecoder::new_decoder
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BmpDecoder
    signature: 'fn new_decoder(reader: R) -> BmpDecoder<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_decoder
      Src: /src/image/src/codecs/bmp/decoder.rs:529,1
    - Dst: ImageResult::read_metadata
      Src: /src/image/src/codecs/bmp/decoder.rs:530,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 532
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 532
    functionName: BmpDecoder::new
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 2
    functionsReached:
    - ImageResult::read_metadata
    - Ok
    - Self::new_decoder
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(reader: R) -> ImageResult<BmpDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_decoder
      Src: /src/image/src/codecs/bmp/decoder.rs:538,1
    - Dst: ImageResult::read_metadata
      Src: /src/image/src/codecs/bmp/decoder.rs:540,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 542
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 542
    functionName: BmpDecoder::new_without_file_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_metadata
    - Ok
    - Self::new_decoder
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new_without_file_header(reader: R) -> ImageResult<BmpDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_decoder
      Src: /src/image/src/codecs/bmp/decoder.rs:546,1
    - Dst: ImageResult::read_metadata_in_ico_format
      Src: /src/image/src/codecs/bmp/decoder.rs:547,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 549
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 549
    functionName: BmpDecoder::new_with_ico_format
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_metadata_in_ico_format
    - Ok
    - Self::new_decoder
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn new_with_ico_format(reader: R) -> ImageResult<BmpDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - indexed_color
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 555
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 555
    functionName: BmpDecoder::set_indexed_color
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_indexed_color(&mut self, indexed_color: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 560
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 560
    functionName: BmpDecoder::reader
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut R'
    signature: pub(crate) fn reader(&mut self) -> &mut R
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:564,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:567,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:570,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:570,1
    - Dst: reader.read_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:575,1
    - Dst: reader.read_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:576,1
    - Dst: u64::from
      Src: /src/image/src/codecs/bmp/decoder.rs:578,1
    - Dst: reader.read_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:578,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:580,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 581
      start: 562
    functionDepth: 3
    functionLinenumber: 562
    functionLinenumberEnd: 581
    functionName: BmpDecoder::read_file_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - read_exact
    - into
    - u64::from
    - Ok
    - reader.read_u32::<LittleEndian>
    linkageType: ''
    returnType: ImageResult
    signature: fn read_file_header(&mut self) -> ImageResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i32::from
      Src: /src/image/src/codecs/bmp/decoder.rs:589,1
    - Dst: reader.read_u16::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:589,1
    - Dst: i32::from
      Src: /src/image/src/codecs/bmp/decoder.rs:590,1
    - Dst: reader.read_u16::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:590,1
    - Dst: check_for_overflow
      Src: /src/image/src/codecs/bmp/decoder.rs:592,1
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:592,1
    - Dst: reader.read_u16::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:595,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:596,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:596,1
    - Dst: reader.read_u16::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:599,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:604,1
    - Dst: DecoderError::InvalidChannelWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:604,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:604,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:612,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 613
      start: 586
    functionDepth: 3
    functionLinenumber: 586
    functionLinenumberEnd: 613
    functionName: BmpDecoder::read_bitmap_core_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - check_for_overflow
    - reader.read_u16::<LittleEndian>
    - DecoderError::InvalidChannelWidth
    - i32::from
    - into
    - BmpDecoder::num_channels
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn read_bitmap_core_header(&mut self) -> ImageResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reader.read_i32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:620,1
    - Dst: reader.read_i32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:621,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:625,1
    - Dst: DecoderError::NegativeWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:625,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:625,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:629,1
    - Dst: DecoderError::ImageTooLarge
      Src: /src/image/src/codecs/bmp/decoder.rs:629,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:629,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:633,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:633,1
    - Dst: check_for_overflow
      Src: /src/image/src/codecs/bmp/decoder.rs:642,1
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:642,1
    - Dst: reader.read_u16::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:645,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:646,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:646,1
    - Dst: reader.read_u16::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:649,1
    - Dst: reader.read_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:650,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:654,1
    - Dst: DecoderError::ImageTypeInvalidForTopDown
      Src: /src/image/src/codecs/bmp/decoder.rs:654,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:654,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:664,1
    - Dst: DecoderError::InvalidChannelWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:664,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:664,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:674,1
    - Dst: DecoderError::InvalidChannelWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:674,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:674,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:684,1
    - Dst: DecoderError::InvalidChannelWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:684,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:684,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:695,1
    - Dst: DecoderError::InvalidChannelWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:695,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:695,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:704,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/decoder.rs:704,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/decoder.rs:705,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:706,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/bmp/decoder.rs:707,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/bmp/decoder.rs:707,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:713,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/decoder.rs:713,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/decoder.rs:714,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:715,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/bmp/decoder.rs:716,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/bmp/decoder.rs:716,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:722,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/decoder.rs:722,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/decoder.rs:723,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:724,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/bmp/decoder.rs:725,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/bmp/decoder.rs:725,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:731,1
    - Dst: DecoderError::ImageTypeUnknown
      Src: /src/image/src/codecs/bmp/decoder.rs:731,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:731,1
    - Dst: reader.read_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:739,1
    - Dst: reader.read_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:740,1
    - Dst: reader.read_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:741,1
    - Dst: reader.read_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:743,1
    - Dst: reader.read_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:747,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:749,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 203
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 750
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 750
    functionName: BmpDecoder::read_bitmap_info_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - reader.read_i32::<LittleEndian>
    - '&str::to_owned'
    - check_for_overflow
    - reader.read_u16::<LittleEndian>
    - ImageError::Unsupported
    - DecoderError::ImageTooLarge
    - DecoderError::InvalidChannelWidth
    - DecoderError::ImageTypeUnknown
    - into
    - BmpDecoder::num_channels
    - Ok
    - UnsupportedError::from_format_and_kind
    - DecoderError::ImageTypeInvalidForTopDown
    - DecoderError::NegativeWidth
    - UnsupportedErrorKind::GenericFeature
    - reader.read_u32::<LittleEndian>
    linkageType: ''
    returnType: ImageResult
    signature: fn read_bitmap_info_header(&mut self) -> ImageResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reader.read_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:753,1
    - Dst: reader.read_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:754,1
    - Dst: reader.read_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:755,1
    - Dst: reader.read_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:759,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:766,1
    - Dst: Bitfields::from_mask
      Src: /src/image/src/codecs/bmp/decoder.rs:766,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:769,1
    - Dst: Bitfields::from_mask
      Src: /src/image/src/codecs/bmp/decoder.rs:769,1
    - Dst: is_some
      Src: /src/image/src/codecs/bmp/decoder.rs:774,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:778,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 779
      start: 752
    functionDepth: 3
    functionLinenumber: 752
    functionLinenumberEnd: 779
    functionName: BmpDecoder::read_bitmasks
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - is_some
    - Some
    - Bitfields::from_mask
    - Ok
    - reader.read_u32::<LittleEndian>
    linkageType: ''
    returnType: ImageResult
    signature: fn read_bitmasks(&mut self) -> ImageResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::read_file_header
      Src: /src/image/src/codecs/bmp/decoder.rs:783,1
    - Dst: stream_position
      Src: /src/image/src/codecs/bmp/decoder.rs:784,1
    - Dst: reader.read_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:785,1
    - Dst: u64::from
      Src: /src/image/src/codecs/bmp/decoder.rs:786,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:797,1
    - Dst: DecoderError::HeaderTooSmall
      Src: /src/image/src/codecs/bmp/decoder.rs:797,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:797,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:800,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/decoder.rs:800,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/decoder.rs:801,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:802,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/bmp/decoder.rs:803,1
    - Dst: BmpDecoder::read_bitmap_core_header
      Src: /src/image/src/codecs/bmp/decoder.rs:813,1
    - Dst: BmpDecoder::read_bitmap_info_header
      Src: /src/image/src/codecs/bmp/decoder.rs:820,1
    - Dst: BmpDecoder::read_bitmasks
      Src: /src/image/src/codecs/bmp/decoder.rs:825,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:829,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:829,1
    - Dst: BmpDecoder::read_palette
      Src: /src/image/src/codecs/bmp/decoder.rs:832,1
    - Dst: stream_position
      Src: /src/image/src/codecs/bmp/decoder.rs:838,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:843,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 844
      start: 781
    functionDepth: 4
    functionLinenumber: 781
    functionLinenumberEnd: 844
    functionName: BmpDecoder::read_metadata
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - BmpDecoder::read_bitmap_core_header
    - Err
    - BmpDecoder::read_bitmasks
    - seek
    - SeekFrom::Start
    - DecoderError::HeaderTooSmall
    - BmpDecoder::read_bitmap_info_header
    - BmpDecoder::read_palette
    - into
    - Ok
    - UnsupportedError::from_format_and_kind
    - u64::from
    - BmpDecoder::read_file_header
    - ImageError::Unsupported
    - stream_position
    - UnsupportedErrorKind::GenericFeature
    - reader.read_u32::<LittleEndian>
    linkageType: ''
    returnType: ImageResult
    signature: fn read_metadata(&mut self) -> ImageResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::read_metadata
      Src: /src/image/src/codecs/bmp/decoder.rs:851,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 857
      start: 848
    functionDepth: 5
    functionLinenumber: 848
    functionLinenumberEnd: 857
    functionName: BmpDecoder::read_metadata_in_ico_format
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - BmpDecoder::read_metadata
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: pub fn read_metadata_in_ico_format(&mut self) -> ImageResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:861,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:864,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:864,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:870,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 873
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 873
    functionName: BmpDecoder::get_palette_size
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - into
    linkageType: ''
    returnType: ImageResult
    signature: fn get_palette_size(&mut self) -> ImageResult<usize>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 880
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 880
    functionName: BmpDecoder::bytes_per_color
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn bytes_per_color(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::bytes_per_color
      Src: /src/image/src/codecs/bmp/decoder.rs:885,1
    - Dst: BmpDecoder::get_palette_size
      Src: /src/image/src/codecs/bmp/decoder.rs:886,1
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/codecs/bmp/decoder.rs:890,1
    - Dst: io::Result::resize
      Src: /src/image/src/codecs/bmp/decoder.rs:895,1
    - Dst: cmp::min
      Src: /src/image/src/codecs/bmp/decoder.rs:895,1
    - Dst: by_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:896,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:896,1
    - Dst: Option::cmp
      Src: /src/image/src/codecs/bmp/decoder.rs:900,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:902,1
    - Dst: SeekFrom::Current
      Src: /src/image/src/codecs/bmp/decoder.rs:903,1
    - Dst: io::Result::resize
      Src: /src/image/src/codecs/bmp/decoder.rs:905,1
    - Dst: map
      Src: /src/image/src/codecs/bmp/decoder.rs:909,1
    - Dst: collect
      Src: /src/image/src/codecs/bmp/decoder.rs:909,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:918,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:920,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 921
      start: 882
    functionDepth: 5
    functionLinenumber: 882
    functionLinenumberEnd: 921
    functionName: BmpDecoder::read_palette
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - utils::vec_try_with_capacity
    - seek
    - BmpDecoder::bytes_per_color
    - map
    - BmpDecoder::get_palette_size
    - read_exact
    - Some
    - Option::cmp
    - io::Result::resize
    - cmp::min
    - SeekFrom::Current
    - collect
    - Ok
    - by_ref
    linkageType: ''
    returnType: ImageResult
    signature: fn read_palette(&mut self) -> ImageResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:925,1
    - Dst: map
      Src: /src/image/src/codecs/bmp/decoder.rs:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 926
      start: 924
    functionDepth: 1
    functionLinenumber: 924
    functionLinenumberEnd: 926
    functionName: BmpDecoder::get_palette
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - map
    - as_ref
    linkageType: ''
    returnType: Option
    signature: pub fn get_palette(&self) -> Option<&[[u8; 3]]>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 936
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 936
    functionName: BmpDecoder::num_channels
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn num_channels(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:939,1
    - Dst: Chunker::FromTop
      Src: /src/image/src/codecs/bmp/decoder.rs:942,1
    - Dst: ImageResult::chunks_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:942,1
    - Dst: Chunker::FromBottom
      Src: /src/image/src/codecs/bmp/decoder.rs:946,1
    - Dst: ImageResult::chunks_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:946,1
    - Dst: rev
      Src: /src/image/src/codecs/bmp/decoder.rs:946,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - pixel_data
    argTypes:
    - '&''a mut [u8]'
    constantsTouched: []
    func_position:
      end: 949
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 949
    functionName: BmpDecoder::rows
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - Chunker::FromTop
    - rev
    - BmpDecoder::num_channels
    - ImageResult::chunks_mut
    - Chunker::FromBottom
    linkageType: ''
    returnType: RowIterator
    signature: 'fn rows<''a>(&self, pixel_data: &''a mut [u8]) -> RowIterator<''a>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:952,1
    - Dst: i32::from
      Src: /src/image/src/codecs/bmp/decoder.rs:953,1
    - Dst: as_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:955,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:955,1
    - Dst: Result::seek
      Src: /src/image/src/codecs/bmp/decoder.rs:961,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:961,1
    - Dst: io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:964,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:964,1
    - Dst: with_rows
      Src: /src/image/src/codecs/bmp/decoder.rs:967,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:974,1
    - Dst: clone_from_slice
      Src: /src/image/src/codecs/bmp/decoder.rs:976,1
    - Dst: chunks_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:978,1
    - Dst: set_1bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:981,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:981,1
    - Dst: set_2bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:984,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:984,1
    - Dst: set_4bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:987,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:987,1
    - Dst: set_8bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:990,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:990,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:995,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:999,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 88
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1000
      start: 951
    functionDepth: 3
    functionLinenumber: 951
    functionLinenumberEnd: 1000
    functionName: BmpDecoder::read_palettized_pixel_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - with_rows
    - chunks_mut
    - for_each
    - Result::read_exact
    - clone_from_slice
    - set_4bit_pixel_run
    - SeekFrom::Start
    - set_8bit_pixel_run
    - set_2bit_pixel_run
    - i32::from
    - BmpDecoder::num_channels
    - set_1bit_pixel_run
    - Option::iter
    - unwrap
    - as_ref
    - io::Result::chunks_exact_mut
    - Ok
    - Result::seek
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_palettized_pixel_data(&mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:1007,1
    - Dst: as_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:1012,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1012,1
    - Dst: Result::seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1016,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1016,1
    - Dst: with_rows
      Src: /src/image/src/codecs/bmp/decoder.rs:1018,1
    - Dst: chunks_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1025,1
    - Dst: u32::from
      Src: /src/image/src/codecs/bmp/decoder.rs:1026,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:1026,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1028,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1029,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1030,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1033,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1039,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1043,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 78
    argCount: 2
    argNames:
    - buf
    - bitfields
    argTypes:
    - '&mut [u8]'
    - Option<&Bitfields>
    constantsTouched: []
    func_position:
      end: 1044
      start: 1002
    functionDepth: 4
    functionLinenumber: 1002
    functionLinenumberEnd: 1044
    functionName: BmpDecoder::read_16_bit_pixel_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - with_rows
    - chunks_mut
    - read
    - Result::read_exact
    - SeekFrom::Start
    - BmpDecoder::num_channels
    - read_u16::<LittleEndian>
    - unwrap
    - as_ref
    - u32::from
    - Ok
    - Result::seek
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_16_bit_pixel_data(&mut self,buf: &mut [u8],bitfields: Option<&Bitfields>,)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:1048,1
    - Dst: as_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:1050,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1050,1
    - Dst: Result::seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1053,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1053,1
    - Dst: with_rows
      Src: /src/image/src/codecs/bmp/decoder.rs:1055,1
    - Dst: chunks_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1062,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:1063,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1065,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1066,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1067,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1070,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1076,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1080,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 68
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1081
      start: 1047
    functionDepth: 4
    functionLinenumber: 1047
    functionLinenumberEnd: 1081
    functionName: BmpDecoder::read_32_bit_pixel_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - with_rows
    - chunks_mut
    - read
    - SeekFrom::Start
    - BmpDecoder::num_channels
    - unwrap
    - as_ref
    - read_u32::<LittleEndian>
    - Ok
    - Result::seek
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_32_bit_pixel_data(&mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:1089,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1096,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1096,1
    - Dst: with_rows
      Src: /src/image/src/codecs/bmp/decoder.rs:1100,1
    - Dst: chunks_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1107,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/bmp/decoder.rs:1109,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1115,1
    - Dst: reverse
      Src: /src/image/src/codecs/bmp/decoder.rs:1116,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/bmp/decoder.rs:1119,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1124,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1129,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1133,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 84
    argCount: 2
    argNames:
    - buf
    - format
    argTypes:
    - '&mut [u8]'
    - '&FormatFullBytes'
    constantsTouched: []
    func_position:
      end: 1134
      start: 1084
    functionDepth: 4
    functionLinenumber: 1084
    functionLinenumberEnd: 1134
    functionName: BmpDecoder::read_full_byte_pixel_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - with_rows
    - chunks_mut
    - seek
    - Result::read_exact
    - SeekFrom::Start
    - Result::read_u8
    - BmpDecoder::num_channels
    - reverse
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_full_byte_pixel_data(&mut self,buf: &mut [u8],format: &FormatFullBytes,)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1138,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1138,1
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:1140,1
    - Dst: as_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:1141,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1141,1
    - Dst: BmpDecoder::rows
      Src: /src/image/src/codecs/bmp/decoder.rs:1147,1
    - Dst: RowIterator::next
      Src: /src/image/src/codecs/bmp/decoder.rs:1149,1
    - Dst: chunks_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1150,1
    - Dst: read_u8
      Src: /src/image/src/codecs/bmp/decoder.rs:1155,1
    - Dst: read_u8
      Src: /src/image/src/codecs/bmp/decoder.rs:1158,1
    - Dst: read_u8
      Src: /src/image/src/codecs/bmp/decoder.rs:1164,1
    - Dst: read_u8
      Src: /src/image/src/codecs/bmp/decoder.rs:1165,1
    - Dst: RLEInsn::Delta
      Src: /src/image/src/codecs/bmp/decoder.rs:1166,1
    - Dst: Option::div_ceil
      Src: /src/image/src/codecs/bmp/decoder.rs:1171,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/bmp/decoder.rs:1174,1
    - Dst: read_exact_vec
      Src: /src/image/src/codecs/bmp/decoder.rs:1175,1
    - Dst: RLEInsn::Absolute
      Src: /src/image/src/codecs/bmp/decoder.rs:1176,1
    - Dst: read_u8
      Src: /src/image/src/codecs/bmp/decoder.rs:1181,1
    - Dst: RLEInsn::PixelRun
      Src: /src/image/src/codecs/bmp/decoder.rs:1182,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:1189,1
    - Dst: fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1189,1
    - Dst: RowIterator::for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:1190,1
    - Dst: Result::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1190,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1191,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:1194,1
    - Dst: fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1194,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:1206,1
    - Dst: fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1206,1
    - Dst: RowIterator::next
      Src: /src/image/src/codecs/bmp/decoder.rs:1210,1
    - Dst: Option::ok_or
      Src: /src/image/src/codecs/bmp/decoder.rs:1210,1
    - Dst: fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1211,1
    - Dst: RowIterator::next
      Src: /src/image/src/codecs/bmp/decoder.rs:1215,1
    - Dst: Option::ok_or
      Src: /src/image/src/codecs/bmp/decoder.rs:1215,1
    - Dst: chunks_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1215,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:1222,1
    - Dst: ok_or
      Src: /src/image/src/codecs/bmp/decoder.rs:1222,1
    - Dst: fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1222,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:1230,1
    - Dst: ok_or
      Src: /src/image/src/codecs/bmp/decoder.rs:1230,1
    - Dst: u8::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1231,1
    - Dst: set_8bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1241,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1244,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1247,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1247,1
    - Dst: set_4bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1251,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1254,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1257,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1257,1
    - Dst: set_8bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1270,1
    - Dst: std::iter::repeat
      Src: /src/image/src/codecs/bmp/decoder.rs:1273,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1276,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1276,1
    - Dst: set_4bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1280,1
    - Dst: std::iter::repeat
      Src: /src/image/src/codecs/bmp/decoder.rs:1283,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1286,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1286,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1297,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 210
    argCount: 2
    argNames:
    - buf
    - image_type
    argTypes:
    - '&mut [u8]'
    - ImageType
    constantsTouched: []
    func_position:
      end: 1298
      start: 1136
    functionDepth: 4
    functionLinenumber: 1136
    functionLinenumberEnd: 1298
    functionName: BmpDecoder::read_rle_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - RowIterator::next
    - for_each
    - Option::ok_or
    - unwrap
    - Ok
    - set_4bit_pixel_run
    - Err
    - seek
    - set_8bit_pixel_run
    - BmpDecoder::rows
    - fill
    - Option::iter
    - std::iter::repeat
    - Option::div_ceil
    - chunks_mut
    - Result::fill
    - read_u8
    - SeekFrom::Start
    - read_exact_vec
    - u8::fill
    - into
    - RLEInsn::Delta
    - as_ref
    - Vec::new
    - ok_or
    - RLEInsn::PixelRun
    - BmpDecoder::num_channels
    - next
    - RLEInsn::Absolute
    - RowIterator::for_each
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_rle_data(&mut self, buf: &mut [u8], image_type: ImageType)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::read_palettized_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1304,1
    - Dst: BmpDecoder::read_16_bit_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1305,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:1305,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1306,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1307,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1308,1
    - Dst: BmpDecoder::read_rle_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1309,1
    - Dst: BmpDecoder::read_rle_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1310,1
    - Dst: BmpDecoder::read_16_bit_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1312,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1313,1
    - Dst: DecoderError::BitfieldMasksMissing
      Src: /src/image/src/codecs/bmp/decoder.rs:1313,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1313,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1317,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1320,1
    - Dst: BmpDecoder::read_32_bit_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1322,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1323,1
    - Dst: DecoderError::BitfieldMasksMissing
      Src: /src/image/src/codecs/bmp/decoder.rs:1323,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1326
      start: 1302
    functionDepth: 4
    functionLinenumber: 1302
    functionLinenumberEnd: 1326
    functionName: BmpDecoder::read_image_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - BmpDecoder::read_palettized_pixel_data
    - Err
    - Some
    - BmpDecoder::read_full_byte_pixel_data
    - into
    - BmpDecoder::read_16_bit_pixel_data
    - BmpDecoder::read_32_bit_pixel_data
    - DecoderError::BitfieldMasksMissing
    - BmpDecoder::read_rle_data
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn read_image_data(&mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1332
    functionName: BmpDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1342
    functionName: BmpDecoder::color_type
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::read_image_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1347
      start: 1344
    functionDepth: 5
    functionLinenumber: 1344
    functionLinenumberEnd: 1347
    functionName: BmpDecoder::read_image
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - BmpDecoder::read_image_data
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/bmp/decoder.rs:1350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1351
      start: 1349
    functionDepth: 3
    functionLinenumber: 1349
    functionLinenumberEnd: 1351
    functionName: BmpDecoder::read_image_boxed
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stream_position
      Src: /src/image/src/codecs/bmp/decoder.rs:1364,1
    - Dst: io::free_functions::load_rect
      Src: /src/image/src/codecs/bmp/decoder.rs:1365,1
    - Dst: BmpDecoder::total_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:1373,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1374,1
    - Dst: read_image_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1375,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1377,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1377,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 6
    argNames:
    - x
    - y
    - width
    - height
    - buf
    - row_pitch
    argTypes:
    - u32
    - u32
    - u32
    - u32
    - '&mut [u8]'
    - usize
    constantsTouched: []
    func_position:
      end: 1379
      start: 1355
    functionDepth: 11
    functionLinenumber: 1355
    functionLinenumberEnd: 1379
    functionName: BmpDecoder::read_rect
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - seek
    - SeekFrom::Start
    - Ok
    - BmpDecoder::total_bytes
    - io::free_functions::load_rect
    - read_image_data
    - stream_position
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_rect(&mut self,x: u32,y: u32,width: u32,height: u32,buf: &mut
      [u8],row_pitch: usize,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1393,1
    - Dst: f64::from
      Src: /src/image/src/codecs/bmp/decoder.rs:1394,1
    - Dst: f64::from
      Src: /src/image/src/codecs/bmp/decoder.rs:1394,1
    - Dst: round
      Src: /src/image/src/codecs/bmp/decoder.rs:1394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1401
      start: 1389
    functionDepth: 3
    functionLinenumber: 1389
    functionLinenumberEnd: 1401
    functionName: test::test_bitfield_len
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - read
    - round
    - f64::from
    linkageType: ''
    returnType: void
    signature: fn test_bitfield_len()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufReader::new
      Src: /src/image/src/codecs/bmp/decoder.rs:1406,1
    - Dst: std::fs::File::open
      Src: /src/image/src/codecs/bmp/decoder.rs:1406,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1406,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:1407,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1407,1
    - Dst: ImageResult::read_rect
      Src: /src/image/src/codecs/bmp/decoder.rs:1410,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1404
    functionDepth: 6
    functionLinenumber: 1404
    functionLinenumberEnd: 1411
    functionName: test::read_rect
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_rect
    - std::fs::File::open
    - ImageResult::unwrap
    - BmpDecoder::new
    - io::Result::unwrap
    - BufReader::new
    linkageType: ''
    returnType: void
    signature: fn read_rect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:1436,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:1436,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1414
    functionDepth: 6
    functionLinenumber: 1414
    functionLinenumberEnd: 1439
    functionName: test::read_rle_too_short
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - BmpDecoder::new
    - Cursor::new
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn read_rle_too_short()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/codecs/bmp/decoder.rs:1453,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1453,1
    - Dst: std::fs::read
      Src: /src/image/src/codecs/bmp/decoder.rs:1454,1
    - Dst: bool::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1454,1
    - Dst: BmpDecoder::new_without_file_header
      Src: /src/image/src/codecs/bmp/decoder.rs:1457,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:1457,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1457,1
    - Dst: crate::DynamicImage::from_decoder
      Src: /src/image/src/codecs/bmp/decoder.rs:1458,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1442
    functionDepth: 6
    functionLinenumber: 1442
    functionLinenumberEnd: 1461
    functionName: test::test_no_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - std::fs::read
    - crate::open
    - crate::DynamicImage::from_decoder
    - ImageResult::unwrap
    - Cursor::new
    - bool::unwrap
    - io::Result::unwrap
    - BmpDecoder::new_without_file_header
    linkageType: ''
    returnType: void
    signature: fn test_no_header()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - img_type
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 38
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: ImageType::new
    functionSourceFile: /src/image/src/codecs/tga/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ImageType
    signature: 'pub(crate) fn new(img_type: u8) -> ImageType'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: ImageType::is_color
    functionSourceFile: /src/image/src/codecs/tga/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub(crate) fn is_color(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: ImageType::is_color_mapped
    functionSourceFile: /src/image/src/codecs/tga/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub(crate) fn is_color_mapped(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: ImageType::is_encoded
    functionSourceFile: /src/image/src/codecs/tga/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub(crate) fn is_encoded(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::default
      Src: /src/image/src/codecs/tga/header.rs:89,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/header.rs:102,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tga/header.rs:102,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tga/header.rs:103,1
    - Dst: into
      Src: /src/image/src/codecs/tga/header.rs:104,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/tga/header.rs:105,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/header.rs:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 4
    argNames:
    - color_type
    - width
    - height
    - use_rle
    argTypes:
    - ExtendedColorType
    - u16
    - u16
    - bool
    constantsTouched: []
    func_position:
      end: 120
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 120
    functionName: Header::from_pixel_info
    functionSourceFile: /src/image/src/codecs/tga/header.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - UnsupportedError::from_format_and_kind
    - Self::default
    - ImageError::Unsupported
    - UnsupportedErrorKind::Color
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn from_pixel_info(color_type: ExtendedColorType,width:
      u16,height: u16,use_rle: bool,) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::write_u8
      Src: /src/image/src/codecs/tga/header.rs:142,1
    - Dst: Self::write_u8
      Src: /src/image/src/codecs/tga/header.rs:143,1
    - Dst: Self::write_u8
      Src: /src/image/src/codecs/tga/header.rs:144,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:145,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:146,1
    - Dst: Self::write_u8
      Src: /src/image/src/codecs/tga/header.rs:147,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:148,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:149,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:150,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:151,1
    - Dst: Self::write_u8
      Src: /src/image/src/codecs/tga/header.rs:152,1
    - Dst: Self::write_u8
      Src: /src/image/src/codecs/tga/header.rs:153,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/header.rs:154,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 62
    argCount: 1
    argNames:
    - w
    argTypes:
    - '&mut dyn Write'
    constantsTouched: []
    func_position:
      end: 155
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 155
    functionName: Header::write_to
    functionSourceFile: /src/image/src/codecs/tga/header.rs
    functionUses: 0
    functionsReached:
    - write_u16::<LittleEndian>
    - Self::write_u8
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn write_to(&self, w: &mut dyn Write) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_fmt
      Src: /src/image/src/codecs/tga/encoder.rs:19,1
    - Dst: write_fmt
      Src: /src/image/src/codecs/tga/encoder.rs:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: EncoderError::fmt
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - write_fmt
    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: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: TgaEncoder::new
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: TgaEncoder
    signature: 'pub fn new(w: W) -> TgaEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: TgaEncoder::disable_rle
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: TgaEncoder
    signature: pub fn disable_rle(mut self) -> TgaEncoder<W>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_all
      Src: /src/image/src/codecs/tga/encoder.rs:69,1
    - Dst: write_all
      Src: /src/image/src/codecs/tga/encoder.rs:70,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/encoder.rs:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - pixels
    - counter
    argTypes:
    - '&[u8]'
    - u8
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 72
    functionName: TgaEncoder::write_raw_packet
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - write_all
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_raw_packet(&mut self, pixels: &[u8], counter: u8) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_all
      Src: /src/image/src/codecs/tga/encoder.rs:78,1
    - Dst: write_all
      Src: /src/image/src/codecs/tga/encoder.rs:79,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/encoder.rs:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - pixel
    - counter
    argTypes:
    - '&[u8]'
    - u8
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: TgaEncoder::write_rle_encoded_packet
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - write_all
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_rle_encoded_packet(&mut self, pixel: &[u8], counter: u8)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExtendedColorType::bits_per_pixel
      Src: /src/image/src/codecs/tga/encoder.rs:91,1
    - Dst: usize::from
      Src: /src/image/src/codecs/tga/encoder.rs:92,1
    - Dst: usize::from
      Src: /src/image/src/codecs/tga/encoder.rs:92,1
    - Dst: vec_try_with_capacity
      Src: /src/image/src/codecs/tga/encoder.rs:96,1
    - Dst: Vec::chunks
      Src: /src/image/src/codecs/tga/encoder.rs:102,1
    - Dst: usize::from
      Src: /src/image/src/codecs/tga/encoder.rs:102,1
    - Dst: TgaEncoder::write_raw_packet
      Src: /src/image/src/codecs/tga/encoder.rs:107,1
    - Dst: io::Result::clear
      Src: /src/image/src/codecs/tga/encoder.rs:109,1
    - Dst: TgaEncoder::write_rle_encoded_packet
      Src: /src/image/src/codecs/tga/encoder.rs:114,1
    - Dst: io::Result::clear
      Src: /src/image/src/codecs/tga/encoder.rs:117,1
    - Dst: io::Result::extend_from_slice
      Src: /src/image/src/codecs/tga/encoder.rs:122,1
    - Dst: TgaEncoder::write_rle_encoded_packet
      Src: /src/image/src/codecs/tga/encoder.rs:128,1
    - Dst: None::unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:128,1
    - Dst: TgaEncoder::write_raw_packet
      Src: /src/image/src/codecs/tga/encoder.rs:129,1
    - Dst: io::Result::clear
      Src: /src/image/src/codecs/tga/encoder.rs:134,1
    - Dst: Some
      Src: /src/image/src/codecs/tga/encoder.rs:137,1
    - Dst: TgaEncoder::write_rle_encoded_packet
      Src: /src/image/src/codecs/tga/encoder.rs:142,1
    - Dst: None::unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:142,1
    - Dst: TgaEncoder::write_raw_packet
      Src: /src/image/src/codecs/tga/encoder.rs:143,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/encoder.rs:147,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 93
    argCount: 2
    argNames:
    - image
    - color_type
    argTypes:
    - '&[u8]'
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 148
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 148
    functionName: TgaEncoder::run_length_encode
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - vec_try_with_capacity
    - TgaEncoder::write_rle_encoded_packet
    - io::Result::extend_from_slice
    - Vec::chunks
    - TgaEncoder::write_raw_packet
    - Some
    - io::Result::clear
    - None::unwrap
    - usize::from
    - ExtendedColorType::bits_per_pixel
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn run_length_encode(&mut self,image: &[u8],color_type: ExtendedColorType,)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExtendedColorType::buffer_size
      Src: /src/image/src/codecs/tga/encoder.rs:167,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/tga/encoder.rs:176,1
    - Dst: map_err
      Src: /src/image/src/codecs/tga/encoder.rs:176,1
    - Dst: ImageError::from
      Src: /src/image/src/codecs/tga/encoder.rs:177,1
    - Dst: EncoderError::WidthInvalid
      Src: /src/image/src/codecs/tga/encoder.rs:177,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/tga/encoder.rs:179,1
    - Dst: map_err
      Src: /src/image/src/codecs/tga/encoder.rs:179,1
    - Dst: ImageError::from
      Src: /src/image/src/codecs/tga/encoder.rs:180,1
    - Dst: EncoderError::HeightInvalid
      Src: /src/image/src/codecs/tga/encoder.rs:180,1
    - Dst: Header::from_pixel_info
      Src: /src/image/src/codecs/tga/encoder.rs:183,1
    - Dst: '&exr::meta::header::Header::write_to'
      Src: /src/image/src/codecs/tga/encoder.rs:184,1
    - Dst: ImageType::new
      Src: /src/image/src/codecs/tga/encoder.rs:186,1
    - Dst: Vec::from
      Src: /src/image/src/codecs/tga/encoder.rs:195,1
    - Dst: Vec::chunks_mut
      Src: /src/image/src/codecs/tga/encoder.rs:197,1
    - Dst: usize::from
      Src: /src/image/src/codecs/tga/encoder.rs:197,1
    - Dst: ExtendedColorType::bits_per_pixel
      Src: /src/image/src/codecs/tga/encoder.rs:197,1
    - Dst: u8::swap
      Src: /src/image/src/codecs/tga/encoder.rs:199,1
    - Dst: TgaEncoder::run_length_encode
      Src: /src/image/src/codecs/tga/encoder.rs:202,1
    - Dst: TgaEncoder::run_length_encode
      Src: /src/image/src/codecs/tga/encoder.rs:205,1
    - Dst: Vec::from
      Src: /src/image/src/codecs/tga/encoder.rs:214,1
    - Dst: Vec::chunks_mut
      Src: /src/image/src/codecs/tga/encoder.rs:216,1
    - Dst: usize::from
      Src: /src/image/src/codecs/tga/encoder.rs:216,1
    - Dst: ExtendedColorType::bits_per_pixel
      Src: /src/image/src/codecs/tga/encoder.rs:216,1
    - Dst: u8::swap
      Src: /src/image/src/codecs/tga/encoder.rs:218,1
    - Dst: write_all
      Src: /src/image/src/codecs/tga/encoder.rs:221,1
    - Dst: write_all
      Src: /src/image/src/codecs/tga/encoder.rs:224,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/encoder.rs:230,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 80
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 231
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 231
    functionName: TgaEncoder::encode
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - ExtendedColorType::buffer_size
    - u16::try_from
    - EncoderError::WidthInvalid
    - Header::from_pixel_info
    - Vec::chunks_mut
    - write_all
    - map_err
    - ImageType::new
    - TgaEncoder::run_length_encode
    - usize::from
    - Vec::from
    - EncoderError::HeightInvalid
    - ExtendedColorType::bits_per_pixel
    - ImageError::from
    - u8::swap
    - Ok
    - '&exr::meta::header::Header::write_to'
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn encode(mut self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TgaEncoder::encode
      Src: /src/image/src/codecs/tga/encoder.rs:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 244
      start: 236
    functionDepth: 4
    functionLinenumber: 236
    functionLinenumberEnd: 244
    functionName: TgaEncoder::write_image
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - TgaEncoder::encode
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::io::encoder::dynimage_conversion_8bit
      Src: /src/image/src/codecs/tga/encoder.rs:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - img
    argTypes:
    - crate::io::encoder::MethodSealedToImage
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 252
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 252
    functionName: TgaEncoder::make_compatible_img
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - crate::io::encoder::dynimage_conversion_8bit
    linkageType: ''
    returnType: Option
    signature: 'fn make_compatible_img(&self,_: crate::io::encoder::MethodSealedToImage,img:
      &DynamicImage,) -> Option<DynamicImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::from
      Src: /src/image/src/codecs/tga/encoder.rs:265,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/encoder.rs:270,1
    - Dst: TgaEncoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:271,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/tga/encoder.rs:272,1
    - Dst: ImageError::source
      Src: /src/image/src/codecs/tga/encoder.rs:276,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:276,1
    - Dst: "source()\n                    .unwrap()\n                    .downcast_ref::<EncoderError>"
      Src: /src/image/src/codecs/tga/encoder.rs:276,1
    - Dst: unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 288
    functionName: tests::test_image_width_too_large
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - "source()\n                    .unwrap()\n                    .downcast_ref::<EncoderError>"
    - ImageError::source
    - usize::from
    - unwrap
    - TgaEncoder::new
    - Vec::new
    - ImageResult::encode
    linkageType: ''
    returnType: void
    signature: fn test_image_width_too_large()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::from
      Src: /src/image/src/codecs/tga/encoder.rs:294,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/encoder.rs:299,1
    - Dst: TgaEncoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:300,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/tga/encoder.rs:301,1
    - Dst: ImageError::source
      Src: /src/image/src/codecs/tga/encoder.rs:305,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:305,1
    - Dst: "source()\n                    .unwrap()\n                    .downcast_ref::<EncoderError>"
      Src: /src/image/src/codecs/tga/encoder.rs:305,1
    - Dst: unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 317
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 317
    functionName: tests::test_image_height_too_large
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - "source()\n                    .unwrap()\n                    .downcast_ref::<EncoderError>"
    - ImageError::source
    - usize::from
    - unwrap
    - TgaEncoder::new
    - Vec::new
    - ImageResult::encode
    linkageType: ''
    returnType: void
    signature: fn test_image_height_too_large()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/encoder.rs:324,1
    - Dst: TgaEncoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:325,1
    - Dst: TgaEncoder::disable_rle
      Src: /src/image/src/codecs/tga/encoder.rs:325,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/tga/encoder.rs:326,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/tga/encoder.rs:326,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/encoder.rs:334,1
    - Dst: TgaEncoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:335,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/tga/encoder.rs:336,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/tga/encoder.rs:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 320
    functionDepth: 4
    functionLinenumber: 320
    functionLinenumberEnd: 344
    functionName: tests::test_compression_diff
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - TgaEncoder::disable_rle
    - TgaEncoder::new
    - Vec::new
    - ImageResult::expect
    - ImageResult::encode
    linkageType: ''
    returnType: void
    signature: fn test_compression_diff()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/tga/encoder.rs:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 377
      start: 370
    functionDepth: 5
    functionLinenumber: 370
    functionLinenumberEnd: 377
    functionName: tests::mixed_packets
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - round_trip_image
    linkageType: ''
    returnType: void
    signature: fn mixed_packets()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/tga/encoder.rs:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 5
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: tests::round_trip_three_pixel_rgb
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - round_trip_image
    linkageType: ''
    returnType: void
    signature: fn round_trip_three_pixel_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/tga/encoder.rs:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 5
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: tests::round_trip_different
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - round_trip_image
    linkageType: ''
    returnType: void
    signature: fn round_trip_different()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/tga/encoder.rs:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 428
    functionDepth: 5
    functionLinenumber: 428
    functionLinenumberEnd: 433
    functionName: tests::round_trip_different_2
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - round_trip_image
    linkageType: ''
    returnType: void
    signature: fn round_trip_different_2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/tga/encoder.rs:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 436
    functionDepth: 5
    functionLinenumber: 436
    functionLinenumberEnd: 441
    functionName: tests::round_trip_different_3
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - round_trip_image
    linkageType: ''
    returnType: void
    signature: fn round_trip_different_3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/codecs/tga/encoder.rs:447,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:447,1
    - Dst: Vec::width
      Src: /src/image/src/codecs/tga/encoder.rs:448,1
    - Dst: Vec::height
      Src: /src/image/src/codecs/tga/encoder.rs:448,1
    - Dst: Vec::as_rgb8
      Src: /src/image/src/codecs/tga/encoder.rs:449,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:449,1
    - Dst: to_vec
      Src: /src/image/src/codecs/tga/encoder.rs:449,1
    - Dst: round_trip_image
      Src: /src/image/src/codecs/tga/encoder.rs:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 454
      start: 444
    functionDepth: 12
    functionLinenumber: 444
    functionLinenumberEnd: 454
    functionName: tests::round_trip_bw
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::height
    - Option::unwrap
    - crate::open
    - to_vec
    - round_trip_image
    - Vec::width
    - io::Result::unwrap
    - Vec::as_rgb8
    linkageType: ''
    returnType: void
    signature: fn round_trip_bw()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/image/src/codecs/tga/decoder.rs:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - index
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: ColorMap::get
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn get(&self, index: usize) -> Option<&[u8]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - value
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 77
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 77
    functionName: TgaOrientation::from_image_desc_byte
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from_image_desc_byte(value: u8) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Header::from_reader
      Src: /src/image/src/codecs/tga/decoder.rs:84,1
    - Dst: ImageType::new
      Src: /src/image/src/codecs/tga/decoder.rs:85,1
    - Dst: div_ceil
      Src: /src/image/src/codecs/tga/decoder.rs:88,1
    - Dst: contains
      Src: /src/image/src/codecs/tga/decoder.rs:92,1
    - Dst: contains
      Src: /src/image/src/codecs/tga/decoder.rs:92,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:93,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tga/decoder.rs:93,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tga/decoder.rs:94,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:95,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/tga/decoder.rs:96,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/tga/decoder.rs:96,1
    - Dst: ImageType::is_color_mapped
      Src: /src/image/src/codecs/tga/decoder.rs:100,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:102,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:102,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:102,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:103,1
    - Dst: contains
      Src: /src/image/src/codecs/tga/decoder.rs:106,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:107,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:107,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:107,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:108,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:112,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tga/decoder.rs:112,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tga/decoder.rs:113,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:114,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tga/decoder.rs:115,1
    - Dst: '&str::into'
      Src: /src/image/src/codecs/tga/decoder.rs:116,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/tga/decoder.rs:127,1
    - Dst: div_ceil
      Src: /src/image/src/codecs/tga/decoder.rs:132,1
    - Dst: contains
      Src: /src/image/src/codecs/tga/decoder.rs:133,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:134,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tga/decoder.rs:134,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tga/decoder.rs:135,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:136,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tga/decoder.rs:137,1
    - Dst: '&str::into'
      Src: /src/image/src/codecs/tga/decoder.rs:138,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/decoder.rs:144,1
    - Dst: Result::read_exact_vec
      Src: /src/image/src/codecs/tga/decoder.rs:145,1
    - Dst: ImageType::is_color_mapped
      Src: /src/image/src/codecs/tga/decoder.rs:149,1
    - Dst: Some
      Src: /src/image/src/codecs/tga/decoder.rs:150,1
    - Dst: checked_sub
      Src: /src/image/src/codecs/tga/decoder.rs:164,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/tga/decoder.rs:164,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:167,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:167,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:168,1
    - Dst: ImageType::is_color
      Src: /src/image/src/codecs/tga/decoder.rs:176,1
    - Dst: Some
      Src: /src/image/src/codecs/tga/decoder.rs:187,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:190,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tga/decoder.rs:190,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tga/decoder.rs:191,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:192,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/tga/decoder.rs:193,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/tga/decoder.rs:193,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/decoder.rs:199,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 179
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 213
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 213
    functionName: TgaDecoder::new
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 2
    functionsReached:
    - Result::read_exact
    - DecodingError::new
    - Some
    - UnsupportedErrorKind::GenericFeature
    - Ok
    - Err
    - ImageType::is_color_mapped
    - ImageType::new
    - contains
    - ExtendedColorType::Unknown
    - ImageError::Decoding
    - UnsupportedErrorKind::Color
    - ImageType::is_color
    - into
    - checked_sub
    - ok_or_else
    - Vec::new
    - '&str::into'
    - Result::read_exact_vec
    - div_ceil
    - UnsupportedError::from_format_and_kind
    - Header::from_reader
    - ImageError::Unsupported
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(mut r: R) -> ImageResult<TgaDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Result::len
      Src: /src/image/src/codecs/tga/decoder.rs:222,1
    - Dst: read_u8
      Src: /src/image/src/codecs/tga/decoder.rs:223,1
    - Dst: read_exact
      Src: /src/image/src/codecs/tga/decoder.rs:231,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:233,1
    - Dst: take
      Src: /src/image/src/codecs/tga/decoder.rs:233,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:237,1
    - Dst: min
      Src: /src/image/src/codecs/tga/decoder.rs:243,1
    - Dst: io::Result::len
      Src: /src/image/src/codecs/tga/decoder.rs:243,1
    - Dst: read_exact
      Src: /src/image/src/codecs/tga/decoder.rs:245,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/decoder.rs:250,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 70
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 251
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 251
    functionName: TgaDecoder::read_encoded_data
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached:
    - io::Result::len
    - read_u8
    - read_exact
    - chunks_exact_mut
    - Ok
    - Option::copy_from_slice
    - take
    - min
    linkageType: ''
    returnType: io::Result
    signature: 'fn read_encoded_data(&mut self, buf: &mut [u8]) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::iter'
      Src: /src/image/src/codecs/tga/decoder.rs:261,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:261,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:263,1
    - Dst: ImageResult::get
      Src: /src/image/src/codecs/tga/decoder.rs:265,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:266,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:268,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:268,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:268,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:269,1
    - Dst: '&[u8]::chunks_exact'
      Src: /src/image/src/codecs/tga/decoder.rs:275,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:275,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:277,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/tga/decoder.rs:279,1
    - Dst: Option::try_into
      Src: /src/image/src/codecs/tga/decoder.rs:279,1
    - Dst: unwrap
      Src: /src/image/src/codecs/tga/decoder.rs:279,1
    - Dst: ImageResult::get
      Src: /src/image/src/codecs/tga/decoder.rs:280,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:281,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:283,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:283,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:283,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:284,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/decoder.rs:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 63
    argCount: 3
    argNames:
    - input
    - output
    - color_map
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&ColorMap'
    constantsTouched: []
    func_position:
      end: 294
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 294
    functionName: TgaDecoder::expand_color_map
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - u16::from_le_bytes
    - DecodingError::new
    - '&[u8]::chunks_exact'
    - chunks_exact_mut
    - Option::try_into
    - into
    - ImageError::Decoding
    - unwrap
    - ImageResult::get
    - Option::copy_from_slice
    - zip
    - '&[u8]::iter'
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn expand_color_map(&self,input: &[u8],output: &mut [u8],color_map:
      &ColorMap,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::chunks_mut
      Src: /src/image/src/codecs/tga/decoder.rs:304,1
    - Dst: bytes_per_pixel
      Src: /src/image/src/codecs/tga/decoder.rs:304,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:304,1
    - Dst: Option::swap
      Src: /src/image/src/codecs/tga/decoder.rs:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - pixels
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 310
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 310
    functionName: TgaDecoder::reverse_encoding_in_output
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached:
    - Vec::chunks_mut
    - Option::swap
    - into
    - bytes_per_pixel
    linkageType: ''
    returnType: void
    signature: 'fn reverse_encoding_in_output(&mut self, pixels: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TgaOrientation::from_image_desc_byte
      Src: /src/image/src/codecs/tga/decoder.rs:314,1
    - Dst: Vec::split_at_mut
      Src: /src/image/src/codecs/tga/decoder.rs:322,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:324,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:324,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:326,1
    - Dst: rev
      Src: /src/image/src/codecs/tga/decoder.rs:326,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/tga/decoder.rs:328,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:328,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/tga/decoder.rs:328,1
    - Dst: std::mem::swap
      Src: /src/image/src/codecs/tga/decoder.rs:329,1
    - Dst: Vec::chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:338,1
    - Dst: split_at_mut
      Src: /src/image/src/codecs/tga/decoder.rs:340,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:341,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:341,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:343,1
    - Dst: rev
      Src: /src/image/src/codecs/tga/decoder.rs:343,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/tga/decoder.rs:345,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:345,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/tga/decoder.rs:345,1
    - Dst: std::mem::swap
      Src: /src/image/src/codecs/tga/decoder.rs:346,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 84
    argCount: 1
    argNames:
    - pixels
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 351
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 351
    functionName: TgaDecoder::fixup_orientation
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached:
    - std::mem::swap
    - rev
    - Vec::split_at_mut
    - chunks_exact_mut
    - Vec::chunks_exact_mut
    - iter_mut
    - zip
    - TgaOrientation::from_image_desc_byte
    - split_at_mut
    linkageType: ''
    returnType: void
    signature: 'fn fixup_orientation(&mut self, pixels: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 357
    functionName: TgaDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 361
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 361
    functionName: TgaDecoder::color_type
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unwrap_or_else
      Src: /src/image/src/codecs/tga/decoder.rs:364,1
    - Dst: TgaDecoder::color_type
      Src: /src/image/src/codecs/tga/decoder.rs:365,1
    - Dst: ColorType::into
      Src: /src/image/src/codecs/tga/decoder.rs:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: TgaDecoder::original_color_type
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached:
    - unwrap_or_else
    - TgaDecoder::color_type
    - ColorType::into
    linkageType: ''
    returnType: ExtendedColorType
    signature: fn original_color_type(&self) -> ExtendedColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_encoded
      Src: /src/image/src/codecs/tga/decoder.rs:376,1
    - Dst: TgaDecoder::read_encoded_data
      Src: /src/image/src/codecs/tga/decoder.rs:377,1
    - Dst: read_exact
      Src: /src/image/src/codecs/tga/decoder.rs:379,1
    - Dst: TgaDecoder::fixup_orientation
      Src: /src/image/src/codecs/tga/decoder.rs:382,1
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/codecs/tga/decoder.rs:389,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:390,1
    - Dst: TgaDecoder::expand_color_map
      Src: /src/image/src/codecs/tga/decoder.rs:392,1
    - Dst: TgaDecoder::reverse_encoding_in_output
      Src: /src/image/src/codecs/tga/decoder.rs:395,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/decoder.rs:397,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 50
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 398
      start: 368
    functionDepth: 3
    functionLinenumber: 368
    functionLinenumberEnd: 398
    functionName: TgaDecoder::read_image
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached:
    - utils::vec_try_with_capacity
    - TgaDecoder::fixup_orientation
    - TgaDecoder::reverse_encoding_in_output
    - extend_from_slice
    - read_exact
    - TgaDecoder::expand_color_map
    - is_encoded
    - TgaDecoder::read_encoded_data
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/tga/decoder.rs:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 3
    functionLinenumber: 400
    functionLinenumberEnd: 402
    functionName: TgaDecoder::read_image_boxed
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: ArbitraryTuplType::name
    functionSourceFile: /src/image/src/codecs/pnm/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&str'
    signature: pub(crate) fn name(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 163
    functionName: PnmSubtype::magic_constant
    functionSourceFile: /src/image/src/codecs/pnm/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static [u8; 2]'
    signature: pub fn magic_constant(self) -> &'static [u8; 2]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: PnmSubtype::sample_encoding
    functionSourceFile: /src/image/src/codecs/pnm/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SampleEncoding
    signature: pub fn sample_encoding(self) -> SampleEncoding
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmSubtype::Bitmap
      Src: /src/image/src/codecs/pnm/header.rs:182,1
    - Dst: PnmSubtype::Graymap
      Src: /src/image/src/codecs/pnm/header.rs:183,1
    - Dst: PnmSubtype::Pixmap
      Src: /src/image/src/codecs/pnm/header.rs:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: PnmHeader::subtype
    functionSourceFile: /src/image/src/codecs/pnm/header.rs
    functionUses: 0
    functionsReached:
    - PnmSubtype::Bitmap
    - PnmSubtype::Pixmap
    - PnmSubtype::Graymap
    linkageType: ''
    returnType: PnmSubtype
    signature: pub fn subtype(&self) -> PnmSubtype
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: PnmHeader::width
    functionSourceFile: /src/image/src/codecs/pnm/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn width(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: PnmHeader::height
    functionSourceFile: /src/image/src/codecs/pnm/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn height(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 220
    functionName: PnmHeader::maximal_sample
    functionSourceFile: /src/image/src/codecs/pnm/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn maximal_sample(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/codecs/pnm/header.rs:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 229
    functionName: PnmHeader::as_bitmap
    functionSourceFile: /src/image/src/codecs/pnm/header.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_bitmap(&self) -> Option<&BitmapHeader>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/codecs/pnm/header.rs:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    functionName: PnmHeader::as_graymap
    functionSourceFile: /src/image/src/codecs/pnm/header.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_graymap(&self) -> Option<&GraymapHeader>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/codecs/pnm/header.rs:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 247
    functionName: PnmHeader::as_pixmap
    functionSourceFile: /src/image/src/codecs/pnm/header.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_pixmap(&self) -> Option<&PixmapHeader>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/codecs/pnm/header.rs:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: PnmHeader::as_arbitrary
    functionSourceFile: /src/image/src/codecs/pnm/header.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_arbitrary(&self) -> Option<&ArbitraryHeader>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut dyn io::Write::write_all'
      Src: /src/image/src/codecs/pnm/header.rs:260,1
    - Dst: PnmHeader::subtype
      Src: /src/image/src/codecs/pnm/header.rs:260,1
    - Dst: PnmSubtype::magic_constant
      Src: /src/image/src/codecs/pnm/header.rs:260,1
    - Dst: '&mut dyn io::Write::write_all'
      Src: /src/image/src/codecs/pnm/header.rs:265,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/header.rs:311,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut dyn io::Write'
    constantsTouched: []
    func_position:
      end: 327
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 327
    functionName: PnmHeader::write
    functionSourceFile: /src/image/src/codecs/pnm/header.rs
    functionUses: 0
    functionsReached:
    - PnmHeader::subtype
    - '&mut dyn io::Write::write_all'
    - PnmSubtype::magic_constant
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn write(&self, writer: &mut dyn io::Write) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HeaderRecord::Arbitrary
      Src: /src/image/src/codecs/pnm/header.rs:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - header
    argTypes:
    - ArbitraryHeader
    constantsTouched: []
    func_position:
      end: 363
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 363
    functionName: PnmHeader::from
    functionSourceFile: /src/image/src/codecs/pnm/header.rs
    functionUses: 0
    functionsReached:
    - HeaderRecord::Arbitrary
    linkageType: ''
    returnType: Self
    signature: 'fn from(header: ArbitraryHeader) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - writer
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: PnmEncoder::new
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(writer: W) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HeaderStrategy::Subtype
      Src: /src/image/src/codecs/pnm/encoder.rs:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - subtype
    argTypes:
    - PnmSubtype
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: PnmEncoder::with_subtype
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - HeaderStrategy::Subtype
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_subtype(self, subtype: PnmSubtype) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HeaderStrategy::Chosen
      Src: /src/image/src/codecs/pnm/encoder.rs:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - header
    argTypes:
    - PnmHeader
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: PnmEncoder::with_header
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - HeaderStrategy::Chosen
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_header(self, header: PnmHeader) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 137
    functionName: PnmEncoder::with_dynamic_header
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn with_dynamic_header(self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::into
      Src: /src/image/src/codecs/pnm/encoder.rs:158,1
    - Dst: bytemuck::try_cast_slice
      Src: /src/image/src/codecs/pnm/encoder.rs:171,1
    - Dst: FlatSamples::U16
      Src: /src/image/src/codecs/pnm/encoder.rs:173,1
    - Dst: ImageResult::chunks
      Src: /src/image/src/codecs/pnm/encoder.rs:176,1
    - Dst: io::Result::map
      Src: /src/image/src/codecs/pnm/encoder.rs:176,1
    - Dst: u16::from_ne_bytes
      Src: /src/image/src/codecs/pnm/encoder.rs:178,1
    - Dst: ImageResult::collect
      Src: /src/image/src/codecs/pnm/encoder.rs:176,1
    - Dst: FlatSamples::U16
      Src: /src/image/src/codecs/pnm/encoder.rs:181,1
    - Dst: PnmEncoder::encode_impl
      Src: /src/image/src/codecs/pnm/encoder.rs:185,1
    - Dst: PnmEncoder::encode_impl
      Src: /src/image/src/codecs/pnm/encoder.rs:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 4
    argNames:
    - image
    - width
    - height
    - color
    argTypes:
    - S
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 194
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 194
    functionName: PnmEncoder::encode
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - u16::from_ne_bytes
    - ImageResult::chunks
    - Vec::into
    - FlatSamples::U16
    - ImageResult::collect
    - bytemuck::try_cast_slice
    - io::Result::map
    - PnmEncoder::encode_impl
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn encode<''s, S>(&mut self,image: S,width: u32,height: u32,color:
      ExtendedColorType,) -> ImageResult<()>whereS: Into<FlatSamples<''s>>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmEncoder::write_dynamic_header
      Src: /src/image/src/codecs/pnm/encoder.rs:205,1
    - Dst: PnmEncoder::write_subtyped_header
      Src: /src/image/src/codecs/pnm/encoder.rs:207,1
    - Dst: Self::write_with_header
      Src: /src/image/src/codecs/pnm/encoder.rs:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - samples
    - width
    - height
    - color
    argTypes:
    - FlatSamples<'_>
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 213
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 213
    functionName: PnmEncoder::encode_impl
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 1
    functionsReached:
    - PnmEncoder::write_dynamic_header
    - Self::write_with_header
    - PnmEncoder::write_subtyped_header
    linkageType: ''
    returnType: ImageResult
    signature: 'fn encode_impl(&mut self,samples: FlatSamples<''_>,width: u32,height:
      u32,color: ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/image/src/codecs/pnm/encoder.rs:225,1
    - Dst: bool::channel_count
      Src: /src/image/src/codecs/pnm/encoder.rs:225,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:238,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/encoder.rs:238,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:239,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/encoder.rs:240,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/pnm/encoder.rs:241,1
    - Dst: HeaderRecord::Arbitrary
      Src: /src/image/src/codecs/pnm/encoder.rs:248,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/encoder.rs:253,1
    - Dst: Self::write_with_header
      Src: /src/image/src/codecs/pnm/encoder.rs:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 4
    argNames:
    - image
    - width
    - height
    - color
    argTypes:
    - FlatSamples
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 259
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 259
    functionName: PnmEncoder::write_dynamic_header
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - HeaderRecord::Arbitrary
    - Some
    - Self::write_with_header
    - into
    - UnsupportedError::from_format_and_kind
    - u32::from
    - bool::channel_count
    - ImageError::Unsupported
    - UnsupportedErrorKind::Color
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_dynamic_header(&mut self,image: FlatSamples,width: u32,height:
      u32,color: ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmEncoder::write_dynamic_header
      Src: /src/image/src/codecs/pnm/encoder.rs:272,1
    - Dst: HeaderRecord::Pixmap
      Src: /src/image/src/codecs/pnm/encoder.rs:275,1
    - Dst: HeaderRecord::Graymap
      Src: /src/image/src/codecs/pnm/encoder.rs:284,1
    - Dst: HeaderRecord::Bitmap
      Src: /src/image/src/codecs/pnm/encoder.rs:294,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:303,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/pnm/encoder.rs:303,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:303,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/pnm/encoder.rs:304,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/pnm/encoder.rs:305,1
    - Dst: Self::write_with_header
      Src: /src/image/src/codecs/pnm/encoder.rs:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 5
    argNames:
    - subtype
    - image
    - width
    - height
    - color
    argTypes:
    - PnmSubtype
    - FlatSamples
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 312
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 312
    functionName: PnmEncoder::write_subtyped_header
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - '&str::to_owned'
    - HeaderRecord::Bitmap
    - HeaderRecord::Pixmap
    - ParameterError::from_kind
    - PnmEncoder::write_dynamic_header
    - ParameterErrorKind::Generic
    - Self::write_with_header
    - HeaderRecord::Graymap
    - ImageError::Parameter
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_subtyped_header(&mut self,subtype: PnmSubtype,image: FlatSamples,width:
      u32,height: u32,color: ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Range::check_header_dimensions
      Src: /src/image/src/codecs/pnm/encoder.rs:327,1
    - Dst: check_header_color
      Src: /src/image/src/codecs/pnm/encoder.rs:327,1
    - Dst: check_sample_values
      Src: /src/image/src/codecs/pnm/encoder.rs:327,1
    - Dst: write_header
      Src: /src/image/src/codecs/pnm/encoder.rs:327,1
    - Dst: write_image
      Src: /src/image/src/codecs/pnm/encoder.rs:327,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - writer
    - header
    - image
    - width
    - height
    - color
    argTypes:
    - '&mut dyn Write'
    - '&PnmHeader'
    - FlatSamples
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 333
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 333
    functionName: PnmEncoder::write_with_header
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - write_header
    - check_sample_values
    - write_image
    - check_header_color
    - Range::check_header_dimensions
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_with_header(writer: &mut dyn Write,header: &PnmHeader,image:
      FlatSamples,width: u32,height: u32,color: ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExtendedColorType::buffer_size
      Src: /src/image/src/codecs/pnm/encoder.rs:345,1
    - Dst: PnmEncoder::encode
      Src: /src/image/src/codecs/pnm/encoder.rs:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 354
      start: 338
    functionDepth: 6
    functionLinenumber: 338
    functionLinenumberEnd: 354
    functionName: PnmEncoder::write_image
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - ExtendedColorType::buffer_size
    - PnmEncoder::encode
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(mut self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::channel_count
      Src: /src/image/src/codecs/pnm/encoder.rs:364,1
    - Dst: usize::checked_mul
      Src: /src/image/src/codecs/pnm/encoder.rs:367,1
    - Dst: and_then
      Src: /src/image/src/codecs/pnm/encoder.rs:367,1
    - Dst: DynamicImage::checked_mul
      Src: /src/image/src/codecs/pnm/encoder.rs:369,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/encoder.rs:370,1
    - Dst: Vec::len
      Src: /src/image/src/codecs/pnm/encoder.rs:370,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:372,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/pnm/encoder.rs:372,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:372,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/encoder.rs:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 4
    argNames:
    - image
    - width
    - height
    - color
    argTypes:
    - FlatSamples<'a>
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 382
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 382
    functionName: CheckedImageBuffer::check
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - DynamicImage::checked_mul
    - ParameterError::from_kind
    - Some
    - usize::checked_mul
    - Vec::len
    - bool::channel_count
    - and_then
    - Ok
    - ImageError::Parameter
    linkageType: ''
    returnType: ImageResult
    signature: 'fn check(image: FlatSamples<''a>,width: u32,height: u32,color: ExtendedColorType,)
      -> ImageResult<CheckedImageBuffer<''a>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: width
      Src: /src/image/src/codecs/pnm/encoder.rs:391,1
    - Dst: height
      Src: /src/image/src/codecs/pnm/encoder.rs:391,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:393,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/pnm/encoder.rs:393,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:393,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/encoder.rs:398,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 403
      start: 386
    functionDepth: 1
    functionLinenumber: 386
    functionLinenumberEnd: 403
    functionName: UncheckedHeader::check_header_dimensions
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - ParameterError::from_kind
    - width
    - height
    - Ok
    - ImageError::Parameter
    linkageType: ''
    returnType: ImageResult
    signature: 'fn check_header_dimensions(self,width: u32,height: u32,) -> ImageResult<CheckedDimensions<''a>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/image/src/codecs/pnm/encoder.rs:411,1
    - Dst: bool::channel_count
      Src: /src/image/src/codecs/pnm/encoder.rs:411,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:420,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/pnm/encoder.rs:420,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:420,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/pnm/encoder.rs:421,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/pnm/encoder.rs:422,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:433,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/pnm/encoder.rs:433,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:433,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/pnm/encoder.rs:434,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/pnm/encoder.rs:435,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:446,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/pnm/encoder.rs:446,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:446,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/pnm/encoder.rs:447,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/pnm/encoder.rs:448,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:478,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/pnm/encoder.rs:478,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:478,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/pnm/encoder.rs:479,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:485,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/pnm/encoder.rs:485,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:485,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/pnm/encoder.rs:486,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/pnm/encoder.rs:487,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/encoder.rs:494,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 1
    argNames:
    - color
    argTypes:
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 498
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 498
    functionName: CheckedDimensions::check_header_color
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - '&str::to_owned'
    - ParameterError::from_kind
    - ParameterErrorKind::Generic
    - u32::from
    - bool::channel_count
    - Ok
    - ImageError::Parameter
    linkageType: ''
    returnType: ImageResult
    signature: 'fn check_header_color(self, color: ExtendedColorType) -> ImageResult<CheckedHeaderColor<''a>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:526,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/encoder.rs:526,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:527,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/encoder.rs:528,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/pnm/encoder.rs:529,1
    - Dst: Vec::all_smaller
      Src: /src/image/src/codecs/pnm/encoder.rs:536,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:538,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/encoder.rs:538,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:539,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/encoder.rs:540,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/pnm/encoder.rs:541,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/pnm/encoder.rs:542,1
    - Dst: Vec::encoding_for
      Src: /src/image/src/codecs/pnm/encoder.rs:548,1
    - Dst: CheckedImageBuffer::check
      Src: /src/image/src/codecs/pnm/encoder.rs:550,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/encoder.rs:557,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 53
    argCount: 1
    argNames:
    - image
    argTypes:
    - FlatSamples<'a>
    constantsTouched: []
    func_position:
      end: 562
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 562
    functionName: CheckedHeaderColor::check_sample_values
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - '&str::to_owned'
    - into
    - Ok
    - Vec::all_smaller
    - UnsupportedError::from_format_and_kind
    - Vec::encoding_for
    - CheckedImageBuffer::check
    - ImageError::Unsupported
    - UnsupportedErrorKind::Color
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: ImageResult
    signature: 'fn check_sample_values(self, image: FlatSamples<''a>) -> ImageResult<CheckedHeader<''a>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CheckedHeader::header
      Src: /src/image/src/codecs/pnm/encoder.rs:567,1
    - Dst: '&PnmHeader::write'
      Src: /src/image/src/codecs/pnm/encoder.rs:567,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/encoder.rs:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut dyn Write'
    constantsTouched: []
    func_position:
      end: 569
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 569
    functionName: CheckedHeader::write_header
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - CheckedHeader::header
    - Ok
    - '&PnmHeader::write'
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_header(self, writer: &mut dyn Write) -> ImageResult<TupleEncoding<''a>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 573
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 573
    functionName: CheckedHeader::header
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '&PnmHeader'
    signature: fn header(&self) -> &PnmHeader
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AutoBreak::new
      Src: /src/image/src/codecs/pnm/encoder.rs:584,1
    - Dst: flush
      Src: /src/image/src/codecs/pnm/encoder.rs:588,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - samples
    argTypes:
    - V
    constantsTouched: []
    func_position:
      end: 589
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 589
    functionName: SampleWriter::write_samples_ascii
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - flush
    - AutoBreak::new
    linkageType: ''
    returnType: io::Result
    signature: 'fn write_samples_ascii<V>(self, samples: V) -> io::Result<()>whereV:
      Iterator,V::Item: fmt::Display,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/codecs/pnm/encoder.rs:600,1
    - Dst: ImageResult::chunks
      Src: /src/image/src/codecs/pnm/encoder.rs:602,1
    - Dst: io::Result::chunks
      Src: /src/image/src/codecs/pnm/encoder.rs:603,1
    - Dst: get
      Src: /src/image/src/codecs/pnm/encoder.rs:607,1
    - Dst: V::default
      Src: /src/image/src/codecs/pnm/encoder.rs:608,1
    - Dst: push
      Src: /src/image/src/codecs/pnm/encoder.rs:613,1
    - Dst: write_all
      Src: /src/image/src/codecs/pnm/encoder.rs:615,1
    - Dst: as_slice
      Src: /src/image/src/codecs/pnm/encoder.rs:615,1
    - Dst: clear
      Src: /src/image/src/codecs/pnm/encoder.rs:616,1
    - Dst: flush
      Src: /src/image/src/codecs/pnm/encoder.rs:619,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 2
    argNames:
    - samples
    - width
    argTypes:
    - '&[V]'
    - u32
    constantsTouched: []
    func_position:
      end: 620
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 620
    functionName: SampleWriter::write_pbm_bits
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - utils::vec_try_with_capacity
    - flush
    - V::default
    - ImageResult::chunks
    - push
    - write_all
    - as_slice
    - clear
    - io::Result::chunks
    - get
    linkageType: ''
    returnType: io::Result
    signature: 'fn write_pbm_bits<V>(self, samples: &[V], width: u32) -> io::Result<()>/*
      Default gives 0 for all primitives. TODO: replace this with `Zeroable` once
      it hits stable */whereV: Default + Eq + Copy,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/codecs/pnm/encoder.rs:626,1
    - Dst: len
      Src: /src/image/src/codecs/pnm/encoder.rs:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 629
      start: 624
    functionDepth: 3
    functionLinenumber: 624
    functionLinenumberEnd: 629
    functionName: FlatSamples::len
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/codecs/pnm/encoder.rs:633,1
    - Dst: any
      Src: /src/image/src/codecs/pnm/encoder.rs:633,1
    - Dst: u32::from
      Src: /src/image/src/codecs/pnm/encoder.rs:633,1
    - Dst: iter
      Src: /src/image/src/codecs/pnm/encoder.rs:634,1
    - Dst: any
      Src: /src/image/src/codecs/pnm/encoder.rs:634,1
    - Dst: u32::from
      Src: /src/image/src/codecs/pnm/encoder.rs:634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - max_val
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 636
      start: 631
    functionDepth: 3
    functionLinenumber: 631
    functionLinenumberEnd: 636
    functionName: FlatSamples::all_smaller
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - iter
    - any
    - u32::from
    linkageType: ''
    returnType: bool
    signature: 'fn all_smaller(&self, max_val: u32) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - header
    argTypes:
    - '&HeaderRecord'
    constantsTouched: []
    func_position:
      end: 674
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 674
    functionName: FlatSamples::encoding_for
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TupleEncoding
    signature: 'fn encoding_for(&self, header: &HeaderRecord) -> TupleEncoding<''a>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatSamples::U16
      Src: /src/image/src/codecs/pnm/encoder.rs:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - samples
    argTypes:
    - '&''a [u16]'
    constantsTouched: []
    func_position:
      end: 686
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 686
    functionName: FlatSamples::from
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - FlatSamples::U16
    linkageType: ''
    returnType: Self
    signature: 'fn from(samples: &''a [u16]) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SampleWriter
      Src: /src/image/src/codecs/pnm/encoder.rs:695,1
    - Dst: write_pbm_bits
      Src: /src/image/src/codecs/pnm/encoder.rs:695,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:695,1
    - Dst: SampleWriter
      Src: /src/image/src/codecs/pnm/encoder.rs:701,1
    - Dst: write_pbm_bits
      Src: /src/image/src/codecs/pnm/encoder.rs:701,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:701,1
    - Dst: '&mut dyn Write::write_all'
      Src: /src/image/src/codecs/pnm/encoder.rs:707,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:707,1
    - Dst: ImageResult::iter
      Src: /src/image/src/codecs/pnm/encoder.rs:710,1
    - Dst: try_for_each
      Src: /src/image/src/codecs/pnm/encoder.rs:710,1
    - Dst: write_u16::<BigEndian>
      Src: /src/image/src/codecs/pnm/encoder.rs:711,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:711,1
    - Dst: SampleWriter
      Src: /src/image/src/codecs/pnm/encoder.rs:718,1
    - Dst: write_samples_ascii
      Src: /src/image/src/codecs/pnm/encoder.rs:718,1
    - Dst: ImageResult::iter
      Src: /src/image/src/codecs/pnm/encoder.rs:719,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:718,1
    - Dst: SampleWriter
      Src: /src/image/src/codecs/pnm/encoder.rs:723,1
    - Dst: write_samples_ascii
      Src: /src/image/src/codecs/pnm/encoder.rs:723,1
    - Dst: ImageResult::iter
      Src: /src/image/src/codecs/pnm/encoder.rs:724,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut dyn Write'
    constantsTouched: []
    func_position:
      end: 727
      start: 690
    functionDepth: 3
    functionLinenumber: 690
    functionLinenumberEnd: 727
    functionName: TupleEncoding::write_image
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::iter
    - write_u16::<BigEndian>
    - write_samples_ascii
    - try_for_each
    - map_err
    - write_pbm_bits
    - SampleWriter
    - '&mut dyn Write::write_all'
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(&self, writer: &mut dyn Write) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_str
      Src: /src/image/src/codecs/pnm/decoder.rs:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: PnmHeaderLine::fmt
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - write_str
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::fmt
      Src: /src/image/src/codecs/pnm/decoder.rs:212,1
    - Dst: write_str
      Src: /src/image/src/codecs/pnm/decoder.rs:213,1
    - Dst: write_str
      Src: /src/image/src/codecs/pnm/decoder.rs:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: ErrorDataSource::fmt
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - write_str
    - u8::fmt
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size_of::<Self::Representation>
      Src: /src/image/src/codecs/pnm/decoder.rs:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: Sample::sample_size
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - size_of::<Self::Representation>
    linkageType: ''
    returnType: u32
    signature: fn sample_size() -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:238,1
    - Dst: Self::sample_size
      Src: /src/image/src/codecs/pnm/decoder.rs:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - width
    - height
    - samples
    argTypes:
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: Sample::bytelen
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Self::sample_size
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn bytelen(width: u32, height: u32, samples: u32) -> ImageResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: R::read_magic_constant
      Src: /src/image/src/codecs/pnm/decoder.rs:263,1
    - Dst: PnmSubtype::Bitmap
      Src: /src/image/src/codecs/pnm/decoder.rs:266,1
    - Dst: PnmSubtype::Graymap
      Src: /src/image/src/codecs/pnm/decoder.rs:267,1
    - Dst: PnmSubtype::Pixmap
      Src: /src/image/src/codecs/pnm/decoder.rs:268,1
    - Dst: PnmSubtype::Bitmap
      Src: /src/image/src/codecs/pnm/decoder.rs:269,1
    - Dst: PnmSubtype::Graymap
      Src: /src/image/src/codecs/pnm/decoder.rs:270,1
    - Dst: PnmSubtype::Pixmap
      Src: /src/image/src/codecs/pnm/decoder.rs:271,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:273,1
    - Dst: DecoderError::PnmMagicInvalid
      Src: /src/image/src/codecs/pnm/decoder.rs:273,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:273,1
    - Dst: PnmDecoder::read_bitmap_header
      Src: /src/image/src/codecs/pnm/decoder.rs:277,1
    - Dst: PnmDecoder::read_graymap_header
      Src: /src/image/src/codecs/pnm/decoder.rs:278,1
    - Dst: PnmDecoder::read_pixmap_header
      Src: /src/image/src/codecs/pnm/decoder.rs:279,1
    - Dst: PnmDecoder::read_arbitrary_header
      Src: /src/image/src/codecs/pnm/decoder.rs:280,1
    - Dst: utils::check_dimension_overflow
      Src: /src/image/src/codecs/pnm/decoder.rs:283,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/pnm/decoder.rs:284,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/pnm/decoder.rs:285,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/pnm/decoder.rs:286,1
    - Dst: ExtendedColorType::bytes_per_pixel
      Src: /src/image/src/codecs/pnm/decoder.rs:286,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:288,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/decoder.rs:288,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/decoder.rs:289,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:290,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/pnm/decoder.rs:291,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:300,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 1
    argNames:
    - buffered_read
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 301
      start: 262
    functionDepth: 10
    functionLinenumber: 262
    functionLinenumberEnd: 301
    functionName: PnmDecoder::new
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 2
    functionsReached:
    - ExtendedColorType::bytes_per_pixel
    - ImageResult::dimensions
    - PnmDecoder::read_pixmap_header
    - Ok
    - UnsupportedErrorKind::GenericFeature
    - Err
    - ImageResult::color_type
    - PnmDecoder::read_arbitrary_header
    - PnmDecoder::read_bitmap_header
    - R::read_magic_constant
    - PnmSubtype::Pixmap
    - utils::check_dimension_overflow
    - PnmDecoder::read_graymap_header
    - into
    - PnmSubtype::Graymap
    - DecoderError::PnmMagicInvalid
    - PnmSubtype::Bitmap
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(mut buffered_read: R) -> ImageResult<PnmDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: PnmDecoder::into_inner
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (R, PnmHeader)
    signature: pub fn into_inner(self) -> (R, PnmHeader)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::read_bitmap_header
      Src: /src/image/src/codecs/pnm/decoder.rs:309,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:310,1
    - Dst: HeaderRecord::Bitmap
      Src: /src/image/src/codecs/pnm/decoder.rs:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - reader
    - encoding
    argTypes:
    - R
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 318
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 318
    functionName: PnmDecoder::read_bitmap_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::read_bitmap_header
    - Ok
    - HeaderRecord::Bitmap
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_bitmap_header(mut reader: R, encoding: SampleEncoding) ->
      ImageResult<PnmDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::read_graymap_header
      Src: /src/image/src/codecs/pnm/decoder.rs:321,1
    - Dst: '&exr::meta::header::Header::tuple_type'
      Src: /src/image/src/codecs/pnm/decoder.rs:322,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:323,1
    - Dst: HeaderRecord::Graymap
      Src: /src/image/src/codecs/pnm/decoder.rs:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - reader
    - encoding
    argTypes:
    - R
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 331
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 331
    functionName: PnmDecoder::read_graymap_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - '&exr::meta::header::Header::tuple_type'
    - HeaderRecord::Graymap
    - Result::read_graymap_header
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_graymap_header(mut reader: R, encoding: SampleEncoding) ->
      ImageResult<PnmDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::read_pixmap_header
      Src: /src/image/src/codecs/pnm/decoder.rs:334,1
    - Dst: '&exr::meta::header::Header::tuple_type'
      Src: /src/image/src/codecs/pnm/decoder.rs:335,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:336,1
    - Dst: HeaderRecord::Pixmap
      Src: /src/image/src/codecs/pnm/decoder.rs:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - reader
    - encoding
    argTypes:
    - R
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 344
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 344
    functionName: PnmDecoder::read_pixmap_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::read_pixmap_header
    - '&exr::meta::header::Header::tuple_type'
    - Ok
    - HeaderRecord::Pixmap
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_pixmap_header(mut reader: R, encoding: SampleEncoding) ->
      ImageResult<PnmDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::read_arbitrary_header
      Src: /src/image/src/codecs/pnm/decoder.rs:347,1
    - Dst: '&exr::meta::header::Header::tuple_type'
      Src: /src/image/src/codecs/pnm/decoder.rs:348,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:349,1
    - Dst: HeaderRecord::Arbitrary
      Src: /src/image/src/codecs/pnm/decoder.rs:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 357
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 357
    functionName: PnmDecoder::read_arbitrary_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::read_arbitrary_header
    - HeaderRecord::Arbitrary
    - '&exr::meta::header::Header::tuple_type'
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_arbitrary_header(mut reader: R) -> ImageResult<PnmDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HeaderReader::read_exact
      Src: /src/image/src/codecs/pnm/decoder.rs:364,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: HeaderReader::read_magic_constant
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - HeaderReader::read_exact
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn read_magic_constant(&mut self) -> ImageResult<[u8; 2]>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/pnm/decoder.rs:370,1
    - Dst: HeaderReader::bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:374,1
    - Dst: '&[u8]::scan'
      Src: /src/image/src/codecs/pnm/decoder.rs:374,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:376,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:376,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:382,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:382,1
    - Dst: filter
      Src: /src/image/src/codecs/pnm/decoder.rs:385,1
    - Dst: '&[u8]::is_empty'
      Src: /src/image/src/codecs/pnm/decoder.rs:388,1
    - Dst: io::Result::is_ascii
      Src: /src/image/src/codecs/pnm/decoder.rs:392,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:393,1
    - Dst: DecoderError::NonAsciiByteInHeader
      Src: /src/image/src/codecs/pnm/decoder.rs:393,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:393,1
    - Dst: '&[u8]::push'
      Src: /src/image/src/codecs/pnm/decoder.rs:396,1
    - Dst: '&[u8]::is_empty'
      Src: /src/image/src/codecs/pnm/decoder.rs:402,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:403,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/pnm/decoder.rs:403,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:403,1
    - Dst: '&[u8]::as_slice'
      Src: /src/image/src/codecs/pnm/decoder.rs:406,1
    - Dst: '&[T]::is_ascii'
      Src: /src/image/src/codecs/pnm/decoder.rs:406,1
    - Dst: String::from_utf8
      Src: /src/image/src/codecs/pnm/decoder.rs:411,1
    - Dst: unwrap_or_else
      Src: /src/image/src/codecs/pnm/decoder.rs:411,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:415,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 416
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 416
    functionName: HeaderReader::read_next_string
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - '&[u8]::is_empty'
    - Err
    - Some
    - '&[u8]::scan'
    - filter
    - ImageError::IoError
    - Ok
    - into
    - '&[u8]::push'
    - '&[u8]::as_slice'
    - String::from_utf8
    - io::Result::is_ascii
    - '&[T]::is_ascii'
    - Vec::new
    - unwrap_or_else
    - HeaderReader::bytes
    - DecoderError::NonAsciiByteInHeader
    linkageType: ''
    returnType: ImageResult
    signature: fn read_next_string(&mut self) -> ImageResult<String>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/pnm/decoder.rs:419,1
    - Dst: HeaderReader::read
      Src: /src/image/src/codecs/pnm/decoder.rs:422,1
    - Dst: '&RgbaImage::push'
      Src: /src/image/src/codecs/pnm/decoder.rs:425,1
    - Dst: String::from_utf8
      Src: /src/image/src/codecs/pnm/decoder.rs:428,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:428,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/pnm/decoder.rs:429,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/pnm/decoder.rs:429,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 430
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 430
    functionName: HeaderReader::read_next_line
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - HeaderReader::read
    - '&RgbaImage::push'
    - DecodingError::new
    - map_err
    - into
    - ImageError::Decoding
    - String::from_utf8
    - Vec::new
    linkageType: ''
    returnType: ImageResult
    signature: fn read_next_line(&mut self) -> ImageResult<String>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HeaderReader::read_next_string
      Src: /src/image/src/codecs/pnm/decoder.rs:433,1
    - Dst: parse::<u32>
      Src: /src/image/src/codecs/pnm/decoder.rs:434,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:434,1
    - Dst: DecoderError::UnparsableValue
      Src: /src/image/src/codecs/pnm/decoder.rs:435,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: HeaderReader::read_next_u32
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - HeaderReader::read_next_string
    - DecoderError::UnparsableValue
    - map_err
    - into
    - parse::<u32>
    linkageType: ''
    returnType: ImageResult
    signature: fn read_next_u32(&mut self) -> ImageResult<u32>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HeaderReader::read_next_u32
      Src: /src/image/src/codecs/pnm/decoder.rs:439,1
    - Dst: HeaderReader::read_next_u32
      Src: /src/image/src/codecs/pnm/decoder.rs:440,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 446
      start: 438
    functionDepth: 4
    functionLinenumber: 438
    functionLinenumberEnd: 446
    functionName: HeaderReader::read_bitmap_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - HeaderReader::read_next_u32
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_bitmap_header(&mut self, encoding: SampleEncoding) -> ImageResult<BitmapHeader>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HeaderReader::read_pixmap_header
      Src: /src/image/src/codecs/pnm/decoder.rs:449,1
    - Dst: ImageResult::map
      Src: /src/image/src/codecs/pnm/decoder.rs:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 462
      start: 448
    functionDepth: 3
    functionLinenumber: 448
    functionLinenumberEnd: 462
    functionName: HeaderReader::read_graymap_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - HeaderReader::read_pixmap_header
    - ImageResult::map
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_graymap_header(&mut self, encoding: SampleEncoding) -> ImageResult<GraymapHeader>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HeaderReader::read_next_u32
      Src: /src/image/src/codecs/pnm/decoder.rs:465,1
    - Dst: HeaderReader::read_next_u32
      Src: /src/image/src/codecs/pnm/decoder.rs:466,1
    - Dst: HeaderReader::read_next_u32
      Src: /src/image/src/codecs/pnm/decoder.rs:467,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:468,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 474
      start: 464
    functionDepth: 4
    functionLinenumber: 464
    functionLinenumberEnd: 474
    functionName: HeaderReader::read_pixmap_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - HeaderReader::read_next_u32
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_pixmap_header(&mut self, encoding: SampleEncoding) -> ImageResult<PixmapHeader>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Option<u32>::is_some'
      Src: /src/image/src/codecs/pnm/decoder.rs:482,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:483,1
    - Dst: DecoderError::HeaderLineDuplicated
      Src: /src/image/src/codecs/pnm/decoder.rs:483,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:483,1
    - Dst: Option::trim
      Src: /src/image/src/codecs/pnm/decoder.rs:485,1
    - Dst: parse
      Src: /src/image/src/codecs/pnm/decoder.rs:485,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:485,1
    - Dst: DecoderError::UnparsableValue
      Src: /src/image/src/codecs/pnm/decoder.rs:486,1
    - Dst: ErrorDataSource::Line
      Src: /src/image/src/codecs/pnm/decoder.rs:486,1
    - Dst: Option::to_owned
      Src: /src/image/src/codecs/pnm/decoder.rs:486,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:488,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - line_val
    - rest
    - line
    argTypes:
    - '&mut Option<u32>'
    - '&str'
    - PnmHeaderLine
    constantsTouched: []
    func_position:
      end: 491
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 491
    functionName: H::e::a::d::e::r::R::e::a::d::e::r::::::::r::e::a::d::_::a::r::b::i::t::r::a::r::y::_::h::e::a::d::e::r::parse_single_value_line
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - parse
    - Option::trim
    - Some
    - DecoderError::UnparsableValue
    - map_err
    - into
    - '&mut Option<u32>::is_some'
    - DecoderError::HeaderLineDuplicated
    - Option::to_owned
    - ErrorDataSource::Line
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn parse_single_value_line(line_val: &mut Option<u32>,rest: &str,line:
      PnmHeaderLine,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HeaderReader::bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:494,1
    - Dst: '&[u8]::next'
      Src: /src/image/src/codecs/pnm/decoder.rs:494,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:495,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/pnm/decoder.rs:495,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:495,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:496,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/pnm/decoder.rs:496,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:498,1
    - Dst: DecoderError::NotNewlineAfterP7Magic
      Src: /src/image/src/codecs/pnm/decoder.rs:498,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:498,1
    - Dst: HeaderReader::read_next_line
      Src: /src/image/src/codecs/pnm/decoder.rs:508,1
    - Dst: io::Result::is_empty
      Src: /src/image/src/codecs/pnm/decoder.rs:509,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:510,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:510,1
    - Dst: io::Result::as_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:512,1
    - Dst: io::Result::is_ascii
      Src: /src/image/src/codecs/pnm/decoder.rs:515,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:516,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:516,1
    - Dst: io::Result::trim_left
      Src: /src/image/src/codecs/pnm/decoder.rs:519,1
    - Dst: split_at
      Src: /src/image/src/codecs/pnm/decoder.rs:519,1
    - Dst: io::Result::find
      Src: /src/image/src/codecs/pnm/decoder.rs:521,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/pnm/decoder.rs:521,1
    - Dst: io::Result::len
      Src: /src/image/src/codecs/pnm/decoder.rs:521,1
    - Dst: parse_single_value_line
      Src: /src/image/src/codecs/pnm/decoder.rs:524,1
    - Dst: parse_single_value_line
      Src: /src/image/src/codecs/pnm/decoder.rs:525,1
    - Dst: parse_single_value_line
      Src: /src/image/src/codecs/pnm/decoder.rs:526,1
    - Dst: parse_single_value_line
      Src: /src/image/src/codecs/pnm/decoder.rs:527,1
    - Dst: Option::trim
      Src: /src/image/src/codecs/pnm/decoder.rs:529,1
    - Dst: None::is_some
      Src: /src/image/src/codecs/pnm/decoder.rs:530,1
    - Dst: None::take
      Src: /src/image/src/codecs/pnm/decoder.rs:531,1
    - Dst: map
      Src: /src/image/src/codecs/pnm/decoder.rs:531,1
    - Dst: DynamicImage::push
      Src: /src/image/src/codecs/pnm/decoder.rs:532,1
    - Dst: DynamicImage::push_str
      Src: /src/image/src/codecs/pnm/decoder.rs:533,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:538,1
    - Dst: to_string
      Src: /src/image/src/codecs/pnm/decoder.rs:538,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:541,1
    - Dst: DecoderError::HeaderLineUnknown
      Src: /src/image/src/codecs/pnm/decoder.rs:541,1
    - Dst: to_string
      Src: /src/image/src/codecs/pnm/decoder.rs:541,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:541,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:546,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:546,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:557,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:559,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:561,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:562,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:563,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:564,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:565,1
    - Dst: ArbitraryTuplType::Custom
      Src: /src/image/src/codecs/pnm/decoder.rs:565,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:568,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 160
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 575
      start: 476
    functionDepth: 3
    functionLinenumber: 476
    functionLinenumberEnd: 575
    functionName: HeaderReader::read_arbitrary_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - io::Result::len
    - Option::trim
    - Some
    - to_string
    - io::Result::is_ascii
    - parse_single_value_line
    - HeaderReader::bytes
    - Ok
    - Err
    - io::Result::as_bytes
    - DecoderError::HeaderLineUnknown
    - ArbitraryTuplType::Custom
    - '&[u8]::next'
    - split_at
    - io::Result::is_empty
    - None::is_some
    - ImageError::IoError
    - into
    - io::Result::trim_left
    - io::Result::find
    - unwrap_or
    - DynamicImage::push
    - HeaderReader::read_next_line
    - map
    - DynamicImage::push_str
    - DecoderError::NotNewlineAfterP7Magic
    - None::take
    linkageType: ''
    returnType: ImageResult
    signature: fn read_arbitrary_header(&mut self) -> ImageResult<ArbitraryHeader>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: width
      Src: /src/image/src/codecs/pnm/decoder.rs:582,1
    - Dst: height
      Src: /src/image/src/codecs/pnm/decoder.rs:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 583
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 583
    functionName: PnmDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - width
    - height
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 594
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 594
    functionName: PnmDecoder::color_type
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 605
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 605
    functionName: PnmDecoder::original_color_type
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExtendedColorType
    signature: fn original_color_type(&self) -> ExtendedColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_samples::<PbmBit>
      Src: /src/image/src/codecs/pnm/decoder.rs:610,1
    - Dst: read_samples::<BWBit>
      Src: /src/image/src/codecs/pnm/decoder.rs:611,1
    - Dst: read_samples::<U8>
      Src: /src/image/src/codecs/pnm/decoder.rs:612,1
    - Dst: read_samples::<U16>
      Src: /src/image/src/codecs/pnm/decoder.rs:613,1
    - Dst: read_samples::<U8>
      Src: /src/image/src/codecs/pnm/decoder.rs:614,1
    - Dst: read_samples::<U16>
      Src: /src/image/src/codecs/pnm/decoder.rs:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 617
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 617
    functionName: PnmDecoder::read_image
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - read_samples::<PbmBit>
    - read_samples::<U16>
    - read_samples::<U8>
    - read_samples::<BWBit>
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 621
      start: 619
    functionDepth: 3
    functionLinenumber: 619
    functionLinenumberEnd: 621
    functionName: PnmDecoder::read_image_boxed
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::subtype
      Src: /src/image/src/codecs/pnm/decoder.rs:626,1
    - Dst: PnmSubtype::sample_encoding
      Src: /src/image/src/codecs/pnm/decoder.rs:626,1
    - Dst: width
      Src: /src/image/src/codecs/pnm/decoder.rs:628,1
    - Dst: height
      Src: /src/image/src/codecs/pnm/decoder.rs:629,1
    - Dst: S::bytelen
      Src: /src/image/src/codecs/pnm/decoder.rs:630,1
    - Dst: read_exact_vec
      Src: /src/image/src/codecs/pnm/decoder.rs:633,1
    - Dst: u32::try_into
      Src: /src/image/src/codecs/pnm/decoder.rs:635,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:635,1
    - Dst: u32::try_into
      Src: /src/image/src/codecs/pnm/decoder.rs:637,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:637,1
    - Dst: u32::checked_mul
      Src: /src/image/src/codecs/pnm/decoder.rs:638,1
    - Dst: ok_or
      Src: /src/image/src/codecs/pnm/decoder.rs:638,1
    - Dst: S::from_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:642,1
    - Dst: read_ascii::<S>
      Src: /src/image/src/codecs/pnm/decoder.rs:645,1
    - Dst: maximal_sample
      Src: /src/image/src/codecs/pnm/decoder.rs:650,1
    - Dst: pow
      Src: /src/image/src/codecs/pnm/decoder.rs:651,1
    - Dst: S::sample_size
      Src: /src/image/src/codecs/pnm/decoder.rs:651,1
    - Dst: S::sample_size
      Src: /src/image/src/codecs/pnm/decoder.rs:656,1
    - Dst: io::Result::iter_mut
      Src: /src/image/src/codecs/pnm/decoder.rs:657,1
    - Dst: f32::from
      Src: /src/image/src/codecs/pnm/decoder.rs:658,1
    - Dst: round
      Src: /src/image/src/codecs/pnm/decoder.rs:658,1
    - Dst: S::sample_size
      Src: /src/image/src/codecs/pnm/decoder.rs:660,1
    - Dst: io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/pnm/decoder.rs:661,1
    - Dst: NativeEndian::read_u16
      Src: /src/image/src/codecs/pnm/decoder.rs:662,1
    - Dst: NativeEndian::write_u16
      Src: /src/image/src/codecs/pnm/decoder.rs:663,1
    - Dst: f32::from
      Src: /src/image/src/codecs/pnm/decoder.rs:663,1
    - Dst: round
      Src: /src/image/src/codecs/pnm/decoder.rs:663,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:668,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 94
    argCount: 2
    argNames:
    - components
    - buf
    argTypes:
    - u32
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 669
      start: 625
    functionDepth: 4
    functionLinenumber: 625
    functionLinenumberEnd: 669
    functionName: PnmDecoder::read_samples
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmSubtype::sample_encoding
    - map_err
    - io::Result::chunks_exact_mut
    - Ok
    - read_ascii::<S>
    - u32::checked_mul
    - S::bytelen
    - round
    - height
    - pow
    - read_exact_vec
    - S::sample_size
    - PnmDecoder::subtype
    - f32::from
    - S::from_bytes
    - NativeEndian::read_u16
    - ok_or
    - width
    - io::Result::iter_mut
    - u32::try_into
    - maximal_sample
    - NativeEndian::write_u16
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_samples<S: Sample>(&mut self, components: u32, buf: &mut [u8])
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Basic::from_ascii
      Src: /src/image/src/codecs/pnm/decoder.rs:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - output_buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 673
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 673
    functionName: PnmDecoder::read_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Basic::from_ascii
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_ascii<Basic: Sample>(&mut self, output_buf: &mut [u8]) ->
      ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: subtype
      Src: /src/image/src/codecs/pnm/decoder.rs:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 678
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 678
    functionName: PnmDecoder::subtype
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - subtype
    linkageType: ''
    returnType: PnmSubtype
    signature: pub fn subtype(&self) -> PnmSubtype
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:687,1
    - Dst: '&[u8]::skip_while'
      Src: /src/image/src/codecs/pnm/decoder.rs:687,1
    - Dst: DynamicImage::as_ref
      Src: /src/image/src/codecs/pnm/decoder.rs:689,1
    - Dst: FlatSamples::ok
      Src: /src/image/src/codecs/pnm/decoder.rs:689,1
    - Dst: is_some_and
      Src: /src/image/src/codecs/pnm/decoder.rs:689,1
    - Dst: take_while
      Src: /src/image/src/codecs/pnm/decoder.rs:687,1
    - Dst: DynamicImage::as_ref
      Src: /src/image/src/codecs/pnm/decoder.rs:690,1
    - Dst: FlatSamples::ok
      Src: /src/image/src/codecs/pnm/decoder.rs:690,1
    - Dst: is_some_and
      Src: /src/image/src/codecs/pnm/decoder.rs:690,1
    - Dst: is_separator
      Src: /src/image/src/codecs/pnm/decoder.rs:690,1
    - Dst: u16::from
      Src: /src/image/src/codecs/pnm/decoder.rs:694,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:695,1
    - Dst: DecoderError::InvalidDigit
      Src: /src/image/src/codecs/pnm/decoder.rs:695,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:695,1
    - Dst: DynamicImage::checked_mul
      Src: /src/image/src/codecs/pnm/decoder.rs:697,1
    - Dst: ok_or
      Src: /src/image/src/codecs/pnm/decoder.rs:697,1
    - Dst: DynamicImage::checked_add
      Src: /src/image/src/codecs/pnm/decoder.rs:698,1
    - Dst: ok_or
      Src: /src/image/src/codecs/pnm/decoder.rs:698,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:703,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:703,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:706,1
    - Dst: T::try_from
      Src: /src/image/src/codecs/pnm/decoder.rs:706,1
    - Dst: or
      Src: /src/image/src/codecs/pnm/decoder.rs:706,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:706,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 65
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut dyn Read'
    constantsTouched: []
    func_position:
      end: 707
      start: 681
    functionDepth: 3
    functionLinenumber: 681
    functionLinenumberEnd: 707
    functionName: read_separated_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - is_separator
    - Err
    - DynamicImage::checked_mul
    - DecoderError::InvalidDigit
    - ok_or
    - take_while
    - into
    - is_some_and
    - Result::bytes
    - u16::from
    - DynamicImage::checked_add
    - or
    - '&[u8]::skip_while'
    - T::try_from
    - DynamicImage::as_ref
    - FlatSamples::ok
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_separated_ascii<T: TryFrom<u16>>(reader: &mut dyn Read) ->
      ImageResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [u8]::copy_from_slice'
      Src: /src/image/src/codecs/pnm/decoder.rs:713,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - bytes
    - _row_size
    - output_buf
    argTypes:
    - '&[u8]'
    - usize
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 715
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 715
    functionName: U8::from_bytes
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - '&mut [u8]::copy_from_slice'
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_bytes(bytes: &[u8], _row_size: usize, output_buf: &mut [u8])
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_separated_ascii
      Src: /src/image/src/codecs/pnm/decoder.rs:719,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - reader
    - output_buf
    argTypes:
    - '&mut dyn Read'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 722
      start: 717
    functionDepth: 4
    functionLinenumber: 717
    functionLinenumberEnd: 722
    functionName: U8::from_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - read_separated_ascii
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_ascii(reader: &mut dyn Read, output_buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [u8]::copy_from_slice'
      Src: /src/image/src/codecs/pnm/decoder.rs:729,1
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image/src/codecs/pnm/decoder.rs:730,1
    - Dst: BigEndian::read_u16
      Src: /src/image/src/codecs/pnm/decoder.rs:731,1
    - Dst: NativeEndian::write_u16
      Src: /src/image/src/codecs/pnm/decoder.rs:732,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - bytes
    - _row_size
    - output_buf
    argTypes:
    - '&[u8]'
    - usize
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 735
      start: 728
    functionDepth: 0
    functionLinenumber: 728
    functionLinenumberEnd: 735
    functionName: U16::from_bytes
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - '&mut [u8]::copy_from_slice'
    - '&mut [u8]::chunks_exact_mut'
    - BigEndian::read_u16
    - NativeEndian::write_u16
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_bytes(bytes: &[u8], _row_size: usize, output_buf: &mut [u8])
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image/src/codecs/pnm/decoder.rs:738,1
    - Dst: read_separated_ascii::<u16>
      Src: /src/image/src/codecs/pnm/decoder.rs:739,1
    - Dst: NativeEndian::write_u16
      Src: /src/image/src/codecs/pnm/decoder.rs:740,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - reader
    - output_buf
    argTypes:
    - '&mut dyn Read'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 743
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 743
    functionName: U16::from_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - read_separated_ascii::<u16>
    - NativeEndian::write_u16
    - '&mut [u8]::chunks_exact_mut'
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_ascii(reader: &mut dyn Read, output_buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/image/src/codecs/pnm/decoder.rs:754,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - width
    - height
    - samples
    argTypes:
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 756
      start: 752
    functionDepth: 3
    functionLinenumber: 752
    functionLinenumberEnd: 756
    functionName: PbmBit::bytelen
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - u32::from
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn bytelen(width: u32, height: u32, samples: u32) -> ImageResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: utils::expand_bits
      Src: /src/image/src/codecs/pnm/decoder.rs:759,1
    - Dst: usize::try_into
      Src: /src/image/src/codecs/pnm/decoder.rs:759,1
    - Dst: unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:759,1
    - Dst: '&mut [u8]::copy_from_slice'
      Src: /src/image/src/codecs/pnm/decoder.rs:763,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 3
    argNames:
    - bytes
    - row_size
    - output_buf
    argTypes:
    - '&[u8]'
    - usize
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 765
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 765
    functionName: PbmBit::from_bytes
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - usize::try_into
    - '&mut [u8]::copy_from_slice'
    - unwrap
    - utils::expand_bits
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_bytes(bytes: &[u8], row_size: usize, output_buf: &mut [u8])
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:769,1
    - Dst: '&[u8]::next'
      Src: /src/image/src/codecs/pnm/decoder.rs:772,1
    - Dst: "next()\n                    .ok_or_else::<ImageError, _>"
      Src: /src/image/src/codecs/pnm/decoder.rs:772,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:774,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:779,1
    - Dst: DecoderError::UnexpectedByteInRaster
      Src: /src/image/src/codecs/pnm/decoder.rs:779,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:779,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:785,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - reader
    - output_buf
    argTypes:
    - '&mut dyn Read'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 786
      start: 767
    functionDepth: 2
    functionLinenumber: 767
    functionLinenumberEnd: 786
    functionName: PbmBit::from_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - Result::bytes
    - "next()\n                    .ok_or_else::<ImageError, _>"
    - '&[u8]::next'
    - Ok
    - DecoderError::UnexpectedByteInRaster
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_ascii(reader: &mut dyn Read, output_buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U8::from_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:794,1
    - Dst: '&mut [u8]::iter'
      Src: /src/image/src/codecs/pnm/decoder.rs:795,1
    - Dst: find
      Src: /src/image/src/codecs/pnm/decoder.rs:795,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:796,1
    - Dst: DecoderError::SampleOutOfBounds
      Src: /src/image/src/codecs/pnm/decoder.rs:796,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:796,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:798,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - bytes
    - row_size
    - output_buf
    argTypes:
    - '&[u8]'
    - usize
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 799
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 799
    functionName: BWBit::from_bytes
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - U8::from_bytes
    - into
    - find
    - '&mut [u8]::iter'
    - DecoderError::SampleOutOfBounds
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_bytes(bytes: &[u8], row_size: usize, output_buf: &mut [u8])
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 2
    argNames:
    - _reader
    - _output_buf
    argTypes:
    - '&mut dyn Read'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 803
      start: 801
    functionDepth: 0
    functionLinenumber: 801
    functionLinenumberEnd: 803
    functionName: BWBit::from_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_ascii(_reader: &mut dyn Read, _output_buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 809
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 809
    functionName: BitmapHeader::tuple_type
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn tuple_type(&self) -> ImageResult<TupleType>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:815,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:815,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:816,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:817,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:818,1
    - Dst: DecoderError::MaxvalTooBig
      Src: /src/image/src/codecs/pnm/decoder.rs:818,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:818,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 820
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 820
    functionName: GraymapHeader::tuple_type
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - into
    - DecoderError::MaxvalTooBig
    linkageType: ''
    returnType: ImageResult
    signature: fn tuple_type(&self) -> ImageResult<TupleType>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:826,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:826,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:827,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:828,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:829,1
    - Dst: DecoderError::MaxvalTooBig
      Src: /src/image/src/codecs/pnm/decoder.rs:829,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:829,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 831
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 831
    functionName: PixmapHeader::tuple_type
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - into
    - DecoderError::MaxvalTooBig
    linkageType: ''
    returnType: ImageResult
    signature: fn tuple_type(&self) -> ImageResult<TupleType>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:837,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:837,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:838,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:839,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/decoder.rs:839,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/decoder.rs:840,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:841,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/pnm/decoder.rs:842,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:845,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:846,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/decoder.rs:846,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/decoder.rs:847,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:848,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/pnm/decoder.rs:849,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:854,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:856,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:856,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:864,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:867,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:869,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:869,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:877,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:880,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:882,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:882,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:888,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/decoder.rs:888,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/decoder.rs:889,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:890,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/pnm/decoder.rs:891,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:897,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/decoder.rs:897,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/decoder.rs:898,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:899,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/pnm/decoder.rs:900,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:903,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/decoder.rs:903,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/decoder.rs:904,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:905,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/pnm/decoder.rs:906,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:909,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/decoder.rs:909,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/decoder.rs:910,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:911,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/pnm/decoder.rs:912,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:915,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:915,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 104
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 917
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 917
    functionName: ArbitraryHeader::tuple_type
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - UnsupportedErrorKind::Color
    - Ok
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: ImageResult
    signature: fn tuple_type(&self) -> ImageResult<TupleType>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:935,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:935,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:942,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:942,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:950,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:950,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 967
      start: 925
    functionDepth: 11
    functionLinenumber: 925
    functionLinenumberEnd: 967
    functionName: tests::pam_blackandwhite
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn pam_blackandwhite()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:981,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:981,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:987,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:987,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:995,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:995,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 971
    functionDepth: 11
    functionLinenumber: 971
    functionLinenumberEnd: 1012
    functionName: tests::pam_grayscale
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn pam_grayscale()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1026,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1026,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1032,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1032,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1037,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1037,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1016
    functionDepth: 11
    functionLinenumber: 1016
    functionLinenumberEnd: 1054
    functionName: tests::pam_rgb
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn pam_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/image/src/codecs/pnm/decoder.rs:1060,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1061,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1061,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1070,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1070,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1072,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1072,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1057
    functionDepth: 11
    functionLinenumber: 1057
    functionLinenumberEnd: 1087
    functionName: tests::pbm_binary
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - concat
    - ImageResult::read_image
    - ImageResult::unwrap
    - PnmDecoder::new
    - into_inner
    linkageType: ''
    returnType: void
    signature: fn pbm_binary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufReader::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1107,1
    - Dst: FailRead
      Src: /src/image/src/codecs/pnm/decoder.rs:1107,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1107,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1109,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1109,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1111,1
    - Dst: ImageResult::expect_err
      Src: /src/image/src/codecs/pnm/decoder.rs:1111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1091
    functionDepth: 11
    functionLinenumber: 1091
    functionLinenumberEnd: 1114
    functionName: tests::pbm_binary_ascii_termination
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - FailRead
    - ImageResult::unwrap
    - PnmDecoder::new
    - ImageResult::expect_err
    - Cursor::new
    - BufReader::new
    linkageType: ''
    returnType: void
    signature: fn pbm_binary_ascii_termination()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1122,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1122,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1129,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1129,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1131,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1131,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1117
    functionDepth: 11
    functionLinenumber: 1117
    functionLinenumberEnd: 1146
    functionName: tests::pbm_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn pbm_ascii()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1154,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1154,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1161,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1161,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1163,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1163,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1149
    functionDepth: 11
    functionLinenumber: 1149
    functionLinenumberEnd: 1178
    functionName: tests::pbm_ascii_nospace
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn pbm_ascii_nospace()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: .16).collect::<Vec<_>>
      Src: /src/image/src/codecs/pnm/decoder.rs:1184,1
    - Dst: concat
      Src: /src/image/src/codecs/pnm/decoder.rs:1185,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1186,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1186,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1194,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1194,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1196,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1196,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1181
    functionDepth: 11
    functionLinenumber: 1181
    functionLinenumberEnd: 1212
    functionName: tests::pgm_binary
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - concat
    - ImageResult::read_image
    - ImageResult::unwrap
    - PnmDecoder::new
    - into_inner
    - .16).collect::<Vec<_>>
    linkageType: ''
    returnType: void
    signature: fn pgm_binary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1219,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1219,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1227,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1227,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1229,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1229,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1215
    functionDepth: 11
    functionLinenumber: 1215
    functionLinenumberEnd: 1245
    functionName: tests::pgm_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn pgm_ascii()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1250,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1250,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1252,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1248
    functionDepth: 11
    functionLinenumber: 1248
    functionLinenumberEnd: 1264
    functionName: tests::ppm_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - ImageResult::read_image
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn ppm_ascii()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::load_from_memory
      Src: /src/image/src/codecs/pnm/decoder.rs:1283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1282
    functionDepth: 1
    functionLinenumber: 1282
    functionLinenumberEnd: 1284
    functionName: tests::issue_1508
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - crate::load_from_memory
    linkageType: ''
    returnType: void
    signature: fn issue_1508()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1293,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1293,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1287
    functionDepth: 11
    functionLinenumber: 1287
    functionLinenumberEnd: 1296
    functionName: tests::issue_1616_overflow
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - ImageResult::read_image
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn issue_1616_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1301,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1301,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1304,1
    - Dst: ImageResult::unwrap_err
      Src: /src/image/src/codecs/pnm/decoder.rs:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1299
    functionDepth: 11
    functionLinenumber: 1299
    functionLinenumberEnd: 1305
    functionName: tests::data_too_short
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - ImageResult::read_image
    - ImageResult::unwrap_err
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn data_too_short()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/pnm/autobreak.rs:17,1
    - Dst: io::Result::try_reserve_exact
      Src: /src/image/src/codecs/pnm/autobreak.rs:18,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/autobreak.rs:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - writer
    - line_capacity
    argTypes:
    - W
    - usize
    constantsTouched: []
    func_position:
      end: 26
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 26
    functionName: AutoBreak::new
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 1
    functionsReached:
    - Vec::new
    - Ok
    - io::Result::try_reserve_exact
    linkageType: ''
    returnType: io::Result
    signature: 'pub(crate) fn new(writer: W, line_capacity: usize) -> io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/codecs/pnm/autobreak.rs:31,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/autobreak.rs:32,1
    - Dst: write
      Src: /src/image/src/codecs/pnm/autobreak.rs:35,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/autobreak.rs:39,1
    - Dst: io::Error::new
      Src: /src/image/src/codecs/pnm/autobreak.rs:39,1
    - Dst: ::std::io::Result::kind
      Src: /src/image/src/codecs/pnm/autobreak.rs:46,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/autobreak.rs:48,1
    - Dst: drain
      Src: /src/image/src/codecs/pnm/autobreak.rs:54,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 57
    functionName: AutoBreak::flush_buf
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 0
    functionsReached:
    - Err
    - drain
    - len
    - io::Error::new
    - write
    - Ok
    - ::std::io::Result::kind
    linkageType: ''
    returnType: io::Result
    signature: fn flush_buf(&mut self) -> io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AutoBreak::flush
      Src: /src/image/src/codecs/pnm/autobreak.rs:63,1
    - Dst: is_empty
      Src: /src/image/src/codecs/pnm/autobreak.rs:67,1
    - Dst: len
      Src: /src/image/src/codecs/pnm/autobreak.rs:67,1
    - Dst: '&RgbaImage::len'
      Src: /src/image/src/codecs/pnm/autobreak.rs:67,1
    - Dst: push
      Src: /src/image/src/codecs/pnm/autobreak.rs:68,1
    - Dst: AutoBreak::flush
      Src: /src/image/src/codecs/pnm/autobreak.rs:70,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/pnm/autobreak.rs:74,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/autobreak.rs:75,1
    - Dst: '&RgbaImage::len'
      Src: /src/image/src/codecs/pnm/autobreak.rs:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 76
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 76
    functionName: AutoBreak::write
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 0
    functionsReached:
    - extend_from_slice
    - push
    - len
    - '&RgbaImage::len'
    - AutoBreak::flush
    - Ok
    - is_empty
    linkageType: ''
    returnType: io::Result
    signature: 'fn write(&mut self, buffer: &[u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AutoBreak::flush_buf
      Src: /src/image/src/codecs/pnm/autobreak.rs:79,1
    - Dst: flush
      Src: /src/image/src/codecs/pnm/autobreak.rs:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: AutoBreak::flush
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 1
    functionsReached:
    - flush
    - AutoBreak::flush_buf
    linkageType: ''
    returnType: io::Result
    signature: fn flush(&mut self) -> io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AutoBreak::flush_buf
      Src: /src/image/src/codecs/pnm/autobreak.rs:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: AutoBreak::drop
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 0
    functionsReached:
    - AutoBreak::flush_buf
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/pnm/autobreak.rs:100,1
    - Dst: AutoBreak::new
      Src: /src/image/src/codecs/pnm/autobreak.rs:103,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/pnm/autobreak.rs:103,1
    - Dst: write_all
      Src: /src/image/src/codecs/pnm/autobreak.rs:104,1
    - Dst: unwrap
      Src: /src/image/src/codecs/pnm/autobreak.rs:104,1
    - Dst: write_all
      Src: /src/image/src/codecs/pnm/autobreak.rs:105,1
    - Dst: unwrap
      Src: /src/image/src/codecs/pnm/autobreak.rs:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 109
    functionName: tests::test_aligned_writes
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 0
    functionsReached:
    - write_all
    - AutoBreak::new
    - io::Result::unwrap
    - unwrap
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_aligned_writes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/pnm/autobreak.rs:113,1
    - Dst: AutoBreak::new
      Src: /src/image/src/codecs/pnm/autobreak.rs:116,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/pnm/autobreak.rs:116,1
    - Dst: write_all
      Src: /src/image/src/codecs/pnm/autobreak.rs:117,1
    - Dst: unwrap
      Src: /src/image/src/codecs/pnm/autobreak.rs:117,1
    - Dst: write_all
      Src: /src/image/src/codecs/pnm/autobreak.rs:118,1
    - Dst: unwrap
      Src: /src/image/src/codecs/pnm/autobreak.rs:118,1
    - Dst: write_all
      Src: /src/image/src/codecs/pnm/autobreak.rs:119,1
    - Dst: unwrap
      Src: /src/image/src/codecs/pnm/autobreak.rs:119,1
    - Dst: write_all
      Src: /src/image/src/codecs/pnm/autobreak.rs:120,1
    - Dst: unwrap
      Src: /src/image/src/codecs/pnm/autobreak.rs:120,1
    - Dst: write_all
      Src: /src/image/src/codecs/pnm/autobreak.rs:121,1
    - Dst: unwrap
      Src: /src/image/src/codecs/pnm/autobreak.rs:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: tests::test_greater_writes
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 0
    functionsReached:
    - write_all
    - AutoBreak::new
    - io::Result::unwrap
    - unwrap
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_greater_writes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/pnm/mod.rs:28,1
    - Dst: PnmEncoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:31,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/pnm/mod.rs:32,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/pnm/mod.rs:32,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:38,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/mod.rs:38,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/pnm/mod.rs:39,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/mod.rs:41,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/pnm/mod.rs:41,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:44,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/mod.rs:44,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/mod.rs:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 4
    argNames:
    - buffer
    - width
    - height
    - color
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 52
      start: 27
    functionDepth: 11
    functionLinenumber: 27
    functionLinenumberEnd: 52
    functionName: tests::execute_roundtrip_default
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - ImageResult::color_type
    - PnmEncoder::new
    - ImageResult::unwrap
    - PnmDecoder::new
    - into_inner
    - Vec::new
    - ImageResult::expect
    - ImageResult::encode
    linkageType: ''
    returnType: void
    signature: 'fn execute_roundtrip_default(buffer: &[u8], width: u32, height: u32,
      color: ExtendedColorType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/pnm/mod.rs:61,1
    - Dst: PnmEncoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:64,1
    - Dst: Self::with_subtype
      Src: /src/image/src/codecs/pnm/mod.rs:64,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/pnm/mod.rs:65,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/pnm/mod.rs:65,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:71,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/mod.rs:71,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/pnm/mod.rs:72,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/mod.rs:74,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/pnm/mod.rs:74,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:77,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/mod.rs:77,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/mod.rs:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 5
    argNames:
    - buffer
    - width
    - height
    - color
    - subtype
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    - PnmSubtype
    constantsTouched: []
    func_position:
      end: 86
      start: 54
    functionDepth: 11
    functionLinenumber: 54
    functionLinenumberEnd: 86
    functionName: tests::execute_roundtrip_with_subtype
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - ImageResult::color_type
    - PnmEncoder::new
    - Self::with_subtype
    - ImageResult::unwrap
    - PnmDecoder::new
    - into_inner
    - Vec::new
    - ImageResult::expect
    - ImageResult::encode
    linkageType: ''
    returnType: void
    signature: 'fn execute_roundtrip_with_subtype(buffer: &[u8],width: u32,height:
      u32,color: ExtendedColorType,subtype: PnmSubtype,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/pnm/mod.rs:89,1
    - Dst: PnmEncoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:92,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/pnm/mod.rs:93,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/pnm/mod.rs:93,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:99,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/mod.rs:99,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/pnm/mod.rs:100,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/mod.rs:102,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/pnm/mod.rs:102,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:105,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/mod.rs:105,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/mod.rs:105,1
    - Dst: NativeEndian::write_u16_into
      Src: /src/image/src/codecs/pnm/mod.rs:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 4
    argNames:
    - buffer
    - width
    - height
    - color
    argTypes:
    - '&[u16]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 116
      start: 88
    functionDepth: 11
    functionLinenumber: 88
    functionLinenumberEnd: 116
    functionName: tests::execute_roundtrip_u16
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - ImageResult::color_type
    - PnmEncoder::new
    - NativeEndian::write_u16_into
    - ImageResult::unwrap
    - PnmDecoder::new
    - into_inner
    - Vec::new
    - ImageResult::expect
    - ImageResult::encode
    linkageType: ''
    returnType: void
    signature: 'fn execute_roundtrip_u16(buffer: &[u16], width: u32, height: u32,
      color: ExtendedColorType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: execute_roundtrip_default
      Src: /src/image/src/codecs/pnm/mod.rs:128,1
    - Dst: execute_roundtrip_with_subtype
      Src: /src/image/src/codecs/pnm/mod.rs:129,1
    - Dst: execute_roundtrip_with_subtype
      Src: /src/image/src/codecs/pnm/mod.rs:130,1
    - Dst: PnmSubtype::Graymap
      Src: /src/image/src/codecs/pnm/mod.rs:135,1
    - Dst: execute_roundtrip_with_subtype
      Src: /src/image/src/codecs/pnm/mod.rs:137,1
    - Dst: PnmSubtype::Graymap
      Src: /src/image/src/codecs/pnm/mod.rs:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 119
    functionDepth: 12
    functionLinenumber: 119
    functionLinenumberEnd: 144
    functionName: tests::roundtrip_gray
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - execute_roundtrip_with_subtype
    - PnmSubtype::Graymap
    - execute_roundtrip_default
    linkageType: ''
    returnType: void
    signature: fn roundtrip_gray()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: execute_roundtrip_default
      Src: /src/image/src/codecs/pnm/mod.rs:160,1
    - Dst: execute_roundtrip_with_subtype
      Src: /src/image/src/codecs/pnm/mod.rs:161,1
    - Dst: execute_roundtrip_with_subtype
      Src: /src/image/src/codecs/pnm/mod.rs:168,1
    - Dst: PnmSubtype::Pixmap
      Src: /src/image/src/codecs/pnm/mod.rs:173,1
    - Dst: execute_roundtrip_with_subtype
      Src: /src/image/src/codecs/pnm/mod.rs:175,1
    - Dst: PnmSubtype::Pixmap
      Src: /src/image/src/codecs/pnm/mod.rs:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 147
    functionDepth: 12
    functionLinenumber: 147
    functionLinenumberEnd: 182
    functionName: tests::roundtrip_rgb
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - execute_roundtrip_with_subtype
    - PnmSubtype::Pixmap
    - execute_roundtrip_default
    linkageType: ''
    returnType: void
    signature: fn roundtrip_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: execute_roundtrip_u16
      Src: /src/image/src/codecs/pnm/mod.rs:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 185
    functionDepth: 12
    functionLinenumber: 185
    functionLinenumberEnd: 189
    functionName: tests::roundtrip_u16
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - execute_roundtrip_u16
    linkageType: ''
    returnType: void
    signature: fn roundtrip_u16()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: BitWriter::new
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn new(w: W) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:203,1
    - Dst: u32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:207,1
    - Dst: write_all
      Src: /src/image/src/codecs/jpeg/encoder.rs:211,1
    - Dst: write_all
      Src: /src/image/src/codecs/jpeg/encoder.rs:214,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 47
    argCount: 2
    argNames:
    - bits
    - size
    argTypes:
    - u16
    - u8
    constantsTouched: []
    func_position:
      end: 222
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 222
    functionName: BitWriter::write_bits
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - write_all
    - u32::from
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn write_bits(&mut self, bits: u16, size: u8) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitWriter::write_bits
      Src: /src/image/src/codecs/jpeg/encoder.rs:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: BitWriter::pad_byte
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - BitWriter::write_bits
    linkageType: ''
    returnType: io::Result
    signature: fn pad_byte(&mut self) -> io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitWriter::write_bits
      Src: /src/image/src/codecs/jpeg/encoder.rs:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - val
    - table
    argTypes:
    - u8
    - '&[(u8, u16); 256]'
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: BitWriter::huffman_encode
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - BitWriter::write_bits
    linkageType: ''
    returnType: io::Result
    signature: 'fn huffman_encode(&mut self, val: u8, table: &[(u8, u16); 256]) ->
      io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode_coefficient
      Src: /src/image/src/codecs/jpeg/encoder.rs:246,1
    - Dst: BitWriter::huffman_encode
      Src: /src/image/src/codecs/jpeg/encoder.rs:248,1
    - Dst: BitWriter::write_bits
      Src: /src/image/src/codecs/jpeg/encoder.rs:249,1
    - Dst: BitWriter::huffman_encode
      Src: /src/image/src/codecs/jpeg/encoder.rs:259,1
    - Dst: encode_coefficient
      Src: /src/image/src/codecs/jpeg/encoder.rs:263,1
    - Dst: BitWriter::huffman_encode
      Src: /src/image/src/codecs/jpeg/encoder.rs:266,1
    - Dst: BitWriter::write_bits
      Src: /src/image/src/codecs/jpeg/encoder.rs:267,1
    - Dst: BitWriter::huffman_encode
      Src: /src/image/src/codecs/jpeg/encoder.rs:274,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:277,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 4
    argNames:
    - block
    - prevdc
    - dctable
    - actable
    argTypes:
    - '&[i32; 64]'
    - i32
    - '&[(u8, u16); 256]'
    - '&[(u8, u16); 256]'
    constantsTouched: []
    func_position:
      end: 278
      start: 236
    functionDepth: 5
    functionLinenumber: 236
    functionLinenumberEnd: 278
    functionName: BitWriter::write_block
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - BitWriter::huffman_encode
    - encode_coefficient
    - BitWriter::write_bits
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn write_block(&mut self,block: &[i32; 64],prevdc: i32,dctable: &[(u8,
      u16); 256],actable: &[(u8, u16); 256],) -> io::Result<i32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_all
      Src: /src/image/src/codecs/jpeg/encoder.rs:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - marker
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: BitWriter::write_marker
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - write_all
    linkageType: ''
    returnType: io::Result
    signature: 'fn write_marker(&mut self, marker: u8) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_all
      Src: /src/image/src/codecs/jpeg/encoder.rs:285,1
    - Dst: write_all
      Src: /src/image/src/codecs/jpeg/encoder.rs:286,1
    - Dst: ImageResult::len
      Src: /src/image/src/codecs/jpeg/encoder.rs:286,1
    - Dst: to_be_bytes
      Src: /src/image/src/codecs/jpeg/encoder.rs:286,1
    - Dst: write_all
      Src: /src/image/src/codecs/jpeg/encoder.rs:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - marker
    - data
    argTypes:
    - u8
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 288
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: BitWriter::write_segment
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - write_all
    - ImageResult::len
    - to_be_bytes
    linkageType: ''
    returnType: io::Result
    signature: 'fn write_segment(&mut self, marker: u8, data: &[u8]) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - density
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: PixelDensity::dpi
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn dpi(density: u16) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 342
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 342
    functionName: PixelDensity::default
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/src/codecs/jpeg/encoder.rs:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: JpegEncoder::new
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 2
    functionsReached:
    - JpegEncoder::new_with_quality
    linkageType: ''
    returnType: JpegEncoder
    signature: 'pub fn new(w: W) -> JpegEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exif
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: JpegEncoder::with_exif_metadata
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JpegEncoder
    signature: 'pub fn with_exif_metadata(mut self, exif: Vec<u8>) -> JpegEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:412,1
    - Dst: utils::clamp
      Src: /src/image/src/codecs/jpeg/encoder.rs:412,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/jpeg/encoder.rs:420,1
    - Dst: u8::iter_mut
      Src: /src/image/src/codecs/jpeg/encoder.rs:421,1
    - Dst: utils::clamp
      Src: /src/image/src/codecs/jpeg/encoder.rs:422,1
    - Dst: u32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:422,1
    - Dst: u32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:422,1
    - Dst: BitWriter::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:427,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/jpeg/encoder.rs:432,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/jpeg/encoder.rs:433,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/jpeg/encoder.rs:434,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/jpeg/encoder.rs:435,1
    - Dst: PixelDensity::default
      Src: /src/image/src/codecs/jpeg/encoder.rs:437,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:439,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 2
    argNames:
    - w
    - quality
    argTypes:
    - W
    - u8
    constantsTouched: []
    func_position:
      end: 442
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 442
    functionName: JpegEncoder::new_with_quality
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 2
    functionsReached:
    - utils::clamp
    - Cow::Borrowed
    - u8::iter_mut
    - BitWriter::new
    - iter_mut
    - u32::from
    - Vec::new
    - PixelDensity::default
    linkageType: ''
    returnType: JpegEncoder
    signature: 'pub fn new_with_quality(w: W, quality: u8) -> JpegEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pixel_density
    argTypes:
    - PixelDensity
    constantsTouched: []
    func_position:
      end: 449
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 449
    functionName: JpegEncoder::set_pixel_density
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_pixel_density(&mut self, pixel_density: PixelDensity)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExtendedColorType::buffer_size
      Src: /src/image/src/codecs/jpeg/encoder.rs:468,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/jpeg/encoder.rs:479,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/jpeg/encoder.rs:479,1
    - Dst: JpegEncoder::encode_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:480,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/jpeg/encoder.rs:484,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/jpeg/encoder.rs:484,1
    - Dst: JpegEncoder::encode_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:485,1
    - Dst: Err
      Src: /src/image/src/codecs/jpeg/encoder.rs:487,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/jpeg/encoder.rs:487,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/jpeg/encoder.rs:488,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/encoder.rs:489,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/jpeg/encoder.rs:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 4
    argNames:
    - image
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 494
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 494
    functionName: JpegEncoder::encode
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - ExtendedColorType::buffer_size
    - Option::unwrap
    - Err
    - into
    - JpegEncoder::encode_image
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - UnsupportedErrorKind::Color
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn encode(&mut self,image: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/image/src/codecs/jpeg/encoder.rs:497,1
    - Dst: to_vec
      Src: /src/image/src/codecs/jpeg/encoder.rs:498,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:499,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:500,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 504
      start: 496
    functionDepth: 12
    functionLinenumber: 496
    functionLinenumberEnd: 504
    functionName: JpegEncoder::write_exif
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - is_empty
    - extend_from_slice
    - to_vec
    - Ok
    - write_segment
    linkageType: ''
    returnType: ImageResult
    signature: fn write_exif(&mut self) -> ImageResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_marker
      Src: /src/image/src/codecs/jpeg/encoder.rs:523,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:525,1
    - Dst: build_jfif_header
      Src: /src/image/src/codecs/jpeg/encoder.rs:527,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:528,1
    - Dst: JpegEncoder::write_exif
      Src: /src/image/src/codecs/jpeg/encoder.rs:529,1
    - Dst: JpegEncoder::write_icc_profile_chunks
      Src: /src/image/src/codecs/jpeg/encoder.rs:532,1
    - Dst: build_frame_header
      Src: /src/image/src/codecs/jpeg/encoder.rs:534,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/jpeg/encoder.rs:539,1
    - Dst: Vec::width
      Src: /src/image/src/codecs/jpeg/encoder.rs:539,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/encoder.rs:539,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/jpeg/encoder.rs:540,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/jpeg/encoder.rs:540,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/jpeg/encoder.rs:544,1
    - Dst: Vec::height
      Src: /src/image/src/codecs/jpeg/encoder.rs:544,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/encoder.rs:544,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/jpeg/encoder.rs:545,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/jpeg/encoder.rs:545,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:551,1
    - Dst: iter
      Src: /src/image/src/codecs/jpeg/encoder.rs:556,1
    - Dst: enumerate
      Src: /src/image/src/codecs/jpeg/encoder.rs:556,1
    - Dst: build_quantization_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:557,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:558,1
    - Dst: build_huffman_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:561,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:568,1
    - Dst: build_huffman_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:570,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:577,1
    - Dst: build_huffman_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:580,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:587,1
    - Dst: build_huffman_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:589,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:596,1
    - Dst: build_scan_header
      Src: /src/image/src/codecs/jpeg/encoder.rs:599,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:600,1
    - Dst: JpegEncoder::encode_rgb
      Src: /src/image/src/codecs/jpeg/encoder.rs:603,1
    - Dst: JpegEncoder::encode_gray
      Src: /src/image/src/codecs/jpeg/encoder.rs:605,1
    - Dst: pad_byte
      Src: /src/image/src/codecs/jpeg/encoder.rs:608,1
    - Dst: write_marker
      Src: /src/image/src/codecs/jpeg/encoder.rs:609,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:610,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 163
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 611
      start: 515
    functionDepth: 13
    functionLinenumber: 515
    functionLinenumberEnd: 611
    functionName: JpegEncoder::encode_image
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - write_marker
    - enumerate
    - ParameterError::from_kind
    - map_err
    - Vec::width
    - JpegEncoder::encode_gray
    - write_segment
    - Ok
    - build_scan_header
    - pad_byte
    - Vec::height
    - u16::try_from
    - JpegEncoder::write_exif
    - iter
    - build_huffman_segment
    - Vec::new
    - build_frame_header
    - JpegEncoder::write_icc_profile_chunks
    - JpegEncoder::encode_rgb
    - build_quantization_segment
    - ImageError::Parameter
    - build_jfif_header
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn encode_image<I: GenericImageView>(&mut self, image: &I) ->
      ImageResult<()>whereI::Pixel: PixelWithColorType,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::height
      Src: /src/image/src/codecs/jpeg/encoder.rs:618,1
    - Dst: step_by
      Src: /src/image/src/codecs/jpeg/encoder.rs:618,1
    - Dst: Vec::width
      Src: /src/image/src/codecs/jpeg/encoder.rs:619,1
    - Dst: step_by
      Src: /src/image/src/codecs/jpeg/encoder.rs:619,1
    - Dst: copy_blocks_gray
      Src: /src/image/src/codecs/jpeg/encoder.rs:620,1
    - Dst: transform::fdct
      Src: /src/image/src/codecs/jpeg/encoder.rs:624,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/jpeg/encoder.rs:627,1
    - Dst: enumerate
      Src: /src/image/src/codecs/jpeg/encoder.rs:627,1
    - Dst: f32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:628,1
    - Dst: round
      Src: /src/image/src/codecs/jpeg/encoder.rs:628,1
    - Dst: write_block
      Src: /src/image/src/codecs/jpeg/encoder.rs:634,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:638,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 62
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 639
      start: 613
    functionDepth: 4
    functionLinenumber: 613
    functionLinenumberEnd: 639
    functionName: JpegEncoder::encode_gray
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - Vec::height
    - f32::from
    - enumerate
    - copy_blocks_gray
    - iter_mut
    - Vec::width
    - transform::fdct
    - round
    - step_by
    - write_block
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn encode_gray<I: GenericImageView>(&mut self, image: &I) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::height
      Src: /src/image/src/codecs/jpeg/encoder.rs:654,1
    - Dst: step_by
      Src: /src/image/src/codecs/jpeg/encoder.rs:654,1
    - Dst: Vec::width
      Src: /src/image/src/codecs/jpeg/encoder.rs:655,1
    - Dst: step_by
      Src: /src/image/src/codecs/jpeg/encoder.rs:655,1
    - Dst: copy_blocks_ycbcr
      Src: /src/image/src/codecs/jpeg/encoder.rs:657,1
    - Dst: transform::fdct
      Src: /src/image/src/codecs/jpeg/encoder.rs:661,1
    - Dst: transform::fdct
      Src: /src/image/src/codecs/jpeg/encoder.rs:662,1
    - Dst: transform::fdct
      Src: /src/image/src/codecs/jpeg/encoder.rs:663,1
    - Dst: f32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:668,1
    - Dst: round
      Src: /src/image/src/codecs/jpeg/encoder.rs:668,1
    - Dst: f32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:669,1
    - Dst: round
      Src: /src/image/src/codecs/jpeg/encoder.rs:669,1
    - Dst: f32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:671,1
    - Dst: round
      Src: /src/image/src/codecs/jpeg/encoder.rs:671,1
    - Dst: write_block
      Src: /src/image/src/codecs/jpeg/encoder.rs:680,1
    - Dst: write_block
      Src: /src/image/src/codecs/jpeg/encoder.rs:681,1
    - Dst: write_block
      Src: /src/image/src/codecs/jpeg/encoder.rs:682,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:686,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 125
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 687
      start: 641
    functionDepth: 4
    functionLinenumber: 641
    functionLinenumberEnd: 687
    functionName: JpegEncoder::encode_rgb
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - Vec::height
    - f32::from
    - Vec::width
    - transform::fdct
    - copy_blocks_ycbcr
    - round
    - step_by
    - write_block
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn encode_rgb<I: GenericImageView>(&mut self, image: &I) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/image/src/codecs/jpeg/encoder.rs:690,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:691,1
    - Dst: len
      Src: /src/image/src/codecs/jpeg/encoder.rs:698,1
    - Dst: Err
      Src: /src/image/src/codecs/jpeg/encoder.rs:699,1
    - Dst: io::Error::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:699,1
    - Dst: chunks
      Src: /src/image/src/codecs/jpeg/encoder.rs:705,1
    - Dst: len
      Src: /src/image/src/codecs/jpeg/encoder.rs:706,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:707,1
    - Dst: enumerate
      Src: /src/image/src/codecs/jpeg/encoder.rs:709,1
    - Dst: Option::len
      Src: /src/image/src/codecs/jpeg/encoder.rs:711,1
    - Dst: io::Result::clear
      Src: /src/image/src/codecs/jpeg/encoder.rs:713,1
    - Dst: io::Result::reserve
      Src: /src/image/src/codecs/jpeg/encoder.rs:714,1
    - Dst: io::Result::extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:715,1
    - Dst: io::Result::push
      Src: /src/image/src/codecs/jpeg/encoder.rs:716,1
    - Dst: io::Result::push
      Src: /src/image/src/codecs/jpeg/encoder.rs:717,1
    - Dst: io::Result::extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:718,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:720,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:723,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 724
      start: 689
    functionDepth: 3
    functionLinenumber: 689
    functionLinenumberEnd: 724
    functionName: JpegEncoder::write_icc_profile_chunks
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - Option::len
    - Err
    - chunks
    - enumerate
    - write_segment
    - io::Result::reserve
    - io::Result::extend_from_slice
    - io::Result::push
    - io::Result::clear
    - len
    - io::Error::new
    - Vec::new
    - Ok
    - is_empty
    linkageType: ''
    returnType: io::Result
    signature: fn write_icc_profile_chunks(&mut self) -> io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JpegEncoder::encode
      Src: /src/image/src/codecs/jpeg/encoder.rs:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 737
      start: 729
    functionDepth: 15
    functionLinenumber: 729
    functionLinenumberEnd: 737
    functionName: JpegEncoder::write_image
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - JpegEncoder::encode
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(mut self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - icc_profile
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 742
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 742
    functionName: JpegEncoder::set_icc_profile
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_icc_profile(&mut self, icc_profile: Vec<u8>) -> Result<(),
      UnsupportedError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::color
      Src: /src/image/src/codecs/jpeg/encoder.rs:750,1
    - Dst: Some
      Src: /src/image/src/codecs/jpeg/encoder.rs:752,1
    - Dst: Option::to_luma8
      Src: /src/image/src/codecs/jpeg/encoder.rs:752,1
    - Dst: GrayImage::into
      Src: /src/image/src/codecs/jpeg/encoder.rs:752,1
    - Dst: Some
      Src: /src/image/src/codecs/jpeg/encoder.rs:753,1
    - Dst: Option::to_rgb8
      Src: /src/image/src/codecs/jpeg/encoder.rs:753,1
    - Dst: RgbImage::into
      Src: /src/image/src/codecs/jpeg/encoder.rs:753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - img
    argTypes:
    - crate::io::encoder::MethodSealedToImage
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 755
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 755
    functionName: JpegEncoder::make_compatible_img
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - Option::to_luma8
    - Some
    - Option::to_rgb8
    - RgbImage::into
    - GrayImage::into
    - Option::color
    linkageType: ''
    returnType: Option
    signature: 'fn make_compatible_img(&self,_: crate::io::encoder::MethodSealedToImage,img:
      &DynamicImage,) -> Option<DynamicImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/image/src/codecs/jpeg/encoder.rs:759,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:760,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:761,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:771,1
    - Dst: to_be_bytes
      Src: /src/image/src/codecs/jpeg/encoder.rs:771,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:772,1
    - Dst: to_be_bytes
      Src: /src/image/src/codecs/jpeg/encoder.rs:772,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 2
    argNames:
    - m
    - density
    argTypes:
    - '&mut Vec<u8>'
    - PixelDensity
    constantsTouched: []
    func_position:
      end: 774
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 774
    functionName: build_jfif_header
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - to_be_bytes
    - clear
    - extend_from_slice
    linkageType: ''
    returnType: void
    signature: 'fn build_jfif_header(m: &mut Vec<u8>, density: PixelDensity)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/image/src/codecs/jpeg/encoder.rs:783,1
    - Dst: push
      Src: /src/image/src/codecs/jpeg/encoder.rs:785,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:786,1
    - Dst: u32::to_be_bytes
      Src: /src/image/src/codecs/jpeg/encoder.rs:786,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:787,1
    - Dst: u32::to_be_bytes
      Src: /src/image/src/codecs/jpeg/encoder.rs:787,1
    - Dst: push
      Src: /src/image/src/codecs/jpeg/encoder.rs:788,1
    - Dst: '&[Component]::len'
      Src: /src/image/src/codecs/jpeg/encoder.rs:788,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 5
    argNames:
    - m
    - precision
    - width
    - height
    - components
    argTypes:
    - '&mut Vec<u8>'
    - u8
    - u16
    - u16
    - '&[Component]'
    constantsTouched: []
    func_position:
      end: 794
      start: 776
    functionDepth: 3
    functionLinenumber: 776
    functionLinenumberEnd: 794
    functionName: build_frame_header
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - extend_from_slice
    - push
    - clear
    - '&[Component]::len'
    - u32::to_be_bytes
    linkageType: ''
    returnType: void
    signature: 'fn build_frame_header(m: &mut Vec<u8>,precision: u8,width: u16,height:
      u16,components: &[Component],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/image/src/codecs/jpeg/encoder.rs:797,1
    - Dst: push
      Src: /src/image/src/codecs/jpeg/encoder.rs:799,1
    - Dst: '&[Component]::len'
      Src: /src/image/src/codecs/jpeg/encoder.rs:799,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:803,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 2
    argNames:
    - m
    - components
    argTypes:
    - '&mut Vec<u8>'
    - '&[Component]'
    constantsTouched: []
    func_position:
      end: 808
      start: 796
    functionDepth: 3
    functionLinenumber: 796
    functionLinenumberEnd: 808
    functionName: build_scan_header
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - push
    - clear
    - extend_from_slice
    - '&[Component]::len'
    linkageType: ''
    returnType: void
    signature: 'fn build_scan_header(m: &mut Vec<u8>, components: &[Component])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/image/src/codecs/jpeg/encoder.rs:817,1
    - Dst: push
      Src: /src/image/src/codecs/jpeg/encoder.rs:820,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:822,1
    - Dst: '&[u8; 16]::iter'
      Src: /src/image/src/codecs/jpeg/encoder.rs:824,1
    - Dst: map
      Src: /src/image/src/codecs/jpeg/encoder.rs:824,1
    - Dst: ImageResult::sum
      Src: /src/image/src/codecs/jpeg/encoder.rs:824,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 5
    argNames:
    - m
    - class
    - destination
    - numcodes
    - values
    argTypes:
    - '&mut Vec<u8>'
    - u8
    - u8
    - '&[u8; 16]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 829
      start: 810
    functionDepth: 3
    functionLinenumber: 810
    functionLinenumberEnd: 829
    functionName: build_huffman_segment
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - extend_from_slice
    - map
    - push
    - '&[u8; 16]::iter'
    - clear
    - ImageResult::sum
    linkageType: ''
    returnType: void
    signature: 'fn build_huffman_segment(m: &mut Vec<u8>,class: u8,destination: u8,numcodes:
      &[u8; 16],values: &[u8],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/image/src/codecs/jpeg/encoder.rs:832,1
    - Dst: push
      Src: /src/image/src/codecs/jpeg/encoder.rs:837,1
    - Dst: push
      Src: /src/image/src/codecs/jpeg/encoder.rs:840,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 4
    argNames:
    - m
    - precision
    - identifier
    - qtable
    argTypes:
    - '&mut Vec<u8>'
    - u8
    - u8
    - '&[u8; 64]'
    constantsTouched: []
    func_position:
      end: 842
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 842
    functionName: build_quantization_segment
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - push
    - clear
    linkageType: ''
    returnType: void
    signature: 'fn build_quantization_segment(m: &mut Vec<u8>, precision: u8, identifier:
      u8, qtable: &[u8; 64])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: (u8, u16)::unsigned_abs
      Src: /src/image/src/codecs/jpeg/encoder.rs:845,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - coefficient
    argTypes:
    - i32
    constantsTouched: []
    func_position:
      end: 862
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 862
    functionName: encode_coefficient
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - (u8, u16)::unsigned_abs
    linkageType: ''
    returnType: (u8, u16)
    signature: 'fn encode_coefficient(coefficient: i32) -> (u8, u16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::to_rgb
      Src: /src/image/src/codecs/jpeg/encoder.rs:866,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:867,1
    - Dst: Result::to_u8
      Src: /src/image/src/codecs/jpeg/encoder.rs:867,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/jpeg/encoder.rs:867,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:868,1
    - Dst: to_u8
      Src: /src/image/src/codecs/jpeg/encoder.rs:868,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/jpeg/encoder.rs:868,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:869,1
    - Dst: to_u8
      Src: /src/image/src/codecs/jpeg/encoder.rs:869,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/jpeg/encoder.rs:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 1
    argNames:
    - pixel
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 898
      start: 865
    functionDepth: 4
    functionLinenumber: 865
    functionLinenumberEnd: 898
    functionName: rgb_to_ycbcr
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - to_u8
    - i32::from
    - Result::to_u8
    - u8::to_rgb
    linkageType: ''
    returnType: (u8, u8, u8)
    signature: 'fn rgb_to_ycbcr<P: Pixel>(pixel: P) -> (u8, u8, u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::in_bounds
      Src: /src/image/src/codecs/jpeg/encoder.rs:904,1
    - Dst: Option::get_pixel
      Src: /src/image/src/codecs/jpeg/encoder.rs:905,1
    - Dst: Option::get_pixel
      Src: /src/image/src/codecs/jpeg/encoder.rs:907,1
    - Dst: min
      Src: /src/image/src/codecs/jpeg/encoder.rs:907,1
    - Dst: Option::width
      Src: /src/image/src/codecs/jpeg/encoder.rs:907,1
    - Dst: Option::min
      Src: /src/image/src/codecs/jpeg/encoder.rs:907,1
    - Dst: Option::height
      Src: /src/image/src/codecs/jpeg/encoder.rs:907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - source
    - x
    - y
    argTypes:
    - '&I'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 909
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 909
    functionName: pixel_at_or_near
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - Option::min
    - Option::height
    - Option::get_pixel
    - Option::in_bounds
    - Option::width
    - min
    linkageType: ''
    returnType: I::Pixel
    signature: 'fn pixel_at_or_near<I: GenericImageView>(source: &I, x: u32, y: u32)
      -> I::Pixel'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pixel_at_or_near
      Src: /src/image/src/codecs/jpeg/encoder.rs:921,1
    - Dst: rgb_to_ycbcr
      Src: /src/image/src/codecs/jpeg/encoder.rs:922,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 6
    argNames:
    - source
    - x0
    - y0
    - yb
    - cbb
    - crb
    argTypes:
    - '&I'
    - u32
    - u32
    - '&mut [u8; 64]'
    - '&mut [u8; 64]'
    - '&mut [u8; 64]'
    constantsTouched: []
    func_position:
      end: 929
      start: 911
    functionDepth: 5
    functionLinenumber: 911
    functionLinenumberEnd: 929
    functionName: copy_blocks_ycbcr
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - rgb_to_ycbcr
    - pixel_at_or_near
    linkageType: ''
    returnType: void
    signature: 'fn copy_blocks_ycbcr<I: GenericImageView>(source: &I,x0: u32,y0: u32,yb:
      &mut [u8; 64],cbb: &mut [u8; 64],crb: &mut [u8; 64],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pixel_at_or_near
      Src: /src/image/src/codecs/jpeg/encoder.rs:935,1
    - Dst: u8::to_luma
      Src: /src/image/src/codecs/jpeg/encoder.rs:936,1
    - Dst: T::to_u8
      Src: /src/image/src/codecs/jpeg/encoder.rs:937,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/jpeg/encoder.rs:937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 4
    argNames:
    - source
    - x0
    - y0
    - gb
    argTypes:
    - '&I'
    - u32
    - u32
    - '&mut [u8; 64]'
    constantsTouched: []
    func_position:
      end: 940
      start: 931
    functionDepth: 4
    functionLinenumber: 931
    functionLinenumberEnd: 940
    functionName: copy_blocks_gray
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - T::to_u8
    - u8::to_luma
    - Option::unwrap
    - pixel_at_or_near
    linkageType: ''
    returnType: void
    signature: 'fn copy_blocks_gray<I: GenericImageView>(source: &I, x0: u32, y0:
      u32, gb: &mut [u8; 64])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JpegDecoder::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:963,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:963,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:963,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:966,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - encoded
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 970
      start: 962
    functionDepth: 3
    functionLinenumber: 962
    functionLinenumberEnd: 970
    functionName: tests::decode
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::expect
    - ImageResult::read_image
    - Cursor::new
    - JpegDecoder::new
    linkageType: ''
    returnType: Vec
    signature: 'fn decode(encoded: &[u8]) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:978,1
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/src/codecs/jpeg/encoder.rs:980,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:981,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:981,1
    - Dst: decode
      Src: /src/image/src/codecs/jpeg/encoder.rs:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 996
      start: 973
    functionDepth: 4
    functionLinenumber: 973
    functionLinenumberEnd: 996
    functionName: tests::roundtrip_sanity_check
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - decode
    - ImageResult::write_image
    - Vec::new
    - ImageResult::expect
    - JpegEncoder::new_with_quality
    linkageType: ''
    returnType: void
    signature: fn roundtrip_sanity_check()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:1004,1
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/src/codecs/jpeg/encoder.rs:1006,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:1007,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:1007,1
    - Dst: decode
      Src: /src/image/src/codecs/jpeg/encoder.rs:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 999
    functionDepth: 4
    functionLinenumber: 999
    functionLinenumberEnd: 1023
    functionName: tests::grayscale_roundtrip_sanity_check
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - decode
    - ImageResult::write_image
    - Vec::new
    - ImageResult::expect
    - JpegEncoder::new_with_quality
    linkageType: ''
    returnType: void
    signature: fn grayscale_roundtrip_sanity_check()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:1027,1
    - Dst: build_jfif_header
      Src: /src/image/src/codecs/jpeg/encoder.rs:1028,1
    - Dst: PixelDensity::dpi
      Src: /src/image/src/codecs/jpeg/encoder.rs:1028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1026
    functionDepth: 2
    functionLinenumber: 1026
    functionLinenumberEnd: 1048
    functionName: tests::jfif_header_density_check
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - PixelDensity::dpi
    - build_jfif_header
    linkageType: ''
    returnType: void
    signature: fn jfif_header_density_check()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:1056,1
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/src/codecs/jpeg/encoder.rs:1057,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:1058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1051
    functionDepth: 4
    functionLinenumber: 1051
    functionLinenumberEnd: 1070
    functionName: tests::test_image_too_large
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - JpegEncoder::new_with_quality
    - ImageResult::write_image
    linkageType: ''
    returnType: void
    signature: fn test_image_too_large()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PixelDensity::dpi
      Src: /src/image/src/codecs/jpeg/encoder.rs:1075,1
    - Dst: build_jfif_header
      Src: /src/image/src/codecs/jpeg/encoder.rs:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1081
    functionName: tests::test_build_jfif_header
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - PixelDensity::dpi
    - build_jfif_header
    linkageType: ''
    returnType: void
    signature: fn test_build_jfif_header()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_frame_header
      Src: /src/image/src/codecs/jpeg/encoder.rs:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1084
    functionDepth: 4
    functionLinenumber: 1084
    functionLinenumberEnd: 1111
    functionName: tests::test_build_frame_header
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - build_frame_header
    linkageType: ''
    returnType: void
    signature: fn test_build_frame_header()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_scan_header
      Src: /src/image/src/codecs/jpeg/encoder.rs:1136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1114
    functionDepth: 4
    functionLinenumber: 1114
    functionLinenumberEnd: 1138
    functionName: tests::test_build_scan_header
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - build_scan_header
    linkageType: ''
    returnType: void
    signature: fn test_build_scan_header()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_huffman_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1157
      start: 1141
    functionDepth: 4
    functionLinenumber: 1141
    functionLinenumberEnd: 1157
    functionName: tests::test_build_huffman_segment
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - build_huffman_segment
    linkageType: ''
    returnType: void
    signature: fn test_build_huffman_segment()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_quantization_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:1163,1
    - Dst: push
      Src: /src/image/src/codecs/jpeg/encoder.rs:1165,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1160
    functionDepth: 1
    functionLinenumber: 1160
    functionLinenumberEnd: 1168
    functionName: tests::test_build_quantization_segment
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - push
    - build_quantization_segment
    - extend_from_slice
    linkageType: ''
    returnType: void
    signature: fn test_build_quantization_segment()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:1186,1
    - Dst: Vec::write_to
      Src: /src/image/src/codecs/jpeg/encoder.rs:1188,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:1189,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:1188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1171
    functionDepth: 2
    functionLinenumber: 1171
    functionLinenumberEnd: 1192
    functionName: tests::check_color_types
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::write_to
    - ImageResult::expect
    - DynamicImage::new
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn check_color_types()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/codecs/jpeg/encoder.rs:1197,1
    - Dst: JpegEncoder::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:1199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 1201
      start: 1196
    functionDepth: 5
    functionLinenumber: 1196
    functionLinenumberEnd: 1201
    functionName: tests::bench_jpeg_encoder_new
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - JpegEncoder::new
    - iter
    linkageType: ''
    returnType: void
    signature: 'fn bench_jpeg_encoder_new(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/transform.rs:78,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/transform.rs:78,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/transform.rs:79,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/transform.rs:79,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/transform.rs:80,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/transform.rs:80,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/transform.rs:81,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/transform.rs:81,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/transform.rs:88,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/transform.rs:88,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/transform.rs:89,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/transform.rs:89,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/transform.rs:90,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/transform.rs:90,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/transform.rs:91,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/transform.rs:91,1
    - Dst: rev
      Src: /src/image/src/codecs/jpeg/transform.rs:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 374
    argCount: 2
    argNames:
    - samples
    - coeffs
    argTypes:
    - '&[u8; 64]'
    - '&mut [i32; 64]'
    constantsTouched: []
    func_position:
      end: 196
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 196
    functionName: fdct
    functionSourceFile: /src/image/src/codecs/jpeg/transform.rs
    functionUses: 2
    functionsReached:
    - rev
    - i32::from
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn fdct(samples: &[u8; 64], coeffs: &mut [i32; 64])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wrapping_sub
      Src: /src/image/src/codecs/jpeg/entropy.rs:43,1
    - Dst: u64::wrapping_add
      Src: /src/image/src/codecs/jpeg/entropy.rs:46,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 1
    argNames:
    - bits
    argTypes:
    - '&[u8; 16]'
    constantsTouched: []
    func_position:
      end: 50
      start: 4
    functionDepth: 0
    functionLinenumber: 4
    functionLinenumberEnd: 50
    functionName: derive_codes_and_sizes
    functionSourceFile: /src/image/src/codecs/jpeg/entropy.rs
    functionUses: 0
    functionsReached:
    - u64::wrapping_add
    - wrapping_sub
    linkageType: ''
    returnType: ([u8; 256], [u16; 256])
    signature: 'const fn derive_codes_and_sizes(bits: &[u8; 16]) -> ([u8; 256], [u16;
      256])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: derive_codes_and_sizes
      Src: /src/image/src/codecs/jpeg/entropy.rs:54,1
    - Dst: '&[u8]::len'
      Src: /src/image/src/codecs/jpeg/entropy.rs:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - bits
    - huffval
    argTypes:
    - '&[u8; 16]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: build_huff_lut_const
    functionSourceFile: /src/image/src/codecs/jpeg/entropy.rs
    functionUses: 0
    functionsReached:
    - derive_codes_and_sizes
    - '&[u8]::len'
    linkageType: ''
    returnType: '[(u8, u16); 256]'
    signature: 'pub(crate) const fn build_huff_lut_const(bits: &[u8; 16], huffval:
      &[u8]) -> [(u8, u16); 256]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:29,1
    - Dst: Result::read_to_end
      Src: /src/image/src/codecs/jpeg/decoder.rs:31,1
    - Dst: zune_core::options::DecoderOptions::default
      Src: /src/image/src/codecs/jpeg/decoder.rs:32,1
    - Dst: Limits::set_strict_mode
      Src: /src/image/src/codecs/jpeg/decoder.rs:32,1
    - Dst: set_max_width
      Src: /src/image/src/codecs/jpeg/decoder.rs:32,1
    - Dst: set_max_height
      Src: /src/image/src/codecs/jpeg/decoder.rs:32,1
    - Dst: zune_jpeg::JpegDecoder::new_with_options
      Src: /src/image/src/codecs/jpeg/decoder.rs:36,1
    - Dst: Self::as_slice
      Src: /src/image/src/codecs/jpeg/decoder.rs:36,1
    - Dst: ImageResult::decode_headers
      Src: /src/image/src/codecs/jpeg/decoder.rs:37,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/decoder.rs:37,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/jpeg/decoder.rs:40,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:40,1
    - Dst: u32::try_into
      Src: /src/image/src/codecs/jpeg/decoder.rs:42,1
    - Dst: unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:42,1
    - Dst: u32::try_into
      Src: /src/image/src/codecs/jpeg/decoder.rs:43,1
    - Dst: unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:43,1
    - Dst: ImageResult::get_output_colorspace
      Src: /src/image/src/codecs/jpeg/decoder.rs:44,1
    - Dst: unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:44,1
    - Dst: Limits::no_limits
      Src: /src/image/src/codecs/jpeg/decoder.rs:46,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 56
      start: 28
    functionDepth: 10
    functionLinenumber: 28
    functionLinenumberEnd: 56
    functionName: JpegDecoder::new
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 4
    functionsReached:
    - Limits::set_strict_mode
    - set_max_height
    - ImageResult::decode_headers
    - ImageResult::dimensions
    - zune_jpeg::JpegDecoder::new_with_options
    - map_err
    - zune_core::options::DecoderOptions::default
    - Result::read_to_end
    - ImageResult::unwrap
    - u32::try_into
    - unwrap
    - ImageResult::get_output_colorspace
    - Vec::new
    - Self::as_slice
    - Limits::no_limits
    - Ok
    - set_max_width
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(r: R) -> ImageResult<JpegDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/image/src/codecs/jpeg/decoder.rs:61,1
    - Dst: u32::from
      Src: /src/image/src/codecs/jpeg/decoder.rs:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: JpegDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - u32::from
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ColorType::from_jpeg
      Src: /src/image/src/codecs/jpeg/decoder.rs:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: JpegDecoder::color_type
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - ColorType::from_jpeg
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zune_core::options::DecoderOptions::default
      Src: /src/image/src/codecs/jpeg/decoder.rs:69,1
    - Dst: Limits::set_strict_mode
      Src: /src/image/src/codecs/jpeg/decoder.rs:69,1
    - Dst: set_max_width
      Src: /src/image/src/codecs/jpeg/decoder.rs:69,1
    - Dst: set_max_height
      Src: /src/image/src/codecs/jpeg/decoder.rs:69,1
    - Dst: zune_jpeg::JpegDecoder::new_with_options
      Src: /src/image/src/codecs/jpeg/decoder.rs:73,1
    - Dst: ImageResult::decode_headers
      Src: /src/image/src/codecs/jpeg/decoder.rs:74,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/decoder.rs:74,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:75,1
    - Dst: ImageResult::icc_profile
      Src: /src/image/src/codecs/jpeg/decoder.rs:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: JpegDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - Limits::set_strict_mode
    - set_max_height
    - ImageResult::decode_headers
    - zune_jpeg::JpegDecoder::new_with_options
    - map_err
    - zune_core::options::DecoderOptions::default
    - ImageResult::icc_profile
    - Ok
    - set_max_width
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zune_core::options::DecoderOptions::default
      Src: /src/image/src/codecs/jpeg/decoder.rs:79,1
    - Dst: Limits::set_strict_mode
      Src: /src/image/src/codecs/jpeg/decoder.rs:79,1
    - Dst: set_max_width
      Src: /src/image/src/codecs/jpeg/decoder.rs:79,1
    - Dst: set_max_height
      Src: /src/image/src/codecs/jpeg/decoder.rs:79,1
    - Dst: zune_jpeg::JpegDecoder::new_with_options
      Src: /src/image/src/codecs/jpeg/decoder.rs:83,1
    - Dst: ImageResult::decode_headers
      Src: /src/image/src/codecs/jpeg/decoder.rs:84,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/decoder.rs:84,1
    - Dst: ImageResult::exif
      Src: /src/image/src/codecs/jpeg/decoder.rs:85,1
    - Dst: Option::cloned
      Src: /src/image/src/codecs/jpeg/decoder.rs:85,1
    - Dst: Some
      Src: /src/image/src/codecs/jpeg/decoder.rs:87,1
    - Dst: Option::as_ref
      Src: /src/image/src/codecs/jpeg/decoder.rs:88,1
    - Dst: FlatSamples::and_then
      Src: /src/image/src/codecs/jpeg/decoder.rs:88,1
    - Dst: Orientation::from_exif_chunk
      Src: /src/image/src/codecs/jpeg/decoder.rs:89,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/jpeg/decoder.rs:88,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 78
    functionDepth: 5
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: JpegDecoder::exif_metadata
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - Limits::set_strict_mode
    - Option::cloned
    - set_max_height
    - ImageResult::decode_headers
    - Some
    - FlatSamples::and_then
    - zune_jpeg::JpegDecoder::new_with_options
    - map_err
    - Orientation::from_exif_chunk
    - zune_core::options::DecoderOptions::default
    - unwrap_or
    - Option::as_ref
    - ImageResult::exif
    - Ok
    - set_max_width
    linkageType: ''
    returnType: ImageResult
    signature: fn exif_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/image/src/codecs/jpeg/decoder.rs:98,1
    - Dst: JpegDecoder::exif_metadata
      Src: /src/image/src/codecs/jpeg/decoder.rs:99,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:101,1
    - Dst: unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 6
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: JpegDecoder::orientation
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - is_none
    - unwrap
    - Ok
    - JpegDecoder::exif_metadata
    linkageType: ''
    returnType: ImageResult
    signature: fn orientation(&mut self) -> ImageResult<Orientation>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JpegDecoder::total_bytes
      Src: /src/image/src/codecs/jpeg/decoder.rs:105,1
    - Dst: io::Result::len
      Src: /src/image/src/codecs/jpeg/decoder.rs:106,1
    - Dst: Err
      Src: /src/image/src/codecs/jpeg/decoder.rs:109,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/jpeg/decoder.rs:109,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:109,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/decoder.rs:110,1
    - Dst: new_zune_decoder
      Src: /src/image/src/codecs/jpeg/decoder.rs:119,1
    - Dst: ImageResult::decode_into
      Src: /src/image/src/codecs/jpeg/decoder.rs:120,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/decoder.rs:120,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 11
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: JpegDecoder::read_image
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - io::Result::len
    - Err
    - ImageResult::decode_into
    - DecodingError::new
    - map_err
    - JpegDecoder::total_bytes
    - into
    - ImageError::Decoding
    - new_zune_decoder
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_support
      Src: /src/image/src/codecs/jpeg/decoder.rs:125,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/jpeg/decoder.rs:125,1
    - Dst: JpegDecoder::dimensions
      Src: /src/image/src/codecs/jpeg/decoder.rs:126,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/codecs/jpeg/decoder.rs:127,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - limits
    argTypes:
    - Limits
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 4
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: JpegDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - JpegDecoder::dimensions
    - crate::LimitSupport::default
    - Limits::check_dimensions
    - Limits::check_support
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/jpeg/decoder.rs:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: JpegDecoder::read_image_boxed
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_supported_color_space
      Src: /src/image/src/codecs/jpeg/decoder.rs:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - colorspace
    argTypes:
    - ZuneColorSpace
    constantsTouched: []
    func_position:
      end: 151
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 151
    functionName: ColorType::from_jpeg
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 1
    functionsReached:
    - to_supported_color_space
    linkageType: ''
    returnType: ColorType
    signature: 'fn from_jpeg(colorspace: ZuneColorSpace) -> ColorType'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - orig
    argTypes:
    - ZuneColorSpace
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: to_supported_color_space
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ZuneColorSpace
    signature: 'fn to_supported_color_space(orig: ZuneColorSpace) -> ZuneColorSpace'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_supported_color_space
      Src: /src/image/src/codecs/jpeg/decoder.rs:168,1
    - Dst: zune_core::options::DecoderOptions::default
      Src: /src/image/src/codecs/jpeg/decoder.rs:169,1
    - Dst: Limits::jpeg_set_out_colorspace
      Src: /src/image/src/codecs/jpeg/decoder.rs:169,1
    - Dst: set_strict_mode
      Src: /src/image/src/codecs/jpeg/decoder.rs:169,1
    - Dst: set_max_width
      Src: /src/image/src/codecs/jpeg/decoder.rs:172,1
    - Dst: set_max_height
      Src: /src/image/src/codecs/jpeg/decoder.rs:176,1
    - Dst: zune_jpeg::JpegDecoder::new_with_options
      Src: /src/image/src/codecs/jpeg/decoder.rs:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - input
    - orig_color_space
    - limits
    argTypes:
    - '&[u8]'
    - ZuneColorSpace
    - Limits
    constantsTouched: []
    func_position:
      end: 181
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 181
    functionName: new_zune_decoder
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 1
    functionsReached:
    - set_max_height
    - Limits::jpeg_set_out_colorspace
    - zune_jpeg::JpegDecoder::new_with_options
    - set_strict_mode
    - zune_core::options::DecoderOptions::default
    - to_supported_color_space
    - set_max_width
    linkageType: ''
    returnType: zune_jpeg::JpegDecoder
    signature: 'fn new_zune_decoder(input: &[u8],orig_color_space: ZuneColorSpace,limits:
      Limits,) -> zune_jpeg::JpegDecoder<&[u8]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/jpeg/decoder.rs:187,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/jpeg/decoder.rs:187,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/decoder.rs:188,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/jpeg/decoder.rs:189,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/jpeg/decoder.rs:191,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/jpeg/decoder.rs:191,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/jpeg/decoder.rs:194,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:194,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/decoder.rs:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - err
    argTypes:
    - zune_jpeg::errors::DecodeErrors
    constantsTouched: []
    func_position:
      end: 196
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 196
    functionName: ImageError::from_jpeg
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - LimitError::from_kind
    - DecodingError::new
    - ImageError::Limits
    - into
    - UnsupportedError::from_format_and_kind
    - ImageError::Decoding
    - ImageError::Unsupported
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: ImageError
    signature: 'fn from_jpeg(err: zune_jpeg::errors::DecodeErrors) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs::read
      Src: /src/image/src/codecs/jpeg/decoder.rs:206,1
    - Dst: bool::unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:206,1
    - Dst: JpegDecoder::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:207,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:207,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 11
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: tests::test_exif_orientation
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - fs::read
    - ImageResult::unwrap
    - Cursor::new
    - bool::unwrap
    - JpegDecoder::new
    linkageType: ''
    returnType: void
    signature: fn test_exif_orientation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: image_webp::WebPEncoder::new
      Src: /src/image/src/codecs/webp/encoder.rs:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: WebPEncoder::new_lossless
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 1
    functionsReached:
    - image_webp::WebPEncoder::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_lossless(w: W) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExtendedColorType::buffer_size
      Src: /src/image/src/codecs/webp/encoder.rs:55,1
    - Dst: Err
      Src: /src/image/src/codecs/webp/encoder.rs:69,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/webp/encoder.rs:69,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/webp/encoder.rs:70,1
    - Dst: into
      Src: /src/image/src/codecs/webp/encoder.rs:71,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/webp/encoder.rs:72,1
    - Dst: encode
      Src: /src/image/src/codecs/webp/encoder.rs:78,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/encoder.rs:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 81
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 81
    functionName: WebPEncoder::encode
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 0
    functionsReached:
    - ExtendedColorType::buffer_size
    - Err
    - map_err
    - into
    - UnsupportedError::from_format_and_kind
    - encode
    - ImageError::Unsupported
    - UnsupportedErrorKind::Color
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn encode(self,buf: &[u8],width: u32,height: u32,color_type: ExtendedColorType,)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WebPEncoder::encode
      Src: /src/image/src/codecs/webp/encoder.rs:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 5
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: WebPEncoder::write_image
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 0
    functionsReached:
    - WebPEncoder::encode
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_icc_profile
      Src: /src/image/src/codecs/webp/encoder.rs:97,1
    - Dst: Ok
      Src: /src/image/src/codecs/webp/encoder.rs:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - icc_profile
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: WebPEncoder::set_icc_profile
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - set_icc_profile
    linkageType: ''
    returnType: Result
    signature: 'fn set_icc_profile(&mut self, icc_profile: Vec<u8>) -> Result<(),
      UnsupportedError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::io::encoder::dynimage_conversion_8bit
      Src: /src/image/src/codecs/webp/encoder.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - img
    argTypes:
    - crate::io::encoder::MethodSealedToImage
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: WebPEncoder::make_compatible_img
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 0
    functionsReached:
    - crate::io::encoder::dynimage_conversion_8bit
    linkageType: ''
    returnType: Option
    signature: 'fn make_compatible_img(&self,_: crate::io::encoder::MethodSealedToImage,img:
      &DynamicImage,) -> Option<DynamicImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/webp/encoder.rs:113,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/webp/encoder.rs:114,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/webp/encoder.rs:114,1
    - Dst: into
      Src: /src/image/src/codecs/webp/encoder.rs:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - image_webp::EncodingError
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: ImageError::from_webp_encode
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageError::Encoding
    - ImageError::IoError
    - EncodingError::new
    - into
    linkageType: ''
    returnType: Self
    signature: 'fn from_webp_encode(e: image_webp::EncodingError) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::from_raw
      Src: /src/image/src/codecs/webp/encoder.rs:125,1
    - Dst: collect
      Src: /src/image/src/codecs/webp/encoder.rs:125,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/webp/encoder.rs:125,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/webp/encoder.rs:127,1
    - Dst: super::WebPEncoder::new_lossless
      Src: /src/image/src/codecs/webp/encoder.rs:128,1
    - Dst: Self::write_image
      Src: /src/image/src/codecs/webp/encoder.rs:128,1
    - Dst: Option::inner_pixels
      Src: /src/image/src/codecs/webp/encoder.rs:130,1
    - Dst: Option::width
      Src: /src/image/src/codecs/webp/encoder.rs:131,1
    - Dst: Option::height
      Src: /src/image/src/codecs/webp/encoder.rs:132,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/webp/encoder.rs:128,1
    - Dst: crate::load_from_memory_with_format
      Src: /src/image/src/codecs/webp/encoder.rs:137,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/webp/encoder.rs:137,1
    - Dst: to_rgba8
      Src: /src/image/src/codecs/webp/encoder.rs:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 142
    functionName: tests::write_webp
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 0
    functionsReached:
    - RgbaImage::from_raw
    - Self::write_image
    - to_rgba8
    - ImageResult::unwrap
    - collect
    - super::WebPEncoder::new_lossless
    - crate::load_from_memory_with_format
    - Vec::new
    - Option::inner_pixels
    - Option::width
    - Option::height
    linkageType: ''
    returnType: void
    signature: fn write_webp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/webp/decoder.rs:22,1
    - Dst: image_webp::WebPDecoder::new
      Src: /src/image/src/codecs/webp/decoder.rs:23,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/webp/decoder.rs:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: WebPDecoder::new
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 5
    functionsReached:
    - image_webp::WebPDecoder::new
    - Ok
    - ImageResult::map_err
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(r: R) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_animated
      Src: /src/image/src/codecs/webp/decoder.rs:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: WebPDecoder::has_animation
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - is_animated
    linkageType: ''
    returnType: bool
    signature: pub fn has_animation(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_background_color
      Src: /src/image/src/codecs/webp/decoder.rs:35,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/decoder.rs:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - color
    argTypes:
    - Rgba<u8>
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: WebPDecoder::set_background_color
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - map_err
    - set_background_color
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn set_background_color(&mut self, color: Rgba<u8>) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dimensions
      Src: /src/image/src/codecs/webp/decoder.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 10
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: WebPDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - dimensions
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: has_alpha
      Src: /src/image/src/codecs/webp/decoder.rs:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: WebPDecoder::color_type
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - has_alpha
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/webp/decoder.rs:57,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/decoder.rs:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: WebPDecoder::read_image
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - map_err
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/webp/decoder.rs:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: WebPDecoder::read_image_boxed
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: icc_profile
      Src: /src/image/src/codecs/webp/decoder.rs:67,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/decoder.rs:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: WebPDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - icc_profile
    - map_err
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exif_metadata
      Src: /src/image/src/codecs/webp/decoder.rs:73,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/decoder.rs:73,1
    - Dst: Some
      Src: /src/image/src/codecs/webp/decoder.rs:78,1
    - Dst: Option::as_ref
      Src: /src/image/src/codecs/webp/decoder.rs:79,1
    - Dst: FlatSamples::and_then
      Src: /src/image/src/codecs/webp/decoder.rs:79,1
    - Dst: Orientation::from_exif_chunk
      Src: /src/image/src/codecs/webp/decoder.rs:80,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/webp/decoder.rs:79,1
    - Dst: Ok
      Src: /src/image/src/codecs/webp/decoder.rs:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 72
    functionDepth: 5
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: WebPDecoder::exif_metadata
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - exif_metadata
    - Some
    - FlatSamples::and_then
    - map_err
    - Orientation::from_exif_chunk
    - unwrap_or
    - Option::as_ref
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn exif_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/image/src/codecs/webp/decoder.rs:89,1
    - Dst: WebPDecoder::exif_metadata
      Src: /src/image/src/codecs/webp/decoder.rs:90,1
    - Dst: Ok
      Src: /src/image/src/codecs/webp/decoder.rs:92,1
    - Dst: unwrap
      Src: /src/image/src/codecs/webp/decoder.rs:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 6
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: WebPDecoder::orientation
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - is_none
    - WebPDecoder::exif_metadata
    - unwrap
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn orientation(&mut self) -> ImageResult<Orientation>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Frames::new
      Src: /src/image/src/codecs/webp/decoder.rs:137,1
    - Dst: Box::new
      Src: /src/image/src/codecs/webp/decoder.rs:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 141
    functionName: WebPDecoder::into_frames
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - Frames::new
    linkageType: ''
    returnType: Frames
    signature: fn into_frames(self) -> Frames<'a>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/webp/decoder.rs:147,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/webp/decoder.rs:148,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/webp/decoder.rs:148,1
    - Dst: into
      Src: /src/image/src/codecs/webp/decoder.rs:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - image_webp::DecodingError
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: ImageError::from_webp_decode
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - DecodingError::new
    - ImageError::Decoding
    - ImageError::IoError
    - into
    linkageType: ''
    returnType: Self
    signature: 'fn from_webp_decode(e: image_webp::DecodingError) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::io::Cursor::new
      Src: /src/image/src/codecs/webp/decoder.rs:168,1
    - Dst: WebPDecoder::new
      Src: /src/image/src/codecs/webp/decoder.rs:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 171
    functionName: tests::add_with_overflow_size
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - WebPDecoder::new
    - std::io::Cursor::new
    linkageType: ''
    returnType: void
    signature: fn add_with_overflow_size()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - precision
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: CbCrInverseTransform::to_integers
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CbCrInverseTransform
    signature: 'fn to_integers(self, precision: u32) -> CbCrInverseTransform<i32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_str
      Src: /src/image/src/codecs/avif/yuv.rs:51,1
    - Dst: write_str
      Src: /src/image/src/codecs/avif/yuv.rs:52,1
    - Dst: write_str
      Src: /src/image/src/codecs/avif/yuv.rs:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut Formatter'
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: PlaneDefinition::fmt
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - write_str
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut Formatter) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_fmt
      Src: /src/image/src/codecs/avif/yuv.rs:68,1
    - Dst: write_fmt
      Src: /src/image/src/codecs/avif/yuv.rs:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: YuvConversionError::fmt
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - write_fmt
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::len
      Src: /src/image/src/codecs/avif/yuv.rs:92,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/yuv.rs:93,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/yuv.rs:93,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/yuv.rs:93,1
    - Dst: into
      Src: /src/image/src/codecs/avif/yuv.rs:94,1
    - Dst: YuvConversionError::YuvPlaneSizeMismatch
      Src: /src/image/src/codecs/avif/yuv.rs:95,1
    - Dst: Vec::len
      Src: /src/image/src/codecs/avif/yuv.rs:99,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/yuv.rs:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - plane
    - plane_definition
    - stride
    - height
    argTypes:
    - '&[V]'
    - PlaneDefinition
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: check_yuv_plane_preconditions
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - Err
    - DecodingError::new
    - into
    - Vec::len
    - ImageError::Decoding
    - YuvConversionError::YuvPlaneSizeMismatch
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn check_yuv_plane_preconditions<V>(plane: &[V],plane_definition:
      PlaneDefinition,stride: usize,height: usize,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[V]::len'
      Src: /src/image/src/codecs/avif/yuv.rs:113,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/yuv.rs:114,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/yuv.rs:114,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/yuv.rs:114,1
    - Dst: into
      Src: /src/image/src/codecs/avif/yuv.rs:115,1
    - Dst: YuvConversionError::RgbDestinationSizeMismatch
      Src: /src/image/src/codecs/avif/yuv.rs:116,1
    - Dst: '&[V]::len'
      Src: /src/image/src/codecs/avif/yuv.rs:118,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/yuv.rs:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 3
    argNames:
    - rgb_data
    - stride
    - height
    argTypes:
    - '&[V]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 123
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 123
    functionName: check_rgb_preconditions
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - Err
    - '&[V]::len'
    - DecodingError::new
    - into
    - YuvConversionError::RgbDestinationSizeMismatch
    - ImageError::Decoding
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn check_rgb_preconditions<V>(rgb_data: &[V],stride: usize,height:
      usize,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_integers
      Src: /src/image/src/codecs/avif/yuv.rs:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 6
    argNames:
    - range_bgra
    - range_y
    - range_uv
    - kr
    - kb
    - precision
    argTypes:
    - u32
    - u32
    - u32
    - f32
    - f32
    - u32
    constantsTouched: []
    func_position:
      end: 150
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 150
    functionName: get_inverse_transform
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - to_integers
    linkageType: ''
    returnType: CbCrInverseTransform
    signature: 'fn get_inverse_transform(range_bgra: u32,range_y: u32,range_uv: u32,kr:
      f32,kb: f32,precision: u32,) -> CbCrInverseTransform<i32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - depth
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 191
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 191
    functionName: YuvIntensityRange::get_yuv_range
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: YuvChromaRange
    signature: 'pub(crate) const fn get_yuv_range(self, depth: u32) -> YuvChromaRange'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 235
    functionName: YuvStandardMatrix::get_kr_kb
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: YuvBias
    signature: const fn get_kr_kb(self) -> YuvBias
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clamp
      Src: /src/image/src/codecs/avif/yuv.rs:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - val
    argTypes:
    - i32
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: qrshr
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - clamp
    linkageType: ''
    returnType: i32
    signature: 'pub(crate) fn qrshr<const PRECISION: i32, const BIT_DEPTH: usize>(val:
      i32) -> i32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yuv400_to_rgbx_impl::<u8, 4, 8>
      Src: /src/image/src/codecs/avif/yuv.rs:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - image
    - rgba
    - range
    - matrix
    argTypes:
    - YuvPlanarImage<u8>
    - '&mut [u8]'
    - YuvIntensityRange
    - YuvStandardMatrix
    constantsTouched: []
    func_position:
      end: 273
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 273
    functionName: yuv400_to_rgba8
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - yuv400_to_rgbx_impl::<u8, 4, 8>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn yuv400_to_rgba8(image: YuvPlanarImage<u8>,rgba: &mut
      [u8],range: YuvIntensityRange,matrix: YuvStandardMatrix,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yuv400_to_rgbx_impl::<u16, 4, 10>
      Src: /src/image/src/codecs/avif/yuv.rs:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - image
    - rgba
    - range
    - matrix
    argTypes:
    - YuvPlanarImage<u16>
    - '&mut [u16]'
    - YuvIntensityRange
    - YuvStandardMatrix
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: yuv400_to_rgba10
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - yuv400_to_rgbx_impl::<u16, 4, 10>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn yuv400_to_rgba10(image: YuvPlanarImage<u16>,rgba: &mut
      [u16],range: YuvIntensityRange,matrix: YuvStandardMatrix,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yuv400_to_rgbx_impl::<u16, 4, 12>
      Src: /src/image/src/codecs/avif/yuv.rs:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - image
    - rgba
    - range
    - matrix
    argTypes:
    - YuvPlanarImage<u16>
    - '&mut [u16]'
    - YuvIntensityRange
    - YuvStandardMatrix
    constantsTouched: []
    func_position:
      end: 309
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 309
    functionName: yuv400_to_rgba12
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - yuv400_to_rgbx_impl::<u16, 4, 12>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn yuv400_to_rgba12(image: YuvPlanarImage<u16>,rgba: &mut
      [u16],range: YuvIntensityRange,matrix: YuvStandardMatrix,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:356,1
    - Dst: check_rgb_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:357,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:365,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:366,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:369,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:370,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/yuv.rs:372,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:372,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:378,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/yuv.rs:382,1
    - Dst: YuvChromaRange::get_yuv_range
      Src: /src/image/src/codecs/avif/yuv.rs:385,1
    - Dst: Result::get_kr_kb
      Src: /src/image/src/codecs/avif/yuv.rs:386,1
    - Dst: get_inverse_transform
      Src: /src/image/src/codecs/avif/yuv.rs:389,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:401,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:402,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:405,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:406,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/yuv.rs:408,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:408,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:409,1
    - Dst: qrshr::<PRECISION, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/yuv.rs:411,1
    - Dst: Result::as_
      Src: /src/image/src/codecs/avif/yuv.rs:412,1
    - Dst: Result::as_
      Src: /src/image/src/codecs/avif/yuv.rs:413,1
    - Dst: Result::as_
      Src: /src/image/src/codecs/avif/yuv.rs:414,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:416,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/yuv.rs:421,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 123
    argCount: 4
    argNames:
    - image
    - rgba
    - range
    - matrix
    argTypes:
    - YuvPlanarImage<V>
    - '&mut [V]'
    - YuvIntensityRange
    - YuvStandardMatrix
    constantsTouched: []
    func_position:
      end: 422
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 422
    functionName: yuv400_to_rgbx_impl
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - check_rgb_preconditions
    - iter
    - chunks_exact_mut
    - qrshr::<PRECISION, BIT_DEPTH>
    - as_
    - YuvChromaRange::get_yuv_range
    - zip
    - Result::get_kr_kb
    - chunks_exact
    - get_inverse_transform
    - Result::as_
    - check_yuv_plane_preconditions
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn yuv400_to_rgbx_impl<V: Copy + AsPrimitive<i32> + ''static + Sized,const
      CHANNELS: usize,const BIT_DEPTH: usize,>(image: YuvPlanarImage<V>,rgba: &mut
      [V],range: YuvIntensityRange,matrix: YuvStandardMatrix,) -> Result<(), ImageError>wherei32:
      AsPrimitive<V>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yuv420_to_rgbx_invoker::<u8, HalvedRowHandler<u8>, P, 4, 8>
      Src: /src/image/src/codecs/avif/yuv.rs:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - image
    - rgb
    - range
    - matrix
    argTypes:
    - YuvPlanarImage<u8>
    - '&mut [u8]'
    - YuvIntensityRange
    - YuvStandardMatrix
    constantsTouched: []
    func_position:
      end: 447
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 447
    functionName: yuv420_to_rgba8
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - yuv420_to_rgbx_invoker::<u8, HalvedRowHandler<u8>, P, 4, 8>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn yuv420_to_rgba8(image: YuvPlanarImage<u8>,rgb: &mut
      [u8],range: YuvIntensityRange,matrix: YuvStandardMatrix,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yuv420_to_rgbx_invoker::<u16, HalvedRowHandler<u16>, P, 4, 10>
      Src: /src/image/src/codecs/avif/yuv.rs:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - image
    - rgb
    - range
    - matrix
    argTypes:
    - YuvPlanarImage<u16>
    - '&mut [u16]'
    - YuvIntensityRange
    - YuvStandardMatrix
    constantsTouched: []
    func_position:
      end: 472
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 472
    functionName: yuv420_to_rgba10
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - yuv420_to_rgbx_invoker::<u16, HalvedRowHandler<u16>, P, 4, 10>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn yuv420_to_rgba10(image: YuvPlanarImage<u16>,rgb: &mut
      [u16],range: YuvIntensityRange,matrix: YuvStandardMatrix,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yuv420_to_rgbx_invoker::<u16, HalvedRowHandler<u16>, P, 4, 12>
      Src: /src/image/src/codecs/avif/yuv.rs:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - image
    - rgb
    - range
    - matrix
    argTypes:
    - YuvPlanarImage<u16>
    - '&mut [u16]'
    - YuvIntensityRange
    - YuvStandardMatrix
    constantsTouched: []
    func_position:
      end: 500
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 500
    functionName: yuv420_to_rgba12
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - yuv420_to_rgbx_invoker::<u16, HalvedRowHandler<u16>, P, 4, 12>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn yuv420_to_rgba12(image: YuvPlanarImage<u16>,rgb: &mut
      [u16],range: YuvIntensityRange,matrix: YuvStandardMatrix,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: qrshr::<PRECISION, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/yuv.rs:524,1
    - Dst: qrshr::<PRECISION, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/yuv.rs:525,1
    - Dst: qrshr::<PRECISION, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/yuv.rs:526,1
    - Dst: Result::as_
      Src: /src/image/src/codecs/avif/yuv.rs:529,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:530,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:531,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:532,1
    - Dst: Result::as_
      Src: /src/image/src/codecs/avif/yuv.rs:534,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:535,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:536,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 62
    argCount: 5
    argNames:
    - dst
    - y_value
    - cb
    - cr
    - t
    argTypes:
    - '&mut [V; CHANNELS]'
    - i32
    - i32
    - i32
    - '&CbCrInverseTransform<i32>'
    constantsTouched: []
    func_position:
      end: 540
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 540
    functionName: ycbcr_execute
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - as_
    - Result::as_
    - qrshr::<PRECISION, BIT_DEPTH>
    linkageType: ''
    returnType: void
    signature: 'fn ycbcr_execute<V: Copy + AsPrimitive<i32> + ''static + Sized,const
      PRECISION: i32,const CHANNELS: usize,const BIT_DEPTH: usize,>(dst: &mut [V;
      CHANNELS],y_value: i32,cb: i32,cr: i32,t: &CbCrInverseTransform<i32>,) wherei32:
      AsPrimitive<V>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: div_ceil
      Src: /src/image/src/codecs/avif/yuv.rs:563,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:570,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:571,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:572,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:572,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:572,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:573,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:574,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:575,1
    - Dst: ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/yuv.rs:579,1
    - Dst: try_into
      Src: /src/image/src/codecs/avif/yuv.rs:580,1
    - Dst: unwrap
      Src: /src/image/src/codecs/avif/yuv.rs:580,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:587,1
    - Dst: ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/yuv.rs:591,1
    - Dst: try_into
      Src: /src/image/src/codecs/avif/yuv.rs:592,1
    - Dst: unwrap
      Src: /src/image/src/codecs/avif/yuv.rs:592,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:602,1
    - Dst: remainder
      Src: /src/image/src/codecs/avif/yuv.rs:602,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:603,1
    - Dst: into_remainder
      Src: /src/image/src/codecs/avif/yuv.rs:603,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:603,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/yuv.rs:607,1
    - Dst: rev
      Src: /src/image/src/codecs/avif/yuv.rs:607,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/yuv.rs:608,1
    - Dst: rev
      Src: /src/image/src/codecs/avif/yuv.rs:608,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/yuv.rs:611,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:611,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:611,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:611,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:613,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:614,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:615,1
    - Dst: ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/yuv.rs:617,1
    - Dst: try_into
      Src: /src/image/src/codecs/avif/yuv.rs:618,1
    - Dst: unwrap
      Src: /src/image/src/codecs/avif/yuv.rs:618,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 120
    argCount: 4
    argNames:
    - image
    - rgba
    - transform
    - range
    argTypes:
    - YuvPlanarImage<V>
    - '&mut [V]'
    - '&CbCrInverseTransform<i32>'
    - '&YuvChromaRange'
    constantsTouched: []
    func_position:
      end: 626
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 626
    functionName: process_halved_chroma_row_cbcr
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - rev
    - div_ceil
    - remainder
    - iter
    - chunks_exact_mut
    - try_into
    - as_
    - unwrap
    - zip
    - chunks_exact
    - into_remainder
    - ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>
    linkageType: ''
    returnType: void
    signature: 'fn process_halved_chroma_row_cbcr<V: Copy + AsPrimitive<i32> + ''static
      + Sized,const PRECISION: i32,const CHANNELS: usize,const BIT_DEPTH: usize,>(image:
      YuvPlanarImage<V>,rgba: &mut [V],transform: &CbCrInverseTransform<i32>,range:
      &YuvChromaRange,) wherei32: AsPrimitive<V>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: div_ceil
      Src: /src/image/src/codecs/avif/yuv.rs:675,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:677,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:678,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:679,1
    - Dst: check_rgb_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:681,1
    - Dst: YuvChromaRange::get_yuv_range
      Src: /src/image/src/codecs/avif/yuv.rs:683,1
    - Dst: Result::get_kr_kb
      Src: /src/image/src/codecs/avif/yuv.rs:684,1
    - Dst: get_inverse_transform
      Src: /src/image/src/codecs/avif/yuv.rs:685,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:696,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:697,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:698,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:699,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:728,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:728,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:728,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:730,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:731,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:732,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/yuv.rs:743,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:749,1
    - Dst: remainder
      Src: /src/image/src/codecs/avif/yuv.rs:749,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:749,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:753,1
    - Dst: rev
      Src: /src/image/src/codecs/avif/yuv.rs:753,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:754,1
    - Dst: rev
      Src: /src/image/src/codecs/avif/yuv.rs:754,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:755,1
    - Dst: rev
      Src: /src/image/src/codecs/avif/yuv.rs:755,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:757,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:757,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:757,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/yuv.rs:768,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/yuv.rs:771,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 113
    argCount: 5
    argNames:
    - image
    - rgb
    - range
    - matrix
    - worker
    argTypes:
    - YuvPlanarImage<V>
    - '&mut [V]'
    - YuvIntensityRange
    - YuvStandardMatrix
    - W
    constantsTouched: []
    func_position:
      end: 772
      start: 637
    functionDepth: 4
    functionLinenumber: 637
    functionLinenumberEnd: 772
    functionName: yuv420_to_rgbx_invoker
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - check_rgb_preconditions
    - rev
    - div_ceil
    - remainder
    - chunks_exact_mut
    - YuvChromaRange::get_yuv_range
    - get_inverse_transform
    - Result::get_kr_kb
    - chunks_exact
    - zip
    - check_yuv_plane_preconditions
    - Ok
    - worker
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn yuv420_to_rgbx_invoker<V: Copy + AsPrimitive<i32> +
      ''static + Sized,W: Fn(YuvPlanarImage<V>, &mut [V], &CbCrInverseTransform<i32>,
      &YuvChromaRange),const PRECISION: i32,const CHANNELS: usize,const BIT_DEPTH:
      usize,>(image: YuvPlanarImage<V>,rgb: &mut [V],range: YuvIntensityRange,matrix:
      YuvStandardMatrix,worker: W,) -> Result<(), ImageError>wherei32: AsPrimitive<V>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yuv422_to_rgbx_invoker::<u8, HalvedRowHandler<u8>, P, 4, 8>
      Src: /src/image/src/codecs/avif/yuv.rs:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - image
    - rgb
    - range
    - matrix
    argTypes:
    - YuvPlanarImage<u8>
    - '&mut [u8]'
    - YuvIntensityRange
    - YuvStandardMatrix
    constantsTouched: []
    func_position:
      end: 797
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 797
    functionName: yuv422_to_rgba8
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - yuv422_to_rgbx_invoker::<u8, HalvedRowHandler<u8>, P, 4, 8>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn yuv422_to_rgba8(image: YuvPlanarImage<u8>,rgb: &mut
      [u8],range: YuvIntensityRange,matrix: YuvStandardMatrix,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yuv422_to_rgbx_invoker::<u16, HalvedRowHandler<u16>, P, 4, 10>
      Src: /src/image/src/codecs/avif/yuv.rs:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - image
    - rgb
    - range
    - matrix
    argTypes:
    - YuvPlanarImage<u16>
    - '&mut [u16]'
    - YuvIntensityRange
    - YuvStandardMatrix
    constantsTouched: []
    func_position:
      end: 822
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 822
    functionName: yuv422_to_rgba10
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - yuv422_to_rgbx_invoker::<u16, HalvedRowHandler<u16>, P, 4, 10>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn yuv422_to_rgba10(image: YuvPlanarImage<u16>,rgb: &mut
      [u16],range: YuvIntensityRange,matrix: YuvStandardMatrix,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yuv422_to_rgbx_invoker::<u16, HalvedRowHandler<u16>, P, 4, 12>
      Src: /src/image/src/codecs/avif/yuv.rs:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - image
    - rgb
    - range
    - matrix
    argTypes:
    - YuvPlanarImage<u16>
    - '&mut [u16]'
    - YuvIntensityRange
    - YuvStandardMatrix
    constantsTouched: []
    func_position:
      end: 847
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 847
    functionName: yuv422_to_rgba12
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - yuv422_to_rgbx_invoker::<u16, HalvedRowHandler<u16>, P, 4, 12>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn yuv422_to_rgba12(image: YuvPlanarImage<u16>,rgb: &mut
      [u16],range: YuvIntensityRange,matrix: YuvStandardMatrix,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:899,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:900,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:901,1
    - Dst: check_rgb_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:903,1
    - Dst: YuvChromaRange::get_yuv_range
      Src: /src/image/src/codecs/avif/yuv.rs:905,1
    - Dst: Result::get_kr_kb
      Src: /src/image/src/codecs/avif/yuv.rs:906,1
    - Dst: get_inverse_transform
      Src: /src/image/src/codecs/avif/yuv.rs:908,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:944,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:945,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:946,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:947,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:950,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:950,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:950,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/yuv.rs:961,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/yuv.rs:964,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 69
    argCount: 5
    argNames:
    - image
    - rgb
    - range
    - matrix
    - worker
    argTypes:
    - YuvPlanarImage<V>
    - '&mut [V]'
    - YuvIntensityRange
    - YuvStandardMatrix
    - W
    constantsTouched: []
    func_position:
      end: 965
      start: 858
    functionDepth: 4
    functionLinenumber: 858
    functionLinenumberEnd: 965
    functionName: yuv422_to_rgbx_invoker
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - check_rgb_preconditions
    - chunks_exact_mut
    - Result::get_kr_kb
    - YuvChromaRange::get_yuv_range
    - zip
    - get_inverse_transform
    - chunks_exact
    - check_yuv_plane_preconditions
    - Ok
    - worker
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn yuv422_to_rgbx_invoker<V: Copy + AsPrimitive<i32> +
      ''static + Sized,W: Fn(YuvPlanarImage<V>, &mut [V], &CbCrInverseTransform<i32>,
      &YuvChromaRange),const PRECISION: i32,const CHANNELS: usize,const BIT_DEPTH:
      usize,>(image: YuvPlanarImage<V>,rgb: &mut [V],range: YuvIntensityRange,matrix:
      YuvStandardMatrix,worker: W,) -> Result<(), ImageError>wherei32: AsPrimitive<V>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yuv444_to_rgbx_impl::<u8, 4, 8>
      Src: /src/image/src/codecs/avif/yuv.rs:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - image
    - rgba
    - range
    - matrix
    argTypes:
    - YuvPlanarImage<u8>
    - '&mut [u8]'
    - YuvIntensityRange
    - YuvStandardMatrix
    constantsTouched: []
    func_position:
      end: 983
      start: 976
    functionDepth: 0
    functionLinenumber: 976
    functionLinenumberEnd: 983
    functionName: yuv444_to_rgba8
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - yuv444_to_rgbx_impl::<u8, 4, 8>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn yuv444_to_rgba8(image: YuvPlanarImage<u8>,rgba: &mut
      [u8],range: YuvIntensityRange,matrix: YuvStandardMatrix,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yuv444_to_rgbx_impl::<u16, 4, 10>
      Src: /src/image/src/codecs/avif/yuv.rs:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - image
    - rgba
    - range
    - matrix
    argTypes:
    - YuvPlanarImage<u16>
    - '&mut [u16]'
    - YuvIntensityRange
    - YuvStandardMatrix
    constantsTouched: []
    func_position:
      end: 1001
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 1001
    functionName: yuv444_to_rgba10
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - yuv444_to_rgbx_impl::<u16, 4, 10>
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn yuv444_to_rgba10(image: YuvPlanarImage<u16>,rgba: &mut
      [u16],range: YuvIntensityRange,matrix: YuvStandardMatrix,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: yuv444_to_rgbx_impl::<u16, 4, 12>
      Src: /src/image/src/codecs/avif/yuv.rs:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - image
    - rgba
    - range
    - matrix
    argTypes:
    - YuvPlanarImage<u16>
    - '&mut [u16]'
    - YuvIntensityRange
    - YuvStandardMatrix
    constantsTouched: []
    func_position:
      end: 1019
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1019
    functionName: yuv444_to_rgba12
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - yuv444_to_rgbx_impl::<u16, 4, 12>
    linkageType: ''
    returnType: Result
    signature: 'pub(super) fn yuv444_to_rgba12(image: YuvPlanarImage<u16>,rgba: &mut
      [u16],range: YuvIntensityRange,matrix: YuvStandardMatrix,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:1070,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:1071,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:1072,1
    - Dst: check_rgb_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:1074,1
    - Dst: YuvChromaRange::get_yuv_range
      Src: /src/image/src/codecs/avif/yuv.rs:1076,1
    - Dst: Result::get_kr_kb
      Src: /src/image/src/codecs/avif/yuv.rs:1077,1
    - Dst: get_inverse_transform
      Src: /src/image/src/codecs/avif/yuv.rs:1080,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:1094,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:1095,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:1096,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:1097,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1100,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1100,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1100,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:1101,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/yuv.rs:1103,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1103,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1103,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1103,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1105,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1106,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1107,1
    - Dst: ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/yuv.rs:1109,1
    - Dst: try_into
      Src: /src/image/src/codecs/avif/yuv.rs:1110,1
    - Dst: unwrap
      Src: /src/image/src/codecs/avif/yuv.rs:1110,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/yuv.rs:1119,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 90
    argCount: 4
    argNames:
    - image
    - rgba
    - range
    - matrix
    argTypes:
    - YuvPlanarImage<V>
    - '&mut [V]'
    - YuvIntensityRange
    - YuvStandardMatrix
    constantsTouched: []
    func_position:
      end: 1120
      start: 1031
    functionDepth: 4
    functionLinenumber: 1031
    functionLinenumberEnd: 1120
    functionName: yuv444_to_rgbx_impl
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - check_rgb_preconditions
    - iter
    - chunks_exact_mut
    - Result::get_kr_kb
    - try_into
    - as_
    - Ok
    - YuvChromaRange::get_yuv_range
    - unwrap
    - zip
    - get_inverse_transform
    - chunks_exact
    - check_yuv_plane_preconditions
    - ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>
    linkageType: ''
    returnType: Result
    signature: 'fn yuv444_to_rgbx_impl<V: Copy + AsPrimitive<i32> + ''static + Sized,const
      CHANNELS: usize,const BIT_DEPTH: usize,>(image: YuvPlanarImage<V>,rgba: &mut
      [V],range: YuvIntensityRange,matrix: YuvStandardMatrix,) -> Result<(), ImageError>wherei32:
      AsPrimitive<V>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gbr_to_rgbx_impl::<u8, 4, 8>
      Src: /src/image/src/codecs/avif/yuv.rs:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - image
    - rgb
    - range
    argTypes:
    - YuvPlanarImage<u8>
    - '&mut [u8]'
    - YuvIntensityRange
    constantsTouched: []
    func_position:
      end: 1136
      start: 1130
    functionDepth: 0
    functionLinenumber: 1130
    functionLinenumberEnd: 1136
    functionName: gbr_to_rgba8
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - gbr_to_rgbx_impl::<u8, 4, 8>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn gbr_to_rgba8(image: YuvPlanarImage<u8>,rgb: &mut [u8],range:
      YuvIntensityRange,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gbr_to_rgbx_impl::<u16, 4, 10>
      Src: /src/image/src/codecs/avif/yuv.rs:1152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - image
    - rgba
    - range
    argTypes:
    - YuvPlanarImage<u16>
    - '&mut [u16]'
    - YuvIntensityRange
    constantsTouched: []
    func_position:
      end: 1153
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1153
    functionName: gbr_to_rgba10
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - gbr_to_rgbx_impl::<u16, 4, 10>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn gbr_to_rgba10(image: YuvPlanarImage<u16>,rgba: &mut
      [u16],range: YuvIntensityRange,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gbr_to_rgbx_impl::<u16, 4, 12>
      Src: /src/image/src/codecs/avif/yuv.rs:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - image
    - rgba
    - range
    argTypes:
    - YuvPlanarImage<u16>
    - '&mut [u16]'
    - YuvIntensityRange
    constantsTouched: []
    func_position:
      end: 1169
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1169
    functionName: gbr_to_rgba12
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - gbr_to_rgbx_impl::<u16, 4, 12>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn gbr_to_rgba12(image: YuvPlanarImage<u16>,rgba: &mut
      [u16],range: YuvIntensityRange,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:1217,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:1218,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:1219,1
    - Dst: check_rgb_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:1221,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:1227,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:1228,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:1229,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:1230,1
    - Dst: YuvChromaRange::get_yuv_range
      Src: /src/image/src/codecs/avif/yuv.rs:1236,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1242,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1242,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1242,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:1243,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/yuv.rs:1246,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1246,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1246,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1246,1
    - Dst: qrshr::<PRECISION, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/yuv.rs:1249,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1249,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1249,1
    - Dst: qrshr::<PRECISION, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/yuv.rs:1251,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1251,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1251,1
    - Dst: qrshr::<PRECISION, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/yuv.rs:1253,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1253,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1253,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1255,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1261,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1261,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1261,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:1262,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/yuv.rs:1265,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1265,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1265,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1265,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1271,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/yuv.rs:1278,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 157
    argCount: 3
    argNames:
    - image
    - rgba
    - yuv_range
    argTypes:
    - YuvPlanarImage<V>
    - '&mut [V]'
    - YuvIntensityRange
    constantsTouched: []
    func_position:
      end: 1279
      start: 1180
    functionDepth: 4
    functionLinenumber: 1180
    functionLinenumberEnd: 1279
    functionName: gbr_to_rgbx_impl
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - check_rgb_preconditions
    - iter
    - chunks_exact_mut
    - qrshr::<PRECISION, BIT_DEPTH>
    - as_
    - YuvChromaRange::get_yuv_range
    - zip
    - chunks_exact
    - check_yuv_plane_preconditions
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn gbr_to_rgbx_impl<V: Copy + AsPrimitive<i32> + ''static + Sized,const
      CHANNELS: usize,const BIT_DEPTH: usize,>(image: YuvPlanarImage<V>,rgba: &mut
      [V],yuv_range: YuvIntensityRange,) -> Result<(), ImageError>wherei32: AsPrimitive<V>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: ColorSpace::to_ravif
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ravif::ColorModel
    signature: fn to_ravif(self) -> ravif::ColorModel
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AvifEncoder::new_with_speed_quality
      Src: /src/image/src/codecs/avif/encoder.rs:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: AvifEncoder::new
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 1
    functionsReached:
    - AvifEncoder::new_with_speed_quality
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(w: W) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::cmp::min
      Src: /src/image/src/codecs/avif/encoder.rs:68,1
    - Dst: std::cmp::min
      Src: /src/image/src/codecs/avif/encoder.rs:69,1
    - Dst: Encoder::new
      Src: /src/image/src/codecs/avif/encoder.rs:71,1
    - Dst: FarbfeldEncoder::with_quality
      Src: /src/image/src/codecs/avif/encoder.rs:71,1
    - Dst: f32::from
      Src: /src/image/src/codecs/avif/encoder.rs:72,1
    - Dst: PngEncoder::with_alpha_quality
      Src: /src/image/src/codecs/avif/encoder.rs:71,1
    - Dst: f32::from
      Src: /src/image/src/codecs/avif/encoder.rs:73,1
    - Dst: with_speed
      Src: /src/image/src/codecs/avif/encoder.rs:71,1
    - Dst: with_bit_depth
      Src: /src/image/src/codecs/avif/encoder.rs:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - w
    - speed
    - quality
    argTypes:
    - W
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: AvifEncoder::new_with_speed_quality
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 1
    functionsReached:
    - f32::from
    - PngEncoder::with_alpha_quality
    - FarbfeldEncoder::with_quality
    - Encoder::new
    - std::cmp::min
    - with_speed
    - with_bit_depth
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_with_speed_quality(w: W, speed: u8, quality: u8) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_internal_color_model
      Src: /src/image/src/codecs/avif/encoder.rs:82,1
    - Dst: ZuneColorSpace::to_ravif
      Src: /src/image/src/codecs/avif/encoder.rs:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - color_space
    argTypes:
    - ColorSpace
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: AvifEncoder::with_colorspace
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached:
    - with_internal_color_model
    - ZuneColorSpace::to_ravif
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_colorspace(mut self, color_space: ColorSpace) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: with_num_threads
      Src: /src/image/src/codecs/avif/encoder.rs:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - num_threads
    argTypes:
    - Option<usize>
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: AvifEncoder::with_num_threads
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached:
    - with_num_threads
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_num_threads(mut self, num_threads: Option<usize>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::buffer_size
      Src: /src/image/src/codecs/avif/encoder.rs:110,1
    - Dst: AvifEncoder::set_color
      Src: /src/image/src/codecs/avif/encoder.rs:118,1
    - Dst: Self::encode_as_img
      Src: /src/image/src/codecs/avif/encoder.rs:123,1
    - Dst: encode_rgb
      Src: /src/image/src/codecs/avif/encoder.rs:124,1
    - Dst: encode_rgba
      Src: /src/image/src/codecs/avif/encoder.rs:125,1
    - Dst: map_err
      Src: /src/image/src/codecs/avif/encoder.rs:127,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/avif/encoder.rs:128,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/avif/encoder.rs:128,1
    - Dst: into
      Src: /src/image/src/codecs/avif/encoder.rs:128,1
    - Dst: write_all
      Src: /src/image/src/codecs/avif/encoder.rs:130,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 4
    argNames:
    - data
    - width
    - height
    - color
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 132
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 132
    functionName: AvifEncoder::write_image
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageError::Encoding
    - EncodingError::new
    - write_all
    - encode_rgb
    - map_err
    - AvifEncoder::set_color
    - into
    - encode_rgba
    - bool::buffer_size
    - Self::encode_as_img
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(mut self,data: &[u8],width: u32,height: u32,color:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _color
    argTypes:
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: AvifEncoder::set_color
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn set_color(&mut self, _color: ExtendedColorType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/avif/encoder.rs:154,1
    - Dst: Option::ok_or_else
      Src: /src/image/src/codecs/avif/encoder.rs:154,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:155,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - data
    - width
    - height
    argTypes:
    - '&[P::Subpixel]'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: A::v::i::f::E::n::c::o::d::e::r::::::::e::n::c::o::d::e::_::a::s::_::i::m::g::try_from_raw
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached:
    - Option::ok_or_else
    - ImageBuffer::from_raw
    - ImageError::Parameter
    - ParameterError::from_kind
    linkageType: ''
    returnType: ImageResult
    signature: 'fn try_from_raw<P: Pixel + ''static>(data: &[P::Subpixel],width: u32,height:
      u32,) -> ImageResult<ImageBuffer<P, &[P::Subpixel]>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/codecs/avif/encoder.rs:170,1
    - Dst: Vec::convert
      Src: /src/image/src/codecs/avif/encoder.rs:172,1
    - Dst: Vec::into_raw
      Src: /src/image/src/codecs/avif/encoder.rs:173,1
    - Dst: Img::new
      Src: /src/image/src/codecs/avif/encoder.rs:174,1
    - Dst: io::Result::as_pixels
      Src: /src/image/src/codecs/avif/encoder.rs:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - image
    argTypes:
    - '&''buf mut Vec<u8>'
    - ImageBuffer<P, &[P::Subpixel]>
    constantsTouched: []
    func_position:
      end: 175
      start: 162
    functionDepth: 10
    functionLinenumber: 162
    functionLinenumberEnd: 175
    functionName: A::v::i::f::E::n::c::o::d::e::r::::::::e::n::c::o::d::e::_::a::s::_::i::m::g::convert_into
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::into_raw
    - Img::new
    - Vec::dimensions
    - Vec::convert
    - io::Result::as_pixels
    linkageType: ''
    returnType: Img
    signature: 'fn convert_into<''buf, P>(buf: &''buf mut Vec<u8>,image: ImageBuffer<P,
      &[P::Subpixel]>,) -> Img<&''buf [RGBA8]>whereP: Pixel + ''static,Rgba<u8>: FromColor<P>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytemuck::try_cast_slice
      Src: /src/image/src/codecs/avif/encoder.rs:183,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:184,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/avif/encoder.rs:184,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:185,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:185,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:186,1
    - Dst: io::Result::len
      Src: /src/image/src/codecs/avif/encoder.rs:191,1
    - Dst: size_of::<Channel>
      Src: /src/image/src/codecs/avif/encoder.rs:191,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:192,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:192,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:192,1
    - Dst: io::Result::len
      Src: /src/image/src/codecs/avif/encoder.rs:196,1
    - Dst: size_of::<Channel>
      Src: /src/image/src/codecs/avif/encoder.rs:196,1
    - Dst: try_cast_slice_mut::<_, u8>
      Src: /src/image/src/codecs/avif/encoder.rs:198,1
    - Dst: ImageResult::as_mut_slice
      Src: /src/image/src/codecs/avif/encoder.rs:198,1
    - Dst: unwrap
      Src: /src/image/src/codecs/avif/encoder.rs:198,1
    - Dst: SubImage::copy_from_slice
      Src: /src/image/src/codecs/avif/encoder.rs:199,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:200,1
    - Dst: Cow::Owned
      Src: /src/image/src/codecs/avif/encoder.rs:200,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:205,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:205,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:205,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/avif/encoder.rs:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 210
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 210
    functionName: A::v::i::f::E::n::c::o::d::e::r::::::::e::n::c::o::d::e::_::a::s::_::i::m::g::cast_buffer
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached:
    - io::Result::len
    - Err
    - Cow::Borrowed
    - size_of::<Channel>
    - ImageResult::as_mut_slice
    - ParameterError::from_kind
    - SubImage::copy_from_slice
    - ParameterErrorKind::Generic
    - bytemuck::try_cast_slice
    - try_cast_slice_mut::<_, u8>
    - unwrap
    - Cow::Owned
    - Ok
    - ImageError::Parameter
    linkageType: ''
    returnType: ImageResult
    signature: 'fn cast_buffer<Channel>(buf: &[u8]) -> ImageResult<Cow<''_, [Channel]>>whereChannel:
      Pod + Zero,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_from_raw::<Rgb<u8>>
      Src: /src/image/src/codecs/avif/encoder.rs:215,1
    - Dst: Option::pixels
      Src: /src/image/src/codecs/avif/encoder.rs:218,1
    - Dst: Vec::len
      Src: /src/image/src/codecs/avif/encoder.rs:218,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:219,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:219,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:219,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:224,1
    - Dst: RgbColor::Rgb8
      Src: /src/image/src/codecs/avif/encoder.rs:224,1
    - Dst: Img::new
      Src: /src/image/src/codecs/avif/encoder.rs:224,1
    - Dst: AsPixels::as_pixels
      Src: /src/image/src/codecs/avif/encoder.rs:225,1
    - Dst: try_from_raw::<Rgba<u8>>
      Src: /src/image/src/codecs/avif/encoder.rs:232,1
    - Dst: Option::pixels
      Src: /src/image/src/codecs/avif/encoder.rs:235,1
    - Dst: Vec::len
      Src: /src/image/src/codecs/avif/encoder.rs:235,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:236,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:236,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:236,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:241,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:241,1
    - Dst: Img::new
      Src: /src/image/src/codecs/avif/encoder.rs:241,1
    - Dst: AsPixels::as_pixels
      Src: /src/image/src/codecs/avif/encoder.rs:242,1
    - Dst: try_from_raw::<Luma<u8>>
      Src: /src/image/src/codecs/avif/encoder.rs:249,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:250,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:250,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:250,1
    - Dst: try_from_raw::<LumaA<u8>>
      Src: /src/image/src/codecs/avif/encoder.rs:253,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:254,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:254,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:254,1
    - Dst: cast_buffer
      Src: /src/image/src/codecs/avif/encoder.rs:258,1
    - Dst: try_from_raw::<Luma<u16>>
      Src: /src/image/src/codecs/avif/encoder.rs:259,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:260,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:260,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:260,1
    - Dst: cast_buffer
      Src: /src/image/src/codecs/avif/encoder.rs:263,1
    - Dst: try_from_raw::<LumaA<u16>>
      Src: /src/image/src/codecs/avif/encoder.rs:264,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:265,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:265,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:265,1
    - Dst: cast_buffer
      Src: /src/image/src/codecs/avif/encoder.rs:268,1
    - Dst: try_from_raw::<Rgb<u16>>
      Src: /src/image/src/codecs/avif/encoder.rs:269,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:270,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:270,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:270,1
    - Dst: cast_buffer
      Src: /src/image/src/codecs/avif/encoder.rs:273,1
    - Dst: try_from_raw::<Rgba<u16>>
      Src: /src/image/src/codecs/avif/encoder.rs:274,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:275,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:275,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:275,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:278,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/encoder.rs:278,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/encoder.rs:279,1
    - Dst: into
      Src: /src/image/src/codecs/avif/encoder.rs:280,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/avif/encoder.rs:281,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 146
    argCount: 5
    argNames:
    - fallback
    - data
    - width
    - height
    - color
    argTypes:
    - '&''buf mut Vec<u8>'
    - '&''buf [u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 285
      start: 141
    functionDepth: 13
    functionLinenumber: 141
    functionLinenumberEnd: 285
    functionName: AvifEncoder::encode_as_img
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached:
    - convert_into
    - ParameterError::from_kind
    - try_from_raw::<Rgba<u16>>
    - try_from_raw::<Luma<u16>>
    - Ok
    - Err
    - cast_buffer
    - try_from_raw::<Rgb<u16>>
    - RgbColor::Rgba8
    - UnsupportedErrorKind::Color
    - try_from_raw::<Rgb<u8>>
    - into
    - Vec::len
    - try_from_raw::<Rgba<u8>>
    - try_from_raw::<LumaA<u16>>
    - AsPixels::as_pixels
    - Img::new
    - Option::pixels
    - ImageError::Parameter
    - UnsupportedError::from_format_and_kind
    - try_from_raw::<LumaA<u8>>
    - ImageError::Unsupported
    - RgbColor::Rgb8
    - try_from_raw::<Luma<u8>>
    linkageType: ''
    returnType: ImageResult
    signature: 'fn encode_as_img<''buf>(fallback: &''buf mut Vec<u8>,data: &''buf
      [u8],width: u32,height: u32,color: ExtendedColorType,) -> ImageResult<RgbColor<''buf>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/decoder.rs:26,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:26,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - err
    argTypes:
    - E
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 12
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: error_map
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - DecodingError::new
    - ImageError::Decoding
    - into
    linkageType: ''
    returnType: ImageError
    signature: 'fn error_map<E: Into<Box<dyn Error + Send + Sync>>>(err: E) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_str
      Src: /src/image/src/codecs/avif/decoder.rs:51,1
    - Dst: write_str
      Src: /src/image/src/codecs/avif/decoder.rs:52,1
    - Dst: write_str
      Src: /src/image/src/codecs/avif/decoder.rs:53,1
    - Dst: write_str
      Src: /src/image/src/codecs/avif/decoder.rs:57,1
    - Dst: write_str
      Src: /src/image/src/codecs/avif/decoder.rs:60,1
    - Dst: write_str
      Src: /src/image/src/codecs/avif/decoder.rs:63,1
    - Dst: write_fmt
      Src: /src/image/src/codecs/avif/decoder.rs:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 71
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 71
    functionName: AvifDecoderError::fmt
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - write_fmt
    - write_str
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mp4parse::read_avif
      Src: /src/image/src/codecs/avif/decoder.rs:79,1
    - Dst: map_err
      Src: /src/image/src/codecs/avif/decoder.rs:79,1
    - Dst: primary_item_coded_data
      Src: /src/image/src/codecs/avif/decoder.rs:80,1
    - Dst: unwrap_or_default
      Src: /src/image/src/codecs/avif/decoder.rs:80,1
    - Dst: dav1d::Decoder::new
      Src: /src/image/src/codecs/avif/decoder.rs:82,1
    - Dst: Result::map_err
      Src: /src/image/src/codecs/avif/decoder.rs:82,1
    - Dst: send_data
      Src: /src/image/src/codecs/avif/decoder.rs:83,1
    - Dst: bool::to_vec
      Src: /src/image/src/codecs/avif/decoder.rs:84,1
    - Dst: map_err
      Src: /src/image/src/codecs/avif/decoder.rs:83,1
    - Dst: read_until_ready
      Src: /src/image/src/codecs/avif/decoder.rs:86,1
    - Dst: alpha_item_coded_data
      Src: /src/image/src/codecs/avif/decoder.rs:87,1
    - Dst: unwrap_or_default
      Src: /src/image/src/codecs/avif/decoder.rs:87,1
    - Dst: is_empty
      Src: /src/image/src/codecs/avif/decoder.rs:88,1
    - Dst: dav1d::Decoder::new
      Src: /src/image/src/codecs/avif/decoder.rs:89,1
    - Dst: Result::map_err
      Src: /src/image/src/codecs/avif/decoder.rs:89,1
    - Dst: send_data
      Src: /src/image/src/codecs/avif/decoder.rs:90,1
    - Dst: to_vec
      Src: /src/image/src/codecs/avif/decoder.rs:91,1
    - Dst: map_err
      Src: /src/image/src/codecs/avif/decoder.rs:90,1
    - Dst: Some
      Src: /src/image/src/codecs/avif/decoder.rs:93,1
    - Dst: read_until_ready
      Src: /src/image/src/codecs/avif/decoder.rs:93,1
    - Dst: icc_colour_information
      Src: /src/image/src/codecs/avif/decoder.rs:97,1
    - Dst: map
      Src: /src/image/src/codecs/avif/decoder.rs:97,1
    - Dst: ok
      Src: /src/image/src/codecs/avif/decoder.rs:99,1
    - Dst: unwrap_or_default
      Src: /src/image/src/codecs/avif/decoder.rs:99,1
    - Dst: map
      Src: /src/image/src/codecs/avif/decoder.rs:97,1
    - Dst: to_vec
      Src: /src/image/src/codecs/avif/decoder.rs:100,1
    - Dst: ImageResult::bit_depth
      Src: /src/image/src/codecs/avif/decoder.rs:102,1
    - Dst: ImageResult::Err
      Src: /src/image/src/codecs/avif/decoder.rs:106,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/decoder.rs:106,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:106,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/avif/decoder.rs:107,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:115,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 75
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 121
      start: 78
    functionDepth: 12
    functionLinenumber: 78
    functionLinenumberEnd: 121
    functionName: AvifDecoder::new
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 2
    functionsReached:
    - icc_colour_information
    - alpha_item_coded_data
    - Some
    - ImageResult::Err
    - DecodingError::new
    - map_err
    - Ok
    - Result::map_err
    - dav1d::Decoder::new
    - ImageResult::bit_depth
    - bool::to_vec
    - send_data
    - ImageError::Decoding
    - is_empty
    - read_until_ready
    - unwrap_or_default
    - mp4parse::read_avif
    - primary_item_coded_data
    - map
    - to_vec
    - ok
    - ImageFormatHint::Exact
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(mut r: R) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/decoder.rs:127,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/decoder.rs:127,1
    - Dst: Option::chunks_exact
      Src: /src/image/src/codecs/avif/decoder.rs:129,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/decoder.rs:131,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/decoder.rs:131,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/decoder.rs:131,1
    - Dst: u16::from_ne_bytes
      Src: /src/image/src/codecs/avif/decoder.rs:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 4
    argNames:
    - source
    - stride
    - width
    - height
    argTypes:
    - '&[u8]'
    - usize
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: reshape_plane
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - u16::from_ne_bytes
    - chunks_exact_mut
    - iter_mut
    - Option::chunks_exact
    - zip
    - chunks_exact
    linkageType: ''
    returnType: Vec
    signature: 'fn reshape_plane(source: &[u8], stride: usize, width: usize, height:
      usize) -> Vec<u16>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/avif/decoder.rs:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: Plane16View::default
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - std::borrow::Cow::Owned
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:162,1
    - Dst: reshape_plane
      Src: /src/image/src/codecs/avif/decoder.rs:166,1
    - Dst: bytemuck::try_cast_slice
      Src: /src/image/src/codecs/avif/decoder.rs:170,1
    - Dst: std::borrow::Cow::Borrowed
      Src: /src/image/src/codecs/avif/decoder.rs:172,1
    - Dst: shape_y_plane
      Src: /src/image/src/codecs/avif/decoder.rs:176,1
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/avif/decoder.rs:178,1
    - Dst: shape_y_plane
      Src: /src/image/src/codecs/avif/decoder.rs:184,1
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/avif/decoder.rs:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 4
    argNames:
    - plane
    - stride
    - width
    - height
    argTypes:
    - '&dav1d::Plane'
    - usize
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 190
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 190
    functionName: transmute_y_plane16
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - std::borrow::Cow::Borrowed
    - Vec::as_ref
    - bytemuck::try_cast_slice
    - shape_y_plane
    - reshape_plane
    - std::borrow::Cow::Owned
    linkageType: ''
    returnType: Plane16View
    signature: 'fn transmute_y_plane16(plane: &dav1d::Plane,stride: usize,width: usize,height:
      usize,) -> Plane16View<''_>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:200,1
    - Dst: u32::div_ceil
      Src: /src/image/src/codecs/avif/decoder.rs:207,1
    - Dst: u32::div_ceil
      Src: /src/image/src/codecs/avif/decoder.rs:212,1
    - Dst: reshape_plane
      Src: /src/image/src/codecs/avif/decoder.rs:215,1
    - Dst: bytemuck::try_cast_slice
      Src: /src/image/src/codecs/avif/decoder.rs:219,1
    - Dst: std::borrow::Cow::Borrowed
      Src: /src/image/src/codecs/avif/decoder.rs:221,1
    - Dst: shape_chroma_plane
      Src: /src/image/src/codecs/avif/decoder.rs:225,1
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/avif/decoder.rs:227,1
    - Dst: shape_chroma_plane
      Src: /src/image/src/codecs/avif/decoder.rs:233,1
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/avif/decoder.rs:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 5
    argNames:
    - plane
    - pixel_layout
    - stride
    - width
    - height
    argTypes:
    - '&dav1d::Plane'
    - PixelLayout
    - usize
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 239
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 239
    functionName: transmute_chroma_plane16
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - std::borrow::Cow::Borrowed
    - u32::div_ceil
    - Vec::as_ref
    - bytemuck::try_cast_slice
    - reshape_plane
    - shape_chroma_plane
    - std::borrow::Cow::Owned
    linkageType: ''
    returnType: Plane16View
    signature: 'fn transmute_chroma_plane16(plane: &dav1d::Plane,pixel_layout: PixelLayout,stride:
      usize,width: usize,height: usize,) -> Plane16View<''_>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:253,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:255,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:255,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:262,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:262,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:264,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/decoder.rs:264,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/decoder.rs:265,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:266,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/avif/decoder.rs:267,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/avif/decoder.rs:268,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:273,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:273,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:276,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:276,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:279,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:279,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:282,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:282,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:284,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:286,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:286,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:294,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/decoder.rs:294,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/decoder.rs:295,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:296,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/avif/decoder.rs:297,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/avif/decoder.rs:298,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:303,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/decoder.rs:303,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/decoder.rs:304,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:305,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/avif/decoder.rs:306,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/avif/decoder.rs:306,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:310,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/decoder.rs:311,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/decoder.rs:311,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:312,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/avif/decoder.rs:313,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/avif/decoder.rs:314,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:318,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/decoder.rs:318,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/decoder.rs:319,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:320,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/avif/decoder.rs:321,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/avif/decoder.rs:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 1
    argNames:
    - david_matrix
    argTypes:
    - dav1d::pixel::MatrixCoefficients
    constantsTouched: []
    func_position:
      end: 327
      start: 249
    functionDepth: 11
    functionLinenumber: 249
    functionLinenumberEnd: 327
    functionName: get_matrix
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - YuvMatrixStrategy::KrKb
    - UnsupportedError::from_format_and_kind
    - '&str::to_string'
    - ImageError::Unsupported
    - Ok
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: Result
    signature: 'fn get_matrix(david_matrix: dav1d::pixel::MatrixCoefficients,) ->
      Result<YuvMatrixStrategy, ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: width
      Src: /src/image/src/codecs/avif/decoder.rs:331,1
    - Dst: height
      Src: /src/image/src/codecs/avif/decoder.rs:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: AvifDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - width
    - height
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bit_depth
      Src: /src/image/src/codecs/avif/decoder.rs:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 340
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 340
    functionName: AvifDecoder::color_type
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - bit_depth
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:343,1
    - Dst: clone
      Src: /src/image/src/codecs/avif/decoder.rs:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 344
    functionName: AvifDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - clone
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bit_depth
      Src: /src/image/src/codecs/avif/decoder.rs:349,1
    - Dst: AvifDecoder::dimensions
      Src: /src/image/src/codecs/avif/decoder.rs:355,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:358,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/avif/decoder.rs:358,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/avif/decoder.rs:358,1
    - Dst: color_range
      Src: /src/image/src/codecs/avif/decoder.rs:363,1
    - Dst: get_matrix
      Src: /src/image/src/codecs/avif/decoder.rs:368,1
    - Dst: matrix_coefficients
      Src: /src/image/src/codecs/avif/decoder.rs:368,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:372,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:374,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/decoder.rs:374,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:374,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:375,1
    - Dst: AvifDecoderError::YuvLayoutOnIdentityMatrix
      Src: /src/image/src/codecs/avif/decoder.rs:376,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:376,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:381,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:383,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/decoder.rs:383,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:383,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:384,1
    - Dst: AvifDecoderError::UnsupportedLayoutAndMatrix
      Src: /src/image/src/codecs/avif/decoder.rs:385,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:386,1
    - Dst: plane
      Src: /src/image/src/codecs/avif/decoder.rs:393,1
    - Dst: plane
      Src: /src/image/src/codecs/avif/decoder.rs:394,1
    - Dst: plane
      Src: /src/image/src/codecs/avif/decoder.rs:395,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:398,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:399,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:400,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:401,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:402,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:403,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:410,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:417,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:420,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:427,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:430,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:437,1
    - Dst: ImageResult::pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:443,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:444,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/decoder.rs:444,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:444,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:445,1
    - Dst: AvifDecoderError::AlphaPlaneFormat
      Src: /src/image/src/codecs/avif/decoder.rs:446,1
    - Dst: ImageResult::pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:446,1
    - Dst: ImageResult::stride
      Src: /src/image/src/codecs/avif/decoder.rs:450,1
    - Dst: ImageResult::plane
      Src: /src/image/src/codecs/avif/decoder.rs:451,1
    - Dst: Iterator::zip
      Src: /src/image/src/codecs/avif/decoder.rs:453,1
    - Dst: io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/avif/decoder.rs:454,1
    - Dst: Vec::as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:455,1
    - Dst: FlatSamples::chunks_exact
      Src: /src/image/src/codecs/avif/decoder.rs:455,1
    - Dst: io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/avif/decoder.rs:457,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/decoder.rs:457,1
    - Dst: bytemuck::try_cast_slice_mut
      Src: /src/image/src/codecs/avif/decoder.rs:464,1
    - Dst: AvifDecoder::process_16bit_picture
      Src: /src/image/src/codecs/avif/decoder.rs:466,1
    - Dst: AvifDecoder::process_16bit_picture
      Src: /src/image/src/codecs/avif/decoder.rs:470,1
    - Dst: io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/avif/decoder.rs:471,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/decoder.rs:471,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/decoder.rs:471,1
    - Dst: to_ne_bytes
      Src: /src/image/src/codecs/avif/decoder.rs:472,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:479,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 196
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 480
      start: 346
    functionDepth: 12
    functionLinenumber: 346
    functionLinenumberEnd: 480
    functionName: AvifDecoder::read_image
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - DecodingError::new
    - ImageError::Limits
    - io::Result::chunks_exact_mut
    - to_ne_bytes
    - AvifDecoderError::UnsupportedLayoutAndMatrix
    - Ok
    - bit_depth
    - FlatSamples::chunks_exact
    - AvifDecoder::process_16bit_picture
    - Err
    - AvifDecoderError::YuvLayoutOnIdentityMatrix
    - ImageResult::pixel_layout
    - ImageResult::stride
    - Iterator::zip
    - ImageError::Decoding
    - matrix_coefficients
    - stride
    - AvifDecoder::dimensions
    - plane
    - LimitError::from_kind
    - Vec::as_ref
    - iter
    - into
    - AvifDecoderError::AlphaPlaneFormat
    - as_ref
    - get_matrix
    - color_range
    - worker
    - bytemuck::try_cast_slice_mut
    - ImageResult::plane
    - zip
    - pixel_layout
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/avif/decoder.rs:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 484
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 484
    functionName: AvifDecoder::read_image_boxed
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: plane
      Src: /src/image/src/codecs/avif/decoder.rs:494,1
    - Dst: width
      Src: /src/image/src/codecs/avif/decoder.rs:496,1
    - Dst: height
      Src: /src/image/src/codecs/avif/decoder.rs:496,1
    - Dst: bit_depth
      Src: /src/image/src/codecs/avif/decoder.rs:497,1
    - Dst: transmute_y_plane16
      Src: /src/image/src/codecs/avif/decoder.rs:504,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:506,1
    - Dst: plane
      Src: /src/image/src/codecs/avif/decoder.rs:511,1
    - Dst: plane
      Src: /src/image/src/codecs/avif/decoder.rs:512,1
    - Dst: Plane16View::default
      Src: /src/image/src/codecs/avif/decoder.rs:513,1
    - Dst: Plane16View::default
      Src: /src/image/src/codecs/avif/decoder.rs:514,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:516,1
    - Dst: transmute_chroma_plane16
      Src: /src/image/src/codecs/avif/decoder.rs:517,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:519,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:520,1
    - Dst: transmute_chroma_plane16
      Src: /src/image/src/codecs/avif/decoder.rs:524,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:526,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:527,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:534,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:536,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:538,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:546,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:576,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:579,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:603,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:606,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:618,1
    - Dst: ImageResult::pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:624,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:625,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/decoder.rs:625,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:625,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:626,1
    - Dst: AvifDecoderError::AlphaPlaneFormat
      Src: /src/image/src/codecs/avif/decoder.rs:627,1
    - Dst: ImageResult::pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:627,1
    - Dst: ImageResult::plane
      Src: /src/image/src/codecs/avif/decoder.rs:631,1
    - Dst: transmute_y_plane16
      Src: /src/image/src/codecs/avif/decoder.rs:632,1
    - Dst: ImageResult::stride
      Src: /src/image/src/codecs/avif/decoder.rs:634,1
    - Dst: Iterator::zip
      Src: /src/image/src/codecs/avif/decoder.rs:639,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/decoder.rs:640,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:641,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/decoder.rs:641,1
    - Dst: io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/avif/decoder.rs:643,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/decoder.rs:643,1
    - Dst: bit_depth
      Src: /src/image/src/codecs/avif/decoder.rs:650,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/decoder.rs:651,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:655,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 197
    argCount: 3
    argNames:
    - target
    - yuv_range
    - matrix_strategy
    argTypes:
    - '&mut [u16]'
    - YuvIntensityRange
    - YuvMatrixStrategy
    constantsTouched: []
    func_position:
      end: 656
      start: 488
    functionDepth: 12
    functionLinenumber: 488
    functionLinenumberEnd: 656
    functionName: AvifDecoder::process_16bit_picture
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - DecodingError::new
    - transmute_chroma_plane16
    - chunks_exact
    - io::Result::chunks_exact_mut
    - Ok
    - bit_depth
    - Err
    - Iterator::zip
    - ImageResult::pixel_layout
    - ImageResult::stride
    - ImageError::Decoding
    - height
    - stride
    - plane
    - transmute_y_plane16
    - chunks_exact_mut
    - into
    - iter_mut
    - AvifDecoderError::AlphaPlaneFormat
    - as_ref
    - Plane16View::default
    - worker
    - width
    - ImageResult::plane
    - zip
    - pixel_layout
    linkageType: ''
    returnType: ImageResult
    signature: 'fn process_16bit_picture(&self,target: &mut [u16],yuv_range: YuvIntensityRange,matrix_strategy:
      YuvMatrixStrategy,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::get_picture
      Src: /src/image/src/codecs/avif/decoder.rs:664,1
    - Dst: ImageResult::send_pending_data
      Src: /src/image/src/codecs/avif/decoder.rs:665,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:668,1
    - Dst: error_map
      Src: /src/image/src/codecs/avif/decoder.rs:668,1
    - Dst: Result::map_err
      Src: /src/image/src/codecs/avif/decoder.rs:670,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - '&mut dav1d::Decoder'
    constantsTouched: []
    func_position:
      end: 673
      start: 662
    functionDepth: 13
    functionLinenumber: 662
    functionLinenumberEnd: 673
    functionName: read_until_ready
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - ImageResult::get_picture
    - error_map
    - ImageResult::send_pending_data
    - Result::map_err
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_until_ready(decoder: &mut dav1d::Decoder) -> ImageResult<dav1d::Picture>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: qrshr::<PRECISION, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:32,1
    - Dst: qrshr::<PRECISION, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:33,1
    - Dst: qrshr::<PRECISION, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:34,1
    - Dst: Result::as_
      Src: /src/image/src/codecs/avif/ycgco.rs:37,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:38,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:39,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:40,1
    - Dst: Result::as_
      Src: /src/image/src/codecs/avif/ycgco.rs:42,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:43,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 58
    argCount: 5
    argNames:
    - dst
    - y_value
    - cg
    - co
    - scale
    argTypes:
    - '&mut [V; CHANNELS]'
    - i32
    - i32
    - i32
    - i32
    constantsTouched: []
    func_position:
      end: 48
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 48
    functionName: ycgco_execute_limited
    functionSourceFile: /src/image/src/codecs/avif/ycgco.rs
    functionUses: 0
    functionsReached:
    - as_
    - Result::as_
    - qrshr::<PRECISION, BIT_DEPTH>
    linkageType: ''
    returnType: void
    signature: 'fn ycgco_execute_limited<V: Copy + AsPrimitive<i32> + ''static + Sized,const
      PRECISION: i32,const CHANNELS: usize,const BIT_DEPTH: usize,>(dst: &mut [V;
      CHANNELS],y_value: i32,cg: i32,co: i32,scale: i32,) wherei32: AsPrimitive<V>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clamp
      Src: /src/image/src/codecs/avif/ycgco.rs:74,1
    - Dst: clamp
      Src: /src/image/src/codecs/avif/ycgco.rs:75,1
    - Dst: clamp
      Src: /src/image/src/codecs/avif/ycgco.rs:76,1
    - Dst: Result::as_
      Src: /src/image/src/codecs/avif/ycgco.rs:79,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:80,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:81,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:82,1
    - Dst: Result::as_
      Src: /src/image/src/codecs/avif/ycgco.rs:84,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:85,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 57
    argCount: 4
    argNames:
    - dst
    - y_value
    - cg
    - co
    argTypes:
    - '&mut [V; CHANNELS]'
    - i32
    - i32
    - i32
    constantsTouched: []
    func_position:
      end: 90
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 90
    functionName: ycgco_execute_full
    functionSourceFile: /src/image/src/codecs/avif/ycgco.rs
    functionUses: 0
    functionsReached:
    - clamp
    - as_
    - Result::as_
    linkageType: ''
    returnType: void
    signature: 'fn ycgco_execute_full<V: Copy + AsPrimitive<i32> + ''static + Sized,const
      PRECISION: i32,const CHANNELS: usize,const BIT_DEPTH: usize,>(dst: &mut [V;
      CHANNELS],y_value: i32,cg: i32,co: i32,) wherei32: AsPrimitive<V>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: div_ceil
      Src: /src/image/src/codecs/avif/ycgco.rs:115,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/ycgco.rs:122,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/ycgco.rs:123,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:127,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:127,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:127,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:128,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:129,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:130,1
    - Dst: ycgco_execute_limited::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:134,1
    - Dst: try_into
      Src: /src/image/src/codecs/avif/ycgco.rs:135,1
    - Dst: unwrap
      Src: /src/image/src/codecs/avif/ycgco.rs:135,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:142,1
    - Dst: ycgco_execute_limited::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:146,1
    - Dst: try_into
      Src: /src/image/src/codecs/avif/ycgco.rs:147,1
    - Dst: unwrap
      Src: /src/image/src/codecs/avif/ycgco.rs:147,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/ycgco.rs:157,1
    - Dst: remainder
      Src: /src/image/src/codecs/avif/ycgco.rs:157,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/ycgco.rs:158,1
    - Dst: into_remainder
      Src: /src/image/src/codecs/avif/ycgco.rs:158,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/ycgco.rs:158,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/ycgco.rs:162,1
    - Dst: rev
      Src: /src/image/src/codecs/avif/ycgco.rs:162,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/ycgco.rs:163,1
    - Dst: rev
      Src: /src/image/src/codecs/avif/ycgco.rs:163,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/ycgco.rs:166,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:166,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:166,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:166,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:168,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:169,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:170,1
    - Dst: ycgco_execute_limited::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:172,1
    - Dst: try_into
      Src: /src/image/src/codecs/avif/ycgco.rs:173,1
    - Dst: unwrap
      Src: /src/image/src/codecs/avif/ycgco.rs:173,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 134
    argCount: 4
    argNames:
    - image
    - rgba
    - range
    argTypes:
    - YuvPlanarImage<V>
    - '&mut [V]'
    - '&CbCrInverseTransform<i32>'
    - '&YuvChromaRange'
    constantsTouched: []
    func_position:
      end: 181
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 181
    functionName: process_halved_chroma_row_cgco
    functionSourceFile: /src/image/src/codecs/avif/ycgco.rs
    functionUses: 0
    functionsReached:
    - rev
    - div_ceil
    - ycgco_execute_limited::<V, PRECISION, CHANNELS, BIT_DEPTH>
    - remainder
    - iter
    - chunks_exact_mut
    - try_into
    - as_
    - unwrap
    - zip
    - chunks_exact
    - into_remainder
    linkageType: ''
    returnType: void
    signature: 'fn process_halved_chroma_row_cgco<V: Copy + AsPrimitive<i32> + ''static
      + Sized,const PRECISION: i32,const CHANNELS: usize,const BIT_DEPTH: usize,>(image:
      YuvPlanarImage<V>,rgba: &mut [V],_: &CbCrInverseTransform<i32>,range: &YuvChromaRange,)
      wherei32: AsPrimitive<V>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: codecs::avif::yuv::check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/ycgco.rs:229,1
    - Dst: codecs::avif::yuv::check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/ycgco.rs:230,1
    - Dst: codecs::avif::yuv::check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/ycgco.rs:231,1
    - Dst: check_rgb_preconditions
      Src: /src/image/src/codecs/avif/ycgco.rs:233,1
    - Dst: YuvChromaRange::get_yuv_range
      Src: /src/image/src/codecs/avif/ycgco.rs:235,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/ycgco.rs:243,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/ycgco.rs:244,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/ycgco.rs:245,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/ycgco.rs:246,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:251,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:251,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:251,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/ycgco.rs:252,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/ycgco.rs:258,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:258,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:258,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:258,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:260,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:261,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:262,1
    - Dst: ycgco_execute_limited::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:264,1
    - Dst: try_into
      Src: /src/image/src/codecs/avif/ycgco.rs:265,1
    - Dst: unwrap
      Src: /src/image/src/codecs/avif/ycgco.rs:265,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/ycgco.rs:275,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:275,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:275,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:275,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:277,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:278,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:279,1
    - Dst: ycgco_execute_full::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:281,1
    - Dst: try_into
      Src: /src/image/src/codecs/avif/ycgco.rs:282,1
    - Dst: unwrap
      Src: /src/image/src/codecs/avif/ycgco.rs:282,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/ycgco.rs:292,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 119
    argCount: 3
    argNames:
    - image
    - rgba
    - yuv_range
    argTypes:
    - YuvPlanarImage<V>
    - '&mut [V]'
    - YuvIntensityRange
    constantsTouched: []
    func_position:
      end: 293
      start: 191
    functionDepth: 14
    functionLinenumber: 191
    functionLinenumberEnd: 293
    functionName: ycgco444_to_rgbx_impl
    functionSourceFile: /src/image/src/codecs/avif/ycgco.rs
    functionUses: 0
    functionsReached:
    - check_rgb_preconditions
    - ycgco_execute_full::<V, PRECISION, CHANNELS, BIT_DEPTH>
    - iter
    - ycgco_execute_limited::<V, PRECISION, CHANNELS, BIT_DEPTH>
    - chunks_exact_mut
    - codecs::avif::yuv::check_yuv_plane_preconditions
    - try_into
    - as_
    - YuvChromaRange::get_yuv_range
    - unwrap
    - zip
    - chunks_exact
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn ycgco444_to_rgbx_impl<V: Copy + AsPrimitive<i32> + ''static + Sized,const
      CHANNELS: usize,const BIT_DEPTH: usize,>(image: YuvPlanarImage<V>,rgba: &mut
      [V],yuv_range: YuvIntensityRange,) -> Result<(), ImageError>wherei32: AsPrimitive<V>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 320
    functionName: define_ycgco_half_chroma
    functionSourceFile: /src/image/src/codecs/avif/ycgco.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ycgco444_to_rgbx_impl::<$storage, $cn, $bp>
      Src: /src/image/src/codecs/avif/ycgco.rs:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 397
    functionName: define_ycgcg_full_chroma
    functionSourceFile: /src/image/src/codecs/avif/ycgco.rs
    functionUses: 0
    functionsReached:
    - ycgco444_to_rgbx_impl::<$storage, $cn, $bp>
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Img::into
      Src: /src/image/src/codecs/ico/encoder.rs:42,1
    - Dst: contains
      Src: /src/image/src/codecs/ico/encoder.rs:44,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/encoder.rs:45,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/ico/encoder.rs:45,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/ico/encoder.rs:45,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/ico/encoder.rs:46,1
    - Dst: contains
      Src: /src/image/src/codecs/ico/encoder.rs:52,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/encoder.rs:53,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/ico/encoder.rs:53,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/ico/encoder.rs:53,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/ico/encoder.rs:54,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/encoder.rs:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 4
    argNames:
    - encoded_image
    - width
    - height
    - color_type
    argTypes:
    - impl Into<Cow<'a, [u8]>>
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 66
      start: 36
    functionDepth: 11
    functionLinenumber: 36
    functionLinenumberEnd: 66
    functionName: IcoFrame::with_encoded
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Img::into
    - ParameterError::from_kind
    - contains
    - ParameterErrorKind::Generic
    - Ok
    - ImageError::Parameter
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn with_encoded(encoded_image: impl Into<Cow<''a, [u8]>>,width:
      u32,height: u32,color_type: ExtendedColorType,) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/ico/encoder.rs:77,1
    - Dst: PngEncoder::new
      Src: /src/image/src/codecs/ico/encoder.rs:78,1
    - Dst: PngEncoder::write_image
      Src: /src/image/src/codecs/ico/encoder.rs:78,1
    - Dst: Self::with_encoded
      Src: /src/image/src/codecs/ico/encoder.rs:80,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/encoder.rs:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 12
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: IcoFrame::as_png
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 0
    functionsReached:
    - PngEncoder::write_image
    - PngEncoder::new
    - Self::with_encoded
    - Vec::new
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn as_png(buf: &[u8],width: u32,height: u32,color_type: ExtendedColorType,)
      -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: IcoEncoder::new
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: IcoEncoder
    signature: 'pub fn new(w: W) -> IcoEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::from
      Src: /src/image/src/codecs/ico/encoder.rs:96,1
    - Dst: contains
      Src: /src/image/src/codecs/ico/encoder.rs:96,1
    - Dst: len
      Src: /src/image/src/codecs/ico/encoder.rs:96,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/encoder.rs:97,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/ico/encoder.rs:97,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/ico/encoder.rs:97,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/ico/encoder.rs:98,1
    - Dst: len
      Src: /src/image/src/codecs/ico/encoder.rs:104,1
    - Dst: len
      Src: /src/image/src/codecs/ico/encoder.rs:106,1
    - Dst: write_icondir
      Src: /src/image/src/codecs/ico/encoder.rs:107,1
    - Dst: write_direntry
      Src: /src/image/src/codecs/ico/encoder.rs:109,1
    - Dst: len
      Src: /src/image/src/codecs/ico/encoder.rs:115,1
    - Dst: len
      Src: /src/image/src/codecs/ico/encoder.rs:118,1
    - Dst: write_all
      Src: /src/image/src/codecs/ico/encoder.rs:121,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/encoder.rs:123,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 62
    argCount: 1
    argNames:
    - images
    argTypes:
    - '&[IcoFrame<''_>]'
    constantsTouched: []
    func_position:
      end: 124
      start: 95
    functionDepth: 13
    functionLinenumber: 95
    functionLinenumberEnd: 124
    functionName: IcoEncoder::encode_images
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - ParameterError::from_kind
    - write_icondir
    - write_direntry
    - write_all
    - contains
    - ParameterErrorKind::Generic
    - len
    - usize::from
    - Ok
    - ImageError::Parameter
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn encode_images(mut self, images: &[IcoFrame<''_>]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExtendedColorType::buffer_size
      Src: /src/image/src/codecs/ico/encoder.rs:142,1
    - Dst: IcoFrame::as_png
      Src: /src/image/src/codecs/ico/encoder.rs:150,1
    - Dst: IcoEncoder::encode_images
      Src: /src/image/src/codecs/ico/encoder.rs:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 152
      start: 135
    functionDepth: 13
    functionLinenumber: 135
    functionLinenumberEnd: 152
    functionName: IcoEncoder::write_image
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 0
    functionsReached:
    - ExtendedColorType::buffer_size
    - IcoEncoder::encode_images
    - IcoFrame::as_png
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/codecs/ico/encoder.rs:157,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/codecs/ico/encoder.rs:159,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/codecs/ico/encoder.rs:161,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/encoder.rs:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - w
    - num_images
    argTypes:
    - '&mut W'
    - u16
    constantsTouched: []
    func_position:
      end: 163
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 163
    functionName: write_icondir
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 1
    functionsReached:
    - write_u16::<LittleEndian>
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn write_icondir<W: Write>(w: &mut W, num_images: u16) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::write_u8
      Src: /src/image/src/codecs/ico/encoder.rs:174,1
    - Dst: Self::write_u8
      Src: /src/image/src/codecs/ico/encoder.rs:175,1
    - Dst: Self::write_u8
      Src: /src/image/src/codecs/ico/encoder.rs:177,1
    - Dst: Self::write_u8
      Src: /src/image/src/codecs/ico/encoder.rs:179,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/codecs/ico/encoder.rs:181,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/codecs/ico/encoder.rs:183,1
    - Dst: bool::bits_per_pixel
      Src: /src/image/src/codecs/ico/encoder.rs:183,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/image/src/codecs/ico/encoder.rs:185,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/image/src/codecs/ico/encoder.rs:187,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/encoder.rs:188,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 6
    argNames:
    - w
    - width
    - height
    - color
    - data_start
    - data_size
    argTypes:
    - '&mut W'
    - u8
    - u8
    - ExtendedColorType
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 189
      start: 165
    functionDepth: 4
    functionLinenumber: 165
    functionLinenumberEnd: 189
    functionName: write_direntry
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 1
    functionsReached:
    - Self::write_u8
    - write_u16::<LittleEndian>
    - write_u32::<LittleEndian>
    - bool::bits_per_pixel
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn write_direntry<W: Write>(w: &mut W,width: u8,height: u8,color:
      ExtendedColorType,data_start: u32,data_size: u32,) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_str
      Src: /src/image/src/codecs/ico/decoder.rs:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: IcoEntryImageFormat::fmt
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - write_str
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - IcoEntryImageFormat
    constantsTouched: []
    func_position:
      end: 104
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 104
    functionName: ImageFormat::from
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(val: IcoEntryImageFormat) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_entries
      Src: /src/image/src/codecs/ico/decoder.rs:146,1
    - Dst: best_entry
      Src: /src/image/src/codecs/ico/decoder.rs:147,1
    - Dst: Option::decoder
      Src: /src/image/src/codecs/ico/decoder.rs:148,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:150,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 8
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: IcoDecoder::new
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 1
    functionsReached:
    - Option::decoder
    - best_entry
    - read_entries
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(mut r: R) -> ImageResult<IcoDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/ico/decoder.rs:158,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/ico/decoder.rs:159,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/ico/decoder.rs:160,1
    - Dst: map
      Src: /src/image/src/codecs/ico/decoder.rs:161,1
    - Dst: read_entry
      Src: /src/image/src/codecs/ico/decoder.rs:161,1
    - Dst: collect
      Src: /src/image/src/codecs/ico/decoder.rs:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut R'
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 13
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: read_entries
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 1
    functionsReached:
    - map
    - collect
    - read_u16::<LittleEndian>
    - read_entry
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_entries<R: Read>(r: &mut R) -> ImageResult<Vec<DirEntry>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:165,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/ico/decoder.rs:166,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/ico/decoder.rs:167,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/ico/decoder.rs:168,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/ico/decoder.rs:169,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/ico/decoder.rs:173,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:175,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:175,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/ico/decoder.rs:182,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:184,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:184,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/image/src/codecs/ico/decoder.rs:188,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/image/src/codecs/ico/decoder.rs:189,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut R'
    constantsTouched: []
    func_position:
      end: 191
      start: 164
    functionDepth: 11
    functionLinenumber: 164
    functionLinenumberEnd: 191
    functionName: read_entry
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - Result::read_u8
    - into
    - read_u16::<LittleEndian>
    - read_u32::<LittleEndian>
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_entry<R: Read>(r: &mut R) -> ImageResult<DirEntry>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::pop
      Src: /src/image/src/codecs/ico/decoder.rs:195,1
    - Dst: ok_or
      Src: /src/image/src/codecs/ico/decoder.rs:195,1
    - Dst: u32::from
      Src: /src/image/src/codecs/ico/decoder.rs:199,1
    - Dst: real_width
      Src: /src/image/src/codecs/ico/decoder.rs:199,1
    - Dst: u32::from
      Src: /src/image/src/codecs/ico/decoder.rs:199,1
    - Dst: real_height
      Src: /src/image/src/codecs/ico/decoder.rs:199,1
    - Dst: u32::from
      Src: /src/image/src/codecs/ico/decoder.rs:205,1
    - Dst: Option::real_width
      Src: /src/image/src/codecs/ico/decoder.rs:205,1
    - Dst: u32::from
      Src: /src/image/src/codecs/ico/decoder.rs:205,1
    - Dst: Option::real_height
      Src: /src/image/src/codecs/ico/decoder.rs:205,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 1
    argNames:
    - entries
    argTypes:
    - Vec<DirEntry>
    constantsTouched: []
    func_position:
      end: 213
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 213
    functionName: best_entry
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 1
    functionsReached:
    - real_height
    - real_width
    - ok_or
    - ImageResult::pop
    - u32::from
    - Option::real_width
    - Option::real_height
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn best_entry(mut entries: Vec<DirEntry>) -> ImageResult<DirEntry>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::from
      Src: /src/image/src/codecs/ico/decoder.rs:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: DirEntry::real_width
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - u16::from
    linkageType: ''
    returnType: u16
    signature: fn real_width(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::from
      Src: /src/image/src/codecs/ico/decoder.rs:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 3
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: DirEntry::real_height
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - u16::from
    linkageType: ''
    returnType: u16
    signature: fn real_height(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/image/src/codecs/ico/decoder.rs:231,1
    - Dst: DirEntry::real_width
      Src: /src/image/src/codecs/ico/decoder.rs:231,1
    - Dst: u32::min
      Src: /src/image/src/codecs/ico/decoder.rs:231,1
    - Dst: u32::from
      Src: /src/image/src/codecs/ico/decoder.rs:232,1
    - Dst: DirEntry::real_height
      Src: /src/image/src/codecs/ico/decoder.rs:232,1
    - Dst: u32::min
      Src: /src/image/src/codecs/ico/decoder.rs:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 3
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: DirEntry::matches_dimensions
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - DirEntry::real_height
    - u32::min
    - DirEntry::real_width
    - u32::from
    linkageType: ''
    returnType: bool
    signature: 'fn matches_dimensions(&self, width: u32, height: u32) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::seek
      Src: /src/image/src/codecs/ico/decoder.rs:236,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/ico/decoder.rs:236,1
    - Dst: u64::from
      Src: /src/image/src/codecs/ico/decoder.rs:236,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut R'
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 13
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: DirEntry::seek_to_start
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - u64::from
    - SeekFrom::Start
    - Result::seek
    linkageType: ''
    returnType: ImageResult
    signature: 'fn seek_to_start<R: Read + Seek>(&self, r: &mut R) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DirEntry::seek_to_start
      Src: /src/image/src/codecs/ico/decoder.rs:241,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/ico/decoder.rs:245,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut R'
    constantsTouched: []
    func_position:
      end: 248
      start: 240
    functionDepth: 14
    functionLinenumber: 240
    functionLinenumberEnd: 248
    functionName: DirEntry::is_png
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - Result::read_exact
    - DirEntry::seek_to_start
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn is_png<R: Read + Seek>(&self, r: &mut R) -> ImageResult<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DirEntry::is_png
      Src: /src/image/src/codecs/ico/decoder.rs:251,1
    - Dst: DirEntry::seek_to_start
      Src: /src/image/src/codecs/ico/decoder.rs:252,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:255,1
    - Dst: Png
      Src: /src/image/src/codecs/ico/decoder.rs:255,1
    - Dst: Box::new
      Src: /src/image/src/codecs/ico/decoder.rs:255,1
    - Dst: PngDecoder::new
      Src: /src/image/src/codecs/ico/decoder.rs:255,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:257,1
    - Dst: Bmp
      Src: /src/image/src/codecs/ico/decoder.rs:257,1
    - Dst: BmpDecoder::new_with_ico_format
      Src: /src/image/src/codecs/ico/decoder.rs:257,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 259
      start: 250
    functionDepth: 15
    functionLinenumber: 250
    functionLinenumberEnd: 259
    functionName: DirEntry::decoder
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - BmpDecoder::new_with_ico_format
    - Png
    - Ok
    - Bmp
    - DirEntry::is_png
    - DirEntry::seek_to_start
    - PngDecoder::new
    linkageType: ''
    returnType: ImageResult
    signature: 'fn decoder<R: BufRead + Seek>(&self, mut r: R) -> ImageResult<InnerDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/ico/decoder.rs:265,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/ico/decoder.rs:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 10
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: IcoDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::dimensions
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/ico/decoder.rs:272,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/ico/decoder.rs:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 270
    functionDepth: 12
    functionLinenumber: 270
    functionLinenumberEnd: 275
    functionName: IcoDecoder::color_type
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::color_type
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/codecs/ico/decoder.rs:281,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:282,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:282,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/ico/decoder.rs:286,1
    - Dst: matches_dimensions
      Src: /src/image/src/codecs/ico/decoder.rs:287,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:288,1
    - Dst: real_width
      Src: /src/image/src/codecs/ico/decoder.rs:291,1
    - Dst: real_height
      Src: /src/image/src/codecs/ico/decoder.rs:292,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:288,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/ico/decoder.rs:301,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:302,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:302,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/ico/decoder.rs:305,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/ico/decoder.rs:308,1
    - Dst: matches_dimensions
      Src: /src/image/src/codecs/ico/decoder.rs:309,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:310,1
    - Dst: real_width
      Src: /src/image/src/codecs/ico/decoder.rs:313,1
    - Dst: real_height
      Src: /src/image/src/codecs/ico/decoder.rs:314,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:310,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/ico/decoder.rs:322,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:323,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/ico/decoder.rs:323,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/ico/decoder.rs:324,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:325,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/ico/decoder.rs:326,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/ico/decoder.rs:326,1
    - Dst: ExtendedColorType::into
      Src: /src/image/src/codecs/ico/decoder.rs:326,1
    - Dst: ImageResult::read_image_data
      Src: /src/image/src/codecs/ico/decoder.rs:331,1
    - Dst: ImageResult::reader
      Src: /src/image/src/codecs/ico/decoder.rs:333,1
    - Dst: Result::stream_position
      Src: /src/image/src/codecs/ico/decoder.rs:334,1
    - Dst: u64::from
      Src: /src/image/src/codecs/ico/decoder.rs:335,1
    - Dst: u64::from
      Src: /src/image/src/codecs/ico/decoder.rs:336,1
    - Dst: u32::div_ceil
      Src: /src/image/src/codecs/ico/decoder.rs:338,1
    - Dst: u64::from
      Src: /src/image/src/codecs/ico/decoder.rs:339,1
    - Dst: u64::from
      Src: /src/image/src/codecs/ico/decoder.rs:339,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/ico/decoder.rs:354,1
    - Dst: rev
      Src: /src/image/src/codecs/ico/decoder.rs:355,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:368,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:371,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:373,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:373,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 164
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 377
      start: 277
    functionDepth: 13
    functionLinenumber: 277
    functionLinenumberEnd: 377
    functionName: IcoDecoder::read_image
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - real_height
    - ImageResult::dimensions
    - Result::read_u8
    - Result::stream_position
    - ImageResult::reader
    - u64::from
    - Ok
    - ImageResult::read_image
    - Err
    - ImageResult::color_type
    - real_width
    - UnsupportedErrorKind::Color
    - ExtendedColorType::into
    - rev
    - into
    - u32::div_ceil
    - matches_dimensions
    - len
    - ImageResult::read_image_data
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/ico/decoder.rs:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: IcoDecoder::read_image_boxed
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_boxed(self: Box<Self>, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IcoDecoder::new
      Src: /src/image/src/codecs/ico/decoder.rs:442,1
    - Dst: std::io::Cursor::new
      Src: /src/image/src/codecs/ico/decoder.rs:442,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/ico/decoder.rs:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 445
      start: 391
    functionDepth: 15
    functionLinenumber: 391
    functionLinenumberEnd: 445
    functionName: test::bmp_16_with_missing_alpha_channel
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - std::io::Cursor::new
    - IcoDecoder::new
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn bmp_16_with_missing_alpha_channel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/image/src/imageops/sample.rs:126,1
    - Dst: to_i8
      Src: /src/image/src/imageops/sample.rs:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: FloatNearest::to_i8
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - round
    - to_i8
    linkageType: ''
    returnType: Option
    signature: fn to_i8(&self) -> Option<i8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/image/src/imageops/sample.rs:129,1
    - Dst: to_i16
      Src: /src/image/src/imageops/sample.rs:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: FloatNearest::to_i16
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - round
    - to_i16
    linkageType: ''
    returnType: Option
    signature: fn to_i16(&self) -> Option<i16>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/image/src/imageops/sample.rs:132,1
    - Dst: to_i64
      Src: /src/image/src/imageops/sample.rs:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: FloatNearest::to_i64
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - to_i64
    - round
    linkageType: ''
    returnType: Option
    signature: fn to_i64(&self) -> Option<i64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/image/src/imageops/sample.rs:135,1
    - Dst: to_u8
      Src: /src/image/src/imageops/sample.rs:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: FloatNearest::to_u8
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - to_u8
    - round
    linkageType: ''
    returnType: Option
    signature: fn to_u8(&self) -> Option<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/image/src/imageops/sample.rs:138,1
    - Dst: to_u16
      Src: /src/image/src/imageops/sample.rs:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: FloatNearest::to_u16
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - to_u16
    - round
    linkageType: ''
    returnType: Option
    signature: fn to_u16(&self) -> Option<u16>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/image/src/imageops/sample.rs:141,1
    - Dst: to_u64
      Src: /src/image/src/imageops/sample.rs:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: FloatNearest::to_u64
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - round
    - to_u64
    linkageType: ''
    returnType: Option
    signature: fn to_u64(&self) -> Option<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_f64
      Src: /src/image/src/imageops/sample.rs:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: FloatNearest::to_f64
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - to_f64
    linkageType: ''
    returnType: Option
    signature: fn to_f64(&self) -> Option<f64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sin
      Src: /src/image/src/imageops/sample.rs:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - t
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: sinc
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - sin
    linkageType: ''
    returnType: f32
    signature: 'fn sinc(t: f32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:161,1
    - Dst: sinc
      Src: /src/image/src/imageops/sample.rs:162,1
    - Dst: sinc
      Src: /src/image/src/imageops/sample.rs:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - x
    - t
    argTypes:
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: lanczos
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - abs
    - sinc
    linkageType: ''
    returnType: f32
    signature: 'fn lanczos(x: f32, t: f32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:171,1
    - Dst: powi
      Src: /src/image/src/imageops/sample.rs:174,1
    - Dst: powi
      Src: /src/image/src/imageops/sample.rs:175,1
    - Dst: powi
      Src: /src/image/src/imageops/sample.rs:178,1
    - Dst: powi
      Src: /src/image/src/imageops/sample.rs:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 56
    argCount: 3
    argNames:
    - x
    - b
    - c
    argTypes:
    - f32
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 187
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 187
    functionName: bc_cubic_spline
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - powi
    - abs
    linkageType: ''
    returnType: f32
    signature: 'fn bc_cubic_spline(x: f32, b: f32, c: f32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sqrt
      Src: /src/image/src/imageops/sample.rs:192,1
    - Dst: recip
      Src: /src/image/src/imageops/sample.rs:192,1
    - Dst: powi
      Src: /src/image/src/imageops/sample.rs:192,1
    - Dst: Result::powi
      Src: /src/image/src/imageops/sample.rs:192,1
    - Dst: exp
      Src: /src/image/src/imageops/sample.rs:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - x
    - r
    argTypes:
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: gaussian
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - powi
    - exp
    - sqrt
    - recip
    - Result::powi
    linkageType: ''
    returnType: f32
    signature: 'pub(crate) fn gaussian(x: f32, r: f32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lanczos
      Src: /src/image/src/imageops/sample.rs:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: lanczos3_kernel
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - lanczos
    linkageType: ''
    returnType: f32
    signature: 'pub(crate) fn lanczos3_kernel(x: f32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gaussian
      Src: /src/image/src/imageops/sample.rs:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 204
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 204
    functionName: gaussian_kernel
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - gaussian
    linkageType: ''
    returnType: f32
    signature: 'pub(crate) fn gaussian_kernel(x: f32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bc_cubic_spline
      Src: /src/image/src/imageops/sample.rs:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: catmullrom_kernel
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - bc_cubic_spline
    linkageType: ''
    returnType: f32
    signature: 'pub(crate) fn catmullrom_kernel(x: f32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:215,1
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: triangle_kernel
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - abs
    linkageType: ''
    returnType: f32
    signature: 'pub(crate) fn triangle_kernel(x: f32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: box_kernel
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: f32
    signature: 'pub(crate) fn box_kernel(_x: f32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/sample.rs:245,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/sample.rs:253,1
    - Dst: Vec::new
      Src: /src/image/src/imageops/sample.rs:254,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:256,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:256,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:257,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:257,1
    - Dst: floor
      Src: /src/image/src/imageops/sample.rs:273,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:274,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:274,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:276,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:277,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:279,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:280,1
    - Dst: io::Result::clear
      Src: /src/image/src/imageops/sample.rs:287,1
    - Dst: io::Result::push
      Src: /src/image/src/imageops/sample.rs:291,1
    - Dst: io::Result::iter_mut
      Src: /src/image/src/imageops/sample.rs:294,1
    - Dst: io::Result::iter
      Src: /src/image/src/imageops/sample.rs:301,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:301,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:302,1
    - Dst: channels4
      Src: /src/image/src/imageops/sample.rs:305,1
    - Dst: Pixel::from_channels
      Src: /src/image/src/imageops/sample.rs:314,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:315,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:315,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:315,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:315,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:316,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:316,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:316,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:316,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:317,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:317,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:317,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:317,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:318,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:318,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:318,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:318,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/sample.rs:321,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 128
    argCount: 3
    argNames:
    - image
    - new_width
    - filter
    argTypes:
    - '&Rgba32FImage'
    - u32
    - '&mut Filter'
    constantsTouched: []
    func_position:
      end: 326
      start: 236
    functionDepth: 10
    functionLinenumber: 236
    functionLinenumberEnd: 326
    functionName: horizontal_sample
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - enumerate
    - <i64 as From<_>>::from
    - io::Result::push
    - floor
    - FloatNearest
    - ImageBuffer::new
    - ceil
    - NumCast::from
    - Vec::get_pixel
    - Pixel::from_channels
    - io::Result::clear
    - io::Result::iter
    - Vec::dimensions
    - Vec::new
    - utils::clamp
    - io::Result::iter_mut
    - channels4
    - Self::unwrap
    - SampleLayout::put_pixel
    linkageType: ''
    returnType: ImageBuffer
    signature: 'fn horizontal_sample<P, S>(image: &Rgba32FImage,new_width: u32,filter:
      &mut Filter,) -> ImageBuffer<P, Vec<S>>whereP: Pixel<Subpixel = S> + ''static,S:
      Primitive + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:334,1
    - Dst: all
      Src: /src/image/src/imageops/sample.rs:334,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:334,1
    - Dst: Option::dimensions
      Src: /src/image/src/imageops/sample.rs:338,1
    - Dst: interpolate_bilinear
      Src: /src/image/src/imageops/sample.rs:345,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:347,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:347,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:348,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 45
    argCount: 3
    argNames:
    - img
    - u
    - v
    argTypes:
    - '&impl GenericImageView<Pixel = P>'
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 350
      start: 329
    functionDepth: 13
    functionLinenumber: 329
    functionLinenumberEnd: 350
    functionName: sample_bilinear
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Option::dimensions
    - all
    - iter
    - contains
    - interpolate_bilinear
    - max
    - min
    linkageType: ''
    returnType: Option
    signature: 'pub fn sample_bilinear<P: Pixel>(img: &impl GenericImageView<Pixel
      = P>,u: f32,v: f32,) -> Option<P>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:358,1
    - Dst: all
      Src: /src/image/src/imageops/sample.rs:358,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:358,1
    - Dst: Option::dimensions
      Src: /src/image/src/imageops/sample.rs:362,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:364,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:364,1
    - Dst: Self::saturating_sub
      Src: /src/image/src/imageops/sample.rs:364,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:367,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:367,1
    - Dst: ImageResult::saturating_sub
      Src: /src/image/src/imageops/sample.rs:367,1
    - Dst: interpolate_nearest
      Src: /src/image/src/imageops/sample.rs:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 3
    argNames:
    - img
    - u
    - v
    argTypes:
    - '&impl GenericImageView<Pixel = P>'
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 369
      start: 353
    functionDepth: 13
    functionLinenumber: 353
    functionLinenumberEnd: 369
    functionName: sample_nearest
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - interpolate_nearest
    - Option::dimensions
    - all
    - iter
    - contains
    - Self::saturating_sub
    - ImageResult::saturating_sub
    - max
    - min
    linkageType: ''
    returnType: Option
    signature: 'pub fn sample_nearest<P: Pixel>(img: &impl GenericImageView<Pixel
      = P>,u: f32,v: f32,) -> Option<P>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::dimensions
      Src: /src/image/src/imageops/sample.rs:382,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:386,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:389,1
    - Dst: Some
      Src: /src/image/src/imageops/sample.rs:393,1
    - Dst: Option::get_pixel
      Src: /src/image/src/imageops/sample.rs:393,1
    - Dst: round
      Src: /src/image/src/imageops/sample.rs:393,1
    - Dst: Option::round
      Src: /src/image/src/imageops/sample.rs:393,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 3
    argNames:
    - img
    - x
    - y
    argTypes:
    - '&impl GenericImageView<Pixel = P>'
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 394
      start: 377
    functionDepth: 10
    functionLinenumber: 377
    functionLinenumberEnd: 394
    functionName: interpolate_nearest
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - Option::round
    - Option::dimensions
    - Some
    - contains
    - Option::get_pixel
    - round
    linkageType: ''
    returnType: Option
    signature: 'pub fn interpolate_nearest<P: Pixel>(img: &impl GenericImageView<Pixel
      = P>,x: f32,y: f32,) -> Option<P>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::dimensions
      Src: /src/image/src/imageops/sample.rs:405,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:409,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:412,1
    - Dst: floor
      Src: /src/image/src/imageops/sample.rs:417,1
    - Dst: Option::floor
      Src: /src/image/src/imageops/sample.rs:418,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:419,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:420,1
    - Dst: Option::get_pixel
      Src: /src/image/src/imageops/sample.rs:433,1
    - Dst: channels
      Src: /src/image/src/imageops/sample.rs:434,1
    - Dst: usize::iter
      Src: /src/image/src/imageops/sample.rs:434,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:434,1
    - Dst: Option::to_f32
      Src: /src/image/src/imageops/sample.rs:435,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:435,1
    - Dst: compute
      Src: /src/image/src/imageops/sample.rs:441,1
    - Dst: compute
      Src: /src/image/src/imageops/sample.rs:442,1
    - Dst: compute
      Src: /src/image/src/imageops/sample.rs:443,1
    - Dst: compute
      Src: /src/image/src/imageops/sample.rs:444,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:462,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:462,1
    - Dst: SampleLayout::channels_mut
      Src: /src/image/src/imageops/sample.rs:464,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/sample.rs:464,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:464,1
    - Dst: <P::Subpixel as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:469,1
    - Dst: DynamicImage::round
      Src: /src/image/src/imageops/sample.rs:469,1
    - Dst: Self::unwrap_or
      Src: /src/image/src/imageops/sample.rs:469,1
    - Dst: Some
      Src: /src/image/src/imageops/sample.rs:478,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 140
    argCount: 3
    argNames:
    - img
    - x
    - y
    argTypes:
    - '&impl GenericImageView<Pixel = P>'
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 479
      start: 397
    functionDepth: 10
    functionLinenumber: 397
    functionLinenumberEnd: 479
    functionName: interpolate_bilinear
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - enumerate
    - Self::unwrap_or
    - Some
    - floor
    - unwrap
    - <P::Subpixel as NumCast>::from
    - Option::floor
    - to_f32
    - Option::to_f32
    - SampleLayout::channels_mut
    - contains
    - Option::get_pixel
    - compute
    - DynamicImage::round
    - channels
    - Option::dimensions
    - usize::iter
    - iter_mut
    - min
    linkageType: ''
    returnType: Option
    signature: 'pub fn interpolate_bilinear<P: Pixel>(img: &impl GenericImageView<Pixel
      = P>,x: f32,y: f32,) -> Option<P>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/sample.rs:495,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/sample.rs:505,1
    - Dst: Vec::new
      Src: /src/image/src/imageops/sample.rs:506,1
    - Dst: floor
      Src: /src/image/src/imageops/sample.rs:517,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:518,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:518,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:520,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:521,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:523,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:524,1
    - Dst: io::Result::clear
      Src: /src/image/src/imageops/sample.rs:529,1
    - Dst: io::Result::push
      Src: /src/image/src/imageops/sample.rs:533,1
    - Dst: io::Result::iter_mut
      Src: /src/image/src/imageops/sample.rs:536,1
    - Dst: io::Result::iter
      Src: /src/image/src/imageops/sample.rs:543,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:543,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:544,1
    - Dst: channels4
      Src: /src/image/src/imageops/sample.rs:547,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:549,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:549,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:550,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:550,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:551,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:551,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:552,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:552,1
    - Dst: Pixel::from_channels
      Src: /src/image/src/imageops/sample.rs:563,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/sample.rs:565,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 115
    argCount: 3
    argNames:
    - image
    - new_height
    - filter
    argTypes:
    - '&I'
    - u32
    - '&mut Filter'
    constantsTouched: []
    func_position:
      end: 570
      start: 489
    functionDepth: 10
    functionLinenumber: 489
    functionLinenumberEnd: 570
    functionName: vertical_sample
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - utils::clamp
    - Vec::get_pixel
    - ceil
    - enumerate
    - <i64 as From<_>>::from
    - io::Result::push
    - Pixel::from_channels
    - floor
    - NumCast::from
    - io::Result::clear
    - io::Result::iter
    - io::Result::iter_mut
    - Vec::dimensions
    - channels4
    - ImageBuffer::new
    - Self::unwrap
    - Vec::new
    - SampleLayout::put_pixel
    linkageType: ''
    returnType: Rgba32FImage
    signature: 'fn vertical_sample<I, P, S>(image: &I, new_height: u32, filter: &mut
      Filter) -> Rgba32FImagewhereI: GenericImageView<Pixel = P>,P: Pixel<Subpixel
      = S> + ''static,S: Primitive + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThumbnailSum
      Src: /src/image/src/imageops/sample.rs:577,1
    - Dst: S::Larger::zero
      Src: /src/image/src/imageops/sample.rs:578,1
    - Dst: S::Larger::zero
      Src: /src/image/src/imageops/sample.rs:579,1
    - Dst: S::Larger::zero
      Src: /src/image/src/imageops/sample.rs:580,1
    - Dst: S::Larger::zero
      Src: /src/image/src/imageops/sample.rs:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 583
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 583
    functionName: ThumbnailSum::zeroed
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - ThumbnailSum
    - S::Larger::zero
    linkageType: ''
    returnType: Self
    signature: fn zeroed() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: <S::Larger as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:586,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - S
    constantsTouched: []
    func_position:
      end: 587
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 587
    functionName: ThumbnailSum::sample_val
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Self::unwrap
    - <S::Larger as NumCast>::from
    linkageType: ''
    returnType: S::Larger
    signature: 'fn sample_val(val: S) -> S::Larger'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::channels4
      Src: /src/image/src/imageops/sample.rs:591,1
    - Dst: Self::sample_val
      Src: /src/image/src/imageops/sample.rs:592,1
    - Dst: Self::sample_val
      Src: /src/image/src/imageops/sample.rs:593,1
    - Dst: Self::sample_val
      Src: /src/image/src/imageops/sample.rs:594,1
    - Dst: Self::sample_val
      Src: /src/image/src/imageops/sample.rs:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - pixel
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 596
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 596
    functionName: ThumbnailSum::add_pixel
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - u8::channels4
    - Self::sample_val
    linkageType: ''
    returnType: void
    signature: 'fn add_pixel<P: Pixel<Subpixel = S>>(&mut self, pixel: P)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/sample.rs:617,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/sample.rs:618,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:630,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:630,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:631,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:631,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:637,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:637,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:638,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:638,1
    - Dst: thumbnail_sample_block
      Src: /src/image/src/imageops/sample.rs:641,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:651,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:651,1
    - Dst: thumbnail_sample_fraction_horizontal
      Src: /src/image/src/imageops/sample.rs:652,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:668,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:668,1
    - Dst: thumbnail_sample_fraction_vertical
      Src: /src/image/src/imageops/sample.rs:669,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:672,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:672,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:673,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:673,1
    - Dst: thumbnail_sample_fraction_both
      Src: /src/image/src/imageops/sample.rs:675,1
    - Dst: Pixel::from_channels
      Src: /src/image/src/imageops/sample.rs:685,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/sample.rs:686,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 100
    argCount: 3
    argNames:
    - image
    - new_width
    - new_height
    argTypes:
    - '&I'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 691
      start: 611
    functionDepth: 10
    functionLinenumber: 611
    functionLinenumberEnd: 691
    functionName: thumbnail
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - utils::clamp
    - ceil
    - thumbnail_sample_fraction_both
    - thumbnail_sample_fraction_horizontal
    - Pixel::from_channels
    - Vec::dimensions
    - thumbnail_sample_fraction_vertical
    - ImageBuffer::new
    - SampleLayout::put_pixel
    - thumbnail_sample_block
    - fract
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn thumbnail<I, P, S>(image: &I, new_width: u32, new_height: u32)
      -> ImageBuffer<P, Vec<S>>whereI: GenericImageView<Pixel = P>,P: Pixel<Subpixel
      = S> + ''static,S: Primitive + Enlargeable + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThumbnailSum::zeroed
      Src: /src/image/src/imageops/sample.rs:706,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:710,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:711,1
    - Dst: <S::Larger as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:715,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:715,1
    - Dst: <S::Larger as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:716,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:716,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:716,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:716,1
    - Dst: S::clamp_from
      Src: /src/image/src/imageops/sample.rs:718,1
    - Dst: S::clamp_from
      Src: /src/image/src/imageops/sample.rs:719,1
    - Dst: S::clamp_from
      Src: /src/image/src/imageops/sample.rs:720,1
    - Dst: S::clamp_from
      Src: /src/image/src/imageops/sample.rs:721,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 48
    argCount: 5
    argNames:
    - image
    - left
    - right
    - bottom
    - top
    argTypes:
    - '&I'
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 723
      start: 694
    functionDepth: 3
    functionLinenumber: 694
    functionLinenumberEnd: 723
    functionName: thumbnail_sample_block
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - Vec::get_pixel
    - Self::add_pixel
    - S::clamp_from
    - NumCast::from
    - ThumbnailSum::zeroed
    - Self::unwrap
    - <S::Larger as NumCast>::from
    linkageType: ''
    returnType: (S, S, S, S)
    signature: 'fn thumbnail_sample_block<I, P, S>(image: &I,left: u32,right: u32,bottom:
      u32,top: u32,) -> (S, S, S, S)whereI: GenericImageView<Pixel = P>,P: Pixel<Subpixel
      = S>,S: Primitive + Enlargeable,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThumbnailSum::zeroed
      Src: /src/image/src/imageops/sample.rs:740,1
    - Dst: ThumbnailSum::zeroed
      Src: /src/image/src/imageops/sample.rs:741,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:743,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:744,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:746,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:747,1
    - Dst: <S as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:755,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:756,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:756,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:756,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:756,1
    - Dst: Self::expect
      Src: /src/image/src/imageops/sample.rs:755,1
    - Dst: mix_left_and_right
      Src: /src/image/src/imageops/sample.rs:762,1
    - Dst: mix_left_and_right
      Src: /src/image/src/imageops/sample.rs:763,1
    - Dst: mix_left_and_right
      Src: /src/image/src/imageops/sample.rs:764,1
    - Dst: mix_left_and_right
      Src: /src/image/src/imageops/sample.rs:765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 56
    argCount: 5
    argNames:
    - image
    - left
    - fraction_horizontal
    - bottom
    - top
    argTypes:
    - '&I'
    - u32
    - f32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 767
      start: 726
    functionDepth: 3
    functionLinenumber: 726
    functionLinenumberEnd: 767
    functionName: thumbnail_sample_fraction_horizontal
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - Vec::get_pixel
    - Self::expect
    - mix_left_and_right
    - <S as NumCast>::from
    - ThumbnailSum::zeroed
    - unwrap
    - Self::add_pixel
    - to_f32
    linkageType: ''
    returnType: (S, S, S, S)
    signature: 'fn thumbnail_sample_fraction_horizontal<I, P, S>(image: &I,left: u32,fraction_horizontal:
      f32,bottom: u32,top: u32,) -> (S, S, S, S)whereI: GenericImageView<Pixel = P>,P:
      Pixel<Subpixel = S>,S: Primitive + Enlargeable,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThumbnailSum::zeroed
      Src: /src/image/src/imageops/sample.rs:784,1
    - Dst: ThumbnailSum::zeroed
      Src: /src/image/src/imageops/sample.rs:785,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:787,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:788,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:790,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:791,1
    - Dst: <S as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:799,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:799,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:799,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:799,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:799,1
    - Dst: Self::expect
      Src: /src/image/src/imageops/sample.rs:799,1
    - Dst: mix_bot_and_top
      Src: /src/image/src/imageops/sample.rs:804,1
    - Dst: mix_bot_and_top
      Src: /src/image/src/imageops/sample.rs:805,1
    - Dst: mix_bot_and_top
      Src: /src/image/src/imageops/sample.rs:806,1
    - Dst: mix_bot_and_top
      Src: /src/image/src/imageops/sample.rs:807,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 56
    argCount: 5
    argNames:
    - image
    - left
    - right
    - bottom
    - fraction_vertical
    argTypes:
    - '&I'
    - u32
    - u32
    - u32
    - f32
    constantsTouched: []
    func_position:
      end: 809
      start: 770
    functionDepth: 3
    functionLinenumber: 770
    functionLinenumberEnd: 809
    functionName: thumbnail_sample_fraction_vertical
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - Vec::get_pixel
    - Self::expect
    - mix_bot_and_top
    - <S as NumCast>::from
    - ThumbnailSum::zeroed
    - unwrap
    - Self::add_pixel
    - to_f32
    linkageType: ''
    returnType: (S, S, S, S)
    signature: 'fn thumbnail_sample_fraction_vertical<I, P, S>(image: &I,left: u32,right:
      u32,bottom: u32,fraction_vertical: f32,) -> (S, S, S, S)whereI: GenericImageView<Pixel
      = P>,P: Pixel<Subpixel = S>,S: Primitive + Enlargeable,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:825,1
    - Dst: Self::Pixel::channels4
      Src: /src/image/src/imageops/sample.rs:825,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:827,1
    - Dst: Self::Pixel::channels4
      Src: /src/image/src/imageops/sample.rs:827,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:829,1
    - Dst: Self::Pixel::channels4
      Src: /src/image/src/imageops/sample.rs:829,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:831,1
    - Dst: Self::Pixel::channels4
      Src: /src/image/src/imageops/sample.rs:831,1
    - Dst: <S as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:842,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:843,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:843,1
    - Dst: Result::to_f32
      Src: /src/image/src/imageops/sample.rs:844,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:844,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:845,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:845,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:846,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:846,1
    - Dst: Self::expect
      Src: /src/image/src/imageops/sample.rs:842,1
    - Dst: mix
      Src: /src/image/src/imageops/sample.rs:852,1
    - Dst: mix
      Src: /src/image/src/imageops/sample.rs:853,1
    - Dst: mix
      Src: /src/image/src/imageops/sample.rs:854,1
    - Dst: mix
      Src: /src/image/src/imageops/sample.rs:855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 80
    argCount: 5
    argNames:
    - image
    - left
    - fraction_vertical
    - bottom
    - fraction_horizontal
    argTypes:
    - '&I'
    - u32
    - f32
    - u32
    - f32
    constantsTouched: []
    func_position:
      end: 857
      start: 812
    functionDepth: 3
    functionLinenumber: 812
    functionLinenumberEnd: 857
    functionName: thumbnail_sample_fraction_both
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - Vec::get_pixel
    - Self::expect
    - mix
    - Self::Pixel::channels4
    - <S as NumCast>::from
    - unwrap
    - Result::to_f32
    - to_f32
    linkageType: ''
    returnType: (S, S, S, S)
    signature: 'fn thumbnail_sample_fraction_both<I, P, S>(image: &I,left: u32,fraction_vertical:
      f32,bottom: u32,fraction_horizontal: f32,) -> (S, S, S, S)whereI: GenericImageView<Pixel
      = P>,P: Pixel<Subpixel = S>,S: Primitive + Enlargeable,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/sample.rs:887,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/sample.rs:889,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:892,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:892,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/sample.rs:895,1
    - Dst: fold
      Src: /src/image/src/imageops/sample.rs:895,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/sample.rs:908,1
    - Dst: zip
      Src: /src/image/src/imageops/sample.rs:908,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:908,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:913,1
    - Dst: channels4
      Src: /src/image/src/imageops/sample.rs:916,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:919,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:919,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:920,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:920,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:921,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:921,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:922,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:922,1
    - Dst: Pixel::from_channels
      Src: /src/image/src/imageops/sample.rs:934,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:935,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:935,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:935,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:936,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:936,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:936,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:937,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:937,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:937,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:938,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:938,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:938,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/sample.rs:941,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 126
    argCount: 2
    argNames:
    - image
    - kernel
    argTypes:
    - '&I'
    - '&[f32]'
    constantsTouched: []
    func_position:
      end: 946
      start: 868
    functionDepth: 10
    functionLinenumber: 868
    functionLinenumberEnd: 946
    functionName: filter3x3
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - f32::iter
    - Vec::get_pixel
    - utils::clamp
    - iter
    - Pixel::from_channels
    - fold
    - NumCast::from
    - channels4
    - Vec::dimensions
    - ImageBuffer::new
    - Self::unwrap
    - zip
    - SampleLayout::put_pixel
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn filter3x3<I, P, S>(image: &I, kernel: &[f32]) -> ImageBuffer<P,
      Vec<S>>whereI: GenericImageView<Pixel = P>,P: Pixel<Subpixel = S> + ''static,S:
      Primitive + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/sample.rs:972,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/sample.rs:977,1
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/sample.rs:981,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/sample.rs:982,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:982,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:982,1
    - Dst: ImageBuffer::copy_from
      Src: /src/image/src/imageops/sample.rs:983,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:983,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:989,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:993,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:997,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:1001,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:1005,1
    - Dst: vertical_sample
      Src: /src/image/src/imageops/sample.rs:1011,1
    - Dst: horizontal_sample
      Src: /src/image/src/imageops/sample.rs:1012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 4
    argNames:
    - image
    - nwidth
    - nheight
    - filter
    argTypes:
    - '&I'
    - u32
    - u32
    - FilterType
    constantsTouched: []
    func_position:
      end: 1013
      start: 960
    functionDepth: 10
    functionLinenumber: 960
    functionLinenumberEnd: 1013
    functionName: resize
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 3
    functionsReached:
    - Vec::height
    - Box::new
    - vertical_sample
    - horizontal_sample
    - ImageResult::unwrap
    - Vec::dimensions
    - Vec::width
    - ImageBuffer::new
    - ImageBuffer::copy_from
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn resize<I: GenericImageView>(image: &I,nwidth: u32,nheight:
      u32,filter: FilterType,) -> ImageBuffer<I::Pixel, Vec<<I::Pixel as Pixel>::Subpixel>>whereI::Pixel:
      ''static,<I::Pixel as Pixel>::Subpixel: ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gaussian_blur_indirect
      Src: /src/image/src/imageops/sample.rs:1033,1
    - Dst: GaussianBlurParameters::new_from_sigma
      Src: /src/image/src/imageops/sample.rs:1035,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - image
    - sigma
    argTypes:
    - '&I'
    - f32
    constantsTouched: []
    func_position:
      end: 1037
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1037
    functionName: blur
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - GaussianBlurParameters::new_from_sigma
    - gaussian_blur_indirect
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn blur<I: GenericImageView>(image: &I,sigma: f32,) -> ImageBuffer<I::Pixel,
      Vec<<I::Pixel as Pixel>::Subpixel>>whereI::Pixel: ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gaussian_blur_indirect
      Src: /src/image/src/imageops/sample.rs:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - image
    - parameters
    argTypes:
    - '&I'
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1056
      start: 1048
    functionDepth: 1
    functionLinenumber: 1048
    functionLinenumberEnd: 1056
    functionName: blur_advanced
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - gaussian_blur_indirect
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn blur_advanced<I: GenericImageView>(image: &I,parameters: GaussianBlurParameters,)
      -> ImageBuffer<I::Pixel, Vec<<I::Pixel as Pixel>::Subpixel>>whereI::Pixel: ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f32::sqrt
      Src: /src/image/src/imageops/sample.rs:1061,1
    - Dst: f32::iter_mut
      Src: /src/image/src/imageops/sample.rs:1064,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:1064,1
    - Dst: f32::exp
      Src: /src/image/src/imageops/sample.rs:1065,1
    - Dst: f32::powf
      Src: /src/image/src/imageops/sample.rs:1065,1
    - Dst: mul
      Src: /src/image/src/imageops/sample.rs:1073,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 2
    argNames:
    - width
    - sigma
    argTypes:
    - usize
    - f32
    constantsTouched: []
    func_position:
      end: 1078
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1078
    functionName: get_gaussian_kernel_1d
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - enumerate
    - f32::powf
    - f32::iter_mut
    - f32::sqrt
    - f32::exp
    - mul
    linkageType: ''
    returnType: Vec
    signature: 'fn get_gaussian_kernel_1d(width: usize, sigma: f32) -> Vec<f32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GaussianBlurParameters::new_from_kernel_size
      Src: /src/image/src/imageops/sample.rs:1128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - radius
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1129
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1129
    functionName: GaussianBlurParameters::new_from_radius
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - GaussianBlurParameters::new_from_kernel_size
    linkageType: ''
    returnType: GaussianBlurParameters
    signature: 'pub fn new_from_radius(radius: f32) -> GaussianBlurParameters'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GaussianBlurParameters::round_to_nearest_odd
      Src: /src/image/src/imageops/sample.rs:1144,1
    - Dst: GaussianBlurParameters::sigma_size
      Src: /src/image/src/imageops/sample.rs:1146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - kernel_size
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1153
      start: 1135
    functionDepth: 1
    functionLinenumber: 1135
    functionLinenumberEnd: 1153
    functionName: GaussianBlurParameters::new_from_kernel_size
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - GaussianBlurParameters::sigma_size
    - GaussianBlurParameters::round_to_nearest_odd
    linkageType: ''
    returnType: GaussianBlurParameters
    signature: 'pub fn new_from_kernel_size(kernel_size: f32) -> GaussianBlurParameters'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GaussianBlurParameters::round_to_nearest_odd
      Src: /src/image/src/imageops/sample.rs:1179,1
    - Dst: GaussianBlurParameters::round_to_nearest_odd
      Src: /src/image/src/imageops/sample.rs:1181,1
    - Dst: GaussianBlurParameters::sigma_size
      Src: /src/image/src/imageops/sample.rs:1183,1
    - Dst: GaussianBlurParameters::sigma_size
      Src: /src/image/src/imageops/sample.rs:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - x_axis_kernel_size
    - y_axis_kernel_size
    argTypes:
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 1191
      start: 1159
    functionDepth: 1
    functionLinenumber: 1159
    functionLinenumberEnd: 1191
    functionName: GaussianBlurParameters::new_anisotropic_kernel_size
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - GaussianBlurParameters::sigma_size
    - GaussianBlurParameters::round_to_nearest_odd
    linkageType: ''
    returnType: GaussianBlurParameters
    signature: 'pub fn new_anisotropic_kernel_size(x_axis_kernel_size: f32,y_axis_kernel_size:
      f32,) -> GaussianBlurParameters'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GaussianBlurParameters::kernel_size_from_sigma
      Src: /src/image/src/imageops/sample.rs:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sigma
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1207
      start: 1194
    functionDepth: 1
    functionLinenumber: 1194
    functionLinenumberEnd: 1207
    functionName: GaussianBlurParameters::new_from_sigma
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - GaussianBlurParameters::kernel_size_from_sigma
    linkageType: ''
    returnType: GaussianBlurParameters
    signature: 'pub fn new_from_sigma(sigma: f32) -> GaussianBlurParameters'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/image/src/imageops/sample.rs:1211,1
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:1218,1
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:1219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1227
      start: 1210
    functionDepth: 1
    functionLinenumber: 1210
    functionLinenumberEnd: 1227
    functionName: GaussianBlurParameters::round_to_nearest_odd
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    functionsReached:
    - abs
    - round
    linkageType: ''
    returnType: u32
    signature: 'fn round_to_nearest_odd(x: f32) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - kernel_size
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1232
      start: 1229
    functionDepth: 0
    functionLinenumber: 1229
    functionLinenumberEnd: 1232
    functionName: GaussianBlurParameters::sigma_size
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: f32
    signature: 'fn sigma_size(kernel_size: f32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:1235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - sigma
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1240
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1240
    functionName: GaussianBlurParameters::kernel_size_from_sigma
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - max
    linkageType: ''
    returnType: u32
    signature: 'fn kernel_size_from_sigma(sigma: f32) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_gaussian_kernel_1d
      Src: /src/image/src/imageops/sample.rs:1247,1
    - Dst: get_gaussian_kernel_1d
      Src: /src/image/src/imageops/sample.rs:1252,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:1258,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:1259,1
    - Dst: imageops::filter_1d::filter_2d_sep_plane
      Src: /src/image/src/imageops/sample.rs:1265,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1266,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1265,1
    - Dst: DynamicImage::ImageLuma8
      Src: /src/image/src/imageops/sample.rs:1273,1
    - Dst: GrayImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1274,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1274,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1274,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1274,1
    - Dst: filter_2d_sep_la
      Src: /src/image/src/imageops/sample.rs:1279,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1280,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1279,1
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/src/imageops/sample.rs:1287,1
    - Dst: GrayAlphaImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1288,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1288,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1288,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1288,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgb
      Src: /src/image/src/imageops/sample.rs:1293,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1294,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1293,1
    - Dst: DynamicImage::ImageRgb8
      Src: /src/image/src/imageops/sample.rs:1301,1
    - Dst: RgbImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1302,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1302,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1302,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1302,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgba
      Src: /src/image/src/imageops/sample.rs:1307,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1308,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1307,1
    - Dst: DynamicImage::ImageRgba8
      Src: /src/image/src/imageops/sample.rs:1315,1
    - Dst: RgbaImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1316,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1316,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1316,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1316,1
    - Dst: imageops::filter_1d::filter_2d_sep_plane_u16
      Src: /src/image/src/imageops/sample.rs:1321,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1322,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1321,1
    - Dst: DynamicImage::ImageLuma16
      Src: /src/image/src/imageops/sample.rs:1329,1
    - Dst: Gray16Image::from_raw
      Src: /src/image/src/imageops/sample.rs:1330,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1330,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1330,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1330,1
    - Dst: imageops::filter_1d::filter_2d_sep_la_u16
      Src: /src/image/src/imageops/sample.rs:1335,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1336,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1335,1
    - Dst: DynamicImage::ImageLumaA16
      Src: /src/image/src/imageops/sample.rs:1343,1
    - Dst: GrayAlpha16Image::from_raw
      Src: /src/image/src/imageops/sample.rs:1344,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1344,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1344,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1344,1
    - Dst: filter_2d_sep_rgb_u16
      Src: /src/image/src/imageops/sample.rs:1349,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1350,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1349,1
    - Dst: DynamicImage::ImageRgb16
      Src: /src/image/src/imageops/sample.rs:1357,1
    - Dst: Rgb16Image::from_raw
      Src: /src/image/src/imageops/sample.rs:1358,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1358,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1358,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1358,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgba_u16
      Src: /src/image/src/imageops/sample.rs:1363,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1364,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1363,1
    - Dst: DynamicImage::ImageRgba16
      Src: /src/image/src/imageops/sample.rs:1371,1
    - Dst: Rgba16Image::from_raw
      Src: /src/image/src/imageops/sample.rs:1372,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1372,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1372,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1372,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgb_f32
      Src: /src/image/src/imageops/sample.rs:1377,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1378,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1377,1
    - Dst: DynamicImage::ImageRgb32F
      Src: /src/image/src/imageops/sample.rs:1385,1
    - Dst: Rgb32FImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1386,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1386,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1386,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1386,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgba_f32
      Src: /src/image/src/imageops/sample.rs:1391,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1392,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1391,1
    - Dst: DynamicImage::ImageRgba32F
      Src: /src/image/src/imageops/sample.rs:1399,1
    - Dst: Rgba32FImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1400,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1400,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1400,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 187
    argCount: 2
    argNames:
    - image
    - parameters
    argTypes:
    - '&DynamicImage'
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1404
      start: 1243
    functionDepth: 2
    functionLinenumber: 1243
    functionLinenumberEnd: 1404
    functionName: gaussian_blur_dyn_image
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - get_gaussian_kernel_1d
    - imageops::filter_1d::filter_2d_sep_rgba
    - Rgb32FImage::from_raw
    - Vec::width
    - Option::width
    - imageops::filter_1d::filter_2d_sep_rgb_f32
    - imageops::filter_1d::filter_2d_sep_rgba_f32
    - DynamicImage::ImageRgba8
    - Rgb16Image::from_raw
    - DynamicImage::ImageRgb8
    - Option::as_raw
    - imageops::filter_1d::filter_2d_sep_la_u16
    - DynamicImage::ImageLumaA16
    - imageops::filter_1d::filter_2d_sep_plane_u16
    - Vec::height
    - Gray16Image::from_raw
    - DynamicImage::ImageLuma16
    - imageops::filter_1d::filter_2d_sep_rgba_u16
    - filter_2d_sep_la
    - ImageResult::unwrap
    - GrayAlpha16Image::from_raw
    - RgbImage::from_raw
    - DynamicImage::ImageRgba32F
    - Result::unwrap
    - DynamicImage::ImageLuma8
    - filter_2d_sep_rgb_u16
    - Option::height
    - GrayImage::from_raw
    - GrayAlphaImage::from_raw
    - Rgba32FImage::from_raw
    - imageops::filter_1d::filter_2d_sep_plane
    - RgbaImage::from_raw
    - DynamicImage::ImageRgb32F
    - Rgba16Image::from_raw
    - imageops::filter_1d::filter_2d_sep_rgb
    - DynamicImage::ImageLumaA8
    - DynamicImage::ImageRgb16
    - DynamicImage::ImageRgba16
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub(crate) fn gaussian_blur_dyn_image(image: &DynamicImage,parameters:
      GaussianBlurParameters,) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gaussian_blur_indirect_impl::<I, 1>
      Src: /src/image/src/imageops/sample.rs:1414,1
    - Dst: gaussian_blur_indirect_impl::<I, 2>
      Src: /src/image/src/imageops/sample.rs:1415,1
    - Dst: gaussian_blur_indirect_impl::<I, 3>
      Src: /src/image/src/imageops/sample.rs:1416,1
    - Dst: gaussian_blur_indirect_impl::<I, 4>
      Src: /src/image/src/imageops/sample.rs:1417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - image
    - parameters
    argTypes:
    - '&I'
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1420
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1420
    functionName: gaussian_blur_indirect
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    functionsReached:
    - gaussian_blur_indirect_impl::<I, 4>
    - gaussian_blur_indirect_impl::<I, 3>
    - gaussian_blur_indirect_impl::<I, 1>
    - gaussian_blur_indirect_impl::<I, 2>
    linkageType: ''
    returnType: ImageBuffer
    signature: 'fn gaussian_blur_indirect<I: GenericImageView>(image: &I,parameters:
      GaussianBlurParameters,) -> ImageBuffer<I::Pixel, Vec<<I::Pixel as Pixel>::Subpixel>>whereI::Pixel:
      ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::pixels
      Src: /src/image/src/imageops/sample.rs:1430,1
    - Dst: Vec::zip
      Src: /src/image/src/imageops/sample.rs:1430,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/sample.rs:1430,1
    - Dst: channels
      Src: /src/image/src/imageops/sample.rs:1431,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1434,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1434,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1437,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1437,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1438,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1438,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1441,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1441,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1442,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1442,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1443,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1443,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1446,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1446,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1447,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1447,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1448,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1448,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1449,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1449,1
    - Dst: get_gaussian_kernel_1d
      Src: /src/image/src/imageops/sample.rs:1457,1
    - Dst: get_gaussian_kernel_1d
      Src: /src/image/src/imageops/sample.rs:1461,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:1467,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:1468,1
    - Dst: filter_2d_sep_plane_f32
      Src: /src/image/src/imageops/sample.rs:1473,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1473,1
    - Dst: imageops::filter_1d::filter_2d_sep_la_f32
      Src: /src/image/src/imageops/sample.rs:1483,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1483,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgb_f32
      Src: /src/image/src/imageops/sample.rs:1493,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1493,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgba_f32
      Src: /src/image/src/imageops/sample.rs:1503,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1503,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/sample.rs:1515,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:1515,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:1515,1
    - Dst: SampleLayout::pixels_mut
      Src: /src/image/src/imageops/sample.rs:1516,1
    - Dst: PixelsMutPar::zip
      Src: /src/image/src/imageops/sample.rs:1516,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/sample.rs:1516,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1519,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1519,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1519,1
    - Dst: Pixel::from_channels
      Src: /src/image/src/imageops/sample.rs:1521,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1525,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1525,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1525,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1526,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1526,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1526,1
    - Dst: Pixel::from_channels
      Src: /src/image/src/imageops/sample.rs:1528,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1532,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1532,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1532,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1533,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1533,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1533,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1534,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1534,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1534,1
    - Dst: Pixel::from_channels
      Src: /src/image/src/imageops/sample.rs:1536,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1540,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1540,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1540,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1541,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1541,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1541,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1542,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1542,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1542,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1543,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1543,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1543,1
    - Dst: Pixel::from_channels
      Src: /src/image/src/imageops/sample.rs:1545,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 213
    argCount: 2
    argNames:
    - image
    - parameters
    argTypes:
    - '&I'
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1553
      start: 1422
    functionDepth: 3
    functionLinenumber: 1422
    functionLinenumberEnd: 1553
    functionName: gaussian_blur_indirect_impl
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - get_gaussian_kernel_1d
    - Vec::width
    - FloatNearest
    - ImageBuffer::new
    - SampleLayout::pixels_mut
    - imageops::filter_1d::filter_2d_sep_la_f32
    - filter_2d_sep_plane_f32
    - imageops::filter_1d::filter_2d_sep_rgb_f32
    - imageops::filter_1d::filter_2d_sep_rgba_f32
    - NumCast::from
    - PixelsMutPar::zip
    - Vec::height
    - channels
    - Pixel::from_channels
    - chunks_exact_mut
    - Result::unwrap
    - Vec::zip
    - Self::unwrap
    - Vec::pixels
    linkageType: ''
    returnType: ImageBuffer
    signature: 'fn gaussian_blur_indirect_impl<I: GenericImageView, const CN: usize>(image:
      &I,parameters: GaussianBlurParameters,) -> ImageBuffer<I::Pixel, Vec<<I::Pixel
      as Pixel>::Subpixel>>whereI::Pixel: ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: blur_advanced
      Src: /src/image/src/imageops/sample.rs:1572,1
    - Dst: GaussianBlurParameters::new_from_sigma
      Src: /src/image/src/imageops/sample.rs:1572,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1575,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1575,1
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/sample.rs:1576,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:1580,1
    - Dst: ImageBuffer::get_pixel_mut
      Src: /src/image/src/imageops/sample.rs:1581,1
    - Dst: map2
      Src: /src/image/src/imageops/sample.rs:1583,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1584,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1584,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1585,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1585,1
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:1589,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:1590,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1592,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1592,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 3
    argNames:
    - image
    - sigma
    - threshold
    argTypes:
    - '&I'
    - f32
    - i32
    constantsTouched: []
    func_position:
      end: 1603
      start: 1566
    functionDepth: 10
    functionLinenumber: 1566
    functionLinenumberEnd: 1603
    functionName: unsharpen
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Vec::get_pixel
    - utils::clamp
    - GaussianBlurParameters::new_from_sigma
    - NumCast::from
    - map2
    - Vec::dimensions
    - Self::unwrap
    - blur_advanced
    - abs
    - ImageBuffer::get_pixel_mut
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn unsharpen<I, P, S>(image: &I, sigma: f32, threshold: i32) ->
      ImageBuffer<P, Vec<S>>whereI: GenericImageView<Pixel = P>,P: Pixel<Subpixel
      = S> + ''static,S: Primitive + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1616,1
    - Dst: Path::new
      Src: /src/image/src/imageops/sample.rs:1616,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1616,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1617,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1618,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1621
      start: 1614
    functionDepth: 14
    functionLinenumber: 1614
    functionLinenumberEnd: 1621
    functionName: tests::bench_resize
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - test::black_box
    - crate::open
    - iter
    - Path::new
    - io::Result::unwrap
    - resize
    linkageType: ''
    returnType: void
    signature: 'fn bench_resize(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1627,1
    - Dst: Path::new
      Src: /src/image/src/imageops/sample.rs:1627,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1627,1
    - Dst: Option::resize
      Src: /src/image/src/imageops/sample.rs:1628,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1628,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1625
    functionDepth: 14
    functionLinenumber: 1625
    functionLinenumberEnd: 1630
    functionName: tests::test_resize_same_size
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Option::resize
    - crate::open
    - Path::new
    - io::Result::unwrap
    - Option::width
    - Option::height
    linkageType: ''
    returnType: void
    signature: fn test_resize_same_size()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1636,1
    - Dst: Path::new
      Src: /src/image/src/imageops/sample.rs:1636,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1634
    functionDepth: 14
    functionLinenumber: 1634
    functionLinenumberEnd: 1650
    functionName: tests::test_sample_bilinear
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - io::Result::unwrap
    - crate::open
    - Path::new
    linkageType: ''
    returnType: void
    signature: fn test_sample_bilinear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1655,1
    - Dst: Path::new
      Src: /src/image/src/imageops/sample.rs:1655,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1653
    functionDepth: 14
    functionLinenumber: 1653
    functionLinenumberEnd: 1669
    functionName: tests::test_sample_nearest
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - io::Result::unwrap
    - crate::open
    - Path::new
    linkageType: ''
    returnType: void
    signature: fn test_sample_nearest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/imageops/sample.rs:1673,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1674,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1675,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1676,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1671
    functionDepth: 1
    functionLinenumber: 1671
    functionLinenumberEnd: 1702
    functionName: tests::test_sample_bilinear_correctness
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_fn
    - Rgba
    linkageType: ''
    returnType: void
    signature: fn test_sample_bilinear_correctness()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/imageops/sample.rs:1707,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1708,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1709,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1710,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1711,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1714,1
    - Dst: sample_bilinear
      Src: /src/image/src/imageops/sample.rs:1715,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1715,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1717
      start: 1705
    functionDepth: 14
    functionLinenumber: 1705
    functionLinenumberEnd: 1717
    functionName: tests::bench_sample_bilinear
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - test::black_box
    - Rgba
    - sample_bilinear
    - iter
    - ImageBuffer::from_fn
    linkageType: ''
    returnType: void
    signature: 'fn bench_sample_bilinear(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/imageops/sample.rs:1721,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1722,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1723,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1724,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1719
    functionDepth: 1
    functionLinenumber: 1719
    functionLinenumberEnd: 1739
    functionName: tests::test_sample_nearest_correctness
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_fn
    - Rgba
    linkageType: ''
    returnType: void
    signature: fn test_sample_nearest_correctness()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1748,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1748,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1749,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1750,1
    - Dst: Vec::resize
      Src: /src/image/src/imageops/sample.rs:1750,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:1750,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:1750,1
    - Dst: u64::from
      Src: /src/image/src/imageops/sample.rs:1752,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:1752,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:1752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1753
      start: 1743
    functionDepth: 14
    functionLinenumber: 1743
    functionLinenumberEnd: 1753
    functionName: tests::bench_resize_same_size
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - test::black_box
    - Vec::height
    - crate::open
    - iter
    - Vec::width
    - Vec::resize
    - u64::from
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn bench_resize_same_size(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/sample.rs:1757,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1756
    functionDepth: 11
    functionLinenumber: 1756
    functionLinenumberEnd: 1759
    functionName: tests::test_issue_186
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::new
    - resize
    linkageType: ''
    returnType: void
    signature: fn test_issue_186()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1768,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1768,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1769,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1770,1
    - Dst: Vec::thumbnail
      Src: /src/image/src/imageops/sample.rs:1770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1773
      start: 1763
    functionDepth: 14
    functionLinenumber: 1763
    functionLinenumberEnd: 1773
    functionName: tests::bench_thumbnail
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - test::black_box
    - Vec::thumbnail
    - crate::open
    - iter
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn bench_thumbnail(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1782,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1782,1
    - Dst: thumbnail
      Src: /src/image/src/imageops/sample.rs:1782,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1783,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1784,1
    - Dst: Vec::thumbnail
      Src: /src/image/src/imageops/sample.rs:1784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1787
      start: 1777
    functionDepth: 14
    functionLinenumber: 1777
    functionLinenumberEnd: 1787
    functionName: tests::bench_thumbnail_upsize
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - test::black_box
    - Vec::thumbnail
    - crate::open
    - iter
    - io::Result::unwrap
    - thumbnail
    linkageType: ''
    returnType: void
    signature: 'fn bench_thumbnail_upsize(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1796,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1796,1
    - Dst: thumbnail
      Src: /src/image/src/imageops/sample.rs:1796,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1797,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1798,1
    - Dst: Vec::thumbnail
      Src: /src/image/src/imageops/sample.rs:1798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1801
      start: 1791
    functionDepth: 14
    functionLinenumber: 1791
    functionLinenumberEnd: 1801
    functionName: tests::bench_thumbnail_upsize_irregular
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - test::black_box
    - Vec::thumbnail
    - crate::open
    - iter
    - io::Result::unwrap
    - thumbnail
    linkageType: ''
    returnType: void
    signature: 'fn bench_thumbnail_upsize_irregular(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1811,1
    - Dst: crop_imm
      Src: /src/image/src/imageops/sample.rs:1812,1
    - Dst: SubImage::to_image
      Src: /src/image/src/imageops/sample.rs:1812,1
    - Dst: pixels
      Src: /src/image/src/imageops/sample.rs:1813,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - image
    - filter
    argTypes:
    - '&RgbaImage'
    - FilterType
    constantsTouched: []
    func_position:
      end: 1820
      start: 1810
    functionDepth: 11
    functionLinenumber: 1810
    functionLinenumberEnd: 1820
    functionName: t::e::s::t::s::::::::r::e::s::i::z::e::_::t::r::a::n::s::p::a::r::e::n::t::_::i::m::a::g::e::assert_resize
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - pixels
    - crop_imm
    - SubImage::to_image
    - resize
    linkageType: ''
    returnType: void
    signature: 'fn assert_resize(image: &RgbaImage, filter: FilterType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1826,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1826,1
    - Dst: Option::as_rgba8
      Src: /src/image/src/imageops/sample.rs:1827,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/sample.rs:1827,1
    - Dst: assert_resize
      Src: /src/image/src/imageops/sample.rs:1830,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1832
      start: 1805
    functionDepth: 14
    functionLinenumber: 1805
    functionLinenumberEnd: 1832
    functionName: tests::resize_transparent_image
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - crate::open
    - Option::as_rgba8
    - io::Result::unwrap
    - assert_resize
    linkageType: ''
    returnType: void
    signature: fn resize_transparent_image()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::RgbaImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1836,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1836,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1835
    functionDepth: 11
    functionLinenumber: 1835
    functionLinenumberEnd: 1839
    functionName: tests::bug_1600
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - crate::RgbaImage::from_raw
    - resize
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn bug_1600()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::GrayImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1843,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1843,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1845,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1842
    functionDepth: 11
    functionLinenumber: 1842
    functionLinenumberEnd: 1851
    functionName: tests::issue_2340
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - resize
    - crate::GrayImage::from_raw
    linkageType: ''
    returnType: void
    signature: fn issue_2340()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::GrayImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1856,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1856,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1857,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1854
    functionDepth: 11
    functionLinenumber: 1854
    functionLinenumberEnd: 1861
    functionName: tests::issue_2340_refl
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - resize
    - crate::GrayImage::from_raw
    linkageType: ''
    returnType: void
    signature: fn issue_2340_refl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: grayscale_with_type
      Src: /src/image/src/imageops/colorops.rs:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: grayscale
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - grayscale_with_type
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn grayscale<I: GenericImageView>(image: &I,) -> ImageBuffer<Luma<Subpixel<I>>,
      Vec<Subpixel<I>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: grayscale_with_type_alpha
      Src: /src/image/src/imageops/colorops.rs:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 24
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 24
    functionName: grayscale_alpha
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - grayscale_with_type_alpha
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn grayscale_alpha<I: GenericImageView>(image: &I,) -> ImageBuffer<LumaA<Subpixel<I>>,
      Vec<Subpixel<I>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/colorops.rs:33,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/colorops.rs:34,1
    - Dst: Vec::pixels
      Src: /src/image/src/imageops/colorops.rs:36,1
    - Dst: u8::to_luma
      Src: /src/image/src/imageops/colorops.rs:37,1
    - Dst: ImageBuffer::into_color
      Src: /src/image/src/imageops/colorops.rs:38,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/colorops.rs:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 44
      start: 27
    functionDepth: 10
    functionLinenumber: 27
    functionLinenumberEnd: 44
    functionName: grayscale_with_type
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 1
    functionsReached:
    - u8::to_luma
    - ImageBuffer::into_color
    - Vec::dimensions
    - ImageBuffer::new
    - Vec::pixels
    - SampleLayout::put_pixel
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn grayscale_with_type<NewPixel, I: GenericImageView>(image: &I,)
      -> ImageBuffer<NewPixel, Vec<NewPixel::Subpixel>>whereNewPixel: Pixel + FromColor<Luma<Subpixel<I>>>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/colorops.rs:53,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/colorops.rs:54,1
    - Dst: Vec::pixels
      Src: /src/image/src/imageops/colorops.rs:56,1
    - Dst: u8::to_luma_alpha
      Src: /src/image/src/imageops/colorops.rs:57,1
    - Dst: ImageBuffer::into_color
      Src: /src/image/src/imageops/colorops.rs:58,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/colorops.rs:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 10
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: grayscale_with_type_alpha
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 1
    functionsReached:
    - ImageBuffer::into_color
    - Vec::dimensions
    - ImageBuffer::new
    - u8::to_luma_alpha
    - Vec::pixels
    - SampleLayout::put_pixel
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn grayscale_with_type_alpha<NewPixel, I: GenericImageView>(image:
      &I,) -> ImageBuffer<NewPixel, Vec<NewPixel::Subpixel>>whereNewPixel: Pixel +
      FromColor<LumaA<Subpixel<I>>>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/colorops.rs:70,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/colorops.rs:74,1
    - Dst: invert
      Src: /src/image/src/imageops/colorops.rs:75,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/colorops.rs:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&mut I'
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 10
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: invert
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 2
    functionsReached:
    - Vec::dimensions
    - Vec::get_pixel
    - invert
    - Vec::put_pixel
    linkageType: ''
    returnType: void
    signature: 'pub fn invert<I: GenericImage>(image: &mut I)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/colorops.rs:93,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/colorops.rs:94,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:97,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:97,1
    - Dst: powi
      Src: /src/image/src/imageops/colorops.rs:99,1
    - Dst: Vec::pixels
      Src: /src/image/src/imageops/colorops.rs:101,1
    - Dst: u8::map
      Src: /src/image/src/imageops/colorops.rs:102,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:103,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:103,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:106,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:108,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:108,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/colorops.rs:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 2
    argNames:
    - image
    - contrast
    argTypes:
    - '&I'
    - f32
    constantsTouched: []
    func_position:
      end: 114
      start: 87
    functionDepth: 10
    functionLinenumber: 87
    functionLinenumberEnd: 114
    functionName: contrast
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - utils::clamp
    - powi
    - NumCast::from
    - Vec::dimensions
    - ImageBuffer::new
    - Self::unwrap
    - Vec::pixels
    - SampleLayout::put_pixel
    - u8::map
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn contrast<I, P, S>(image: &I, contrast: f32) -> ImageBuffer<P,
      Vec<S>>whereI: GenericImageView<Pixel = P>,P: Pixel<Subpixel = S> + ''static,S:
      Primitive + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/colorops.rs:125,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:128,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:128,1
    - Dst: powi
      Src: /src/image/src/imageops/colorops.rs:130,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/colorops.rs:135,1
    - Dst: Self::Pixel::map
      Src: /src/image/src/imageops/colorops.rs:135,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:136,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:136,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:139,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:141,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:141,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/colorops.rs:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 2
    argNames:
    - image
    - contrast
    argTypes:
    - '&mut I'
    - f32
    constantsTouched: []
    func_position:
      end: 147
      start: 121
    functionDepth: 10
    functionLinenumber: 121
    functionLinenumberEnd: 147
    functionName: contrast_in_place
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Vec::get_pixel
    - utils::clamp
    - Self::Pixel::map
    - powi
    - NumCast::from
    - Vec::put_pixel
    - Vec::dimensions
    - Self::unwrap
    linkageType: ''
    returnType: void
    signature: 'pub fn contrast_in_place<I>(image: &mut I, contrast: f32)whereI: GenericImage,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/colorops.rs:160,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/colorops.rs:161,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:164,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:164,1
    - Dst: Vec::pixels
      Src: /src/image/src/imageops/colorops.rs:166,1
    - Dst: u8::map_with_alpha
      Src: /src/image/src/imageops/colorops.rs:167,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:169,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:169,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:170,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:172,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:172,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/colorops.rs:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - image
    - value
    argTypes:
    - '&I'
    - i32
    constantsTouched: []
    func_position:
      end: 180
      start: 154
    functionDepth: 10
    functionLinenumber: 154
    functionLinenumberEnd: 180
    functionName: brighten
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - utils::clamp
    - u8::map_with_alpha
    - NumCast::from
    - Vec::dimensions
    - ImageBuffer::new
    - Self::unwrap
    - Vec::pixels
    - SampleLayout::put_pixel
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn brighten<I, P, S>(image: &I, value: i32) -> ImageBuffer<P,
      Vec<S>>whereI: GenericImageView<Pixel = P>,P: Pixel<Subpixel = S> + ''static,S:
      Primitive + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/colorops.rs:191,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:194,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:194,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/colorops.rs:199,1
    - Dst: Self::Pixel::map_with_alpha
      Src: /src/image/src/imageops/colorops.rs:199,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:201,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:201,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:202,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:204,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:204,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/colorops.rs:209,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 2
    argNames:
    - image
    - value
    argTypes:
    - '&mut I'
    - i32
    constantsTouched: []
    func_position:
      end: 212
      start: 187
    functionDepth: 10
    functionLinenumber: 187
    functionLinenumberEnd: 212
    functionName: brighten_in_place
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Vec::get_pixel
    - utils::clamp
    - Self::Pixel::map_with_alpha
    - NumCast::from
    - Vec::put_pixel
    - Vec::dimensions
    - Self::unwrap
    linkageType: ''
    returnType: void
    signature: 'pub fn brighten_in_place<I>(image: &mut I, value: i32)whereI: GenericImage,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/colorops.rs:226,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/colorops.rs:227,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:229,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:229,1
    - Dst: to_radians
      Src: /src/image/src/imageops/colorops.rs:231,1
    - Dst: cos
      Src: /src/image/src/imageops/colorops.rs:231,1
    - Dst: to_radians
      Src: /src/image/src/imageops/colorops.rs:232,1
    - Dst: sin
      Src: /src/image/src/imageops/colorops.rs:232,1
    - Dst: SampleLayout::enumerate_pixels_mut
      Src: /src/image/src/imageops/colorops.rs:247,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/colorops.rs:248,1
    - Dst: channels4
      Src: /src/image/src/imageops/colorops.rs:251,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:253,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:253,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:254,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:254,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:255,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:255,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:256,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:256,1
    - Dst: Pixel::from_channels
      Src: /src/image/src/imageops/colorops.rs:269,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:270,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:270,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:270,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:271,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:271,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:271,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:272,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:272,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:272,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:273,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:273,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 120
    argCount: 2
    argNames:
    - image
    - value
    argTypes:
    - '&I'
    - i32
    constantsTouched: []
    func_position:
      end: 278
      start: 220
    functionDepth: 10
    functionLinenumber: 220
    functionLinenumberEnd: 278
    functionName: huerotate
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Vec::get_pixel
    - utils::clamp
    - SampleLayout::enumerate_pixels_mut
    - to_radians
    - Pixel::from_channels
    - NumCast::from
    - cos
    - channels4
    - Vec::dimensions
    - sin
    - ImageBuffer::new
    - Self::unwrap
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn huerotate<I, P, S>(image: &I, value: i32) -> ImageBuffer<P,
      Vec<S>>whereI: GenericImageView<Pixel = P>,P: Pixel<Subpixel = S> + ''static,S:
      Primitive + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/colorops.rs:291,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:293,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:293,1
    - Dst: to_radians
      Src: /src/image/src/imageops/colorops.rs:295,1
    - Dst: cos
      Src: /src/image/src/imageops/colorops.rs:295,1
    - Dst: to_radians
      Src: /src/image/src/imageops/colorops.rs:296,1
    - Dst: sin
      Src: /src/image/src/imageops/colorops.rs:296,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/colorops.rs:315,1
    - Dst: u8::channels4
      Src: /src/image/src/imageops/colorops.rs:318,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:321,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:321,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:322,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:322,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:323,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:323,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:324,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:324,1
    - Dst: Pixel::from_channels
      Src: /src/image/src/imageops/colorops.rs:337,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:338,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:338,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:338,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:339,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:339,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:339,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:340,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:340,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:340,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:341,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:341,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:341,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/colorops.rs:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 121
    argCount: 2
    argNames:
    - image
    - value
    argTypes:
    - '&mut I'
    - i32
    constantsTouched: []
    func_position:
      end: 347
      start: 287
    functionDepth: 10
    functionLinenumber: 287
    functionLinenumberEnd: 347
    functionName: huerotate_in_place
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Vec::get_pixel
    - utils::clamp
    - u8::channels4
    - to_radians
    - Pixel::from_channels
    - NumCast::from
    - cos
    - Vec::put_pixel
    - Vec::dimensions
    - sin
    - Self::unwrap
    linkageType: ''
    returnType: void
    signature: 'pub fn huerotate_in_place<I>(image: &mut I, value: i32)whereI: GenericImage,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - index
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 361
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 361
    functionName: ColorMap::lookup
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: 'fn lookup(&self, index: usize) -> Option<Self::Color>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: ColorMap::has_lookup
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn has_lookup(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - color
    argTypes:
    - '&Luma<u8>'
    constantsTouched: []
    func_position:
      end: 413
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 413
    functionName: BiLevel::index_of
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: 'fn index_of(&self, color: &Luma<u8>) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/imageops/colorops.rs:418,1
    - Dst: into
      Src: /src/image/src/imageops/colorops.rs:418,1
    - Dst: Some
      Src: /src/image/src/imageops/colorops.rs:419,1
    - Dst: into
      Src: /src/image/src/imageops/colorops.rs:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 422
      start: 416
    functionDepth: 11
    functionLinenumber: 416
    functionLinenumberEnd: 422
    functionName: BiLevel::lookup
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Some
    - into
    linkageType: ''
    returnType: Option
    signature: 'fn lookup(&self, idx: usize) -> Option<Self::Color>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 427
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 427
    functionName: BiLevel::has_lookup
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn has_lookup(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BiLevel::index_of
      Src: /src/image/src/imageops/colorops.rs:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - color
    argTypes:
    - '&mut Luma<u8>'
    constantsTouched: []
    func_position:
      end: 434
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 434
    functionName: BiLevel::map_color
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - BiLevel::index_of
    linkageType: ''
    returnType: void
    signature: 'fn map_color(&self, color: &mut Luma<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: color_quant::NeuQuant::index_of
      Src: /src/image/src/imageops/colorops.rs:443,1
    - Dst: bool::channels
      Src: /src/image/src/imageops/colorops.rs:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - color
    argTypes:
    - '&Self::Color'
    constantsTouched: []
    func_position:
      end: 444
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 444
    functionName: color_quant::NeuQuant::index_of
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 1
    functionsReached:
    - bool::channels
    - color_quant::NeuQuant::index_of
    linkageType: ''
    returnType: usize
    signature: 'fn index_of(&self, color: &Self::Color) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: color_quant::NeuQuant::lookup
      Src: /src/image/src/imageops/colorops.rs:448,1
    - Dst: Option::map
      Src: /src/image/src/imageops/colorops.rs:448,1
    - Dst: into
      Src: /src/image/src/imageops/colorops.rs:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 449
      start: 447
    functionDepth: 13
    functionLinenumber: 447
    functionLinenumberEnd: 449
    functionName: color_quant::NeuQuant::lookup
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 1
    functionsReached:
    - Option::map
    - color_quant::NeuQuant::lookup
    - into
    linkageType: ''
    returnType: Option
    signature: 'fn lookup(&self, idx: usize) -> Option<Self::Color>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 454
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 454
    functionName: color_quant::NeuQuant::has_lookup
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn has_lookup(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: color_quant::NeuQuant::map_pixel
      Src: /src/image/src/imageops/colorops.rs:458,1
    - Dst: bool::channels_mut
      Src: /src/image/src/imageops/colorops.rs:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - color
    argTypes:
    - '&mut Self::Color'
    constantsTouched: []
    func_position:
      end: 459
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 459
    functionName: color_quant::NeuQuant::map_color
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - color_quant::NeuQuant::map_pixel
    - bool::channels_mut
    linkageType: ''
    returnType: void
    signature: 'fn map_color(&self, color: &mut Self::Color)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/imageops/colorops.rs:464,1
    - Dst: zip
      Src: /src/image/src/imageops/colorops.rs:464,1
    - Dst: u8::channels_mut
      Src: /src/image/src/imageops/colorops.rs:464,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/colorops.rs:464,1
    - Dst: <i16 as From<_>>::from
      Src: /src/image/src/imageops/colorops.rs:465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - pixel
    - error
    - factor
    argTypes:
    - '&mut P'
    - '[i16; 3]'
    - i16
    constantsTouched: []
    func_position:
      end: 471
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 471
    functionName: diffuse_err
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - u8::channels_mut
    - iter
    - <i16 as From<_>>::from
    - iter_mut
    - zip
    linkageType: ''
    returnType: void
    signature: 'fn diffuse_err<P: Pixel<Subpixel = u8>>(pixel: &mut P, error: [i16;
      3], factor: i16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 487
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 487
    functionName: do_dithering
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/colorops.rs:496,1
    - Dst: do_dithering
      Src: /src/image/src/imageops/colorops.rs:500,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:501,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:501,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:502,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:502,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:503,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:503,1
    - Dst: do_dithering
      Src: /src/image/src/imageops/colorops.rs:505,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:506,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:506,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:507,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:507,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:508,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:508,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:509,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:509,1
    - Dst: do_dithering
      Src: /src/image/src/imageops/colorops.rs:512,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:513,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:513,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:514,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:514,1
    - Dst: do_dithering
      Src: /src/image/src/imageops/colorops.rs:518,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:519,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:519,1
    - Dst: do_dithering
      Src: /src/image/src/imageops/colorops.rs:521,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:522,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:522,1
    - Dst: do_dithering
      Src: /src/image/src/imageops/colorops.rs:525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 83
    argCount: 2
    argNames:
    - image
    - color_map
    argTypes:
    - '&mut ImageBuffer<Pix, Vec<u8>>'
    - '&Map'
    constantsTouched: []
    func_position:
      end: 526
      start: 491
    functionDepth: 10
    functionLinenumber: 491
    functionLinenumberEnd: 526
    functionName: dither
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Vec::dimensions
    - Vec::get_pixel_mut
    - diffuse_err
    - do_dithering
    linkageType: ''
    returnType: void
    signature: 'pub fn dither<Pix, Map>(image: &mut ImageBuffer<Pix, Vec<u8>>, color_map:
      &Map)whereMap: ColorMap<Color = Pix> + ?Sized,Pix: Pixel<Subpixel = u8> + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/colorops.rs:537,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/colorops.rs:537,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/colorops.rs:537,1
    - Dst: Vec::pixels
      Src: /src/image/src/imageops/colorops.rs:538,1
    - Dst: Vec::zip
      Src: /src/image/src/imageops/colorops.rs:538,1
    - Dst: Option::pixels_mut
      Src: /src/image/src/imageops/colorops.rs:538,1
    - Dst: color::Luma
      Src: /src/image/src/imageops/colorops.rs:539,1
    - Dst: ImageResult::index_of
      Src: /src/image/src/imageops/colorops.rs:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - image
    - color_map
    argTypes:
    - '&ImageBuffer<Pix, Vec<u8>>'
    - '&Map'
    constantsTouched: []
    func_position:
      end: 542
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 542
    functionName: index_colors
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Vec::height
    - color::Luma
    - ImageResult::index_of
    - Vec::width
    - ImageBuffer::new
    - Vec::pixels
    - Vec::zip
    - Option::pixels_mut
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn index_colors<Pix, Map>(image: &ImageBuffer<Pix, Vec<u8>>,color_map:
      &Map,) -> ImageBuffer<Luma<u8>, Vec<u8>>whereMap: ColorMap<Color = Pix> + ?Sized,Pix:
      Pixel<Subpixel = u8> + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:583,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:583,1
    - Dst: dither
      Src: /src/image/src/imageops/colorops.rs:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 588
      start: 582
    functionDepth: 11
    functionLinenumber: 582
    functionLinenumberEnd: 588
    functionName: test::test_dither
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - dither
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_dither()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::put_pixel
      Src: /src/image/src/images/dynimage.rs:1433,1
    - Dst: crate::color::Rgba
      Src: /src/image/src/images/dynimage.rs:1433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - img
    - alpha_discarded
    argTypes:
    - super::DynamicImage
    - bool
    constantsTouched: []
    func_position:
      end: 1439
      start: 1431
    functionDepth: 1
    functionLinenumber: 1431
    functionLinenumberEnd: 1439
    functionName: test::test_grayscale
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - crate::color::Rgba
    - Option::put_pixel
    linkageType: ''
    returnType: void
    signature: 'fn test_grayscale(mut img: super::DynamicImage, alpha_discarded: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:604,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:604,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:607,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:607,1
    - Dst: invert
      Src: /src/image/src/imageops/colorops.rs:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 611
      start: 602
    functionDepth: 11
    functionLinenumber: 602
    functionLinenumberEnd: 611
    functionName: test::test_invert
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    - invert
    linkageType: ''
    returnType: void
    signature: fn test_invert()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:615,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:615,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:618,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 621
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 621
    functionName: test::test_brighten
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_brighten()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:626,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:626,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:629,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:629,1
    - Dst: brighten_in_place
      Src: /src/image/src/imageops/colorops.rs:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 633
      start: 624
    functionDepth: 11
    functionLinenumber: 624
    functionLinenumberEnd: 633
    functionName: test::test_brighten_place
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - brighten_in_place
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_brighten_place()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::pixels
      Src: /src/image/src/imageops/affine.rs:405,1
    - Dst: Vec::zip
      Src: /src/image/src/imageops/affine.rs:405,1
    - Dst: '&J::pixels'
      Src: /src/image/src/imageops/affine.rs:406,1
    - Dst: filter
      Src: /src/image/src/imageops/affine.rs:405,1
    - Dst: "pixels()\n            .zip(right.pixels())\n            .filter(|&(p,\
        \ q)| p != q)\n            .collect::<Vec<_>>"
      Src: /src/image/src/imageops/affine.rs:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - '&I'
    - '&J'
    constantsTouched: []
    func_position:
      end: 409
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 409
    functionName: test::pixel_diffs
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - u32::pixels
    - filter
    - '&J::pixels'
    - Vec::zip
    - "pixels()\n            .zip(right.pixels())\n            .filter(|&(p, q)| p\
      \ != q)\n            .collect::<Vec<_>>"
    linkageType: ''
    returnType: Vec
    signature: 'fn pixel_diffs<I, J, P>(left: &I, right: &J) -> Vec<((u32, u32, P),
      (u32, u32, P))>whereI: GenericImage<Pixel = P>,J: GenericImage<Pixel = P>,P:
      Pixel + Eq,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:14,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/affine.rs:15,1
    - Dst: rotate90_in
      Src: /src/image/src/imageops/affine.rs:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 18
      start: 8
    functionDepth: 10
    functionLinenumber: 8
    functionLinenumberEnd: 18
    functionName: rotate90
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Vec::dimensions
    - ImageBuffer::new
    - rotate90_in
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn rotate90<I: GenericImageView>(image: &I,) -> ImageBuffer<I::Pixel,
      Vec<<I::Pixel as Pixel>::Subpixel>>whereI::Pixel: ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:27,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/affine.rs:28,1
    - Dst: rotate180_in
      Src: /src/image/src/imageops/affine.rs:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 10
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: rotate180
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Vec::dimensions
    - ImageBuffer::new
    - rotate180_in
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn rotate180<I: GenericImageView>(image: &I,) -> ImageBuffer<I::Pixel,
      Vec<<I::Pixel as Pixel>::Subpixel>>whereI::Pixel: ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:40,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/affine.rs:41,1
    - Dst: rotate270_in
      Src: /src/image/src/imageops/affine.rs:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 10
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: rotate270
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Vec::dimensions
    - rotate270_in
    - ImageBuffer::new
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn rotate270<I: GenericImageView>(image: &I,) -> ImageBuffer<I::Pixel,
      Vec<<I::Pixel as Pixel>::Subpixel>>whereI::Pixel: ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:56,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::dimensions'
      Src: /src/image/src/imageops/affine.rs:56,1
    - Dst: Err
      Src: /src/image/src/imageops/affine.rs:58,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/imageops/affine.rs:58,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/imageops/affine.rs:58,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:65,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
      Src: /src/image/src/imageops/affine.rs:66,1
    - Dst: Ok
      Src: /src/image/src/imageops/affine.rs:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - image
    - destination
    argTypes:
    - '&I'
    - '&mut ImageBuffer<I::Pixel, Container>'
    constantsTouched: []
    func_position:
      end: 70
      start: 47
    functionDepth: 10
    functionLinenumber: 47
    functionLinenumberEnd: 70
    functionName: rotate90_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::get_pixel
    - Err
    - ParameterError::from_kind
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - Vec::dimensions
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - Ok
    - ImageError::Parameter
    linkageType: ''
    returnType: crate::ImageResult
    signature: 'pub fn rotate90_in<I, Container>(image: &I,destination: &mut ImageBuffer<I::Pixel,
      Container>,) -> crate::ImageResult<()>whereI: GenericImageView,I::Pixel: ''static,Container:
      std::ops::DerefMut<Target = [<I::Pixel as Pixel>::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:82,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::dimensions'
      Src: /src/image/src/imageops/affine.rs:82,1
    - Dst: Err
      Src: /src/image/src/imageops/affine.rs:84,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/imageops/affine.rs:84,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/imageops/affine.rs:84,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:91,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
      Src: /src/image/src/imageops/affine.rs:92,1
    - Dst: Ok
      Src: /src/image/src/imageops/affine.rs:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - image
    - destination
    argTypes:
    - '&I'
    - '&mut ImageBuffer<I::Pixel, Container>'
    constantsTouched: []
    func_position:
      end: 96
      start: 73
    functionDepth: 10
    functionLinenumber: 73
    functionLinenumberEnd: 96
    functionName: rotate180_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::get_pixel
    - Err
    - ParameterError::from_kind
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - Vec::dimensions
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - Ok
    - ImageError::Parameter
    linkageType: ''
    returnType: crate::ImageResult
    signature: 'pub fn rotate180_in<I, Container>(image: &I,destination: &mut ImageBuffer<I::Pixel,
      Container>,) -> crate::ImageResult<()>whereI: GenericImageView,I::Pixel: ''static,Container:
      std::ops::DerefMut<Target = [<I::Pixel as Pixel>::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:108,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::dimensions'
      Src: /src/image/src/imageops/affine.rs:108,1
    - Dst: Err
      Src: /src/image/src/imageops/affine.rs:110,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/imageops/affine.rs:110,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/imageops/affine.rs:110,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:117,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
      Src: /src/image/src/imageops/affine.rs:118,1
    - Dst: Ok
      Src: /src/image/src/imageops/affine.rs:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - image
    - destination
    argTypes:
    - '&I'
    - '&mut ImageBuffer<I::Pixel, Container>'
    constantsTouched: []
    func_position:
      end: 122
      start: 99
    functionDepth: 10
    functionLinenumber: 99
    functionLinenumberEnd: 122
    functionName: rotate270_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::get_pixel
    - Err
    - ParameterError::from_kind
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - Vec::dimensions
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - Ok
    - ImageError::Parameter
    linkageType: ''
    returnType: crate::ImageResult
    signature: 'pub fn rotate270_in<I, Container>(image: &I,destination: &mut ImageBuffer<I::Pixel,
      Container>,) -> crate::ImageResult<()>whereI: GenericImageView,I::Pixel: ''static,Container:
      std::ops::DerefMut<Target = [<I::Pixel as Pixel>::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:131,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/affine.rs:132,1
    - Dst: flip_horizontal_in
      Src: /src/image/src/imageops/affine.rs:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 135
      start: 125
    functionDepth: 10
    functionLinenumber: 125
    functionLinenumberEnd: 135
    functionName: flip_horizontal
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Vec::dimensions
    - ImageBuffer::new
    - flip_horizontal_in
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn flip_horizontal<I: GenericImageView>(image: &I,) -> ImageBuffer<I::Pixel,
      Vec<<I::Pixel as Pixel>::Subpixel>>whereI::Pixel: ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:144,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/affine.rs:145,1
    - Dst: flip_vertical_in
      Src: /src/image/src/imageops/affine.rs:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 10
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: flip_vertical
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Vec::dimensions
    - flip_vertical_in
    - ImageBuffer::new
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn flip_vertical<I: GenericImageView>(image: &I,) -> ImageBuffer<I::Pixel,
      Vec<<I::Pixel as Pixel>::Subpixel>>whereI::Pixel: ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:160,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::dimensions'
      Src: /src/image/src/imageops/affine.rs:160,1
    - Dst: Err
      Src: /src/image/src/imageops/affine.rs:162,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/imageops/affine.rs:162,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/imageops/affine.rs:162,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:169,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
      Src: /src/image/src/imageops/affine.rs:170,1
    - Dst: Ok
      Src: /src/image/src/imageops/affine.rs:173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - image
    - destination
    argTypes:
    - '&I'
    - '&mut ImageBuffer<I::Pixel, Container>'
    constantsTouched: []
    func_position:
      end: 174
      start: 151
    functionDepth: 10
    functionLinenumber: 151
    functionLinenumberEnd: 174
    functionName: flip_horizontal_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::get_pixel
    - Err
    - ParameterError::from_kind
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - Vec::dimensions
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - Ok
    - ImageError::Parameter
    linkageType: ''
    returnType: crate::ImageResult
    signature: 'pub fn flip_horizontal_in<I, Container>(image: &I,destination: &mut
      ImageBuffer<I::Pixel, Container>,) -> crate::ImageResult<()>whereI: GenericImageView,I::Pixel:
      ''static,Container: std::ops::DerefMut<Target = [<I::Pixel as Pixel>::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:186,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::dimensions'
      Src: /src/image/src/imageops/affine.rs:186,1
    - Dst: Err
      Src: /src/image/src/imageops/affine.rs:188,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/imageops/affine.rs:188,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/imageops/affine.rs:188,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:195,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
      Src: /src/image/src/imageops/affine.rs:196,1
    - Dst: Ok
      Src: /src/image/src/imageops/affine.rs:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - image
    - destination
    argTypes:
    - '&I'
    - '&mut ImageBuffer<I::Pixel, Container>'
    constantsTouched: []
    func_position:
      end: 200
      start: 177
    functionDepth: 10
    functionLinenumber: 177
    functionLinenumberEnd: 200
    functionName: flip_vertical_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::get_pixel
    - Err
    - ParameterError::from_kind
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - Vec::dimensions
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - Ok
    - ImageError::Parameter
    linkageType: ''
    returnType: crate::ImageResult
    signature: 'pub fn flip_vertical_in<I, Container>(image: &I,destination: &mut
      ImageBuffer<I::Pixel, Container>,) -> crate::ImageResult<()>whereI: GenericImageView,I::Pixel:
      ''static,Container: std::ops::DerefMut<Target = [<I::Pixel as Pixel>::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:204,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:208,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:213,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:214,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:215,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:223,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:226,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:227,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&mut I'
    constantsTouched: []
    func_position:
      end: 231
      start: 203
    functionDepth: 10
    functionLinenumber: 203
    functionLinenumberEnd: 231
    functionName: rotate180_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Vec::dimensions
    - Vec::get_pixel
    - Vec::put_pixel
    linkageType: ''
    returnType: void
    signature: 'pub fn rotate180_in_place<I: GenericImage>(image: &mut I)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:235,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:240,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:241,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:242,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&mut I'
    constantsTouched: []
    func_position:
      end: 246
      start: 234
    functionDepth: 10
    functionLinenumber: 234
    functionLinenumberEnd: 246
    functionName: flip_horizontal_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Vec::dimensions
    - Vec::get_pixel
    - Vec::put_pixel
    linkageType: ''
    returnType: void
    signature: 'pub fn flip_horizontal_in_place<I: GenericImage>(image: &mut I)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:250,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:255,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:256,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:257,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&mut I'
    constantsTouched: []
    func_position:
      end: 261
      start: 249
    functionDepth: 10
    functionLinenumber: 249
    functionLinenumberEnd: 261
    functionName: flip_vertical_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Vec::dimensions
    - Vec::get_pixel
    - Vec::put_pixel
    linkageType: ''
    returnType: void
    signature: 'pub fn flip_vertical_in_place<I: GenericImage>(image: &mut I)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:307,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:307,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:310,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 313
    functionName: test::test_rotate90
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_rotate90()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:318,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:318,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:321,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 324
    functionName: test::test_rotate180
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_rotate180()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:329,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:329,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:332,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 335
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 335
    functionName: test::test_rotate270
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_rotate270()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:340,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:340,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:343,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:343,1
    - Dst: rotate180_in_place
      Src: /src/image/src/imageops/affine.rs:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 338
    functionDepth: 11
    functionLinenumber: 338
    functionLinenumberEnd: 348
    functionName: test::test_rotate180_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - rotate180_in_place
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_rotate180_in_place()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:353,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:353,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:356,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 359
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 359
    functionName: test::test_flip_horizontal
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_flip_horizontal()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:364,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:364,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:367,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 370
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 370
    functionName: test::test_flip_vertical
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_flip_vertical()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:375,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:375,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:378,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:378,1
    - Dst: flip_horizontal_in_place
      Src: /src/image/src/imageops/affine.rs:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 383
      start: 373
    functionDepth: 11
    functionLinenumber: 373
    functionLinenumberEnd: 383
    functionName: test::test_flip_horizontal_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    - flip_horizontal_in_place
    linkageType: ''
    returnType: void
    signature: fn test_flip_horizontal_in_place()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:388,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:388,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:391,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:391,1
    - Dst: flip_vertical_in_place
      Src: /src/image/src/imageops/affine.rs:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 386
    functionDepth: 11
    functionLinenumber: 386
    functionLinenumberEnd: 396
    functionName: test::test_flip_vertical_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - flip_vertical_in_place
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_flip_vertical_in_place()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crop_dimms
      Src: /src/image/src/imageops/mod.rs:50,1
    - Dst: SubImage::new
      Src: /src/image/src/imageops/mod.rs:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - image
    - x
    - y
    - width
    - height
    argTypes:
    - '&mut I'
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: crop
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - crop_dimms
    - SubImage::new
    linkageType: ''
    returnType: SubImage
    signature: 'pub fn crop<I: GenericImageView>(image: &mut I,x: u32,y: u32,width:
      u32,height: u32,) -> SubImage<&mut I>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crop_dimms
      Src: /src/image/src/imageops/mod.rs:63,1
    - Dst: SubImage::new
      Src: /src/image/src/imageops/mod.rs:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - image
    - x
    - y
    - width
    - height
    argTypes:
    - '&I'
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 65
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: crop_imm
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 1
    functionsReached:
    - crop_dimms
    - SubImage::new
    linkageType: ''
    returnType: SubImage
    signature: 'pub fn crop_imm<I: GenericImageView>(image: &I,x: u32,y: u32,width:
      u32,height: u32,) -> SubImage<&I>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/mod.rs:74,1
    - Dst: cmp::min
      Src: /src/image/src/imageops/mod.rs:76,1
    - Dst: cmp::min
      Src: /src/image/src/imageops/mod.rs:77,1
    - Dst: cmp::min
      Src: /src/image/src/imageops/mod.rs:79,1
    - Dst: cmp::min
      Src: /src/image/src/imageops/mod.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - image
    - x
    - y
    - width
    - height
    argTypes:
    - '&I'
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 83
      start: 67
    functionDepth: 10
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: crop_dimms
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 2
    functionsReached:
    - Vec::dimensions
    - cmp::min
    linkageType: ''
    returnType: (u32, u32, u32, u32)
    signature: 'fn crop_dimms<I: GenericImageView>(image: &I,x: u32,y: u32,width:
      u32,height: u32,) -> (u32, u32, u32, u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: saturating_add
      Src: /src/image/src/imageops/mod.rs:147,1
    - Dst: min
      Src: /src/image/src/imageops/mod.rs:147,1
    - Dst: saturating_sub
      Src: /src/image/src/imageops/mod.rs:147,1
    - Dst: saturating_add
      Src: /src/image/src/imageops/mod.rs:151,1
    - Dst: min
      Src: /src/image/src/imageops/mod.rs:151,1
    - Dst: saturating_sub
      Src: /src/image/src/imageops/mod.rs:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - x
    - y
    argTypes:
    - (u32, u32)
    - (u32, u32)
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 156
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 156
    functionName: overlay_bounds
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - saturating_add
    - saturating_sub
    - min
    linkageType: ''
    returnType: (u32, u32)
    signature: 'pub fn overlay_bounds((bottom_width, bottom_height): (u32, u32),(top_width,
      top_height): (u32, u32),x: u32,y: u32,) -> (u32, u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:181,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:182,1
    - Dst: saturating_add
      Src: /src/image/src/imageops/mod.rs:183,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:183,1
    - Dst: Option::saturating_add
      Src: /src/image/src/imageops/mod.rs:184,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:184,1
    - Dst: saturating_add
      Src: /src/image/src/imageops/mod.rs:190,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:190,1
    - Dst: Option::saturating_add
      Src: /src/image/src/imageops/mod.rs:191,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:191,1
    - Dst: clamp
      Src: /src/image/src/imageops/mod.rs:196,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:196,1
    - Dst: clamp
      Src: /src/image/src/imageops/mod.rs:197,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:197,1
    - Dst: clamp
      Src: /src/image/src/imageops/mod.rs:198,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:198,1
    - Dst: Option::clamp
      Src: /src/image/src/imageops/mod.rs:199,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:199,1
    - Dst: saturating_mul
      Src: /src/image/src/imageops/mod.rs:209,1
    - Dst: T::clamp
      Src: /src/image/src/imageops/mod.rs:209,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:209,1
    - Dst: Option::saturating_mul
      Src: /src/image/src/imageops/mod.rs:210,1
    - Dst: T::clamp
      Src: /src/image/src/imageops/mod.rs:210,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 59
    argCount: 4
    argNames:
    - x
    - y
    argTypes:
    - (u32, u32)
    - (u32, u32)
    - i64
    - i64
    constantsTouched: []
    func_position:
      end: 220
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 220
    functionName: overlay_bounds_ext
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - Option::clamp
    - Option::saturating_add
    - i64::from
    - saturating_add
    - clamp
    - Option::saturating_mul
    - T::clamp
    - saturating_mul
    linkageType: ''
    returnType: (u32, u32, u32, u32, u32, u32)
    signature: 'fn overlay_bounds_ext((bottom_width, bottom_height): (u32, u32),(top_width,
      top_height): (u32, u32),x: i64,y: i64,) -> (u32, u32, u32, u32, u32, u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut I::dimensions'
      Src: /src/image/src/imageops/mod.rs:228,1
    - Dst: u32::dimensions
      Src: /src/image/src/imageops/mod.rs:229,1
    - Dst: overlay_bounds_ext
      Src: /src/image/src/imageops/mod.rs:233,1
    - Dst: u32::get_pixel
      Src: /src/image/src/imageops/mod.rs:237,1
    - Dst: '&mut I::get_pixel'
      Src: /src/image/src/imageops/mod.rs:238,1
    - Dst: Self::Pixel::blend
      Src: /src/image/src/imageops/mod.rs:239,1
    - Dst: '&mut I::put_pixel'
      Src: /src/image/src/imageops/mod.rs:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 4
    argNames:
    - bottom
    - top
    - x
    - y
    argTypes:
    - '&mut I'
    - '&J'
    - i64
    - i64
    constantsTouched: []
    func_position:
      end: 244
      start: 223
    functionDepth: 10
    functionLinenumber: 223
    functionLinenumberEnd: 244
    functionName: overlay
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - u32::dimensions
    - Self::Pixel::blend
    - '&mut I::get_pixel'
    - '&mut I::put_pixel'
    - '&mut I::dimensions'
    - overlay_bounds_ext
    - u32::get_pixel
    linkageType: ''
    returnType: void
    signature: 'pub fn overlay<I, J>(bottom: &mut I, top: &J, x: i64, y: i64)whereI:
      GenericImage,J: GenericImageView<Pixel = I::Pixel>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut I::width'
      Src: /src/image/src/imageops/mod.rs:263,1
    - Dst: step_by
      Src: /src/image/src/imageops/mod.rs:263,1
    - Dst: u32::width
      Src: /src/image/src/imageops/mod.rs:263,1
    - Dst: '&mut I::height'
      Src: /src/image/src/imageops/mod.rs:264,1
    - Dst: step_by
      Src: /src/image/src/imageops/mod.rs:264,1
    - Dst: u32::height
      Src: /src/image/src/imageops/mod.rs:264,1
    - Dst: overlay
      Src: /src/image/src/imageops/mod.rs:265,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:265,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - bottom
    - top
    argTypes:
    - '&mut I'
    - '&J'
    constantsTouched: []
    func_position:
      end: 268
      start: 258
    functionDepth: 11
    functionLinenumber: 258
    functionLinenumberEnd: 268
    functionName: tile
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - '&mut I::width'
    - u32::width
    - '&mut I::height'
    - i64::from
    - u32::height
    - step_by
    - overlay
    linkageType: ''
    returnType: void
    signature: 'pub fn tile<I, J>(bottom: &mut I, top: &J)whereI: GenericImage,J:
      GenericImageView<Pixel = I::Pixel>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::height
      Src: /src/image/src/imageops/mod.rs:290,1
    - Dst: ImageResult::map2
      Src: /src/image/src/imageops/mod.rs:291,1
    - Dst: <S::Ratio as num_traits::NumCast>::from
      Src: /src/image/src/imageops/mod.rs:292,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/mod.rs:292,1
    - Dst: <S::Ratio as num_traits::NumCast>::from
      Src: /src/image/src/imageops/mod.rs:293,1
    - Dst: Option::height
      Src: /src/image/src/imageops/mod.rs:293,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/mod.rs:293,1
    - Dst: S::lerp
      Src: /src/image/src/imageops/mod.rs:294,1
    - Dst: Option::width
      Src: /src/image/src/imageops/mod.rs:297,1
    - Dst: Option::put_pixel
      Src: /src/image/src/imageops/mod.rs:298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 3
    argNames:
    - img
    - start
    - stop
    argTypes:
    - '&mut I'
    - '&P'
    - '&P'
    constantsTouched: []
    func_position:
      end: 301
      start: 284
    functionDepth: 4
    functionLinenumber: 284
    functionLinenumberEnd: 301
    functionName: vertical_gradient
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - <S::Ratio as num_traits::NumCast>::from
    - Option::width
    - S::lerp
    - Self::unwrap
    - Option::put_pixel
    - ImageResult::map2
    - Option::height
    linkageType: ''
    returnType: void
    signature: 'pub fn vertical_gradient<S, P, I>(img: &mut I, start: &P, stop: &P)whereI:
      GenericImage<Pixel = P>,P: Pixel<Subpixel = S> + ''static,S: Primitive + Lerp
      + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::width
      Src: /src/image/src/imageops/mod.rs:323,1
    - Dst: ImageResult::map2
      Src: /src/image/src/imageops/mod.rs:324,1
    - Dst: <S::Ratio as num_traits::NumCast>::from
      Src: /src/image/src/imageops/mod.rs:325,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/mod.rs:325,1
    - Dst: <S::Ratio as num_traits::NumCast>::from
      Src: /src/image/src/imageops/mod.rs:326,1
    - Dst: Option::width
      Src: /src/image/src/imageops/mod.rs:326,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/mod.rs:326,1
    - Dst: S::lerp
      Src: /src/image/src/imageops/mod.rs:327,1
    - Dst: Option::height
      Src: /src/image/src/imageops/mod.rs:330,1
    - Dst: Option::put_pixel
      Src: /src/image/src/imageops/mod.rs:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 3
    argNames:
    - img
    - start
    - stop
    argTypes:
    - '&mut I'
    - '&P'
    - '&P'
    constantsTouched: []
    func_position:
      end: 334
      start: 317
    functionDepth: 4
    functionLinenumber: 317
    functionLinenumberEnd: 334
    functionName: horizontal_gradient
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - <S::Ratio as num_traits::NumCast>::from
    - Option::width
    - S::lerp
    - Self::unwrap
    - Option::put_pixel
    - ImageResult::map2
    - Option::height
    linkageType: ''
    returnType: void
    signature: 'pub fn horizontal_gradient<S, P, I>(img: &mut I, start: &P, stop:
      &P)whereI: GenericImage<Pixel = P>,P: Pixel<Subpixel = S> + ''static,S: Primitive
      + Lerp + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut I::dimensions'
      Src: /src/image/src/imageops/mod.rs:342,1
    - Dst: u32::dimensions
      Src: /src/image/src/imageops/mod.rs:343,1
    - Dst: overlay_bounds_ext
      Src: /src/image/src/imageops/mod.rs:347,1
    - Dst: u32::get_pixel
      Src: /src/image/src/imageops/mod.rs:351,1
    - Dst: '&mut I::put_pixel'
      Src: /src/image/src/imageops/mod.rs:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - bottom
    - top
    - x
    - y
    argTypes:
    - '&mut I'
    - '&J'
    - i64
    - i64
    constantsTouched: []
    func_position:
      end: 355
      start: 337
    functionDepth: 10
    functionLinenumber: 337
    functionLinenumberEnd: 355
    functionName: replace
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - u32::dimensions
    - '&mut I::put_pixel'
    - '&mut I::dimensions'
    - overlay_bounds_ext
    - u32::get_pixel
    linkageType: ''
    returnType: void
    signature: 'pub fn replace<I, J>(bottom: &mut I, top: &J, x: i64, y: i64)whereI:
      GenericImage,J: GenericImageView<Pixel = I::Pixel>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 402
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 402
    functionName: tests::test_overlay_bounds_ext
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_overlay_bounds_ext()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/mod.rs:407,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/imageops/mod.rs:408,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:408,1
    - Dst: overlay
      Src: /src/image/src/imageops/mod.rs:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 415
      start: 406
    functionDepth: 11
    functionLinenumber: 406
    functionLinenumberEnd: 415
    functionName: tests::test_image_in_image
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - Rgb
    - overlay
    - ImageBuffer::new
    - ImageBuffer::from_pixel
    linkageType: ''
    returnType: void
    signature: fn test_image_in_image()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/mod.rs:420,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/imageops/mod.rs:421,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:421,1
    - Dst: overlay
      Src: /src/image/src/imageops/mod.rs:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 419
    functionDepth: 11
    functionLinenumber: 419
    functionLinenumberEnd: 426
    functionName: tests::test_image_in_image_outside_of_bounds
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - Rgb
    - overlay
    - ImageBuffer::new
    - ImageBuffer::from_pixel
    linkageType: ''
    returnType: void
    signature: fn test_image_in_image_outside_of_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/mod.rs:432,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/imageops/mod.rs:433,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:433,1
    - Dst: overlay
      Src: /src/image/src/imageops/mod.rs:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 438
      start: 431
    functionDepth: 11
    functionLinenumber: 431
    functionLinenumberEnd: 438
    functionName: tests::test_image_outside_image_no_wrap_around
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - Rgb
    - overlay
    - ImageBuffer::new
    - ImageBuffer::from_pixel
    linkageType: ''
    returnType: void
    signature: fn test_image_outside_image_no_wrap_around()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/mod.rs:443,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/imageops/mod.rs:444,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:444,1
    - Dst: overlay
      Src: /src/image/src/imageops/mod.rs:446,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:449,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 442
    functionDepth: 11
    functionLinenumber: 442
    functionLinenumberEnd: 455
    functionName: tests::test_image_coordinate_overflow
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - i64::from
    - ImageBuffer::new
    - Rgb
    - overlay
    - ImageBuffer::from_pixel
    linkageType: ''
    returnType: void
    signature: fn test_image_coordinate_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/mod.rs:462,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:464,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:465,1
    - Dst: horizontal_gradient
      Src: /src/image/src/imageops/mod.rs:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 471
      start: 461
    functionDepth: 5
    functionLinenumber: 461
    functionLinenumberEnd: 471
    functionName: tests::test_image_horizontal_gradient_limits
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - Rgb
    - horizontal_gradient
    - ImageBuffer::new
    linkageType: ''
    returnType: void
    signature: fn test_image_horizontal_gradient_limits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/mod.rs:476,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:478,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:479,1
    - Dst: vertical_gradient
      Src: /src/image/src/imageops/mod.rs:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 475
    functionDepth: 5
    functionLinenumber: 475
    functionLinenumberEnd: 485
    functionName: tests::test_image_vertical_gradient_limits
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - Rgb
    - ImageBuffer::new
    - vertical_gradient
    linkageType: ''
    returnType: void
    signature: fn test_image_vertical_gradient_limits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:490,1
    - Dst: blur
      Src: /src/image/src/imageops/mod.rs:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 12
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: tests::test_blur_zero
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - blur
    - RgbaImage::new
    linkageType: ''
    returnType: void
    signature: fn test_blur_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:497,1
    - Dst: fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 499
      start: 496
    functionDepth: 12
    functionLinenumber: 496
    functionLinenumberEnd: 499
    functionName: tests::test_fast_blur_zero
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - fast_blur::fast_blur
    - RgbaImage::new
    linkageType: ''
    returnType: void
    signature: fn test_fast_blur_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:504,1
    - Dst: fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 506
      start: 503
    functionDepth: 12
    functionLinenumber: 503
    functionLinenumberEnd: 506
    functionName: tests::test_fast_blur_negative
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - fast_blur::fast_blur
    - RgbaImage::new
    linkageType: ''
    returnType: void
    signature: fn test_fast_blur_negative()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:511,1
    - Dst: fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 513
      start: 510
    functionDepth: 12
    functionLinenumber: 510
    functionLinenumberEnd: 513
    functionName: tests::test_fast_large_sigma
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - fast_blur::fast_blur
    - RgbaImage::new
    linkageType: ''
    returnType: void
    signature: fn test_fast_large_sigma()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:518,1
    - Dst: fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:519,1
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:520,1
    - Dst: fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:521,1
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:522,1
    - Dst: fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 524
      start: 517
    functionDepth: 12
    functionLinenumber: 517
    functionLinenumberEnd: 524
    functionName: tests::test_fast_blur_empty
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - fast_blur::fast_blur
    - RgbaImage::new
    linkageType: ''
    returnType: void
    signature: fn test_fast_blur_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::new
      Src: /src/image/src/imageops/mod.rs:529,1
    - Dst: fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 531
      start: 528
    functionDepth: 12
    functionLinenumber: 528
    functionLinenumberEnd: 531
    functionName: tests::test_fast_blur_3_channels
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - RgbImage::new
    - fast_blur::fast_blur
    linkageType: ''
    returnType: void
    signature: fn test_fast_blur_3_channels()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GrayAlphaImage::new
      Src: /src/image/src/imageops/mod.rs:536,1
    - Dst: fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 538
      start: 535
    functionDepth: 12
    functionLinenumber: 535
    functionLinenumberEnd: 538
    functionName: tests::test_fast_blur_2_channels
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - GrayAlphaImage::new
    - fast_blur::fast_blur
    linkageType: ''
    returnType: void
    signature: fn test_fast_blur_2_channels()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GrayImage::new
      Src: /src/image/src/imageops/mod.rs:543,1
    - Dst: fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 545
      start: 542
    functionDepth: 12
    functionLinenumber: 542
    functionLinenumberEnd: 545
    functionName: tests::test_fast_blur_1_channels
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - GrayImage::new
    - fast_blur::fast_blur
    linkageType: ''
    returnType: void
    signature: fn test_fast_blur_1_channels()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/mod.rs:554,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/mod.rs:554,1
    - Dst: Vec::blur_advanced
      Src: /src/image/src/imageops/mod.rs:555,1
    - Dst: GaussianBlurParameters::new_from_sigma
      Src: /src/image/src/imageops/mod.rs:556,1
    - Dst: ImageBuffer::to_rgb8
      Src: /src/image/src/imageops/mod.rs:555,1
    - Dst: RgbImage::as_flat_samples
      Src: /src/image/src/imageops/mod.rs:558,1
    - Dst: FlatSamples::as_slice
      Src: /src/image/src/imageops/mod.rs:559,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/mod.rs:560,1
    - Dst: ImageBuffer::to_rgb8
      Src: /src/image/src/imageops/mod.rs:560,1
    - Dst: RgbImage::as_flat_samples
      Src: /src/image/src/imageops/mod.rs:561,1
    - Dst: FlatSamples::as_slice
      Src: /src/image/src/imageops/mod.rs:562,1
    - Dst: '&[T]::iter'
      Src: /src/image/src/imageops/mod.rs:564,1
    - Dst: zip
      Src: /src/image/src/imageops/mod.rs:564,1
    - Dst: '&[T]::iter'
      Src: /src/image/src/imageops/mod.rs:566,1
    - Dst: map
      Src: /src/image/src/imageops/mod.rs:564,1
    - Dst: f32::from
      Src: /src/image/src/imageops/mod.rs:567,1
    - Dst: f32::from
      Src: /src/image/src/imageops/mod.rs:567,1
    - Dst: f32::from
      Src: /src/image/src/imageops/mod.rs:567,1
    - Dst: "iter()\n            .zip(image_blurred_fast_bytes.iter())\n          \
        \  .map(|(a, b)| (f32::from(*a) - f32::from(*b)) / f32::from(*a))\n      \
        \      .sum::<f32>"
      Src: /src/image/src/imageops/mod.rs:564,1
    - Dst: '&[T]::len'
      Src: /src/image/src/imageops/mod.rs:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 571
      start: 549
    functionDepth: 14
    functionLinenumber: 549
    functionLinenumberEnd: 571
    functionName: tests::fast_blur_approximates_gaussian_blur_well
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - Vec::blur_advanced
    - f32::from
    - GaussianBlurParameters::new_from_sigma
    - crate::open
    - map
    - Vec::fast_blur
    - '&[T]::len'
    - ImageBuffer::to_rgb8
    - RgbImage::as_flat_samples
    - '&[T]::iter'
    - zip
    - FlatSamples::as_slice
    - io::Result::unwrap
    - "iter()\n            .zip(image_blurred_fast_bytes.iter())\n            .map(|(a,\
      \ b)| (f32::from(*a) - f32::from(*b)) / f32::from(*a))\n            .sum::<f32>"
    linkageType: ''
    returnType: void
    signature: fn fast_blur_approximates_gaussian_blur_well()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&ImageBuffer<P, Vec<P::Subpixel>>::dimensions'
      Src: /src/image/src/imageops/fast_blur.rs:25,1
    - Dst: '&ImageBuffer<P, Vec<P::Subpixel>>::clone'
      Src: /src/image/src/imageops/fast_blur.rs:28,1
    - Dst: boxes_for_gauss
      Src: /src/image/src/imageops/fast_blur.rs:33,1
    - Dst: Vec::is_empty
      Src: /src/image/src/imageops/fast_blur.rs:34,1
    - Dst: '&ImageBuffer<P, Vec<P::Subpixel>>::clone'
      Src: /src/image/src/imageops/fast_blur.rs:35,1
    - Dst: '&ImageBuffer<P, Vec<P::Subpixel>>::as_flat_samples'
      Src: /src/image/src/imageops/fast_blur.rs:38,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/fast_blur.rs:40,1
    - Dst: and_then
      Src: /src/image/src/imageops/fast_blur.rs:40,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/fast_blur.rs:42,1
    - Dst: test_radius_size
      Src: /src/image/src/imageops/fast_blur.rs:57,1
    - Dst: test_radius_size
      Src: /src/image/src/imageops/fast_blur.rs:58,1
    - Dst: box_blur_horizontal_pass_strategy::<P, P::Subpixel>
      Src: /src/image/src/imageops/fast_blur.rs:60,1
    - Dst: box_blur_vertical_pass_strategy::<P, P::Subpixel>
      Src: /src/image/src/imageops/fast_blur.rs:69,1
    - Dst: Vec::iter
      Src: /src/image/src/imageops/fast_blur.rs:73,1
    - Dst: skip
      Src: /src/image/src/imageops/fast_blur.rs:73,1
    - Dst: test_radius_size
      Src: /src/image/src/imageops/fast_blur.rs:75,1
    - Dst: test_radius_size
      Src: /src/image/src/imageops/fast_blur.rs:76,1
    - Dst: box_blur_horizontal_pass_strategy::<P, P::Subpixel>
      Src: /src/image/src/imageops/fast_blur.rs:78,1
    - Dst: box_blur_vertical_pass_strategy::<P, P::Subpixel>
      Src: /src/image/src/imageops/fast_blur.rs:87,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/fast_blur.rs:97,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:97,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 75
    argCount: 2
    argNames:
    - image_buffer
    - sigma
    argTypes:
    - '&ImageBuffer<P, Vec<P::Subpixel>>'
    - f32
    constantsTouched: []
    func_position:
      end: 98
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 98
    functionName: fast_blur
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 8
    functionsReached:
    - box_blur_vertical_pass_strategy::<P, P::Subpixel>
    - Option::unwrap
    - '&ImageBuffer<P, Vec<P::Subpixel>>::as_flat_samples'
    - boxes_for_gauss
    - Vec::is_empty
    - '&ImageBuffer<P, Vec<P::Subpixel>>::clone'
    - Vec::iter
    - skip
    - test_radius_size
    - safe_mul
    - and_then
    - box_blur_horizontal_pass_strategy::<P, P::Subpixel>
    - ImageBuffer::from_raw
    - '&ImageBuffer<P, Vec<P::Subpixel>>::dimensions'
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn fast_blur<P: Pixel>(image_buffer: &ImageBuffer<P, Vec<P::Subpixel>>,sigma:
      f32,) -> ImageBuffer<P, Vec<P::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::safe_add
      Src: /src/image/src/imageops/fast_blur.rs:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bound
    - radius
    argTypes:
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: test_radius_size
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 1
    functionsReached:
    - usize::safe_add
    linkageType: ''
    returnType: void
    signature: 'fn test_radius_size(bound: usize, radius: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f32::sqrt
      Src: /src/image/src/imageops/fast_blur.rs:109,1
    - Dst: GaussianBlurParameters::powi
      Src: /src/image/src/imageops/fast_blur.rs:109,1
    - Dst: floor
      Src: /src/image/src/imageops/fast_blur.rs:110,1
    - Dst: GaussianBlurParameters::powi
      Src: /src/image/src/imageops/fast_blur.rs:116,1
    - Dst: recip
      Src: /src/image/src/imageops/fast_blur.rs:116,1
    - Dst: f32::round
      Src: /src/image/src/imageops/fast_blur.rs:118,1
    - Dst: map
      Src: /src/image/src/imageops/fast_blur.rs:120,1
    - Dst: map
      Src: /src/image/src/imageops/fast_blur.rs:120,1
    - Dst: ceil_to_odd
      Src: /src/image/src/imageops/fast_blur.rs:122,1
    - Dst: io::Result::saturating_sub
      Src: /src/image/src/imageops/fast_blur.rs:122,1
    - Dst: ".n)\n        .map(|i| if i < m { w_l as usize } else { w_u as usize })\n\
        \        .map(|i| ceil_to_odd(i.saturating_sub(1) / 2))\n        .collect::<Vec<_>>"
      Src: /src/image/src/imageops/fast_blur.rs:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 52
    argCount: 2
    argNames:
    - sigma
    - n
    argTypes:
    - f32
    - usize
    constantsTouched: []
    func_position:
      end: 124
      start: 108
    functionDepth: 12
    functionLinenumber: 108
    functionLinenumberEnd: 124
    functionName: boxes_for_gauss
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 1
    functionsReached:
    - ".n)\n        .map(|i| if i < m { w_l as usize } else { w_u as usize })\n  \
      \      .map(|i| ceil_to_odd(i.saturating_sub(1) / 2))\n        .collect::<Vec<_>>"
    - ceil_to_odd
    - GaussianBlurParameters::powi
    - map
    - floor
    - f32::sqrt
    - io::Result::saturating_sub
    - f32::round
    - recip
    linkageType: ''
    returnType: Vec
    signature: 'fn boxes_for_gauss(sigma: f32, n: usize) -> Vec<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: ceil_to_odd
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: 'fn ceil_to_odd(x: usize) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:140,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:140,1
    - Dst: T::from
      Src: /src/image/src/imageops/fast_blur.rs:141,1
    - Dst: round
      Src: /src/image/src/imageops/fast_blur.rs:142,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:142,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:144,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:144,1
    - Dst: max
      Src: /src/image/src/imageops/fast_blur.rs:142,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:145,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:145,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:141,1
    - Dst: T::from
      Src: /src/image/src/imageops/fast_blur.rs:149,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:150,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:151,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:151,1
    - Dst: max
      Src: /src/image/src/imageops/fast_blur.rs:150,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:152,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:152,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 156
      start: 137
    functionDepth: 12
    functionLinenumber: 137
    functionLinenumberEnd: 156
    functionName: rounding_saturating_mul
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - T::from
    - unwrap
    - round
    - Self::unwrap
    - max
    - to_f32
    - min
    linkageType: ''
    returnType: T
    signature: 'fn rounding_saturating_mul<T: Primitive>(v: f32, w: f32) -> T'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: box_blur_horizontal_pass_impl::<P, 1>
      Src: /src/image/src/imageops/fast_blur.rs:169,1
    - Dst: box_blur_horizontal_pass_impl::<P, 2>
      Src: /src/image/src/imageops/fast_blur.rs:171,1
    - Dst: box_blur_horizontal_pass_impl::<P, 3>
      Src: /src/image/src/imageops/fast_blur.rs:173,1
    - Dst: box_blur_horizontal_pass_impl::<P, 4>
      Src: /src/image/src/imageops/fast_blur.rs:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - src
    - src_stride
    - dst
    - dst_stride
    - width
    - radius
    argTypes:
    - '&[P]'
    - usize
    - '&mut [P]'
    - usize
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 179
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 179
    functionName: box_blur_horizontal_pass_strategy
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - box_blur_horizontal_pass_impl::<P, 2>
    - box_blur_horizontal_pass_impl::<P, 1>
    - box_blur_horizontal_pass_impl::<P, 3>
    - box_blur_horizontal_pass_impl::<P, 4>
    linkageType: ''
    returnType: void
    signature: 'fn box_blur_horizontal_pass_strategy<T, P: Primitive>(src: &[P],src_stride:
      usize,dst: &mut [P],dst_stride: usize,width: u32,radius: usize,) whereT: Pixel,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: box_blur_vertical_pass_impl::<P, 1>
      Src: /src/image/src/imageops/fast_blur.rs:191,1
    - Dst: box_blur_vertical_pass_impl::<P, 2>
      Src: /src/image/src/imageops/fast_blur.rs:195,1
    - Dst: box_blur_vertical_pass_impl::<P, 3>
      Src: /src/image/src/imageops/fast_blur.rs:199,1
    - Dst: box_blur_vertical_pass_impl::<P, 4>
      Src: /src/image/src/imageops/fast_blur.rs:203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 7
    argNames:
    - src
    - src_stride
    - dst
    - dst_stride
    - width
    - height
    - radius
    argTypes:
    - '&[P]'
    - usize
    - '&mut [P]'
    - usize
    - u32
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 209
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 209
    functionName: box_blur_vertical_pass_strategy
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - box_blur_vertical_pass_impl::<P, 1>
    - box_blur_vertical_pass_impl::<P, 4>
    - box_blur_vertical_pass_impl::<P, 2>
    - box_blur_vertical_pass_impl::<P, 3>
    linkageType: ''
    returnType: void
    signature: 'fn box_blur_vertical_pass_strategy<T: Pixel, P: Primitive>(src: &[P],src_stride:
      usize,dst: &mut [P],dst_stride: usize,width: u32,height: u32,radius: usize,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_radius_size
      Src: /src/image/src/imageops/fast_blur.rs:222,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/fast_blur.rs:238,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:238,1
    - Dst: '&[T]::chunks_exact'
      Src: /src/image/src/imageops/fast_blur.rs:240,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:249,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:249,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:251,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:251,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:254,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:254,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:257,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:257,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:261,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:263,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:263,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:265,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:265,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:268,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:268,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:271,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:271,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:275,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:276,1
    - Dst: max
      Src: /src/image/src/imageops/fast_blur.rs:277,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:280,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:282,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:285,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:288,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:294,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:294,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:296,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:296,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:299,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:299,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:302,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:302,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:305,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:305,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:307,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:307,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:310,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:310,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:313,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:313,1
    - Dst: saturating_sub
      Src: /src/image/src/imageops/fast_blur.rs:317,1
    - Dst: '&[T]::len'
      Src: /src/image/src/imageops/fast_blur.rs:318,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/fast_blur.rs:329,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:329,1
    - Dst: '&[T]::chunks_exact'
      Src: /src/image/src/imageops/fast_blur.rs:331,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:329,1
    - Dst: chunks_exact
      Src: /src/image/src/imageops/fast_blur.rs:332,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:335,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:337,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:340,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:343,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:346,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:346,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:348,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:348,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:351,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:351,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:354,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:354,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:357,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:357,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:359,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:359,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:362,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:362,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:365,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:365,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:373,1
    - Dst: max
      Src: /src/image/src/imageops/fast_blur.rs:374,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:376,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:378,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:381,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:384,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:390,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:390,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:392,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:392,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:395,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:395,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:398,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:398,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:401,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:401,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:403,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:403,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:406,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:406,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:409,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:409,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 502
    argCount: 6
    argNames:
    - src
    - src_stride
    - dst
    - dst_stride
    - width
    - radius
    argTypes:
    - '&[T]'
    - usize
    - '&mut [T]'
    - usize
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 413
      start: 211
    functionDepth: 13
    functionLinenumber: 211
    functionLinenumberEnd: 413
    functionName: box_blur_horizontal_pass_impl
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - saturating_sub
    - '&[T]::len'
    - rounding_saturating_mul
    - test_radius_size
    - unwrap
    - zip
    - '&[T]::chunks_exact'
    - chunks_exact
    - max
    - '&mut [T]::chunks_exact_mut'
    - to_f32
    - min
    linkageType: ''
    returnType: void
    signature: 'fn box_blur_horizontal_pass_impl<T, const CN: usize>(src: &[T],src_stride:
      usize,dst: &mut [T],dst_stride: usize,width: u32,radius: usize,) whereT: Primitive,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_radius_size
      Src: /src/image/src/imageops/fast_blur.rs:426,1
    - Dst: '&[T]::iter'
      Src: /src/image/src/imageops/fast_blur.rs:449,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:449,1
    - Dst: '&RgbaImage::iter_mut'
      Src: /src/image/src/imageops/fast_blur.rs:449,1
    - Dst: enumerate
      Src: /src/image/src/imageops/fast_blur.rs:449,1
    - Dst: DynamicImage::to_f32
      Src: /src/image/src/imageops/fast_blur.rs:450,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:450,1
    - Dst: Option::min
      Src: /src/image/src/imageops/fast_blur.rs:452,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:453,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:453,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/fast_blur.rs:458,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:458,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:459,1
    - Dst: max
      Src: /src/image/src/imageops/fast_blur.rs:460,1
    - Dst: iter
      Src: /src/image/src/imageops/fast_blur.rs:465,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:465,1
    - Dst: iter
      Src: /src/image/src/imageops/fast_blur.rs:467,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:465,1
    - Dst: '&RgbaImage::iter_mut'
      Src: /src/image/src/imageops/fast_blur.rs:468,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:465,1
    - Dst: '&mut [T]::iter_mut'
      Src: /src/image/src/imageops/fast_blur.rs:469,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:473,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:475,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:475,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:476,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:476,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 121
    argCount: 7
    argNames:
    - src
    - src_stride
    - dst
    - dst_stride
    - width
    - height
    - radius
    argTypes:
    - '&[T]'
    - usize
    - '&mut [T]'
    - usize
    - u32
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 481
      start: 415
    functionDepth: 13
    functionLinenumber: 415
    functionLinenumberEnd: 481
    functionName: box_blur_vertical_pass_impl
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - enumerate
    - Option::min
    - iter
    - '&RgbaImage::iter_mut'
    - '&mut [T]::iter_mut'
    - rounding_saturating_mul
    - test_radius_size
    - '&[T]::iter'
    - unwrap
    - '&mut [T]::chunks_exact_mut'
    - zip
    - max
    - DynamicImage::to_f32
    - to_f32
    - min
    linkageType: ''
    returnType: void
    signature: 'fn box_blur_vertical_pass_impl<T: Primitive, const CN: usize>(src:
      &[T],src_stride: usize,dst: &mut [T],dst_stride: usize,width: u32,height: u32,radius:
      usize,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemTime::now
      Src: /src/image/src/imageops/fast_blur.rs:514,1
    - Dst: duration_since
      Src: /src/image/src/imageops/fast_blur.rs:514,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:514,1
    - Dst: Rng::new
      Src: /src/image/src/imageops/fast_blur.rs:515,1
    - Dst: as_millis
      Src: /src/image/src/imageops/fast_blur.rs:515,1
    - Dst: Self::next_u8
      Src: /src/image/src/imageops/fast_blur.rs:517,1
    - Dst: Self::next_u8
      Src: /src/image/src/imageops/fast_blur.rs:518,1
    - Dst: Self::next_f32_in_range
      Src: /src/image/src/imageops/fast_blur.rs:519,1
    - Dst: Self::next_u8
      Src: /src/image/src/imageops/fast_blur.rs:520,1
    - Dst: Self::next_u8
      Src: /src/image/src/imageops/fast_blur.rs:521,1
    - Dst: DynamicImage::from
      Src: /src/image/src/imageops/fast_blur.rs:528,1
    - Dst: GrayImage::from_vec
      Src: /src/image/src/imageops/fast_blur.rs:529,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:529,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:529,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:529,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/fast_blur.rs:531,1
    - Dst: ImageBuffer::as_bytes
      Src: /src/image/src/imageops/fast_blur.rs:532,1
    - Dst: DynamicImage::from
      Src: /src/image/src/imageops/fast_blur.rs:538,1
    - Dst: GrayAlphaImage::from_vec
      Src: /src/image/src/imageops/fast_blur.rs:539,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:539,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:539,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:539,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/fast_blur.rs:541,1
    - Dst: ImageBuffer::as_bytes
      Src: /src/image/src/imageops/fast_blur.rs:542,1
    - Dst: DynamicImage::from
      Src: /src/image/src/imageops/fast_blur.rs:548,1
    - Dst: RgbImage::from_vec
      Src: /src/image/src/imageops/fast_blur.rs:549,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:549,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:549,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:549,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/fast_blur.rs:551,1
    - Dst: ImageBuffer::as_bytes
      Src: /src/image/src/imageops/fast_blur.rs:552,1
    - Dst: DynamicImage::from
      Src: /src/image/src/imageops/fast_blur.rs:558,1
    - Dst: RgbaImage::from_vec
      Src: /src/image/src/imageops/fast_blur.rs:559,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:559,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:559,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:559,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/fast_blur.rs:561,1
    - Dst: ImageBuffer::as_bytes
      Src: /src/image/src/imageops/fast_blur.rs:562,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 569
      start: 513
    functionDepth: 13
    functionLinenumber: 513
    functionLinenumberEnd: 569
    functionName: tests::test_box_blur
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - DynamicImage::from
    - RgbaImage::from_vec
    - Self::next_f32_in_range
    - ImageBuffer::as_bytes
    - Vec::fast_blur
    - Self::next_u8
    - SystemTime::now
    - unwrap
    - GrayImage::from_vec
    - duration_since
    - u32::from
    - RgbImage::from_vec
    - as_millis
    - Rng::new
    - GrayAlphaImage::from_vec
    linkageType: ''
    returnType: void
    signature: fn test_box_blur()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - acc
    - a
    - b
    argTypes:
    - T
    - T
    - T
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: mla
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: 'fn mla<T: Copy + Mul<T, Output = T> + Add<T, Output = T> + MulAdd<T,
      Output = T>>(acc: T,a: T,b: T,) -> T'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::checked_mul
      Src: /src/image/src/imageops/filter_1d.rs:57,1
    - Dst: Ok
      Src: /src/image/src/imageops/filter_1d.rs:58,1
    - Dst: Err
      Src: /src/image/src/imageops/filter_1d.rs:60,1
    - Dst: ImageError::Limits
      Src: /src/image/src/imageops/filter_1d.rs:60,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/imageops/filter_1d.rs:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: usize::safe_mul
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - LimitError::from_kind
    - Err
    - usize::checked_mul
    - ImageError::Limits
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn safe_mul(&self, rhs: usize) -> Result<usize, ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::checked_add
      Src: /src/image/src/imageops/filter_1d.rs:70,1
    - Dst: Ok
      Src: /src/image/src/imageops/filter_1d.rs:71,1
    - Dst: Err
      Src: /src/image/src/imageops/filter_1d.rs:73,1
    - Dst: ImageError::Limits
      Src: /src/image/src/imageops/filter_1d.rs:73,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/imageops/filter_1d.rs:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: usize::safe_add
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 1
    functionsReached:
    - LimitError::from_kind
    - Err
    - usize::checked_add
    - ImageError::Limits
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn safe_add(&self, rhs: usize) -> Result<usize, ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/image/src/imageops/filter_1d.rs:109,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/filter_1d.rs:111,1
    - Dst: safe_add
      Src: /src/image/src/imageops/filter_1d.rs:111,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/filter_1d.rs:114,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:123,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:123,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:123,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:127,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:127,1
    - Dst: saturating_sub
      Src: /src/image/src/imageops/filter_1d.rs:128,1
    - Dst: min
      Src: /src/image/src/imageops/filter_1d.rs:128,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:131,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:131,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:131,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:137,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:137,1
    - Dst: rev
      Src: /src/image/src/imageops/filter_1d.rs:137,1
    - Dst: max
      Src: /src/image/src/imageops/filter_1d.rs:139,1
    - Dst: min
      Src: /src/image/src/imageops/filter_1d.rs:139,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:142,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:142,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:142,1
    - Dst: Ok
      Src: /src/image/src/imageops/filter_1d.rs:146,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 121
    argCount: 5
    argNames:
    - image
    - row_buffer
    - source_y
    - image_size
    - kernel_size
    argTypes:
    - '&[T]'
    - '&mut [T]'
    - usize
    - FilterImageSize
    - KernelShape
    constantsTouched: []
    func_position:
      end: 147
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 147
    functionName: make_arena_row
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - safe_add
    - rev
    - saturating_sub
    - iter
    - Ok
    - iter_mut
    - zip
    - safe_mul
    - max
    - '&mut [T]::chunks_exact_mut'
    - min
    linkageType: ''
    returnType: Result
    signature: 'fn make_arena_row<T, const N: usize>(image: &[T],row_buffer: &mut
      [T],source_y: usize,image_size: FilterImageSize,kernel_size: KernelShape,) ->
      Result<(), ImageError>whereT: Default + Copy + Send + Sync + ''static,f64: AsPrimitive<T>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:179,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/filter_1d.rs:179,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:180,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/filter_1d.rs:180,1
    - Dst: saturating_sub
      Src: /src/image/src/imageops/filter_1d.rs:181,1
    - Dst: min
      Src: /src/image/src/imageops/filter_1d.rs:181,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:185,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:185,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:185,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/filter_1d.rs:191,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:193,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:194,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/filter_1d.rs:194,1
    - Dst: min
      Src: /src/image/src/imageops/filter_1d.rs:195,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:198,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:198,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 93
    argCount: 3
    argNames:
    - image
    - image_size
    - kernel_size
    argTypes:
    - '&[T]'
    - FilterImageSize
    - KernelShape
    constantsTouched: []
    func_position:
      end: 208
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 208
    functionName: make_columns_arenas
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - saturating_sub
    - iter
    - chunks_exact_mut
    - iter_mut
    - zip
    - min
    linkageType: ''
    returnType: ArenaColumns
    signature: 'fn make_columns_arenas<T, const N: usize>(image: &[T],image_size:
      FilterImageSize,kernel_size: KernelShape,) -> ArenaColumns<T>whereT: Default
      + Copy + Send + Sync + ''static,f64: AsPrimitive<T>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/image/src/imageops/filter_1d.rs:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: u32::to_
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - min
    linkageType: ''
    returnType: u16
    signature: fn to_(self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: f32::to_
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: f32
    signature: fn to_(self) -> f32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f32::len
      Src: /src/image/src/imageops/filter_1d.rs:266,1
    - Dst: size_of::<T>
      Src: /src/image/src/imageops/filter_1d.rs:275,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:276,1
    - Dst: F::default
      Src: /src/image/src/imageops/filter_1d.rs:277,1
    - Dst: F::default
      Src: /src/image/src/imageops/filter_1d.rs:278,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:283,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:283,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:284,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:284,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:286,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:286,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:287,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:287,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/filter_1d.rs:290,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:290,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:290,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:299,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:299,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:299,1
    - Dst: mla
      Src: /src/image/src/imageops/filter_1d.rs:300,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:300,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:300,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:300,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:303,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:303,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:303,1
    - Dst: mla
      Src: /src/image/src/imageops/filter_1d.rs:304,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:304,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:304,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:304,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:310,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:310,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:310,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:311,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:316,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:316,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:316,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:317,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:323,1
    - Dst: into_remainder
      Src: /src/image/src/imageops/filter_1d.rs:323,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:326,1
    - Dst: F::default
      Src: /src/image/src/imageops/filter_1d.rs:327,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:331,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:331,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:332,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:332,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/filter_1d.rs:335,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:335,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:335,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:340,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:340,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:340,1
    - Dst: mla
      Src: /src/image/src/imageops/filter_1d.rs:341,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:341,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:341,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:341,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:345,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:345,1
    - Dst: Option::iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:345,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:346,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:352,1
    - Dst: into_remainder
      Src: /src/image/src/imageops/filter_1d.rs:352,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:354,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:357,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:357,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:358,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:358,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:359,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:359,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:360,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:360,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/filter_1d.rs:362,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:362,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:362,1
    - Dst: mla
      Src: /src/image/src/imageops/filter_1d.rs:366,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:366,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:366,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:366,1
    - Dst: mla
      Src: /src/image/src/imageops/filter_1d.rs:367,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:367,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:367,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:367,1
    - Dst: mla
      Src: /src/image/src/imageops/filter_1d.rs:368,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:368,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:368,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:368,1
    - Dst: mla
      Src: /src/image/src/imageops/filter_1d.rs:369,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:369,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:369,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:369,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:372,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:373,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:374,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:375,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:379,1
    - Dst: into_remainder
      Src: /src/image/src/imageops/filter_1d.rs:379,1
    - Dst: '&mut [T]::iter_mut'
      Src: /src/image/src/imageops/filter_1d.rs:381,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:381,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:384,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:384,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/filter_1d.rs:386,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:386,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:386,1
    - Dst: mla
      Src: /src/image/src/imageops/filter_1d.rs:390,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:390,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:390,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:390,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:393,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 436
    argCount: 4
    argNames:
    - arena_src
    - dst_row
    - image_size
    - kernel
    argTypes:
    - '&[&[T]]'
    - '&mut [T]'
    - FilterImageSize
    - '&[F]'
    constantsTouched: []
    func_position:
      end: 395
      start: 249
    functionDepth: 14
    functionLinenumber: 249
    functionLinenumberEnd: 395
    functionName: filter_symmetric_column
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - f32::iter
    - enumerate
    - take
    - mla
    - f32::len
    - F::default
    - Option::iter_mut
    - iter
    - size_of::<T>
    - '&mut [T]::iter_mut'
    - as_
    - iter_mut
    - zip
    - add
    - mul
    - into_remainder
    - to_
    - '&mut [T]::chunks_exact_mut'
    linkageType: ''
    returnType: void
    signature: 'fn filter_symmetric_column<T, F, const N: usize>(arena_src: &[&[T]],dst_row:
      &mut [T],image_size: FilterImageSize,kernel: &[F],) whereT: Copy + AsPrimitive<F>,F:
      ToStorage<T>+ Mul<F, Output = F>+ MulAdd<F, Output = F>+ Add<F, Output = F>+
      Default+ Copy+ ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[F]::len'
      Src: /src/image/src/imageops/filter_1d.rs:416,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:421,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:421,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:427,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:428,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:429,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:430,1
    - Dst: '&[F]::iter'
      Src: /src/image/src/imageops/filter_1d.rs:434,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:434,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:434,1
    - Dst: mla
      Src: /src/image/src/imageops/filter_1d.rs:438,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:438,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:438,1
    - Dst: mla
      Src: /src/image/src/imageops/filter_1d.rs:439,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:439,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:439,1
    - Dst: mla
      Src: /src/image/src/imageops/filter_1d.rs:440,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:440,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:440,1
    - Dst: mla
      Src: /src/image/src/imageops/filter_1d.rs:441,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:441,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:441,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:444,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:445,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:446,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:447,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:450,1
    - Dst: len
      Src: /src/image/src/imageops/filter_1d.rs:450,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:451,1
    - Dst: into_remainder
      Src: /src/image/src/imageops/filter_1d.rs:451,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:453,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:453,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:457,1
    - Dst: '&[F]::iter'
      Src: /src/image/src/imageops/filter_1d.rs:459,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:459,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:459,1
    - Dst: mla
      Src: /src/image/src/imageops/filter_1d.rs:463,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:463,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:463,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:466,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 187
    argCount: 3
    argNames:
    - arena
    - dst_row
    - scanned_kernel
    argTypes:
    - '&[T]'
    - '&mut [T]'
    - '&[F]'
    constantsTouched: []
    func_position:
      end: 468
      start: 402
    functionDepth: 14
    functionLinenumber: 402
    functionLinenumberEnd: 468
    functionName: filter_symmetric_row
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - enumerate
    - take
    - mla
    - '&[F]::iter'
    - len
    - as_
    - iter_mut
    - into_remainder
    - '&[F]::len'
    - to_
    - '&mut [T]::chunks_exact_mut'
    linkageType: ''
    returnType: void
    signature: 'fn filter_symmetric_row<T, F, const N: usize>(arena: &[T], dst_row:
      &mut [T], scanned_kernel: &[F])whereT: Copy + AsPrimitive<F> + Default,F: ToStorage<T>+
      Mul<Output = F>+ MulAdd<F, Output = F>+ Default+ Add<F, Output = F>+ Copy+ ''static,i32:
      AsPrimitive<F>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/image/src/imageops/filter_1d.rs:477,1
    - Dst: max
      Src: /src/image/src/imageops/filter_1d.rs:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - input
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: u8::transform
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - max
    - min
    linkageType: ''
    returnType: u32
    signature: 'fn transform(input: f32) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - input
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 497
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 497
    functionName: u16::transform
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: f32
    signature: 'fn transform(input: f32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - input
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 491
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 491
    functionName: f32::transform
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: f32
    signature: 'fn transform(input: f32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:505,1
    - Dst: f32::to_vec
      Src: /src/image/src/imageops/filter_1d.rs:506,1
    - Dst: ImageResult::len
      Src: /src/image/src/imageops/filter_1d.rs:507,1
    - Dst: ImageResult::last
      Src: /src/image/src/imageops/filter_1d.rs:508,1
    - Dst: unwrap
      Src: /src/image/src/imageops/filter_1d.rs:508,1
    - Dst: eq
      Src: /src/image/src/imageops/filter_1d.rs:508,1
    - Dst: ImageResult::first
      Src: /src/image/src/imageops/filter_1d.rs:508,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/filter_1d.rs:508,1
    - Dst: eq
      Src: /src/image/src/imageops/filter_1d.rs:508,1
    - Dst: ImageResult::remove
      Src: /src/image/src/imageops/filter_1d.rs:510,1
    - Dst: ImageResult::remove
      Src: /src/image/src/imageops/filter_1d.rs:511,1
    - Dst: ImageResult::len
      Src: /src/image/src/imageops/filter_1d.rs:511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 1
    argNames:
    - kernel
    argTypes:
    - '&[I]'
    constantsTouched: []
    func_position:
      end: 515
      start: 501
    functionDepth: 12
    functionLinenumber: 501
    functionLinenumberEnd: 515
    functionName: prepare_symmetric_kernel
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageResult::len
    - ImageResult::remove
    - ImageResult::last
    - f32::to_vec
    - eq
    - as_
    - unwrap
    - ImageResult::first
    linkageType: ''
    returnType: Vec
    signature: 'fn prepare_symmetric_kernel<I: Copy + PartialEq + ''static>(kernel:
      &[I]) -> Vec<I>wherei32: AsPrimitive<I>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[I]::len'
      Src: /src/image/src/imageops/filter_1d.rs:590,1
    - Dst: max
      Src: /src/image/src/imageops/filter_1d.rs:590,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/filter_1d.rs:592,1
    - Dst: safe_add
      Src: /src/image/src/imageops/filter_1d.rs:592,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/filter_1d.rs:595,1
    - Dst: '&[I]::len'
      Src: /src/image/src/imageops/filter_1d.rs:603,1
    - Dst: make_arena_row::<T, N>
      Src: /src/image/src/imageops/filter_1d.rs:607,1
    - Dst: '&[I]::len'
      Src: /src/image/src/imageops/filter_1d.rs:613,1
    - Dst: filter_symmetric_row::<T, I, N>
      Src: /src/image/src/imageops/filter_1d.rs:619,1
    - Dst: '&RgbaImage::split_at_mut'
      Src: /src/image/src/imageops/filter_1d.rs:622,1
    - Dst: Option::chunks_exact_mut
      Src: /src/image/src/imageops/filter_1d.rs:623,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:623,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:624,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:624,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:624,1
    - Dst: Option::min
      Src: /src/image/src/imageops/filter_1d.rs:639,1
    - Dst: make_arena_row::<T, N>
      Src: /src/image/src/imageops/filter_1d.rs:642,1
    - Dst: '&[I]::len'
      Src: /src/image/src/imageops/filter_1d.rs:648,1
    - Dst: filter_symmetric_row::<T, I, N>
      Src: /src/image/src/imageops/filter_1d.rs:653,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:664,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:664,1
    - Dst: filter_symmetric_column::<T, I, N>
      Src: /src/image/src/imageops/filter_1d.rs:673,1
    - Dst: Ok
      Src: /src/image/src/imageops/filter_1d.rs:680,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 125
    argCount: 5
    argNames:
    - image
    - destination
    - image_size
    - row_kernel
    - column_kernel
    argTypes:
    - '&[T]'
    - '&mut [T]'
    - FilterImageSize
    - '&[I]'
    - '&[I]'
    constantsTouched: []
    func_position:
      end: 681
      start: 568
    functionDepth: 14
    functionLinenumber: 568
    functionLinenumberEnd: 681
    functionName: filter_2d_separable_ring_queue
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - safe_add
    - Option::min
    - enumerate
    - make_arena_row::<T, N>
    - Option::chunks_exact_mut
    - iter
    - '&RgbaImage::split_at_mut'
    - filter_symmetric_row::<T, I, N>
    - Ok
    - iter_mut
    - '&[I]::len'
    - filter_symmetric_column::<T, I, N>
    - zip
    - safe_mul
    - max
    - take
    linkageType: ''
    returnType: Result
    signature: 'fn filter_2d_separable_ring_queue<T, I, const N: usize>(image: &[T],destination:
      &mut [T],image_size: FilterImageSize,row_kernel: &[I],column_kernel: &[I],)
      -> Result<(), ImageError>whereT: Copy + Default + Send + Sync + AsPrimitive<I>,I:
      ToStorage<T>+ Mul<I, Output = I>+ Add<I, Output = I>+ MulAdd<I, Output = I>+
      Send+ Sync+ PartialEq+ Default+ ''static+ Copy,i32: AsPrimitive<I>,f64: AsPrimitive<T>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::len
      Src: /src/image/src/imageops/filter_1d.rs:719,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/filter_1d.rs:719,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/filter_1d.rs:719,1
    - Dst: Err
      Src: /src/image/src/imageops/filter_1d.rs:720,1
    - Dst: ImageError::Limits
      Src: /src/image/src/imageops/filter_1d.rs:720,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/imageops/filter_1d.rs:720,1
    - Dst: '&mut [T]::len'
      Src: /src/image/src/imageops/filter_1d.rs:724,1
    - Dst: Vec::len
      Src: /src/image/src/imageops/filter_1d.rs:724,1
    - Dst: Err
      Src: /src/image/src/imageops/filter_1d.rs:725,1
    - Dst: ImageError::Limits
      Src: /src/image/src/imageops/filter_1d.rs:725,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/imageops/filter_1d.rs:725,1
    - Dst: '&[F]::iter'
      Src: /src/image/src/imageops/filter_1d.rs:737,1
    - Dst: map
      Src: /src/image/src/imageops/filter_1d.rs:737,1
    - Dst: T::transform
      Src: /src/image/src/imageops/filter_1d.rs:739,1
    - Dst: "iter()\n        .map(|&x| T::transform(x))\n        .collect::<Vec<I>>"
      Src: /src/image/src/imageops/filter_1d.rs:737,1
    - Dst: '&[F]::iter'
      Src: /src/image/src/imageops/filter_1d.rs:741,1
    - Dst: map
      Src: /src/image/src/imageops/filter_1d.rs:741,1
    - Dst: T::transform
      Src: /src/image/src/imageops/filter_1d.rs:743,1
    - Dst: "iter()\n        .map(|&x| T::transform(x))\n        .collect::<Vec<I>>"
      Src: /src/image/src/imageops/filter_1d.rs:741,1
    - Dst: prepare_symmetric_kernel
      Src: /src/image/src/imageops/filter_1d.rs:746,1
    - Dst: prepare_symmetric_kernel
      Src: /src/image/src/imageops/filter_1d.rs:747,1
    - Dst: is_empty
      Src: /src/image/src/imageops/filter_1d.rs:749,1
    - Dst: is_empty
      Src: /src/image/src/imageops/filter_1d.rs:749,1
    - Dst: '&mut [T]::copy_from_slice'
      Src: /src/image/src/imageops/filter_1d.rs:750,1
    - Dst: Ok
      Src: /src/image/src/imageops/filter_1d.rs:751,1
    - Dst: '&[F]::len'
      Src: /src/image/src/imageops/filter_1d.rs:754,1
    - Dst: filter_2d_separable_ring_queue::<T, I, N>
      Src: /src/image/src/imageops/filter_1d.rs:755,1
    - Dst: len
      Src: /src/image/src/imageops/filter_1d.rs:764,1
    - Dst: max
      Src: /src/image/src/imageops/filter_1d.rs:764,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/filter_1d.rs:771,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:771,1
    - Dst: make_arena_row::<T, N>
      Src: /src/image/src/imageops/filter_1d.rs:782,1
    - Dst: len
      Src: /src/image/src/imageops/filter_1d.rs:788,1
    - Dst: filter_symmetric_row::<T, I, N>
      Src: /src/image/src/imageops/filter_1d.rs:793,1
    - Dst: len
      Src: /src/image/src/imageops/filter_1d.rs:798,1
    - Dst: make_columns_arenas::<T, N>
      Src: /src/image/src/imageops/filter_1d.rs:809,1
    - Dst: as_slice
      Src: /src/image/src/imageops/filter_1d.rs:809,1
    - Dst: as_slice
      Src: /src/image/src/imageops/filter_1d.rs:811,1
    - Dst: as_slice
      Src: /src/image/src/imageops/filter_1d.rs:812,1
    - Dst: as_slice
      Src: /src/image/src/imageops/filter_1d.rs:816,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:820,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:820,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:826,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:826,1
    - Dst: as_slice
      Src: /src/image/src/imageops/filter_1d.rs:838,1
    - Dst: filter_symmetric_column::<T, I, N>
      Src: /src/image/src/imageops/filter_1d.rs:840,1
    - Dst: Ok
      Src: /src/image/src/imageops/filter_1d.rs:843,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 207
    argCount: 5
    argNames:
    - image
    - destination
    - image_size
    - row_kernel
    - column_kernel
    argTypes:
    - '&[T]'
    - '&mut [T]'
    - FilterImageSize
    - '&[F]'
    - '&[F]'
    constantsTouched: []
    func_position:
      end: 844
      start: 696
    functionDepth: 14
    functionLinenumber: 696
    functionLinenumberEnd: 844
    functionName: filter_2d_separable
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - enumerate
    - make_arena_row::<T, N>
    - '&[F]::iter'
    - T::transform
    - "iter()\n        .map(|&x| T::transform(x))\n        .collect::<Vec<I>>"
    - ImageError::Limits
    - prepare_symmetric_kernel
    - '&mut [T]::len'
    - Ok
    - Err
    - '&mut [T]::copy_from_slice'
    - filter_symmetric_column::<T, I, N>
    - safe_mul
    - is_empty
    - make_columns_arenas::<T, N>
    - LimitError::from_kind
    - filter_2d_separable_ring_queue::<T, I, N>
    - chunks_exact_mut
    - iter_mut
    - Vec::len
    - '&[F]::len'
    - map
    - as_slice
    - filter_symmetric_row::<T, I, N>
    - len
    - zip
    - max
    - '&mut [T]::chunks_exact_mut'
    linkageType: ''
    returnType: Result
    signature: 'fn filter_2d_separable<T, F, I, const N: usize>(image: &[T],destination:
      &mut [T],image_size: FilterImageSize,row_kernel: &[F],column_kernel: &[F],)
      -> Result<(), ImageError>whereT: Copy + AsPrimitive<F> + Default + Send + Sync
      + KernelTransformer<F, I> + AsPrimitive<I>,F: Default + ''static + Copy,I: ToStorage<T>+
      Mul<I, Output = I>+ Add<I, Output = I>+ MulAdd<I, Output = I>+ Send+ Sync+ PartialEq+
      Default+ ''static+ Copy,i32: AsPrimitive<F> + AsPrimitive<I>,f64: AsPrimitive<T>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filter_2d_separable::<u8, f32, u32, 1>
      Src: /src/image/src/imageops/filter_1d.rs:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - image
    - destination
    - image_size
    - row_kernel
    - column_kernel
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - FilterImageSize
    - '&[f32]'
    - '&[f32]'
    constantsTouched: []
    func_position:
      end: 860
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 860
    functionName: filter_2d_sep_plane
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 1
    functionsReached:
    - filter_2d_separable::<u8, f32, u32, 1>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn filter_2d_sep_plane(image: &[u8],destination: &mut [u8],image_size:
      FilterImageSize,row_kernel: &[f32],column_kernel: &[f32],) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filter_2d_separable::<u8, f32, u32, 2>
      Src: /src/image/src/imageops/filter_1d.rs:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - image
    - destination
    - image_size
    - row_kernel
    - column_kernel
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - FilterImageSize
    - '&[f32]'
    - '&[f32]'
    constantsTouched: []
    func_position:
      end: 876
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 876
    functionName: filter_2d_sep_la
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 1
    functionsReached:
    - filter_2d_separable::<u8, f32, u32, 2>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn filter_2d_sep_la(image: &[u8],destination: &mut [u8],image_size:
      FilterImageSize,row_kernel: &[f32],column_kernel: &[f32],) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filter_2d_separable::<u8, f32, u32, 3>
      Src: /src/image/src/imageops/filter_1d.rs:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - image
    - destination
    - image_size
    - row_kernel
    - column_kernel
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - FilterImageSize
    - '&[f32]'
    - '&[f32]'
    constantsTouched: []
    func_position:
      end: 892
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 892
    functionName: filter_2d_sep_rgb
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 1
    functionsReached:
    - filter_2d_separable::<u8, f32, u32, 3>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn filter_2d_sep_rgb(image: &[u8],destination: &mut [u8],image_size:
      FilterImageSize,row_kernel: &[f32],column_kernel: &[f32],) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filter_2d_separable::<u8, f32, u32, 4>
      Src: /src/image/src/imageops/filter_1d.rs:901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - image
    - destination
    - image_size
    - row_kernel
    - column_kernel
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - FilterImageSize
    - '&[f32]'
    - '&[f32]'
    constantsTouched: []
    func_position:
      end: 908
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 908
    functionName: filter_2d_sep_rgba
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 1
    functionsReached:
    - filter_2d_separable::<u8, f32, u32, 4>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn filter_2d_sep_rgba(image: &[u8],destination: &mut [u8],image_size:
      FilterImageSize,row_kernel: &[f32],column_kernel: &[f32],) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filter_2d_separable::<f32, f32, f32, 2>
      Src: /src/image/src/imageops/filter_1d.rs:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - image
    - destination
    - image_size
    - row_kernel
    - column_kernel
    argTypes:
    - '&[f32]'
    - '&mut [f32]'
    - FilterImageSize
    - '&[f32]'
    - '&[f32]'
    constantsTouched: []
    func_position:
      end: 924
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 924
    functionName: filter_2d_sep_la_f32
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 1
    functionsReached:
    - filter_2d_separable::<f32, f32, f32, 2>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn filter_2d_sep_la_f32(image: &[f32],destination: &mut
      [f32],image_size: FilterImageSize,row_kernel: &[f32],column_kernel: &[f32],)
      -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filter_2d_separable::<f32, f32, f32, 1>
      Src: /src/image/src/imageops/filter_1d.rs:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - image
    - destination
    - image_size
    - row_kernel
    - column_kernel
    argTypes:
    - '&[f32]'
    - '&mut [f32]'
    - FilterImageSize
    - '&[f32]'
    - '&[f32]'
    constantsTouched: []
    func_position:
      end: 940
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 940
    functionName: filter_2d_sep_plane_f32
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 1
    functionsReached:
    - filter_2d_separable::<f32, f32, f32, 1>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn filter_2d_sep_plane_f32(image: &[f32],destination: &mut
      [f32],image_size: FilterImageSize,row_kernel: &[f32],column_kernel: &[f32],)
      -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filter_2d_separable::<f32, f32, f32, 3>
      Src: /src/image/src/imageops/filter_1d.rs:949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - image
    - destination
    - image_size
    - row_kernel
    - column_kernel
    argTypes:
    - '&[f32]'
    - '&mut [f32]'
    - FilterImageSize
    - '&[f32]'
    - '&[f32]'
    constantsTouched: []
    func_position:
      end: 956
      start: 942
    functionDepth: 0
    functionLinenumber: 942
    functionLinenumberEnd: 956
    functionName: filter_2d_sep_rgb_f32
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 2
    functionsReached:
    - filter_2d_separable::<f32, f32, f32, 3>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn filter_2d_sep_rgb_f32(image: &[f32],destination: &mut
      [f32],image_size: FilterImageSize,row_kernel: &[f32],column_kernel: &[f32],)
      -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filter_2d_separable::<f32, f32, f32, 4>
      Src: /src/image/src/imageops/filter_1d.rs:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - image
    - destination
    - image_size
    - row_kernel
    - column_kernel
    argTypes:
    - '&[f32]'
    - '&mut [f32]'
    - FilterImageSize
    - '&[f32]'
    - '&[f32]'
    constantsTouched: []
    func_position:
      end: 972
      start: 958
    functionDepth: 0
    functionLinenumber: 958
    functionLinenumberEnd: 972
    functionName: filter_2d_sep_rgba_f32
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 2
    functionsReached:
    - filter_2d_separable::<f32, f32, f32, 4>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn filter_2d_sep_rgba_f32(image: &[f32],destination: &mut
      [f32],image_size: FilterImageSize,row_kernel: &[f32],column_kernel: &[f32],)
      -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filter_2d_separable::<u16, f32, u32, 3>
      Src: /src/image/src/imageops/filter_1d.rs:981,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - image
    - destination
    - image_size
    - row_kernel
    - column_kernel
    argTypes:
    - '&[u16]'
    - '&mut [u16]'
    - FilterImageSize
    - '&[f32]'
    - '&[f32]'
    constantsTouched: []
    func_position:
      end: 988
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 988
    functionName: filter_2d_sep_rgb_u16
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 1
    functionsReached:
    - filter_2d_separable::<u16, f32, u32, 3>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn filter_2d_sep_rgb_u16(image: &[u16],destination: &mut
      [u16],image_size: FilterImageSize,row_kernel: &[f32],column_kernel: &[f32],)
      -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filter_2d_separable::<u16, f32, u32, 4>
      Src: /src/image/src/imageops/filter_1d.rs:997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - image
    - destination
    - image_size
    - row_kernel
    - column_kernel
    argTypes:
    - '&[u16]'
    - '&mut [u16]'
    - FilterImageSize
    - '&[f32]'
    - '&[f32]'
    constantsTouched: []
    func_position:
      end: 1004
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 1004
    functionName: filter_2d_sep_rgba_u16
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 1
    functionsReached:
    - filter_2d_separable::<u16, f32, u32, 4>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn filter_2d_sep_rgba_u16(image: &[u16],destination: &mut
      [u16],image_size: FilterImageSize,row_kernel: &[f32],column_kernel: &[f32],)
      -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filter_2d_separable::<u16, f32, u32, 2>
      Src: /src/image/src/imageops/filter_1d.rs:1013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - image
    - destination
    - image_size
    - row_kernel
    - column_kernel
    argTypes:
    - '&[u16]'
    - '&mut [u16]'
    - FilterImageSize
    - '&[f32]'
    - '&[f32]'
    constantsTouched: []
    func_position:
      end: 1020
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1020
    functionName: filter_2d_sep_la_u16
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 1
    functionsReached:
    - filter_2d_separable::<u16, f32, u32, 2>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn filter_2d_sep_la_u16(image: &[u16],destination: &mut
      [u16],image_size: FilterImageSize,row_kernel: &[f32],column_kernel: &[f32],)
      -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: filter_2d_separable::<u16, f32, u32, 1>
      Src: /src/image/src/imageops/filter_1d.rs:1029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - image
    - destination
    - image_size
    - row_kernel
    - column_kernel
    argTypes:
    - '&[u16]'
    - '&mut [u16]'
    - FilterImageSize
    - '&[f32]'
    - '&[f32]'
    constantsTouched: []
    func_position:
      end: 1036
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1036
    functionName: filter_2d_sep_plane_u16
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 1
    functionsReached:
    - filter_2d_separable::<u16, f32, u32, 1>
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn filter_2d_sep_plane_u16(image: &[u16],destination: &mut
      [u16],image_size: FilterImageSize,row_kernel: &[f32],column_kernel: &[f32],)
      -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:31,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/images/buffer_par.rs:32,1
    - Dst: drive_unindexed
      Src: /src/image/src/images/buffer_par.rs:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - consumer
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 14
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: PixelsPar::drive_unindexed
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - map
    - <P as Pixel>::from_slice
    - drive_unindexed
    linkageType: ''
    returnType: C::Result
    signature: 'fn drive_unindexed<C>(self, consumer: C) -> C::ResultwhereC: UnindexedConsumer<Self::Item>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/buffer_par.rs:37,1
    - Dst: PixelsPar::len
      Src: /src/image/src/images/buffer_par.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: PixelsPar::opt_len
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - Some
    - PixelsPar::len
    linkageType: ''
    returnType: Option
    signature: fn opt_len(&self) -> Option<usize>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:47,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/images/buffer_par.rs:48,1
    - Dst: drive
      Src: /src/image/src/images/buffer_par.rs:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - consumer
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 14
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: PixelsPar::drive
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - map
    - drive
    - <P as Pixel>::from_slice
    linkageType: ''
    returnType: C::Result
    signature: 'fn drive<C: Consumer<Self::Item>>(self, consumer: C) -> C::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer_par.rs:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 14
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: PixelsPar::len
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 1
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:57,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/images/buffer_par.rs:58,1
    - Dst: with_producer
      Src: /src/image/src/images/buffer_par.rs:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - callback
    argTypes:
    - CB
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 14
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: PixelsPar::with_producer
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - map
    - <P as Pixel>::from_slice
    - with_producer
    linkageType: ''
    returnType: CB::Output
    signature: 'fn with_producer<CB: ProducerCallback<Self::Item>>(self, callback:
      CB) -> CB::Output'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/image/src/images/buffer_par.rs:69,1
    - Dst: field
      Src: /src/image/src/images/buffer_par.rs:69,1
    - Dst: finish
      Src: /src/image/src/images/buffer_par.rs:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: PixelsPar::fmt
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - debug_struct
    - field
    - finish
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:95,1
    - Dst: <P as Pixel>::from_slice_mut
      Src: /src/image/src/images/buffer_par.rs:96,1
    - Dst: drive_unindexed
      Src: /src/image/src/images/buffer_par.rs:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - consumer
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 14
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: PixelsMutPar::drive_unindexed
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - map
    - <P as Pixel>::from_slice_mut
    - drive_unindexed
    linkageType: ''
    returnType: C::Result
    signature: 'fn drive_unindexed<C>(self, consumer: C) -> C::ResultwhereC: UnindexedConsumer<Self::Item>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/buffer_par.rs:101,1
    - Dst: PixelsMutPar::len
      Src: /src/image/src/images/buffer_par.rs:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: PixelsMutPar::opt_len
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - Some
    - PixelsMutPar::len
    linkageType: ''
    returnType: Option
    signature: fn opt_len(&self) -> Option<usize>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:111,1
    - Dst: <P as Pixel>::from_slice_mut
      Src: /src/image/src/images/buffer_par.rs:112,1
    - Dst: drive
      Src: /src/image/src/images/buffer_par.rs:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - consumer
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 14
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: PixelsMutPar::drive
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - map
    - drive
    - <P as Pixel>::from_slice_mut
    linkageType: ''
    returnType: C::Result
    signature: 'fn drive<C: Consumer<Self::Item>>(self, consumer: C) -> C::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer_par.rs:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 14
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: PixelsMutPar::len
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 1
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:121,1
    - Dst: <P as Pixel>::from_slice_mut
      Src: /src/image/src/images/buffer_par.rs:122,1
    - Dst: with_producer
      Src: /src/image/src/images/buffer_par.rs:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - callback
    argTypes:
    - CB
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 14
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: PixelsMutPar::with_producer
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - map
    - <P as Pixel>::from_slice_mut
    - with_producer
    linkageType: ''
    returnType: CB::Output
    signature: 'fn with_producer<CB: ProducerCallback<Self::Item>>(self, callback:
      CB) -> CB::Output'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/image/src/images/buffer_par.rs:133,1
    - Dst: field
      Src: /src/image/src/images/buffer_par.rs:133,1
    - Dst: finish
      Src: /src/image/src/images/buffer_par.rs:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: PixelsMutPar::fmt
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - debug_struct
    - field
    - finish
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enumerate
      Src: /src/image/src/images/buffer_par.rs:161,1
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:161,1
    - Dst: drive_unindexed
      Src: /src/image/src/images/buffer_par.rs:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - consumer
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 171
      start: 157
    functionDepth: 14
    functionLinenumber: 157
    functionLinenumberEnd: 171
    functionName: EnumeratePixelsPar::drive_unindexed
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - map
    - enumerate
    - drive_unindexed
    linkageType: ''
    returnType: C::Result
    signature: 'fn drive_unindexed<C>(self, consumer: C) -> C::ResultwhereC: UnindexedConsumer<Self::Item>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/buffer_par.rs:174,1
    - Dst: EnumeratePixelsPar::len
      Src: /src/image/src/images/buffer_par.rs:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: EnumeratePixelsPar::opt_len
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - Some
    - EnumeratePixelsPar::len
    linkageType: ''
    returnType: Option
    signature: fn opt_len(&self) -> Option<usize>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enumerate
      Src: /src/image/src/images/buffer_par.rs:184,1
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:184,1
    - Dst: drive
      Src: /src/image/src/images/buffer_par.rs:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - consumer
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 194
      start: 183
    functionDepth: 14
    functionLinenumber: 183
    functionLinenumberEnd: 194
    functionName: EnumeratePixelsPar::drive
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - map
    - drive
    - enumerate
    linkageType: ''
    returnType: C::Result
    signature: 'fn drive<C: Consumer<Self::Item>>(self, consumer: C) -> C::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer_par.rs:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 14
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: EnumeratePixelsPar::len
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 1
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enumerate
      Src: /src/image/src/images/buffer_par.rs:201,1
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:201,1
    - Dst: with_producer
      Src: /src/image/src/images/buffer_par.rs:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - callback
    argTypes:
    - CB
    constantsTouched: []
    func_position:
      end: 211
      start: 200
    functionDepth: 14
    functionLinenumber: 200
    functionLinenumberEnd: 211
    functionName: EnumeratePixelsPar::with_producer
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - map
    - enumerate
    - with_producer
    linkageType: ''
    returnType: CB::Output
    signature: 'fn with_producer<CB: ProducerCallback<Self::Item>>(self, callback:
      CB) -> CB::Output'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/image/src/images/buffer_par.rs:220,1
    - Dst: field
      Src: /src/image/src/images/buffer_par.rs:220,1
    - Dst: field
      Src: /src/image/src/images/buffer_par.rs:220,1
    - Dst: finish
      Src: /src/image/src/images/buffer_par.rs:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: EnumeratePixelsPar::fmt
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - debug_struct
    - field
    - finish
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enumerate
      Src: /src/image/src/images/buffer_par.rs:248,1
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:248,1
    - Dst: drive_unindexed
      Src: /src/image/src/images/buffer_par.rs:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - consumer
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 258
      start: 244
    functionDepth: 14
    functionLinenumber: 244
    functionLinenumberEnd: 258
    functionName: EnumeratePixelsMutPar::drive_unindexed
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - map
    - enumerate
    - drive_unindexed
    linkageType: ''
    returnType: C::Result
    signature: 'fn drive_unindexed<C>(self, consumer: C) -> C::ResultwhereC: UnindexedConsumer<Self::Item>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/buffer_par.rs:261,1
    - Dst: EnumeratePixelsMutPar::len
      Src: /src/image/src/images/buffer_par.rs:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 262
    functionName: EnumeratePixelsMutPar::opt_len
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - Some
    - EnumeratePixelsMutPar::len
    linkageType: ''
    returnType: Option
    signature: fn opt_len(&self) -> Option<usize>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enumerate
      Src: /src/image/src/images/buffer_par.rs:271,1
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:271,1
    - Dst: drive
      Src: /src/image/src/images/buffer_par.rs:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - consumer
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 281
      start: 270
    functionDepth: 14
    functionLinenumber: 270
    functionLinenumberEnd: 281
    functionName: EnumeratePixelsMutPar::drive
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - map
    - drive
    - enumerate
    linkageType: ''
    returnType: C::Result
    signature: 'fn drive<C: Consumer<Self::Item>>(self, consumer: C) -> C::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer_par.rs:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 285
      start: 283
    functionDepth: 14
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: EnumeratePixelsMutPar::len
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 1
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enumerate
      Src: /src/image/src/images/buffer_par.rs:288,1
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:288,1
    - Dst: with_producer
      Src: /src/image/src/images/buffer_par.rs:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - callback
    argTypes:
    - CB
    constantsTouched: []
    func_position:
      end: 298
      start: 287
    functionDepth: 14
    functionLinenumber: 287
    functionLinenumberEnd: 298
    functionName: EnumeratePixelsMutPar::with_producer
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - map
    - enumerate
    - with_producer
    linkageType: ''
    returnType: CB::Output
    signature: 'fn with_producer<CB: ProducerCallback<Self::Item>>(self, callback:
      CB) -> CB::Output'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/image/src/images/buffer_par.rs:307,1
    - Dst: field
      Src: /src/image/src/images/buffer_par.rs:307,1
    - Dst: field
      Src: /src/image/src/images/buffer_par.rs:307,1
    - Dst: finish
      Src: /src/image/src/images/buffer_par.rs:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 311
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 311
    functionName: EnumeratePixelsMutPar::fmt
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - debug_struct
    - field
    - finish
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer_par.rs:326,1
    - Dst: '&[P::Subpixel]::par_chunks_exact'
      Src: /src/image/src/images/buffer_par.rs:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 330
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: ImageBuffer::par_pixels
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - '&[P::Subpixel]::par_chunks_exact'
    - ImageBuffer::inner_pixels
    linkageType: ''
    returnType: PixelsPar
    signature: pub fn par_pixels(&self) -> PixelsPar<'_, P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::par_pixels
      Src: /src/image/src/images/buffer_par.rs:338,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer_par.rs:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: ImageBuffer::par_enumerate_pixels
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::width
    - ImageBuffer::par_pixels
    linkageType: ''
    returnType: EnumeratePixelsPar
    signature: pub fn par_enumerate_pixels(&self) -> EnumeratePixelsPar<'_, P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::inner_pixels_mut
      Src: /src/image/src/images/buffer_par.rs:356,1
    - Dst: '&mut [P::Subpixel]::par_chunks_exact_mut'
      Src: /src/image/src/images/buffer_par.rs:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 360
    functionName: ImageBuffer::par_pixels_mut
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::inner_pixels_mut
    - '&mut [P::Subpixel]::par_chunks_exact_mut'
    linkageType: ''
    returnType: PixelsMutPar
    signature: pub fn par_pixels_mut(&mut self) -> PixelsMutPar<'_, P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer_par.rs:367,1
    - Dst: ImageBuffer::par_pixels_mut
      Src: /src/image/src/images/buffer_par.rs:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 372
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 372
    functionName: ImageBuffer::par_enumerate_pixels_mut
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::width
    - ImageBuffer::par_pixels_mut
    linkageType: ''
    returnType: EnumeratePixelsMutPar
    signature: pub fn par_enumerate_pixels_mut(&mut self) -> EnumeratePixelsMutPar<'_,
      P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer_par.rs:392,1
    - Dst: io::Result::par_enumerate_pixels_mut
      Src: /src/image/src/images/buffer_par.rs:393,1
    - Dst: EnumeratePixelsMutPar::for_each
      Src: /src/image/src/images/buffer_par.rs:393,1
    - Dst: f
      Src: /src/image/src/images/buffer_par.rs:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - width
    - height
    - f
    argTypes:
    - u32
    - u32
    - F
    constantsTouched: []
    func_position:
      end: 398
      start: 388
    functionDepth: 5
    functionLinenumber: 388
    functionLinenumberEnd: 398
    functionName: ImageBuffer::from_par_fn
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - f
    - EnumeratePixelsMutPar::for_each
    - ImageBuffer::new
    - io::Result::par_enumerate_pixels_mut
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn from_par_fn<F>(width: u32, height: u32, f: F) -> ImageBuffer<P,
      Vec<P::Subpixel>>whereF: Fn(u32, u32) -> P + Send + Sync,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer_par.rs:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - width
    - height
    - len
    argTypes:
    - u32
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 413
      start: 406
    functionDepth: 13
    functionLinenumber: 406
    functionLinenumberEnd: 413
    functionName: test::test_width_height
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - RgbImage::new
    linkageType: ''
    returnType: void
    signature: 'fn test_width_height(width: u32, height: u32, len: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:1573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1572
    functionDepth: 13
    functionLinenumber: 1572
    functionLinenumberEnd: 1579
    functionName: test::zero_width_zero_height
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - RgbImage::new
    linkageType: ''
    returnType: void
    signature: fn zero_width_zero_height()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:1583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1582
    functionDepth: 13
    functionLinenumber: 1582
    functionLinenumberEnd: 1589
    functionName: test::zero_width_nonzero_height
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - RgbImage::new
    linkageType: ''
    returnType: void
    signature: fn zero_width_nonzero_height()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:1593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1592
    functionDepth: 13
    functionLinenumber: 1592
    functionLinenumberEnd: 1599
    functionName: test::nonzero_width_zero_height
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - RgbImage::new
    linkageType: ''
    returnType: void
    signature: fn nonzero_width_zero_height()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::from_fn
      Src: /src/image/src/images/buffer_par.rs:432,1
    - Dst: Rgb
      Src: /src/image/src/images/buffer_par.rs:433,1
    - Dst: std::array::from_fn
      Src: /src/image/src/images/buffer_par.rs:433,1
    - Dst: ImageBuffer::clone
      Src: /src/image/src/images/buffer_par.rs:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 455
    functionName: test::iter_parity
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - Rgb
    - RgbImage::from_fn
    - std::array::from_fn
    - ImageBuffer::clone
    linkageType: ''
    returnType: void
    signature: fn iter_parity()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/images/buffer_par.rs:468,1
    - Dst: RgbImage::from_fn
      Src: /src/image/src/images/buffer_par.rs:469,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer_par.rs:469,1
    - Dst: pixel_func
      Src: /src/image/src/images/buffer_par.rs:469,1
    - Dst: Option::as_raw
      Src: /src/image/src/images/buffer_par.rs:471,1
    - Dst: '&Container::len'
      Src: /src/image/src/images/buffer_par.rs:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 475
      start: 466
    functionDepth: 14
    functionLinenumber: 466
    functionLinenumberEnd: 475
    functionName: benchmarks::creation
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - test::black_box
    - RgbImage::from_fn
    - iter
    - pixel_func
    - Option::as_raw
    - '&Container::len'
    linkageType: ''
    returnType: void
    signature: 'fn creation(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/images/buffer_par.rs:480,1
    - Dst: RgbImage::from_par_fn
      Src: /src/image/src/images/buffer_par.rs:481,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer_par.rs:481,1
    - Dst: pixel_func
      Src: /src/image/src/images/buffer_par.rs:481,1
    - Dst: Option::as_raw
      Src: /src/image/src/images/buffer_par.rs:483,1
    - Dst: '&Container::len'
      Src: /src/image/src/images/buffer_par.rs:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 487
      start: 478
    functionDepth: 14
    functionLinenumber: 478
    functionLinenumberEnd: 487
    functionName: benchmarks::creation_par
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - test::black_box
    - iter
    - RgbImage::from_par_fn
    - pixel_func
    - Option::as_raw
    - '&Container::len'
    linkageType: ''
    returnType: void
    signature: 'fn creation_par(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgb
      Src: /src/image/src/images/buffer_par.rs:492,1
    - Dst: std::array::from_fn
      Src: /src/image/src/images/buffer_par.rs:492,1
    - Dst: RandomState::new
      Src: /src/image/src/images/buffer_par.rs:493,1
    - Dst: Self::build_hasher
      Src: /src/image/src/images/buffer_par.rs:493,1
    - Dst: finish
      Src: /src/image/src/images/buffer_par.rs:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 489
    functionDepth: 13
    functionLinenumber: 489
    functionLinenumberEnd: 495
    functionName: benchmarks::pixel_func
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - Self::build_hasher
    - RandomState::new
    - finish
    - Rgb
    - std::array::from_fn
    linkageType: ''
    returnType: Rgb
    signature: fn pixel_func() -> Rgb<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericImageView::dimensions
      Src: /src/image/src/images/generic_image.rs:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 11
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: GenericImageView::width
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - GenericImageView::dimensions
    linkageType: ''
    returnType: u32
    signature: fn width(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericImageView::dimensions
      Src: /src/image/src/images/generic_image.rs:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 11
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: GenericImageView::height
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - GenericImageView::dimensions
    linkageType: ''
    returnType: u32
    signature: fn height(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericImageView::dimensions
      Src: /src/image/src/images/generic_image.rs:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 11
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: GenericImageView::in_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - GenericImageView::dimensions
    linkageType: ''
    returnType: bool
    signature: 'fn in_bounds(&self, x: u32, y: u32) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericImageView::get_pixel
      Src: /src/image/src/images/generic_image.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: GenericImageView::unsafe_get_pixel
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - GenericImageView::get_pixel
    linkageType: ''
    returnType: Self::Pixel
    signature: 'unsafe fn unsafe_get_pixel(&self, x: u32, y: u32) -> Self::Pixel'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericImageView::dimensions
      Src: /src/image/src/images/generic_image.rs:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 11
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: GenericImageView::pixels
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - GenericImageView::dimensions
    linkageType: ''
    returnType: Pixels
    signature: 'fn pixels(&self) -> Pixels<''_, Self>whereSelf: Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubImage::new
      Src: /src/image/src/images/generic_image.rs:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - x
    - y
    - width
    - height
    argTypes:
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: GenericImageView::view
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - SubImage::new
    linkageType: ''
    returnType: SubImage
    signature: 'fn view(&self, x: u32, y: u32, width: u32, height: u32) -> SubImage<&Self>whereSelf:
      Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/image/src/images/buffer.rs:34,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:34,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/images/buffer.rs:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 14
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Pixels::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - map
    - next
    - <P as Pixel>::from_slice
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<&'a P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/buffer.rs:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: Pixels::clone
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericImage::put_pixel
      Src: /src/image/src/images/generic_image.rs:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - Self::Pixel
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: GenericImage::unsafe_put_pixel
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - GenericImage::put_pixel
    linkageType: ''
    returnType: void
    signature: 'unsafe fn unsafe_put_pixel(&mut self, x: u32, y: u32, pixel: Self::Pixel)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericImage::width
      Src: /src/image/src/images/generic_image.rs:199,1
    - Dst: '&O::width'
      Src: /src/image/src/images/generic_image.rs:199,1
    - Dst: GenericImage::height
      Src: /src/image/src/images/generic_image.rs:199,1
    - Dst: '&O::height'
      Src: /src/image/src/images/generic_image.rs:199,1
    - Dst: Err
      Src: /src/image/src/images/generic_image.rs:200,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/images/generic_image.rs:200,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/images/generic_image.rs:200,1
    - Dst: '&O::height'
      Src: /src/image/src/images/generic_image.rs:205,1
    - Dst: '&O::width'
      Src: /src/image/src/images/generic_image.rs:206,1
    - Dst: '&O::get_pixel'
      Src: /src/image/src/images/generic_image.rs:207,1
    - Dst: GenericImage::put_pixel
      Src: /src/image/src/images/generic_image.rs:208,1
    - Dst: Ok
      Src: /src/image/src/images/generic_image.rs:211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 3
    argNames:
    - other
    - x
    - y
    argTypes:
    - '&O'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 212
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 212
    functionName: GenericImage::copy_from
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Err
    - '&O::get_pixel'
    - ParameterError::from_kind
    - GenericImage::width
    - GenericImage::put_pixel
    - '&O::height'
    - GenericImage::height
    - '&O::width'
    - Ok
    - ImageError::Parameter
    linkageType: ''
    returnType: ImageResult
    signature: 'fn copy_from<O>(&mut self, other: &O, x: u32, y: u32) -> ImageResult<()>whereO:
      GenericImageView<Pixel = Self::Pixel>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericImage::width
      Src: /src/image/src/images/generic_image.rs:232,1
    - Dst: u32::max
      Src: /src/image/src/images/generic_image.rs:232,1
    - Dst: GenericImage::height
      Src: /src/image/src/images/generic_image.rs:232,1
    - Dst: ImageResult::max
      Src: /src/image/src/images/generic_image.rs:232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - source
    - x
    - y
    argTypes:
    - Rect
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 259
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 259
    functionName: GenericImage::copy_within
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - GenericImage::width
    - u32::max
    - ImageResult::max
    - GenericImage::height
    linkageType: ''
    returnType: bool
    signature: 'fn copy_within(&mut self, source: Rect, x: u32, y: u32) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubImage::new
      Src: /src/image/src/images/generic_image.rs:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - x
    - y
    - width
    - height
    argTypes:
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: GenericImage::sub_image
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - SubImage::new
    linkageType: ''
    returnType: SubImage
    signature: 'fn sub_image(&mut self, x: u32, y: u32, width: u32, height: u32) ->
      SubImage<&mut Self>whereSelf: Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/generic_image.rs:286,1
    - Dst: put_pixel
      Src: /src/image/src/images/generic_image.rs:287,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:287,1
    - Dst: blend_pixel
      Src: /src/image/src/images/generic_image.rs:289,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:289,1
    - Dst: blend_pixel
      Src: /src/image/src/images/generic_image.rs:293,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:293,1
    - Dst: put_pixel
      Src: /src/image/src/images/generic_image.rs:297,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:297,1
    - Dst: blend_pixel
      Src: /src/image/src/images/generic_image.rs:298,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 300
    functionName: tests::test_image_alpha_blending
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::new
    - put_pixel
    - blend_pixel
    linkageType: ''
    returnType: void
    signature: fn test_image_alpha_blending()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/generic_image.rs:304,1
    - Dst: put_pixel
      Src: /src/image/src/images/generic_image.rs:305,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 315
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 315
    functionName: tests::test_in_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::new
    - put_pixel
    linkageType: ''
    returnType: void
    signature: fn test_in_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/generic_image.rs:319,1
    - Dst: Option::put_pixel
      Src: /src/image/src/images/generic_image.rs:320,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:320,1
    - Dst: Option::clone
      Src: /src/image/src/images/generic_image.rs:323,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:326,1
    - Dst: SubImage::to_image
      Src: /src/image/src/images/generic_image.rs:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 329
    functionName: tests::test_can_subimage_clone_nonmut
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - Option::view
    - SubImage::to_image
    - ImageBuffer::new
    - Option::clone
    - Option::put_pixel
    linkageType: ''
    returnType: void
    signature: fn test_can_subimage_clone_nonmut()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/generic_image.rs:333,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:333,1
    - Dst: Option::sub_image
      Src: /src/image/src/images/generic_image.rs:336,1
    - Dst: SubImage::sub_image
      Src: /src/image/src/images/generic_image.rs:337,1
    - Dst: SubImage::put_pixel
      Src: /src/image/src/images/generic_image.rs:338,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:338,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:343,1
    - Dst: SubImage::view
      Src: /src/image/src/images/generic_image.rs:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 348
    functionName: tests::test_can_nest_views
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - SubImage::put_pixel
    - Rgba
    - SubImage::view
    - Option::view
    - SubImage::sub_image
    - Option::sub_image
    - ImageBuffer::from_pixel
    linkageType: ''
    returnType: void
    signature: fn test_can_nest_views()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/generic_image.rs:353,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:353,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: tests::test_view_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::from_pixel
    - Option::view
    linkageType: ''
    returnType: void
    signature: fn test_view_out_of_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/generic_image.rs:360,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:360,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: tests::test_view_coordinates_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::from_pixel
    - Option::view
    linkageType: ''
    returnType: void
    signature: fn test_view_coordinates_out_of_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/generic_image.rs:367,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:367,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: tests::test_view_width_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::from_pixel
    - Option::view
    linkageType: ''
    returnType: void
    signature: fn test_view_width_out_of_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/generic_image.rs:374,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:374,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 376
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 376
    functionName: tests::test_view_height_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::from_pixel
    - Option::view
    linkageType: ''
    returnType: void
    signature: fn test_view_height_out_of_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/generic_image.rs:381,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:381,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: tests::test_view_x_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::from_pixel
    - Option::view
    linkageType: ''
    returnType: void
    signature: fn test_view_x_out_of_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/generic_image.rs:388,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:388,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 390
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 390
    functionName: tests::test_view_y_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::from_pixel
    - Option::view
    linkageType: ''
    returnType: void
    signature: fn test_view_y_out_of_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/generic_image.rs:394,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:394,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:395,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:396,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 398
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 398
    functionName: tests::test_view_in_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::from_pixel
    - Option::view
    linkageType: ''
    returnType: void
    signature: fn test_view_in_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/generic_image.rs:402,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:402,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:403,1
    - Dst: SubImage::to_image
      Src: /src/image/src/images/generic_image.rs:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: tests::test_copy_sub_image
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - SubImage::to_image
    - ImageBuffer::from_pixel
    - Option::view
    linkageType: ''
    returnType: void
    signature: fn test_copy_sub_image()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/generic_image.rs:410,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 481
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 481
    functionName: tests::test_generic_image_copy_within_oob
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_generic_image_copy_within_oob()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/generic_image.rs:487,1
    - Dst: Vec::from
      Src: /src/image/src/images/generic_image.rs:487,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 499
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 499
    functionName: tests::test_generic_image_copy_within_tl
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - Vec::from
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_generic_image_copy_within_tl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/generic_image.rs:505,1
    - Dst: Vec::from
      Src: /src/image/src/images/generic_image.rs:505,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 517
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 517
    functionName: tests::test_generic_image_copy_within_tr
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - Vec::from
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_generic_image_copy_within_tr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/generic_image.rs:523,1
    - Dst: Vec::from
      Src: /src/image/src/images/generic_image.rs:523,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 535
      start: 520
    functionDepth: 3
    functionLinenumber: 520
    functionLinenumberEnd: 535
    functionName: tests::test_generic_image_copy_within_bl
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - Vec::from
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_generic_image_copy_within_bl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/generic_image.rs:541,1
    - Dst: Vec::from
      Src: /src/image/src/images/generic_image.rs:541,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 553
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 553
    functionName: tests::test_generic_image_copy_within_br
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - Vec::from
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_generic_image_copy_within_br()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 111
    functionName: dynamic_map
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: DynamicImage::clone
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:120,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:121,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:122,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:123,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:124,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:125,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:126,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:127,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:128,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:129,1
    - Dst: Option::clone
      Src: /src/image/src/images/dynimage.rs:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - source
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 132
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 132
    functionName: DynamicImage::clone_from
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Option::clone
    - clone_from
    linkageType: ''
    returnType: void
    signature: 'fn clone_from(&mut self, source: &Self)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_luma8
      Src: /src/image/src/images/dynimage.rs:142,1
    - Dst: Self::new_luma_a8
      Src: /src/image/src/images/dynimage.rs:143,1
    - Dst: Self::new_rgb8
      Src: /src/image/src/images/dynimage.rs:144,1
    - Dst: Self::new_rgba8
      Src: /src/image/src/images/dynimage.rs:145,1
    - Dst: Self::new_luma16
      Src: /src/image/src/images/dynimage.rs:146,1
    - Dst: Self::new_luma_a16
      Src: /src/image/src/images/dynimage.rs:147,1
    - Dst: Self::new_rgb16
      Src: /src/image/src/images/dynimage.rs:148,1
    - Dst: Self::new_rgba16
      Src: /src/image/src/images/dynimage.rs:149,1
    - Dst: Self::new_rgb32f
      Src: /src/image/src/images/dynimage.rs:150,1
    - Dst: Self::new_rgba32f
      Src: /src/image/src/images/dynimage.rs:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - w
    - h
    - color
    argTypes:
    - u32
    - u32
    - color::ColorType
    constantsTouched: []
    func_position:
      end: 153
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 153
    functionName: DynamicImage::new
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - Self::new_luma8
    - Self::new_rgb8
    - Self::new_rgba32f
    - Self::new_rgba16
    - Self::new_rgba8
    - Self::new_rgb32f
    - Self::new_luma_a16
    - Self::new_luma16
    - Self::new_rgb16
    - Self::new_luma_a8
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new(w: u32, h: u32, color: color::ColorType) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageLuma8
      Src: /src/image/src/images/dynimage.rs:158,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: DynamicImage::new_luma8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::ImageLuma8
    - ImageBuffer::new
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_luma8(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/src/images/dynimage.rs:165,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: DynamicImage::new_luma_a8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::ImageLumaA8
    - ImageBuffer::new
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_luma_a8(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageRgb8
      Src: /src/image/src/images/dynimage.rs:171,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: DynamicImage::new_rgb8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::new
    - DynamicImage::ImageRgb8
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_rgb8(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageRgba8
      Src: /src/image/src/images/dynimage.rs:177,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: DynamicImage::new_rgba8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::ImageRgba8
    - ImageBuffer::new
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_rgba8(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageLuma16
      Src: /src/image/src/images/dynimage.rs:183,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: DynamicImage::new_luma16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::ImageLuma16
    - ImageBuffer::new
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_luma16(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageLumaA16
      Src: /src/image/src/images/dynimage.rs:190,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: DynamicImage::new_luma_a16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::ImageLumaA16
    - ImageBuffer::new
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_luma_a16(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageRgb16
      Src: /src/image/src/images/dynimage.rs:196,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: DynamicImage::new_rgb16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::ImageRgb16
    - ImageBuffer::new
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_rgb16(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageRgba16
      Src: /src/image/src/images/dynimage.rs:202,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: DynamicImage::new_rgba16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::ImageRgba16
    - ImageBuffer::new
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_rgba16(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageRgb32F
      Src: /src/image/src/images/dynimage.rs:208,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: DynamicImage::new_rgb32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - DynamicImage::ImageRgb32F
    - ImageBuffer::new
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_rgb32f(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageRgba32F
      Src: /src/image/src/images/dynimage.rs:214,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: DynamicImage::new_rgba32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::ImageRgba32F
    - ImageBuffer::new
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_rgba32f(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: decoder_to_image
      Src: /src/image/src/images/dynimage.rs:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - impl ImageDecoder
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: DynamicImage::from_decoder
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 6
    functionsReached:
    - decoder_to_image
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn from_decoder(decoder: impl ImageDecoder) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 241
    functionName: DynamicImage::to
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn to<T: Pixel+ FromColor<color::Rgb<u8>>+ FromColor<color::Rgb<f32>>+
      FromColor<color::Rgba<u8>>+ FromColor<color::Rgba<u16>>+ FromColor<color::Rgba<f32>>+
      FromColor<color::Rgb<u16>>+ FromColor<Luma<u8>>+ FromColor<Luma<u16>>+ FromColor<LumaA<u16>>+
      FromColor<LumaA<u8>>,>(&self,) -> ImageBuffer<T, Vec<T::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::to
      Src: /src/image/src/images/dynimage.rs:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 247
    functionName: DynamicImage::to_rgb8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::to
    linkageType: ''
    returnType: RgbImage
    signature: pub fn to_rgb8(&self) -> RgbImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::to
      Src: /src/image/src/images/dynimage.rs:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: DynamicImage::to_rgb16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::to
    linkageType: ''
    returnType: Rgb16Image
    signature: pub fn to_rgb16(&self) -> Rgb16Image
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::to
      Src: /src/image/src/images/dynimage.rs:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: DynamicImage::to_rgb32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::to
    linkageType: ''
    returnType: Rgb32FImage
    signature: pub fn to_rgb32f(&self) -> Rgb32FImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::to
      Src: /src/image/src/images/dynimage.rs:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 265
    functionName: DynamicImage::to_rgba8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::to
    linkageType: ''
    returnType: RgbaImage
    signature: pub fn to_rgba8(&self) -> RgbaImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::to
      Src: /src/image/src/images/dynimage.rs:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 271
    functionName: DynamicImage::to_rgba16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::to
    linkageType: ''
    returnType: Rgba16Image
    signature: pub fn to_rgba16(&self) -> Rgba16Image
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::to
      Src: /src/image/src/images/dynimage.rs:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 277
    functionName: DynamicImage::to_rgba32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::to
    linkageType: ''
    returnType: Rgba32FImage
    signature: pub fn to_rgba32f(&self) -> Rgba32FImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::to
      Src: /src/image/src/images/dynimage.rs:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: DynamicImage::to_luma8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::to
    linkageType: ''
    returnType: GrayImage
    signature: pub fn to_luma8(&self) -> GrayImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::to
      Src: /src/image/src/images/dynimage.rs:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 289
    functionName: DynamicImage::to_luma16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::to
    linkageType: ''
    returnType: Gray16Image
    signature: pub fn to_luma16(&self) -> Gray16Image
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::to
      Src: /src/image/src/images/dynimage.rs:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 295
    functionName: DynamicImage::to_luma32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::to
    linkageType: ''
    returnType: ImageBuffer
    signature: pub fn to_luma32f(&self) -> ImageBuffer<Luma<f32>, Vec<f32>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::to
      Src: /src/image/src/images/dynimage.rs:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 301
    functionName: DynamicImage::to_luma_alpha8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::to
    linkageType: ''
    returnType: GrayAlphaImage
    signature: pub fn to_luma_alpha8(&self) -> GrayAlphaImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::to
      Src: /src/image/src/images/dynimage.rs:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: DynamicImage::to_luma_alpha16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::to
    linkageType: ''
    returnType: GrayAlpha16Image
    signature: pub fn to_luma_alpha16(&self) -> GrayAlpha16Image
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::to
      Src: /src/image/src/images/dynimage.rs:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: DynamicImage::to_luma_alpha32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::to
    linkageType: ''
    returnType: ImageBuffer
    signature: pub fn to_luma_alpha32f(&self) -> ImageBuffer<LumaA<f32>, Vec<f32>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_rgb8
      Src: /src/image/src/images/dynimage.rs:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 325
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 325
    functionName: DynamicImage::into_rgb8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - to_rgb8
    linkageType: ''
    returnType: RgbImage
    signature: pub fn into_rgb8(self) -> RgbImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_rgb16
      Src: /src/image/src/images/dynimage.rs:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 337
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 337
    functionName: DynamicImage::into_rgb16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - to_rgb16
    linkageType: ''
    returnType: Rgb16Image
    signature: pub fn into_rgb16(self) -> Rgb16Image
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_rgb32f
      Src: /src/image/src/images/dynimage.rs:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 349
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 349
    functionName: DynamicImage::into_rgb32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - to_rgb32f
    linkageType: ''
    returnType: Rgb32FImage
    signature: pub fn into_rgb32f(self) -> Rgb32FImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_rgba8
      Src: /src/image/src/images/dynimage.rs:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 361
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 361
    functionName: DynamicImage::into_rgba8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - to_rgba8
    linkageType: ''
    returnType: RgbaImage
    signature: pub fn into_rgba8(self) -> RgbaImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_rgba16
      Src: /src/image/src/images/dynimage.rs:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 373
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 373
    functionName: DynamicImage::into_rgba16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - to_rgba16
    linkageType: ''
    returnType: Rgba16Image
    signature: pub fn into_rgba16(self) -> Rgba16Image
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_rgba32f
      Src: /src/image/src/images/dynimage.rs:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 385
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 385
    functionName: DynamicImage::into_rgba32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - to_rgba32f
    linkageType: ''
    returnType: Rgba32FImage
    signature: pub fn into_rgba32f(self) -> Rgba32FImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_luma8
      Src: /src/image/src/images/dynimage.rs:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 397
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 397
    functionName: DynamicImage::into_luma8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - to_luma8
    linkageType: ''
    returnType: GrayImage
    signature: pub fn into_luma8(self) -> GrayImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_luma16
      Src: /src/image/src/images/dynimage.rs:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: DynamicImage::into_luma16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - to_luma16
    linkageType: ''
    returnType: Gray16Image
    signature: pub fn into_luma16(self) -> Gray16Image
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_luma_alpha8
      Src: /src/image/src/images/dynimage.rs:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 421
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 421
    functionName: DynamicImage::into_luma_alpha8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - to_luma_alpha8
    linkageType: ''
    returnType: GrayAlphaImage
    signature: pub fn into_luma_alpha8(self) -> GrayAlphaImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_luma_alpha16
      Src: /src/image/src/images/dynimage.rs:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 433
    functionName: DynamicImage::into_luma_alpha16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - to_luma_alpha16
    linkageType: ''
    returnType: GrayAlpha16Image
    signature: pub fn into_luma_alpha16(self) -> GrayAlpha16Image
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 4
    argNames:
    - x
    - y
    - width
    - height
    argTypes:
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 442
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 442
    functionName: DynamicImage::crop
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn crop(&mut self, x: u32, y: u32, width: u32, height: u32) ->
      DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 4
    argNames:
    - x
    - y
    - width
    - height
    argTypes:
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 448
    functionName: DynamicImage::crop_imm
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn crop_imm(&self, x: u32, y: u32, width: u32, height: u32) ->
      DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 457
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 457
    functionName: DynamicImage::as_rgb8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_rgb8(&self) -> Option<&RgbImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: DynamicImage::as_mut_rgb8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_mut_rgb8(&mut self) -> Option<&mut RgbImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 474
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 474
    functionName: DynamicImage::as_rgba8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_rgba8(&self) -> Option<&RgbaImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 482
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 482
    functionName: DynamicImage::as_mut_rgba8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_mut_rgba8(&mut self) -> Option<&mut RgbaImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 491
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 491
    functionName: DynamicImage::as_luma8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_luma8(&self) -> Option<&GrayImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 499
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 499
    functionName: DynamicImage::as_mut_luma8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_mut_luma8(&mut self) -> Option<&mut GrayImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:505,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 508
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 508
    functionName: DynamicImage::as_luma_alpha8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_luma_alpha8(&self) -> Option<&GrayAlphaImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 516
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 516
    functionName: DynamicImage::as_mut_luma_alpha8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_mut_luma_alpha8(&mut self) -> Option<&mut GrayAlphaImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:522,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 525
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 525
    functionName: DynamicImage::as_rgb16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_rgb16(&self) -> Option<&Rgb16Image>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 533
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 533
    functionName: DynamicImage::as_mut_rgb16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_mut_rgb16(&mut self) -> Option<&mut Rgb16Image>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 542
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 542
    functionName: DynamicImage::as_rgba16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_rgba16(&self) -> Option<&Rgba16Image>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 550
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 550
    functionName: DynamicImage::as_mut_rgba16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_mut_rgba16(&mut self) -> Option<&mut Rgba16Image>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 559
    functionName: DynamicImage::as_rgb32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_rgb32f(&self) -> Option<&Rgb32FImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 567
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 567
    functionName: DynamicImage::as_mut_rgb32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_mut_rgb32f(&mut self) -> Option<&mut Rgb32FImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 576
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 576
    functionName: DynamicImage::as_rgba32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_rgba32f(&self) -> Option<&Rgba32FImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 584
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 584
    functionName: DynamicImage::as_mut_rgba32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_mut_rgba32f(&mut self) -> Option<&mut Rgba32FImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 593
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 593
    functionName: DynamicImage::as_luma16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_luma16(&self) -> Option<&Gray16Image>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 601
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 601
    functionName: DynamicImage::as_mut_luma16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_mut_luma16(&mut self) -> Option<&mut Gray16Image>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 610
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 610
    functionName: DynamicImage::as_luma_alpha16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_luma_alpha16(&self) -> Option<&GrayAlpha16Image>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 618
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 618
    functionName: DynamicImage::as_mut_luma_alpha16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_mut_luma_alpha16(&mut self) -> Option<&mut GrayAlpha16Image>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:624,1
    - Dst: as_flat_samples
      Src: /src/image/src/images/dynimage.rs:624,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:625,1
    - Dst: as_flat_samples
      Src: /src/image/src/images/dynimage.rs:625,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:626,1
    - Dst: as_flat_samples
      Src: /src/image/src/images/dynimage.rs:626,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:627,1
    - Dst: as_flat_samples
      Src: /src/image/src/images/dynimage.rs:627,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 630
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 630
    functionName: DynamicImage::as_flat_samples_u8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    - as_flat_samples
    linkageType: ''
    returnType: Option
    signature: pub fn as_flat_samples_u8(&self) -> Option<FlatSamples<&[u8]>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:636,1
    - Dst: as_flat_samples
      Src: /src/image/src/images/dynimage.rs:636,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:637,1
    - Dst: as_flat_samples
      Src: /src/image/src/images/dynimage.rs:637,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:638,1
    - Dst: as_flat_samples
      Src: /src/image/src/images/dynimage.rs:638,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:639,1
    - Dst: as_flat_samples
      Src: /src/image/src/images/dynimage.rs:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 642
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 642
    functionName: DynamicImage::as_flat_samples_u16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    - as_flat_samples
    linkageType: ''
    returnType: Option
    signature: pub fn as_flat_samples_u16(&self) -> Option<FlatSamples<&[u16]>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:648,1
    - Dst: as_flat_samples
      Src: /src/image/src/images/dynimage.rs:648,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:649,1
    - Dst: as_flat_samples
      Src: /src/image/src/images/dynimage.rs:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 652
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 652
    functionName: DynamicImage::as_flat_samples_f32
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    - as_flat_samples
    linkageType: ''
    returnType: Option
    signature: pub fn as_flat_samples_f32(&self) -> Option<FlatSamples<&[f32]>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 663
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 663
    functionName: DynamicImage::as_bytes
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: pub fn as_bytes(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 684
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 684
    functionName: DynamicImage::into_bytes
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: pub fn into_bytes(self) -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 701
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 701
    functionName: DynamicImage::color
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: color::ColorType
    signature: pub fn color(&self) -> color::ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 707
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 707
    functionName: DynamicImage::width
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn width(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 713
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 713
    functionName: DynamicImage::height
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn height(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::color
      Src: /src/image/src/images/dynimage.rs:725,1
    - Dst: color::ColorType::has_alpha
      Src: /src/image/src/images/dynimage.rs:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 726
      start: 724
    functionDepth: 1
    functionLinenumber: 724
    functionLinenumberEnd: 726
    functionName: DynamicImage::has_alpha
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::color
    - color::ColorType::has_alpha
    linkageType: ''
    returnType: bool
    signature: pub fn has_alpha(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageLuma8
      Src: /src/image/src/images/dynimage.rs:734,1
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:734,1
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/src/images/dynimage.rs:736,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/src/images/dynimage.rs:736,1
    - Dst: DynamicImage::ImageLuma8
      Src: /src/image/src/images/dynimage.rs:738,1
    - Dst: imageops::grayscale
      Src: /src/image/src/images/dynimage.rs:738,1
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/src/images/dynimage.rs:740,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/src/images/dynimage.rs:740,1
    - Dst: DynamicImage::ImageLuma16
      Src: /src/image/src/images/dynimage.rs:742,1
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:742,1
    - Dst: DynamicImage::ImageLumaA16
      Src: /src/image/src/images/dynimage.rs:744,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/src/images/dynimage.rs:744,1
    - Dst: DynamicImage::ImageLuma16
      Src: /src/image/src/images/dynimage.rs:746,1
    - Dst: imageops::grayscale
      Src: /src/image/src/images/dynimage.rs:746,1
    - Dst: DynamicImage::ImageLumaA16
      Src: /src/image/src/images/dynimage.rs:748,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/src/images/dynimage.rs:748,1
    - Dst: DynamicImage::ImageRgb32F
      Src: /src/image/src/images/dynimage.rs:751,1
    - Dst: imageops::grayscale_with_type
      Src: /src/image/src/images/dynimage.rs:751,1
    - Dst: DynamicImage::ImageRgba32F
      Src: /src/image/src/images/dynimage.rs:754,1
    - Dst: imageops::grayscale_with_type_alpha
      Src: /src/image/src/images/dynimage.rs:754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 757
      start: 732
    functionDepth: 13
    functionLinenumber: 732
    functionLinenumberEnd: 757
    functionName: DynamicImage::grayscale
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::ImageLuma16
    - imageops::grayscale_alpha
    - clone
    - imageops::grayscale_with_type_alpha
    - imageops::grayscale
    - imageops::grayscale_with_type
    - DynamicImage::ImageRgb32F
    - DynamicImage::ImageLuma8
    - DynamicImage::ImageRgba32F
    - DynamicImage::ImageLumaA8
    - DynamicImage::ImageLumaA16
    linkageType: ''
    returnType: DynamicImage
    signature: pub fn grayscale(&self) -> DynamicImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 763
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 763
    functionName: DynamicImage::invert
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    linkageType: ''
    returnType: void
    signature: pub fn invert(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::dimensions
      Src: /src/image/src/images/dynimage.rs:771,1
    - Dst: DynamicImage::clone
      Src: /src/image/src/images/dynimage.rs:772,1
    - Dst: math::resize_dimensions
      Src: /src/image/src/images/dynimage.rs:775,1
    - Dst: DynamicImage::width
      Src: /src/image/src/images/dynimage.rs:775,1
    - Dst: DynamicImage::height
      Src: /src/image/src/images/dynimage.rs:775,1
    - Dst: DynamicImage::resize_exact
      Src: /src/image/src/images/dynimage.rs:777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - nwidth
    - nheight
    - filter
    argTypes:
    - u32
    - u32
    - imageops::FilterType
    constantsTouched: []
    func_position:
      end: 778
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 778
    functionName: DynamicImage::resize
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - math::resize_dimensions
    - DynamicImage::resize_exact
    - DynamicImage::width
    - DynamicImage::dimensions
    - DynamicImage::height
    - DynamicImage::clone
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn resize(&self, nwidth: u32, nheight: u32, filter: imageops::FilterType)
      -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - nwidth
    - nheight
    - filter
    argTypes:
    - u32
    - u32
    - imageops::FilterType
    constantsTouched: []
    func_position:
      end: 791
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 791
    functionName: DynamicImage::resize_exact
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn resize_exact(&self,nwidth: u32,nheight: u32,filter: imageops::FilterType,)
      -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: math::resize_dimensions
      Src: /src/image/src/images/dynimage.rs:804,1
    - Dst: DynamicImage::width
      Src: /src/image/src/images/dynimage.rs:804,1
    - Dst: DynamicImage::height
      Src: /src/image/src/images/dynimage.rs:804,1
    - Dst: DynamicImage::thumbnail_exact
      Src: /src/image/src/images/dynimage.rs:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - nwidth
    - nheight
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 806
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 806
    functionName: DynamicImage::thumbnail
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - math::resize_dimensions
    - DynamicImage::height
    - DynamicImage::thumbnail_exact
    - DynamicImage::width
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn thumbnail(&self, nwidth: u32, nheight: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 2
    argNames:
    - nwidth
    - nheight
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 817
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 817
    functionName: DynamicImage::thumbnail_exact
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn thumbnail_exact(&self, nwidth: u32, nheight: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: math::resize_dimensions
      Src: /src/image/src/images/dynimage.rs:833,1
    - Dst: DynamicImage::width
      Src: /src/image/src/images/dynimage.rs:833,1
    - Dst: DynamicImage::height
      Src: /src/image/src/images/dynimage.rs:833,1
    - Dst: DynamicImage::resize_exact
      Src: /src/image/src/images/dynimage.rs:835,1
    - Dst: DynamicImage::dimensions
      Src: /src/image/src/images/dynimage.rs:836,1
    - Dst: u64::from
      Src: /src/image/src/images/dynimage.rs:837,1
    - Dst: u64::from
      Src: /src/image/src/images/dynimage.rs:837,1
    - Dst: u64::from
      Src: /src/image/src/images/dynimage.rs:838,1
    - Dst: u64::from
      Src: /src/image/src/images/dynimage.rs:838,1
    - Dst: DynamicImage::crop
      Src: /src/image/src/images/dynimage.rs:841,1
    - Dst: DynamicImage::crop
      Src: /src/image/src/images/dynimage.rs:843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 3
    argNames:
    - nwidth
    - nheight
    - filter
    argTypes:
    - u32
    - u32
    - imageops::FilterType
    constantsTouched: []
    func_position:
      end: 845
      start: 826
    functionDepth: 3
    functionLinenumber: 826
    functionLinenumberEnd: 845
    functionName: DynamicImage::resize_to_fill
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - math::resize_dimensions
    - DynamicImage::resize_exact
    - DynamicImage::crop
    - DynamicImage::width
    - DynamicImage::dimensions
    - u64::from
    - DynamicImage::height
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn resize_to_fill(&self,nwidth: u32,nheight: u32,filter: imageops::FilterType,)
      -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: imageops::gaussian_blur_dyn_image
      Src: /src/image/src/images/dynimage.rs:861,1
    - Dst: GaussianBlurParameters::new_from_sigma
      Src: /src/image/src/images/dynimage.rs:863,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sigma
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 865
      start: 860
    functionDepth: 15
    functionLinenumber: 860
    functionLinenumberEnd: 865
    functionName: DynamicImage::blur
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - GaussianBlurParameters::new_from_sigma
    - imageops::gaussian_blur_dyn_image
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn blur(&self, sigma: f32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: imageops::gaussian_blur_dyn_image
      Src: /src/image/src/images/dynimage.rs:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - parameters
    argTypes:
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 879
      start: 877
    functionDepth: 15
    functionLinenumber: 877
    functionLinenumberEnd: 879
    functionName: DynamicImage::blur_advanced
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - imageops::gaussian_blur_dyn_image
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn blur_advanced(&self, parameters: GaussianBlurParameters) ->
      DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - sigma
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 892
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 892
    functionName: DynamicImage::fast_blur
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn fast_blur(&self, sigma: f32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 2
    argNames:
    - sigma
    - threshold
    argTypes:
    - f32
    - i32
    constantsTouched: []
    func_position:
      end: 909
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 909
    functionName: DynamicImage::unsharpen
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn unsharpen(&self, sigma: f32, threshold: i32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kernel
    argTypes:
    - '&[f32]'
    constantsTouched: []
    func_position:
      end: 924
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 924
    functionName: DynamicImage::filter3x3
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn filter3x3(&self, kernel: &[f32]) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - c
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 932
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 932
    functionName: DynamicImage::adjust_contrast
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn adjust_contrast(&self, c: f32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - value
    argTypes:
    - i32
    constantsTouched: []
    func_position:
      end: 940
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 940
    functionName: DynamicImage::brighten
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn brighten(&self, value: i32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - value
    argTypes:
    - i32
    constantsTouched: []
    func_position:
      end: 949
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 949
    functionName: DynamicImage::huerotate
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn huerotate(&self, value: i32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 957
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 957
    functionName: DynamicImage::flipv
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DynamicImage
    signature: pub fn flipv(&self) -> DynamicImage
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 962
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 962
    functionName: DynamicImage::flipv_in_place
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn flipv_in_place(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 970
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 970
    functionName: DynamicImage::fliph
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DynamicImage
    signature: pub fn fliph(&self) -> DynamicImage
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 975
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 975
    functionName: DynamicImage::fliph_in_place
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn fliph_in_place(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 981
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 981
    functionName: DynamicImage::rotate90
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DynamicImage
    signature: pub fn rotate90(&self) -> DynamicImage
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 989
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 989
    functionName: DynamicImage::rotate180
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DynamicImage
    signature: pub fn rotate180(&self) -> DynamicImage
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 994
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 994
    functionName: DynamicImage::rotate180_in_place
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn rotate180_in_place(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 998
    functionDepth: 0
    functionLinenumber: 998
    functionLinenumberEnd: 1000
    functionName: DynamicImage::rotate270
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DynamicImage
    signature: pub fn rotate270(&self) -> DynamicImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::rotate90
      Src: /src/image/src/images/dynimage.rs:1028,1
    - Dst: Vec::rotate180_in_place
      Src: /src/image/src/images/dynimage.rs:1029,1
    - Dst: Vec::rotate270
      Src: /src/image/src/images/dynimage.rs:1030,1
    - Dst: Vec::fliph_in_place
      Src: /src/image/src/images/dynimage.rs:1031,1
    - Dst: Vec::flipv_in_place
      Src: /src/image/src/images/dynimage.rs:1032,1
    - Dst: Vec::rotate90
      Src: /src/image/src/images/dynimage.rs:1034,1
    - Dst: ImageBuffer::fliph_in_place
      Src: /src/image/src/images/dynimage.rs:1035,1
    - Dst: Vec::rotate270
      Src: /src/image/src/images/dynimage.rs:1039,1
    - Dst: ImageBuffer::fliph_in_place
      Src: /src/image/src/images/dynimage.rs:1040,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - orientation
    argTypes:
    - Orientation
    constantsTouched: []
    func_position:
      end: 1044
      start: 1024
    functionDepth: 12
    functionLinenumber: 1024
    functionLinenumberEnd: 1044
    functionName: DynamicImage::apply_orientation
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Vec::rotate270
    - Vec::flipv_in_place
    - ImageBuffer::fliph_in_place
    - Vec::rotate90
    - Vec::fliph_in_place
    - Vec::rotate180_in_place
    linkageType: ''
    returnType: void
    signature: 'pub fn apply_orientation(&mut self, orientation: Orientation)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::make_compatible_img
      Src: /src/image/src/images/dynimage.rs:1050,1
    - Dst: Option::as_ref
      Src: /src/image/src/images/dynimage.rs:1051,1
    - Dst: FlatSamples::unwrap_or
      Src: /src/image/src/images/dynimage.rs:1051,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/images/dynimage.rs:1053,1
    - Dst: Option::as_bytes
      Src: /src/image/src/images/dynimage.rs:1054,1
    - Dst: Option::width
      Src: /src/image/src/images/dynimage.rs:1055,1
    - Dst: Option::height
      Src: /src/image/src/images/dynimage.rs:1056,1
    - Dst: Option::color
      Src: /src/image/src/images/dynimage.rs:1057,1
    - Dst: bool::into
      Src: /src/image/src/images/dynimage.rs:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Box<dyn ImageEncoderBoxed + 'a>
    constantsTouched: []
    func_position:
      end: 1059
      start: 1046
    functionDepth: 12
    functionLinenumber: 1046
    functionLinenumberEnd: 1059
    functionName: DynamicImage::write_with_encoder_impl
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Option::as_bytes
    - FlatSamples::unwrap_or
    - ImageResult::make_compatible_img
    - ImageResult::write_image
    - Option::as_ref
    - bool::into
    - Option::width
    - Option::color
    - Option::height
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_with_encoder_impl<''a>(&self,encoder: Box<dyn ImageEncoderBoxed
      + ''a>,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::free_functions::encoder_for_format
      Src: /src/image/src/images/dynimage.rs:1072,1
    - Dst: DynamicImage::write_with_encoder_impl
      Src: /src/image/src/images/dynimage.rs:1073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - w
    - format
    argTypes:
    - W
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1074
      start: 1071
    functionDepth: 13
    functionLinenumber: 1071
    functionLinenumberEnd: 1074
    functionName: DynamicImage::write_to
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - io::free_functions::encoder_for_format
    - DynamicImage::write_with_encoder_impl
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn write_to<W: Write + Seek>(&self, mut w: W, format: ImageFormat)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::write_with_encoder_impl
      Src: /src/image/src/images/dynimage.rs:1084,1
    - Dst: Box::new
      Src: /src/image/src/images/dynimage.rs:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - impl ImageEncoder
    constantsTouched: []
    func_position:
      end: 1085
      start: 1083
    functionDepth: 13
    functionLinenumber: 1083
    functionLinenumberEnd: 1085
    functionName: DynamicImage::write_with_encoder
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - DynamicImage::write_with_encoder_impl
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn write_with_encoder(&self, encoder: impl ImageEncoder) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageFormat::from_path
      Src: /src/image/src/images/dynimage.rs:1098,1
    - Dst: ImageResult::as_ref
      Src: /src/image/src/images/dynimage.rs:1098,1
    - Dst: DynamicImage::save_with_format
      Src: /src/image/src/images/dynimage.rs:1099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - Q
    constantsTouched: []
    func_position:
      end: 1100
      start: 1094
    functionDepth: 15
    functionLinenumber: 1094
    functionLinenumberEnd: 1100
    functionName: DynamicImage::save
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - ImageFormat::from_path
    - ImageResult::as_ref
    - DynamicImage::save_with_format
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn save<Q>(&self, path: Q) -> ImageResult<()>whereQ: AsRef<Path>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufWriter::new
      Src: /src/image/src/images/dynimage.rs:1113,1
    - Dst: File::create
      Src: /src/image/src/images/dynimage.rs:1113,1
    - Dst: io::free_functions::encoder_for_format
      Src: /src/image/src/images/dynimage.rs:1114,1
    - Dst: DynamicImage::write_with_encoder_impl
      Src: /src/image/src/images/dynimage.rs:1115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - path
    - format
    argTypes:
    - Q
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1116
      start: 1109
    functionDepth: 13
    functionLinenumber: 1109
    functionLinenumberEnd: 1116
    functionName: DynamicImage::save_with_format
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - io::free_functions::encoder_for_format
    - File::create
    - DynamicImage::write_with_encoder_impl
    - BufWriter::new
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn save_with_format<Q>(&self, path: Q, format: ImageFormat) ->
      ImageResult<()>whereQ: AsRef<Path>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageRgba32F
      Src: /src/image/src/images/dynimage.rs:1187,1
    - Dst: Vec::convert
      Src: /src/image/src/images/dynimage.rs:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - image
    argTypes:
    - ImageBuffer<LumaA<f32>, Vec<f32>>
    constantsTouched: []
    func_position:
      end: 1188
      start: 1186
    functionDepth: 1
    functionLinenumber: 1186
    functionLinenumberEnd: 1188
    functionName: DynamicImage::from
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 2
    functionsReached:
    - DynamicImage::ImageRgba32F
    - Vec::convert
    linkageType: ''
    returnType: Self
    signature: 'fn from(image: ImageBuffer<LumaA<f32>, Vec<f32>>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1197
    functionName: DynamicImage::dimensions
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1201
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1201
    functionName: DynamicImage::get_pixel
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: color::Rgba
    signature: 'fn get_pixel(&self, x: u32, y: u32) -> color::Rgba<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_pixel
      Src: /src/image/src/images/dynimage.rs:1208,1
    - Dst: u8::to_luma
      Src: /src/image/src/images/dynimage.rs:1208,1
    - Dst: put_pixel
      Src: /src/image/src/images/dynimage.rs:1209,1
    - Dst: u8::to_luma_alpha
      Src: /src/image/src/images/dynimage.rs:1209,1
    - Dst: put_pixel
      Src: /src/image/src/images/dynimage.rs:1210,1
    - Dst: u8::to_rgb
      Src: /src/image/src/images/dynimage.rs:1210,1
    - Dst: put_pixel
      Src: /src/image/src/images/dynimage.rs:1211,1
    - Dst: put_pixel
      Src: /src/image/src/images/dynimage.rs:1212,1
    - Dst: u8::to_luma
      Src: /src/image/src/images/dynimage.rs:1212,1
    - Dst: T::into_color
      Src: /src/image/src/images/dynimage.rs:1212,1
    - Dst: put_pixel
      Src: /src/image/src/images/dynimage.rs:1214,1
    - Dst: u8::to_luma_alpha
      Src: /src/image/src/images/dynimage.rs:1214,1
    - Dst: into_color
      Src: /src/image/src/images/dynimage.rs:1214,1
    - Dst: put_pixel
      Src: /src/image/src/images/dynimage.rs:1216,1
    - Dst: u8::to_rgb
      Src: /src/image/src/images/dynimage.rs:1216,1
    - Dst: '[u8; 3]::into_color'
      Src: /src/image/src/images/dynimage.rs:1216,1
    - Dst: put_pixel
      Src: /src/image/src/images/dynimage.rs:1217,1
    - Dst: u8::into_color
      Src: /src/image/src/images/dynimage.rs:1217,1
    - Dst: put_pixel
      Src: /src/image/src/images/dynimage.rs:1218,1
    - Dst: u8::to_rgb
      Src: /src/image/src/images/dynimage.rs:1218,1
    - Dst: '[u8; 3]::into_color'
      Src: /src/image/src/images/dynimage.rs:1218,1
    - Dst: put_pixel
      Src: /src/image/src/images/dynimage.rs:1219,1
    - Dst: u8::into_color
      Src: /src/image/src/images/dynimage.rs:1219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - color::Rgba<u8>
    constantsTouched: []
    func_position:
      end: 1221
      start: 1206
    functionDepth: 15
    functionLinenumber: 1206
    functionLinenumberEnd: 1221
    functionName: DynamicImage::put_pixel
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - u8::to_luma
    - u8::into_color
    - T::into_color
    - '[u8; 3]::into_color'
    - put_pixel
    - u8::to_luma_alpha
    - u8::to_rgb
    - into_color
    linkageType: ''
    returnType: void
    signature: 'fn put_pixel(&mut self, x: u32, y: u32, pixel: color::Rgba<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: blend_pixel
      Src: /src/image/src/images/dynimage.rs:1225,1
    - Dst: u8::to_luma
      Src: /src/image/src/images/dynimage.rs:1225,1
    - Dst: blend_pixel
      Src: /src/image/src/images/dynimage.rs:1226,1
    - Dst: u8::to_luma_alpha
      Src: /src/image/src/images/dynimage.rs:1226,1
    - Dst: blend_pixel
      Src: /src/image/src/images/dynimage.rs:1227,1
    - Dst: u8::to_rgb
      Src: /src/image/src/images/dynimage.rs:1227,1
    - Dst: blend_pixel
      Src: /src/image/src/images/dynimage.rs:1228,1
    - Dst: blend_pixel
      Src: /src/image/src/images/dynimage.rs:1230,1
    - Dst: u8::to_luma
      Src: /src/image/src/images/dynimage.rs:1230,1
    - Dst: T::into_color
      Src: /src/image/src/images/dynimage.rs:1230,1
    - Dst: blend_pixel
      Src: /src/image/src/images/dynimage.rs:1233,1
    - Dst: u8::to_luma_alpha
      Src: /src/image/src/images/dynimage.rs:1233,1
    - Dst: into_color
      Src: /src/image/src/images/dynimage.rs:1233,1
    - Dst: blend_pixel
      Src: /src/image/src/images/dynimage.rs:1235,1
    - Dst: u8::to_rgb
      Src: /src/image/src/images/dynimage.rs:1235,1
    - Dst: '[u8; 3]::into_color'
      Src: /src/image/src/images/dynimage.rs:1235,1
    - Dst: blend_pixel
      Src: /src/image/src/images/dynimage.rs:1236,1
    - Dst: u8::into_color
      Src: /src/image/src/images/dynimage.rs:1236,1
    - Dst: blend_pixel
      Src: /src/image/src/images/dynimage.rs:1238,1
    - Dst: u8::to_rgb
      Src: /src/image/src/images/dynimage.rs:1238,1
    - Dst: '[u8; 3]::into_color'
      Src: /src/image/src/images/dynimage.rs:1238,1
    - Dst: blend_pixel
      Src: /src/image/src/images/dynimage.rs:1240,1
    - Dst: u8::into_color
      Src: /src/image/src/images/dynimage.rs:1240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - color::Rgba<u8>
    constantsTouched: []
    func_position:
      end: 1242
      start: 1223
    functionDepth: 15
    functionLinenumber: 1223
    functionLinenumberEnd: 1242
    functionName: DynamicImage::blend_pixel
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - blend_pixel
    - u8::to_luma
    - u8::into_color
    - T::into_color
    - '[u8; 3]::into_color'
    - u8::to_luma_alpha
    - u8::to_rgb
    - into_color
    linkageType: ''
    returnType: void
    signature: 'fn blend_pixel(&mut self, x: u32, y: u32, pixel: color::Rgba<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 2
    argNames: []
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1247
      start: 1245
    functionDepth: 0
    functionLinenumber: 1245
    functionLinenumberEnd: 1247
    functionName: DynamicImage::get_pixel_mut
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut color::Rgba'
    signature: 'fn get_pixel_mut(&mut self, _: u32, _: u32) -> &mut color::Rgba<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::ImageRgba8
      Src: /src/image/src/images/dynimage.rs:1252,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1251
    functionDepth: 1
    functionLinenumber: 1251
    functionLinenumberEnd: 1253
    functionName: DynamicImage::default
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Self::ImageRgba8
    - Default::default
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::dimensions
      Src: /src/image/src/images/dynimage.rs:1258,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/images/dynimage.rs:1259,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1263,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1264,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1264,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1268,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1269,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1269,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1273,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1274,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1274,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1278,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1279,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1279,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1283,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1284,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1284,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1288,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1289,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1289,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1293,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1294,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1294,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1298,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1299,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1299,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1303,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1304,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1304,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1308,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1309,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1309,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1314,1
    - Dst: Err
      Src: /src/image/src/images/dynimage.rs:1315,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/images/dynimage.rs:1315,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/images/dynimage.rs:1315,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 61
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - I
    constantsTouched: []
    func_position:
      end: 1319
      start: 1257
    functionDepth: 11
    functionLinenumber: 1257
    functionLinenumberEnd: 1319
    functionName: decoder_to_image
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - free_functions::decoder_to_vec
    - Option::map
    - ImageResult::color_type
    - Err
    - ParameterError::from_kind
    - ImageResult::dimensions
    - Ok
    - ImageBuffer::from_raw
    - ImageError::Parameter
    linkageType: ''
    returnType: ImageResult
    signature: 'fn decoder_to_image<I: ImageDecoder>(decoder: I) -> ImageResult<DynamicImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReader::open
      Src: /src/image/src/images/dynimage.rs:1330,1
    - Dst: decode
      Src: /src/image/src/images/dynimage.rs:1330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 1331
      start: 1326
    functionDepth: 15
    functionLinenumber: 1326
    functionLinenumberEnd: 1331
    functionName: open
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 31
    functionsReached:
    - ImageReader::open
    - decode
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn open<P>(path: P) -> ImageResult<DynamicImage>whereP: AsRef<Path>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReader::open
      Src: /src/image/src/images/dynimage.rs:1342,1
    - Dst: into_dimensions
      Src: /src/image/src/images/dynimage.rs:1342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 1343
      start: 1338
    functionDepth: 15
    functionLinenumber: 1338
    functionLinenumberEnd: 1343
    functionName: image_dimensions
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - into_dimensions
    - ImageReader::open
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn image_dimensions<P>(path: P) -> ImageResult<(u32, u32)>whereP:
      AsRef<Path>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::free_functions::encoder_for_format
      Src: /src/image/src/images/dynimage.rs:1360,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/images/dynimage.rs:1361,1
    - Dst: bool::into
      Src: /src/image/src/images/dynimage.rs:1361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - buffered_writer
    - buf
    - width
    - height
    - color
    - format
    argTypes:
    - '&mut W'
    - '&[u8]'
    - u32
    - u32
    - impl Into<ExtendedColorType>
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1362
      start: 1352
    functionDepth: 12
    functionLinenumber: 1352
    functionLinenumberEnd: 1362
    functionName: write_buffer_with_format
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - io::free_functions::encoder_for_format
    - bool::into
    - ImageResult::write_image
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn write_buffer_with_format<W: Write + Seek>(buffered_writer:
      &mut W,buf: &[u8],width: u32,height: u32,color: impl Into<ExtendedColorType>,format:
      ImageFormat,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free_functions::guess_format
      Src: /src/image/src/images/dynimage.rs:1371,1
    - Dst: '&RgbaImage::as_ref'
      Src: /src/image/src/images/dynimage.rs:1371,1
    - Dst: load_from_memory_with_format
      Src: /src/image/src/images/dynimage.rs:1372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - impl AsRef<[u8]>
    constantsTouched: []
    func_position:
      end: 1373
      start: 1370
    functionDepth: 14
    functionLinenumber: 1370
    functionLinenumberEnd: 1373
    functionName: load_from_memory
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 3
    functionsReached:
    - '&RgbaImage::as_ref'
    - free_functions::guess_format
    - load_from_memory_with_format
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn load_from_memory(buffer: impl AsRef<[u8]>) -> ImageResult<DynamicImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Cursor::new
      Src: /src/image/src/images/dynimage.rs:1391,1
    - Dst: io::Result::as_ref
      Src: /src/image/src/images/dynimage.rs:1391,1
    - Dst: free_functions::load
      Src: /src/image/src/images/dynimage.rs:1392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - format
    argTypes:
    - impl AsRef<[u8]>
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1393
      start: 1384
    functionDepth: 15
    functionLinenumber: 1384
    functionLinenumberEnd: 1393
    functionName: load_from_memory_with_format
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 2
    functionsReached:
    - io::Cursor::new
    - io::Result::as_ref
    - free_functions::load
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn load_from_memory_with_format(buf: impl AsRef<[u8]>,format:
      ImageFormat,) -> ImageResult<DynamicImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb8
      Src: /src/image/src/images/dynimage.rs:1400,1
    - Dst: crate::ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:1400,1
    - Dst: iter
      Src: /src/image/src/images/dynimage.rs:1401,1
    - Dst: to_luma8
      Src: /src/image/src/images/dynimage.rs:1401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1403
      start: 1399
    functionDepth: 2
    functionLinenumber: 1399
    functionLinenumberEnd: 1403
    functionName: bench::bench_conversion
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - to_luma8
    - iter
    - super::DynamicImage::ImageRgb8
    - crate::ImageBuffer::new
    linkageType: ''
    returnType: void
    signature: 'fn bench_conversion(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1411
    functionDepth: 0
    functionLinenumber: 1411
    functionLinenumberEnd: 1413
    functionName: test::test_empty_file
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_empty_file()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::image_dimensions
      Src: /src/image/src/images/dynimage.rs:1419,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/dynimage.rs:1419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1417
    functionDepth: 16
    functionLinenumber: 1417
    functionLinenumberEnd: 1421
    functionName: test::image_dimensions
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::image_dimensions
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn image_dimensions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::open
      Src: /src/image/src/images/dynimage.rs:1427,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/images/dynimage.rs:1427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1425
    functionDepth: 15
    functionLinenumber: 1425
    functionLinenumberEnd: 1429
    functionName: test::open_16bpc_png
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - io::Result::unwrap
    - super::open
    linkageType: ''
    returnType: void
    signature: fn open_16bpc_png()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale
      Src: /src/image/src/images/dynimage.rs:1442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - img
    argTypes:
    - super::DynamicImage
    constantsTouched: []
    func_position:
      end: 1443
      start: 1441
    functionDepth: 3
    functionLinenumber: 1441
    functionLinenumberEnd: 1443
    functionName: test::test_grayscale_alpha_discarded
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - test_grayscale
    linkageType: ''
    returnType: void
    signature: 'fn test_grayscale_alpha_discarded(img: super::DynamicImage)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale
      Src: /src/image/src/images/dynimage.rs:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - img
    argTypes:
    - super::DynamicImage
    constantsTouched: []
    func_position:
      end: 1447
      start: 1445
    functionDepth: 3
    functionLinenumber: 1445
    functionLinenumberEnd: 1447
    functionName: test::test_grayscale_alpha_preserved
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - test_grayscale
    linkageType: ''
    returnType: void
    signature: 'fn test_grayscale_alpha_preserved(img: super::DynamicImage)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1451,1
    - Dst: super::DynamicImage::new_luma8
      Src: /src/image/src/images/dynimage.rs:1451,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1452,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1450
    functionDepth: 4
    functionLinenumber: 1450
    functionLinenumberEnd: 1453
    functionName: test::test_grayscale_luma8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - super::DynamicImage::new_luma8
    - test_grayscale_alpha_discarded
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_luma8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1457,1
    - Dst: super::DynamicImage::new_luma_a8
      Src: /src/image/src/images/dynimage.rs:1457,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1458,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1456
    functionDepth: 4
    functionLinenumber: 1456
    functionLinenumberEnd: 1459
    functionName: test::test_grayscale_luma_a8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new_luma_a8
    - super::DynamicImage::new
    - test_grayscale_alpha_preserved
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_luma_a8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1463,1
    - Dst: super::DynamicImage::new_rgb8
      Src: /src/image/src/images/dynimage.rs:1463,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1464,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1462
    functionDepth: 4
    functionLinenumber: 1462
    functionLinenumberEnd: 1465
    functionName: test::test_grayscale_rgb8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - super::DynamicImage::new_rgb8
    - test_grayscale_alpha_discarded
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_rgb8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1469,1
    - Dst: super::DynamicImage::new_rgba8
      Src: /src/image/src/images/dynimage.rs:1469,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1470,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1468
    functionDepth: 4
    functionLinenumber: 1468
    functionLinenumberEnd: 1471
    functionName: test::test_grayscale_rgba8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new_rgba8
    - super::DynamicImage::new
    - test_grayscale_alpha_preserved
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_rgba8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1475,1
    - Dst: super::DynamicImage::new_luma16
      Src: /src/image/src/images/dynimage.rs:1475,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1476,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1474
    functionDepth: 4
    functionLinenumber: 1474
    functionLinenumberEnd: 1477
    functionName: test::test_grayscale_luma16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - super::DynamicImage::new_luma16
    - test_grayscale_alpha_discarded
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_luma16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1481,1
    - Dst: super::DynamicImage::new_luma_a16
      Src: /src/image/src/images/dynimage.rs:1481,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1482,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1480
    functionDepth: 4
    functionLinenumber: 1480
    functionLinenumberEnd: 1483
    functionName: test::test_grayscale_luma_a16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - super::DynamicImage::new_luma_a16
    - test_grayscale_alpha_preserved
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_luma_a16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1487,1
    - Dst: super::DynamicImage::new_rgb16
      Src: /src/image/src/images/dynimage.rs:1487,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1488,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1489
      start: 1486
    functionDepth: 4
    functionLinenumber: 1486
    functionLinenumberEnd: 1489
    functionName: test::test_grayscale_rgb16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - test_grayscale_alpha_discarded
    - super::DynamicImage::new_rgb16
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_rgb16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1493,1
    - Dst: super::DynamicImage::new_rgba16
      Src: /src/image/src/images/dynimage.rs:1493,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1494,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1492
    functionDepth: 4
    functionLinenumber: 1492
    functionLinenumberEnd: 1495
    functionName: test::test_grayscale_rgba16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new_rgba16
    - super::DynamicImage::new
    - test_grayscale_alpha_preserved
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_rgba16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1499,1
    - Dst: super::DynamicImage::new_rgb32f
      Src: /src/image/src/images/dynimage.rs:1499,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1500,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1498
    functionDepth: 4
    functionLinenumber: 1498
    functionLinenumberEnd: 1501
    functionName: test::test_grayscale_rgb32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new_rgb32f
    - super::DynamicImage::new
    - test_grayscale_alpha_discarded
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_rgb32f()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1505,1
    - Dst: super::DynamicImage::new_rgba32f
      Src: /src/image/src/images/dynimage.rs:1505,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1506,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1504
    functionDepth: 4
    functionLinenumber: 1504
    functionLinenumberEnd: 1507
    functionName: test::test_grayscale_rgba32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new_rgba32f
    - super::DynamicImage::new
    - test_grayscale_alpha_preserved
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_rgba32f()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1510
    functionDepth: 0
    functionLinenumber: 1510
    functionLinenumberEnd: 1518
    functionName: test::test_dynamic_image_default_implementation
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_dynamic_image_default_implementation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::new_luma8
      Src: /src/image/src/images/dynimage.rs:1522,1
    - Dst: DynamicImage::into_bytes
      Src: /src/image/src/images/dynimage.rs:1522,1
    - Dst: super::DynamicImage::new_luma16
      Src: /src/image/src/images/dynimage.rs:1523,1
    - Dst: DynamicImage::into_bytes
      Src: /src/image/src/images/dynimage.rs:1523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1524
    functionName: test::test_to_vecu8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::into_bytes
    - super::DynamicImage::new_luma8
    - super::DynamicImage::new_luma16
    linkageType: ''
    returnType: void
    signature: fn test_to_vecu8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::ImageBuffer::from_vec
      Src: /src/image/src/images/dynimage.rs:1529,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/dynimage.rs:1529,1
    - Dst: super::DynamicImage::ImageLuma16
      Src: /src/image/src/images/dynimage.rs:1531,1
    - Dst: Option::into_bytes
      Src: /src/image/src/images/dynimage.rs:1534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1527
    functionDepth: 1
    functionLinenumber: 1527
    functionLinenumberEnd: 1536
    functionName: test::issue_1705_can_turn_16bit_image_into_bytes
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - Option::into_bytes
    - super::ImageBuffer::from_vec
    - super::DynamicImage::ImageLuma16
    linkageType: ''
    returnType: void
    signature: fn issue_1705_can_turn_16bit_image_into_bytes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::new_luma8
      Src: /src/image/src/images/dynimage.rs:1541,1
    - Dst: super::DynamicImage::new_luma16
      Src: /src/image/src/images/dynimage.rs:1542,1
    - Dst: DynamicImage::to
      Src: /src/image/src/images/dynimage.rs:1546,1
    - Dst: to::<Luma<u16>>
      Src: /src/image/src/images/dynimage.rs:1550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1552
      start: 1539
    functionDepth: 2
    functionLinenumber: 1539
    functionLinenumberEnd: 1552
    functionName: test::test_convert_to
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - to::<Luma<u16>>
    - DynamicImage::to
    - super::DynamicImage::new_luma8
    - super::DynamicImage::new_luma16
    linkageType: ''
    returnType: void
    signature: fn test_convert_to()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: checked_mul
      Src: /src/image/src/images/flat.rs:145,1
    - Dst: expect
      Src: /src/image/src/images/flat.rs:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - channels
    - width
    - height
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: SampleLayout::row_major_packed
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - expect
    - checked_mul
    linkageType: ''
    returnType: Self
    signature: 'pub fn row_major_packed(channels: u8, width: u32, height: u32) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: checked_mul
      Src: /src/image/src/images/flat.rs:176,1
    - Dst: expect
      Src: /src/image/src/images/flat.rs:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - channels
    - width
    - height
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 187
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 187
    functionName: SampleLayout::column_major_packed
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - expect
    - checked_mul
    linkageType: ''
    returnType: Self
    signature: 'pub fn column_major_packed(channels: u8, width: u32, height: u32)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: SampleLayout::strides_cwh
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (usize, usize, usize)
    signature: pub fn strides_cwh(&self) -> (usize, usize, usize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: SampleLayout::extents
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (usize, usize, usize)
    signature: pub fn extents(&self) -> (usize, usize, usize)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: SampleLayout::bounds
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (u8, u32, u32)
    signature: pub fn bounds(&self) -> (u8, u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/flat.rs:274,1
    - Dst: SampleLayout::index
      Src: /src/image/src/images/flat.rs:277,1
    - Dst: Option::and_then
      Src: /src/image/src/images/flat.rs:277,1
    - Dst: checked_add
      Src: /src/image/src/images/flat.rs:278,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: SampleLayout::min_length
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Some
    - checked_add
    - SampleLayout::index
    - Option::and_then
    linkageType: ''
    returnType: Option
    signature: pub fn min_length(&self) -> Option<usize>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SampleLayout::min_length
      Src: /src/image/src/images/flat.rs:284,1
    - Dst: Option::is_some_and
      Src: /src/image/src/images/flat.rs:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 285
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: SampleLayout::fits
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Option::is_some_and
    - SampleLayout::min_length
    linkageType: ''
    returnType: bool
    signature: 'pub fn fits(&self, len: usize) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Dim
      Src: /src/image/src/images/flat.rs:291,1
    - Dst: Dim
      Src: /src/image/src/images/flat.rs:292,1
    - Dst: Dim
      Src: /src/image/src/images/flat.rs:293,1
    - Dst: sort
      Src: /src/image/src/images/flat.rs:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 302
    functionName: SampleLayout::increasing_stride_dims
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - sort
    - Dim
    linkageType: ''
    returnType: '[Dim; 3]'
    signature: fn increasing_stride_dims(&self) -> [Dim; 3]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SampleLayout::increasing_stride_dims
      Src: /src/image/src/images/flat.rs:311,1
    - Dst: checked_len
      Src: /src/image/src/images/flat.rs:314,1
    - Dst: checked_len
      Src: /src/image/src/images/flat.rs:319,1
    - Dst: checked_len
      Src: /src/image/src/images/flat.rs:324,1
    - Dst: is_none
      Src: /src/image/src/images/flat.rs:324,1
    - Dst: stride
      Src: /src/image/src/images/flat.rs:329,1
    - Dst: stride
      Src: /src/image/src/images/flat.rs:329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 330
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 330
    functionName: SampleLayout::has_aliased_samples
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - SampleLayout::increasing_stride_dims
    - is_none
    - checked_len
    - stride
    linkageType: ''
    returnType: bool
    signature: pub fn has_aliased_samples(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SampleLayout::has_aliased_samples
      Src: /src/image/src/images/flat.rs:341,1
    - Dst: SampleLayout::increasing_stride_dims
      Src: /src/image/src/images/flat.rs:351,1
    - Dst: stride
      Src: /src/image/src/images/flat.rs:354,1
    - Dst: len
      Src: /src/image/src/images/flat.rs:358,1
    - Dst: stride
      Src: /src/image/src/images/flat.rs:358,1
    - Dst: len
      Src: /src/image/src/images/flat.rs:362,1
    - Dst: stride
      Src: /src/image/src/images/flat.rs:362,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 90
    argCount: 1
    argNames:
    - form
    argTypes:
    - NormalForm
    constantsTouched: []
    func_position:
      end: 388
      start: 340
    functionDepth: 14
    functionLinenumber: 340
    functionLinenumberEnd: 388
    functionName: SampleLayout::is_normal
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - SampleLayout::increasing_stride_dims
    - SampleLayout::has_aliased_samples
    - stride
    - len
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_normal(&self, form: NormalForm) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 398
    functionName: SampleLayout::in_bounds
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub fn in_bounds(&self, channel: u8, x: u32, y: u32) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SampleLayout::in_bounds
      Src: /src/image/src/images/flat.rs:405,1
    - Dst: SampleLayout::index_ignoring_bounds
      Src: /src/image/src/images/flat.rs:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 410
    functionName: SampleLayout::index
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - SampleLayout::index_ignoring_bounds
    - SampleLayout::in_bounds
    linkageType: ''
    returnType: Option
    signature: 'pub fn index(&self, channel: u8, x: u32, y: u32) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Result::checked_mul
      Src: /src/image/src/images/flat.rs:419,1
    - Dst: checked_mul
      Src: /src/image/src/images/flat.rs:420,1
    - Dst: Option::checked_mul
      Src: /src/image/src/images/flat.rs:421,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:427,1
    - Dst: and_then
      Src: /src/image/src/images/flat.rs:427,1
    - Dst: checked_add
      Src: /src/image/src/images/flat.rs:428,1
    - Dst: and_then
      Src: /src/image/src/images/flat.rs:427,1
    - Dst: checked_add
      Src: /src/image/src/images/flat.rs:429,1
    - Dst: and_then
      Src: /src/image/src/images/flat.rs:427,1
    - Dst: checked_add
      Src: /src/image/src/images/flat.rs:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - usize
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 431
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 431
    functionName: SampleLayout::index_ignoring_bounds
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - Some
    - io::Result::checked_mul
    - checked_mul
    - Option::checked_mul
    - checked_add
    - and_then
    linkageType: ''
    returnType: Option
    signature: 'pub fn index_ignoring_bounds(&self, channel: usize, x: usize, y: usize)
      -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SampleLayout::strides_cwh
      Src: /src/image/src/images/flat.rs:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - c
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: SampleLayout::in_bounds_index
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - SampleLayout::strides_cwh
    linkageType: ''
    returnType: usize
    signature: 'pub fn in_bounds_index(&self, c: u8, x: u32, y: u32) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/image/src/images/flat.rs:453,1
    - Dst: min
      Src: /src/image/src/images/flat.rs:454,1
    - Dst: min
      Src: /src/image/src/images/flat.rs:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - channels
    - width
    - height
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: SampleLayout::shrink_to
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - min
    linkageType: ''
    returnType: void
    signature: 'pub fn shrink_to(&mut self, channels: u8, width: u32, height: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 462
    functionName: Dim::stride
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn stride(self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: checked_mul
      Src: /src/image/src/images/flat.rs:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 467
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 467
    functionName: Dim::checked_len
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - checked_mul
    linkageType: ''
    returnType: Option
    signature: fn checked_len(self) -> Option<usize>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 471
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 471
    functionName: Dim::len
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn len(self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strides_cwh
      Src: /src/image/src/images/flat.rs:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 481
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 481
    functionName: FlatSamples::strides_cwh
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - strides_cwh
    linkageType: ''
    returnType: (usize, usize, usize)
    signature: pub fn strides_cwh(&self) -> (usize, usize, usize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: extents
      Src: /src/image/src/images/flat.rs:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 489
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 489
    functionName: FlatSamples::extents
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - extents
    linkageType: ''
    returnType: (usize, usize, usize)
    signature: pub fn extents(&self) -> (usize, usize, usize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bounds
      Src: /src/image/src/images/flat.rs:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 497
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 497
    functionName: FlatSamples::bounds
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - bounds
    linkageType: ''
    returnType: (u8, u32, u32)
    signature: pub fn bounds(&self) -> (u8, u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 509
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 509
    functionName: FlatSamples::as_ref
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: FlatSamples
    signature: 'pub fn as_ref<T>(&self) -> FlatSamples<&[T]>whereBuffer: AsRef<[T]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 521
      start: 512
    functionDepth: 1
    functionLinenumber: 512
    functionLinenumberEnd: 521
    functionName: FlatSamples::as_mut
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_mut
    linkageType: ''
    returnType: FlatSamples
    signature: 'pub fn as_mut<T>(&mut self) -> FlatSamples<&mut [T]>whereBuffer: AsMut<[T]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:530,1
    - Dst: to_vec
      Src: /src/image/src/images/flat.rs:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 534
      start: 524
    functionDepth: 12
    functionLinenumber: 524
    functionLinenumberEnd: 534
    functionName: FlatSamples::to_vec
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - to_vec
    - as_ref
    linkageType: ''
    returnType: FlatSamples
    signature: 'pub fn to_vec<T>(&self) -> FlatSamples<Vec<T>>whereT: Clone,Buffer:
      AsRef<[T]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatSamples::index
      Src: /src/image/src/images/flat.rs:561,1
    - Dst: '&Self::Output::and_then'
      Src: /src/image/src/images/flat.rs:561,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:562,1
    - Dst: get
      Src: /src/image/src/images/flat.rs:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 563
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 563
    functionName: FlatSamples::get_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - FlatSamples::index
    - '&Self::Output::and_then'
    - as_ref
    - get
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_sample<T>(&self, channel: u8, x: u32, y: u32) -> Option<&T>whereBuffer:
      AsRef<[T]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatSamples::index
      Src: /src/image/src/images/flat.rs:595,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:597,1
    - Dst: get_mut
      Src: /src/image/src/images/flat.rs:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 599
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 599
    functionName: FlatSamples::get_mut_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - FlatSamples::index
    - as_mut
    - get_mut
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_mut_sample<T>(&mut self, channel: u8, x: u32, y: u32) ->
      Option<&mut T>whereBuffer: AsMut<[T]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/images/flat.rs:613,1
    - Dst: Error::ChannelCountMismatch
      Src: /src/image/src/images/flat.rs:613,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:619,1
    - Dst: fits
      Src: /src/image/src/images/flat.rs:620,1
    - Dst: FlatSamples::len
      Src: /src/image/src/images/flat.rs:620,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:621,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 632
      start: 607
    functionDepth: 15
    functionLinenumber: 607
    functionLinenumberEnd: 632
    functionName: FlatSamples::as_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Err
    - FlatSamples::len
    - fits
    - as_ref
    - Error::ChannelCountMismatch
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn as_view<P>(&self) -> Result<View<&[P::Subpixel], P>, Error>whereP:
      Pixel,Buffer: AsRef<[P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/images/flat.rs:655,1
    - Dst: Error::ChannelCountMismatch
      Src: /src/image/src/images/flat.rs:655,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:661,1
    - Dst: fits
      Src: /src/image/src/images/flat.rs:662,1
    - Dst: FlatSamples::len
      Src: /src/image/src/images/flat.rs:662,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:663,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 674
      start: 649
    functionDepth: 15
    functionLinenumber: 649
    functionLinenumberEnd: 674
    functionName: FlatSamples::as_view_with_mut_samples
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Err
    - FlatSamples::len
    - fits
    - as_mut
    - Error::ChannelCountMismatch
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn as_view_with_mut_samples<P>(&mut self) -> Result<View<&mut
      [P::Subpixel], P>, Error>whereP: Pixel,Buffer: AsMut<[P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_normal
      Src: /src/image/src/images/flat.rs:692,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:693,1
    - Dst: Error::NormalFormRequired
      Src: /src/image/src/images/flat.rs:693,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:697,1
    - Dst: Error::ChannelCountMismatch
      Src: /src/image/src/images/flat.rs:697,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:703,1
    - Dst: fits
      Src: /src/image/src/images/flat.rs:704,1
    - Dst: FlatSamples::len
      Src: /src/image/src/images/flat.rs:704,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:705,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:708,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 716
      start: 687
    functionDepth: 15
    functionLinenumber: 687
    functionLinenumberEnd: 716
    functionName: FlatSamples::as_view_mut
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Err
    - FlatSamples::len
    - fits
    - Error::NormalFormRequired
    - as_mut
    - Error::ChannelCountMismatch
    - is_normal
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn as_view_mut<P>(&mut self) -> Result<ViewMut<&mut [P::Subpixel],
      P>, Error>whereP: Pixel,Buffer: AsMut<[P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 727
      start: 722
    functionDepth: 2
    functionLinenumber: 722
    functionLinenumberEnd: 727
    functionName: FlatSamples::as_slice
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: '&[T]'
    signature: 'pub fn as_slice<T>(&self) -> &[T]whereBuffer: AsRef<[T]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 738
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 738
    functionName: FlatSamples::as_mut_slice
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_mut
    linkageType: ''
    returnType: '&mut [T]'
    signature: 'pub fn as_mut_slice<T>(&mut self) -> &mut [T]whereBuffer: AsMut<[T]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatSamples::min_length
      Src: /src/image/src/images/flat.rs:749,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:751,1
    - Dst: '&[T]::len'
      Src: /src/image/src/images/flat.rs:752,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:756,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 757
      start: 745
    functionDepth: 14
    functionLinenumber: 745
    functionLinenumberEnd: 757
    functionName: FlatSamples::image_slice
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Some
    - '&[T]::len'
    - as_ref
    - FlatSamples::min_length
    linkageType: ''
    returnType: Option
    signature: 'pub fn image_slice<T>(&self) -> Option<&[T]>whereBuffer: AsRef<[T]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatSamples::min_length
      Src: /src/image/src/images/flat.rs:764,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:766,1
    - Dst: '&[T]::len'
      Src: /src/image/src/images/flat.rs:767,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 772
      start: 760
    functionDepth: 14
    functionLinenumber: 760
    functionLinenumberEnd: 772
    functionName: FlatSamples::image_mut_slice
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Some
    - as_mut
    - '&[T]::len'
    - FlatSamples::min_length
    linkageType: ''
    returnType: Option
    signature: 'pub fn image_mut_slice<T>(&mut self) -> Option<&mut [T]>whereBuffer:
      AsMut<[T]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatSamples::is_normal
      Src: /src/image/src/images/flat.rs:785,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:786,1
    - Dst: Error::NormalFormRequired
      Src: /src/image/src/images/flat.rs:786,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:790,1
    - Dst: Error::ChannelCountMismatch
      Src: /src/image/src/images/flat.rs:791,1
    - Dst: FlatSamples::fits
      Src: /src/image/src/images/flat.rs:796,1
    - Dst: deref
      Src: /src/image/src/images/flat.rs:796,1
    - Dst: len
      Src: /src/image/src/images/flat.rs:796,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:797,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:800,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/flat.rs:801,1
    - Dst: Option::unwrap_or_else
      Src: /src/image/src/images/flat.rs:801,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 806
      start: 779
    functionDepth: 14
    functionLinenumber: 779
    functionLinenumberEnd: 806
    functionName: FlatSamples::try_into_buffer
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Err
    - deref
    - FlatSamples::fits
    - ImageBuffer::from_raw
    - len
    - Error::NormalFormRequired
    - Error::ChannelCountMismatch
    - Option::unwrap_or_else
    - Ok
    - FlatSamples::is_normal
    linkageType: ''
    returnType: Result
    signature: 'pub fn try_into_buffer<P>(self) -> Result<ImageBuffer<P, Buffer>,
      (Error, Self)>whereP: Pixel + ''static,P::Subpixel: ''static,Buffer: Deref<Target
      = [P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min_length
      Src: /src/image/src/images/flat.rs:860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 861
      start: 859
    functionDepth: 3
    functionLinenumber: 859
    functionLinenumberEnd: 861
    functionName: FlatSamples::min_length
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 2
    functionsReached:
    - min_length
    linkageType: ''
    returnType: Option
    signature: pub fn min_length(&self) -> Option<usize>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fits
      Src: /src/image/src/images/flat.rs:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 866
      start: 864
    functionDepth: 4
    functionLinenumber: 864
    functionLinenumberEnd: 866
    functionName: FlatSamples::fits
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - fits
    linkageType: ''
    returnType: bool
    signature: 'pub fn fits(&self, len: usize) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: has_aliased_samples
      Src: /src/image/src/images/flat.rs:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 875
      start: 873
    functionDepth: 2
    functionLinenumber: 873
    functionLinenumberEnd: 875
    functionName: FlatSamples::has_aliased_samples
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - has_aliased_samples
    linkageType: ''
    returnType: bool
    signature: pub fn has_aliased_samples(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_normal
      Src: /src/image/src/images/flat.rs:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - form
    argTypes:
    - NormalForm
    constantsTouched: []
    func_position:
      end: 886
      start: 884
    functionDepth: 15
    functionLinenumber: 884
    functionLinenumberEnd: 886
    functionName: FlatSamples::is_normal
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - is_normal
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_normal(&self, form: NormalForm) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: in_bounds
      Src: /src/image/src/images/flat.rs:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 895
      start: 893
    functionDepth: 12
    functionLinenumber: 893
    functionLinenumberEnd: 895
    functionName: FlatSamples::in_bounds
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - in_bounds
    linkageType: ''
    returnType: bool
    signature: 'pub fn in_bounds(&self, channel: u8, x: u32, y: u32) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatSamples::bounds
      Src: /src/image/src/images/flat.rs:1357,1
    - Dst: FlatSamples::strides_cwh
      Src: /src/image/src/images/flat.rs:1358,1
    - Dst: FlatSamples::index
      Src: /src/image/src/images/flat.rs:1359,1
    - Dst: '&Self::Output::unwrap_or_else'
      Src: /src/image/src/images/flat.rs:1359,1
    - Dst: panic_cwh_out_of_bounds
      Src: /src/image/src/images/flat.rs:1361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames: []
    argTypes:
    - (u8, u32, u32)
    constantsTouched: []
    func_position:
      end: 1363
      start: 1356
    functionDepth: 2
    functionLinenumber: 1356
    functionLinenumberEnd: 1363
    functionName: FlatSamples::index
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 3
    functionsReached:
    - '&Self::Output::unwrap_or_else'
    - panic_cwh_out_of_bounds
    - FlatSamples::index
    - FlatSamples::strides_cwh
    - FlatSamples::bounds
    linkageType: ''
    returnType: '&Self::Output'
    signature: 'fn index(&self, (c, x, y): (u8, u32, u32)) -> &Self::Output'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: index_ignoring_bounds
      Src: /src/image/src/images/flat.rs:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - usize
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 911
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 911
    functionName: FlatSamples::index_ignoring_bounds
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - index_ignoring_bounds
    linkageType: ''
    returnType: Option
    signature: 'pub fn index_ignoring_bounds(&self, channel: usize, x: usize, y: usize)
      -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 920
      start: 918
    functionDepth: 2
    functionLinenumber: 918
    functionLinenumberEnd: 920
    functionName: FlatSamples::in_bounds_index
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - in_bounds_index
    linkageType: ''
    returnType: usize
    signature: 'pub fn in_bounds_index(&self, channel: u8, x: u32, y: u32) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shrink_to
      Src: /src/image/src/images/flat.rs:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - channels
    - width
    - height
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 929
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 929
    functionName: FlatSamples::shrink_to
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - shrink_to
    linkageType: ''
    returnType: void
    signature: 'pub fn shrink_to(&mut self, channels: u8, width: u32, height: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::channels
      Src: /src/image/src/images/flat.rs:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pixel
    - width
    - height
    argTypes:
    - '&''buf P'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 972
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 972
    functionName: FlatSamples::with_monocolor
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - u8::channels
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_monocolor<P>(pixel: &''buf P, width: u32, height: u32)
      -> SelfwhereP: Pixel<Subpixel = Subpixel>,Subpixel: crate::Primitive,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1099
    functionName: View::into_inner
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FlatSamples
    signature: pub fn into_inner(self) -> FlatSamples<Buffer>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1107
    functionDepth: 0
    functionLinenumber: 1107
    functionLinenumberEnd: 1109
    functionName: View::flat
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&FlatSamples'
    signature: pub fn flat(&self) -> &FlatSamples<Buffer>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1117
    functionName: View::samples
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Buffer'
    signature: pub fn samples(&self) -> &Buffer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: in_bounds
      Src: /src/image/src/images/flat.rs:1124,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1128,1
    - Dst: View::samples
      Src: /src/image/src/images/flat.rs:1130,1
    - Dst: '&Buffer::as_ref'
      Src: /src/image/src/images/flat.rs:1130,1
    - Dst: FlatSamples::get
      Src: /src/image/src/images/flat.rs:1130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1131
      start: 1123
    functionDepth: 12
    functionLinenumber: 1123
    functionLinenumberEnd: 1131
    functionName: View::get_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - '&Buffer::as_ref'
    - FlatSamples::get
    - View::samples
    - in_bounds_index
    - in_bounds
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_sample(&self, channel: u8, x: u32, y: u32) -> Option<&P::Subpixel>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: in_bounds
      Src: /src/image/src/images/flat.rs:1145,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1149,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:1151,1
    - Dst: get_mut
      Src: /src/image/src/images/flat.rs:1151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1152
      start: 1141
    functionDepth: 12
    functionLinenumber: 1141
    functionLinenumberEnd: 1152
    functionName: View::get_mut_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - get_mut
    - as_mut
    - in_bounds
    - in_bounds_index
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_mut_sample(&mut self, channel: u8, x: u32, y: u32) -> Option<&mut
      P::Subpixel>whereBuffer: AsMut<[P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min_length
      Src: /src/image/src/images/flat.rs:1158,1
    - Dst: unwrap
      Src: /src/image/src/images/flat.rs:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1157
    functionDepth: 3
    functionLinenumber: 1157
    functionLinenumberEnd: 1159
    functionName: View::min_length
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - min_length
    linkageType: ''
    returnType: usize
    signature: pub fn min_length(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: View::samples
      Src: /src/image/src/images/flat.rs:1166,1
    - Dst: '&Buffer::as_ref'
      Src: /src/image/src/images/flat.rs:1166,1
    - Dst: View::min_length
      Src: /src/image/src/images/flat.rs:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1165
    functionDepth: 4
    functionLinenumber: 1165
    functionLinenumberEnd: 1167
    functionName: View::image_slice
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - View::samples
    - '&Buffer::as_ref'
    - View::min_length
    linkageType: ''
    returnType: '&[P::Subpixel]'
    signature: pub fn image_slice(&self) -> &[P::Subpixel]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: View::min_length
      Src: /src/image/src/images/flat.rs:1178,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:1179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1174
    functionDepth: 4
    functionLinenumber: 1174
    functionLinenumberEnd: 1180
    functionName: View::image_mut_slice
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - View::min_length
    linkageType: ''
    returnType: '&mut [P::Subpixel]'
    signature: 'pub fn image_mut_slice(&mut self) -> &mut [P::Subpixel]whereBuffer:
      AsMut<[P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shrink_to
      Src: /src/image/src/images/flat.rs:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1190
      start: 1187
    functionDepth: 1
    functionLinenumber: 1187
    functionLinenumberEnd: 1190
    functionName: View::shrink_to
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - shrink_to
    linkageType: ''
    returnType: void
    signature: 'pub fn shrink_to(&mut self, width: u32, height: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_normal
      Src: /src/image/src/images/flat.rs:1214,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:1215,1
    - Dst: Error::NormalFormRequired
      Src: /src/image/src/images/flat.rs:1215,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:1219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1210
    functionDepth: 15
    functionLinenumber: 1210
    functionLinenumberEnd: 1223
    functionName: View::try_upgrade
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Error::NormalFormRequired
    - Err
    - is_normal
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn try_upgrade(self) -> Result<ViewMut<Buffer, P>, (Error, Self)>whereBuffer:
      AsMut<[P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1233
    functionDepth: 0
    functionLinenumber: 1233
    functionLinenumberEnd: 1235
    functionName: ViewMut::into_inner
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FlatSamples
    signature: pub fn into_inner(self) -> FlatSamples<Buffer>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1243
    functionDepth: 0
    functionLinenumber: 1243
    functionLinenumberEnd: 1245
    functionName: ViewMut::flat
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&FlatSamples'
    signature: pub fn flat(&self) -> &FlatSamples<Buffer>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1252
    functionDepth: 0
    functionLinenumber: 1252
    functionLinenumberEnd: 1254
    functionName: ViewMut::samples
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Buffer'
    signature: pub fn samples(&self) -> &Buffer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min_length
      Src: /src/image/src/images/flat.rs:1260,1
    - Dst: unwrap
      Src: /src/image/src/images/flat.rs:1260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1259
    functionDepth: 3
    functionLinenumber: 1259
    functionLinenumberEnd: 1261
    functionName: ViewMut::min_length
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - min_length
    linkageType: ''
    returnType: usize
    signature: pub fn min_length(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: in_bounds
      Src: /src/image/src/images/flat.rs:1271,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1275,1
    - Dst: ViewMut::samples
      Src: /src/image/src/images/flat.rs:1277,1
    - Dst: '&Buffer::as_ref'
      Src: /src/image/src/images/flat.rs:1277,1
    - Dst: FlatSamples::get
      Src: /src/image/src/images/flat.rs:1277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1278
      start: 1267
    functionDepth: 12
    functionLinenumber: 1267
    functionLinenumberEnd: 1278
    functionName: ViewMut::get_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - ViewMut::samples
    - '&Buffer::as_ref'
    - FlatSamples::get
    - in_bounds_index
    - in_bounds
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_sample(&self, channel: u8, x: u32, y: u32) -> Option<&P::Subpixel>whereBuffer:
      AsRef<[P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: in_bounds
      Src: /src/image/src/images/flat.rs:1285,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1289,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:1291,1
    - Dst: get_mut
      Src: /src/image/src/images/flat.rs:1291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1292
      start: 1284
    functionDepth: 12
    functionLinenumber: 1284
    functionLinenumberEnd: 1292
    functionName: ViewMut::get_mut_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - get_mut
    - as_mut
    - in_bounds
    - in_bounds_index
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_mut_sample(&mut self, channel: u8, x: u32, y: u32) -> Option<&mut
      P::Subpixel>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:1302,1
    - Dst: ViewMut::min_length
      Src: /src/image/src/images/flat.rs:1302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1298
    functionDepth: 4
    functionLinenumber: 1298
    functionLinenumberEnd: 1303
    functionName: ViewMut::image_slice
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - ViewMut::min_length
    - as_ref
    linkageType: ''
    returnType: '&[P::Subpixel]'
    signature: 'pub fn image_slice(&self) -> &[P::Subpixel]whereBuffer: AsRef<[P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ViewMut::min_length
      Src: /src/image/src/images/flat.rs:1307,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:1308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1306
    functionDepth: 4
    functionLinenumber: 1306
    functionLinenumberEnd: 1309
    functionName: ViewMut::image_mut_slice
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - ViewMut::min_length
    linkageType: ''
    returnType: '&mut [P::Subpixel]'
    signature: pub fn image_mut_slice(&mut self) -> &mut [P::Subpixel]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shrink_to
      Src: /src/image/src/images/flat.rs:1318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1319
      start: 1316
    functionDepth: 1
    functionLinenumber: 1316
    functionLinenumberEnd: 1319
    functionName: ViewMut::shrink_to
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - shrink_to
    linkageType: ''
    returnType: void
    signature: 'pub fn shrink_to(&mut self, width: u32, height: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 3
    argNames:
    - bounds
    - strides
    argTypes:
    - (u8, u32, u32)
    - (u8, u32, u32)
    - (usize, usize, usize)
    constantsTouched: []
    func_position:
      end: 1336
      start: 1325
    functionDepth: 0
    functionLinenumber: 1325
    functionLinenumberEnd: 1336
    functionName: panic_cwh_out_of_bounds
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '!'
    signature: 'fn panic_cwh_out_of_bounds((c, x, y): (u8, u32, u32),bounds: (u8,
      u32, u32),strides: (usize, usize, usize),) -> !'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 2
    argNames:
    - bounds
    argTypes:
    - (u32, u32)
    - (u32, u32)
    constantsTouched: []
    func_position:
      end: 1343
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1343
    functionName: panic_pixel_out_of_bounds
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '!'
    signature: 'fn panic_pixel_out_of_bounds((x, y): (u32, u32), bounds: (u32, u32))
      -> !'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatSamples::bounds
      Src: /src/image/src/images/flat.rs:1376,1
    - Dst: FlatSamples::strides_cwh
      Src: /src/image/src/images/flat.rs:1377,1
    - Dst: FlatSamples::index
      Src: /src/image/src/images/flat.rs:1378,1
    - Dst: '&Self::Output::unwrap_or_else'
      Src: /src/image/src/images/flat.rs:1378,1
    - Dst: panic_cwh_out_of_bounds
      Src: /src/image/src/images/flat.rs:1380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames: []
    argTypes:
    - (u8, u32, u32)
    constantsTouched: []
    func_position:
      end: 1382
      start: 1375
    functionDepth: 2
    functionLinenumber: 1375
    functionLinenumberEnd: 1382
    functionName: FlatSamples::index_mut
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - '&Self::Output::unwrap_or_else'
    - panic_cwh_out_of_bounds
    - FlatSamples::index
    - FlatSamples::strides_cwh
    - FlatSamples::bounds
    linkageType: ''
    returnType: '&mut Self::Output'
    signature: 'fn index_mut(&mut self, (c, x, y): (u8, u32, u32)) -> &mut Self::Output'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1391
    functionDepth: 0
    functionLinenumber: 1391
    functionLinenumberEnd: 1393
    functionName: View::dimensions
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: in_bounds
      Src: /src/image/src/images/flat.rs:1396,1
    - Dst: panic_pixel_out_of_bounds
      Src: /src/image/src/images/flat.rs:1397,1
    - Dst: View::dimensions
      Src: /src/image/src/images/flat.rs:1397,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:1400,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1401,1
    - Dst: Zero::zero
      Src: /src/image/src/images/flat.rs:1404,1
    - Dst: '&RgbaImage::iter_mut'
      Src: /src/image/src/images/flat.rs:1405,1
    - Dst: enumerate
      Src: /src/image/src/images/flat.rs:1405,1
    - Dst: take
      Src: /src/image/src/images/flat.rs:1405,1
    - Dst: for_each
      Src: /src/image/src/images/flat.rs:1405,1
    - Dst: P::from_slice
      Src: /src/image/src/images/flat.rs:1414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1415
      start: 1395
    functionDepth: 12
    functionLinenumber: 1395
    functionLinenumberEnd: 1415
    functionName: View::get_pixel
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - panic_pixel_out_of_bounds
    - enumerate
    - for_each
    - '&RgbaImage::iter_mut'
    - View::dimensions
    - Zero::zero
    - P::from_slice
    - as_ref
    - in_bounds_index
    - in_bounds
    - take
    linkageType: ''
    returnType: Self::Pixel
    signature: 'fn get_pixel(&self, x: u32, y: u32) -> Self::Pixel'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1424
    functionDepth: 0
    functionLinenumber: 1424
    functionLinenumberEnd: 1426
    functionName: ViewMut::dimensions
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: in_bounds
      Src: /src/image/src/images/flat.rs:1429,1
    - Dst: panic_pixel_out_of_bounds
      Src: /src/image/src/images/flat.rs:1430,1
    - Dst: ViewMut::dimensions
      Src: /src/image/src/images/flat.rs:1430,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:1433,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1434,1
    - Dst: Zero::zero
      Src: /src/image/src/images/flat.rs:1437,1
    - Dst: '&RgbaImage::iter_mut'
      Src: /src/image/src/images/flat.rs:1438,1
    - Dst: enumerate
      Src: /src/image/src/images/flat.rs:1438,1
    - Dst: take
      Src: /src/image/src/images/flat.rs:1438,1
    - Dst: for_each
      Src: /src/image/src/images/flat.rs:1438,1
    - Dst: P::from_slice
      Src: /src/image/src/images/flat.rs:1447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1448
      start: 1428
    functionDepth: 12
    functionLinenumber: 1428
    functionLinenumberEnd: 1448
    functionName: ViewMut::get_pixel
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - panic_pixel_out_of_bounds
    - enumerate
    - ViewMut::dimensions
    - for_each
    - '&RgbaImage::iter_mut'
    - P::from_slice
    - Zero::zero
    - as_ref
    - in_bounds_index
    - in_bounds
    - take
    linkageType: ''
    returnType: Self::Pixel
    signature: 'fn get_pixel(&self, x: u32, y: u32) -> Self::Pixel'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: in_bounds
      Src: /src/image/src/images/flat.rs:1456,1
    - Dst: panic_pixel_out_of_bounds
      Src: /src/image/src/images/flat.rs:1457,1
    - Dst: ViewMut::dimensions
      Src: /src/image/src/images/flat.rs:1457,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1460,1
    - Dst: P::from_slice_mut
      Src: /src/image/src/images/flat.rs:1463,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:1463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1464
      start: 1455
    functionDepth: 12
    functionLinenumber: 1455
    functionLinenumberEnd: 1464
    functionName: ViewMut::get_pixel_mut
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - panic_pixel_out_of_bounds
    - ViewMut::dimensions
    - P::from_slice_mut
    - as_mut
    - in_bounds_index
    - in_bounds
    linkageType: ''
    returnType: '&mut Self::Pixel'
    signature: 'fn get_pixel_mut(&mut self, x: u32, y: u32) -> &mut Self::Pixel'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ViewMut::get_pixel_mut
      Src: /src/image/src/images/flat.rs:1468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - Self::Pixel
    constantsTouched: []
    func_position:
      end: 1469
      start: 1467
    functionDepth: 13
    functionLinenumber: 1467
    functionLinenumberEnd: 1469
    functionName: ViewMut::put_pixel
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - ViewMut::get_pixel_mut
    linkageType: ''
    returnType: void
    signature: 'fn put_pixel(&mut self, x: u32, y: u32, pixel: Self::Pixel)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ViewMut::get_pixel_mut
      Src: /src/image/src/images/flat.rs:1473,1
    - Dst: '&mut Self::Pixel::blend'
      Src: /src/image/src/images/flat.rs:1473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - Self::Pixel
    constantsTouched: []
    func_position:
      end: 1474
      start: 1472
    functionDepth: 13
    functionLinenumber: 1472
    functionLinenumberEnd: 1474
    functionName: ViewMut::blend_pixel
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - ViewMut::get_pixel_mut
    - '&mut Self::Pixel::blend'
    linkageType: ''
    returnType: void
    signature: 'fn blend_pixel(&mut self, x: u32, y: u32, pixel: Self::Pixel)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 1531
      start: 1510
    functionDepth: 0
    functionLinenumber: 1510
    functionLinenumberEnd: 1531
    functionName: Error::fmt
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1542,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1543,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1544,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1545,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1547,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1550,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1551,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1553,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1554,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1555,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1557,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1560,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1561,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1562,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 1572
      start: 1540
    functionDepth: 0
    functionLinenumber: 1540
    functionLinenumberEnd: 1572
    functionName: NormalForm::partial_cmp
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn partial_cmp(&self, other: &Self) -> Option<cmp::Ordering>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_view::<Rgb<u8>>
      Src: /src/image/src/images/flat.rs:1596,1
    - Dst: expect
      Src: /src/image/src/images/flat.rs:1596,1
    - Dst: SubImage::pixels
      Src: /src/image/src/images/flat.rs:1597,1
    - Dst: Vec::inspect
      Src: /src/image/src/images/flat.rs:1597,1
    - Dst: count
      Src: /src/image/src/images/flat.rs:1597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1582
    functionDepth: 13
    functionLinenumber: 1582
    functionLinenumberEnd: 1602
    functionName: tests::aliasing_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - count
    - as_view::<Rgb<u8>>
    - Vec::inspect
    - SubImage::pixels
    - expect
    linkageType: ''
    returnType: void
    signature: fn aliasing_view()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_view_mut::<LumaA<u16>>
      Src: /src/image/src/images/flat.rs:1620,1
    - Dst: expect
      Src: /src/image/src/images/flat.rs:1620,1
    - Dst: SubImage::get_pixel_mut
      Src: /src/image/src/images/flat.rs:1626,1
    - Dst: LumaA
      Src: /src/image/src/images/flat.rs:1626,1
    - Dst: iter
      Src: /src/image/src/images/flat.rs:1630,1
    - Dst: enumerate
      Src: /src/image/src/images/flat.rs:1630,1
    - Dst: for_each
      Src: /src/image/src/images/flat.rs:1630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1605
    functionDepth: 1
    functionLinenumber: 1605
    functionLinenumberEnd: 1635
    functionName: tests::mutable_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - for_each
    - enumerate
    - iter
    - SubImage::get_pixel_mut
    - as_view_mut::<LumaA<u16>>
    - expect
    - LumaA
    linkageType: ''
    returnType: void
    signature: fn mutable_view()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1638
    functionDepth: 0
    functionLinenumber: 1638
    functionLinenumberEnd: 1694
    functionName: tests::normal_forms
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn normal_forms()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GrayAlphaImage::new
      Src: /src/image/src/images/flat.rs:1707,1
    - Dst: Self::into_flat_samples
      Src: /src/image/src/images/flat.rs:1708,1
    - Dst: '&RgbaImage::try_into_buffer'
      Src: /src/image/src/images/flat.rs:1712,1
    - Dst: Result::unwrap_or_else
      Src: /src/image/src/images/flat.rs:1712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1697
    functionDepth: 13
    functionLinenumber: 1697
    functionLinenumberEnd: 1715
    functionName: tests::image_buffer_conversion
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - GrayAlphaImage::new
    - Result::unwrap_or_else
    - '&RgbaImage::try_into_buffer'
    - Self::into_flat_samples
    linkageType: ''
    returnType: void
    signature: fn image_buffer_conversion()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - image
    - x
    - y
    - width
    - height
    argTypes:
    - I
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 62
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 62
    functionName: SubImage::new
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: SubImage
    signature: 'pub fn new(image: I, x: u32, y: u32, width: u32, height: u32) -> SubImage<I>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 4
    argNames:
    - x
    - y
    - width
    - height
    argTypes:
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: SubImage::change_bounds
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn change_bounds(&mut self, x: u32, y: u32, width: u32, height:
      u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: SubImage::offsets
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32)
    signature: pub fn offsets(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/sub_image.rs:83,1
    - Dst: get_pixel
      Src: /src/image/src/images/sub_image.rs:88,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/images/sub_image.rs:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: SubImage::to_image
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 3
    functionsReached:
    - get_pixel
    - SampleLayout::put_pixel
    - ImageBuffer::new
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn to_image(&self) -> ImageBuffer<DerefPixel<I>, Vec<DerefSubpixel<I>>>whereI:
      Deref,I::Target: GenericImageView + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: saturating_add
      Src: /src/image/src/images/sub_image.rs:125,1
    - Dst: saturating_add
      Src: /src/image/src/images/sub_image.rs:126,1
    - Dst: SubImage::new
      Src: /src/image/src/images/sub_image.rs:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 4
    argNames:
    - x
    - y
    - width
    - height
    argTypes:
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: SubImage::view
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 1
    functionsReached:
    - saturating_add
    - SubImage::new
    linkageType: ''
    returnType: SubImage
    signature: 'pub fn view(&self, x: u32, y: u32, width: u32, height: u32) -> SubImage<&I::Target>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: SubImage::inner
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&I::Target'
    signature: pub fn inner(&self) -> &I::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: saturating_add
      Src: /src/image/src/images/sub_image.rs:153,1
    - Dst: saturating_add
      Src: /src/image/src/images/sub_image.rs:154,1
    - Dst: SubImage::new
      Src: /src/image/src/images/sub_image.rs:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 4
    argNames:
    - x
    - y
    - width
    - height
    argTypes:
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: SubImage::sub_image
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 1
    functionsReached:
    - saturating_add
    - SubImage::new
    linkageType: ''
    returnType: SubImage
    signature: 'pub fn sub_image(&mut self,x: u32,y: u32,width: u32,height: u32,)
      -> SubImage<&mut I::Target>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: SubImage::inner_mut
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut I::Target'
    signature: pub fn inner_mut(&mut self) -> &mut I::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: SubImage::deref
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Self::Target'
    signature: fn deref(&self) -> &Self::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: SubImage::deref_mut
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut Self::Target'
    signature: fn deref_mut(&mut self) -> &mut Self::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: SubImageInner::dimensions
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_pixel
      Src: /src/image/src/images/sub_image.rs:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: SubImageInner::get_pixel
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached:
    - get_pixel
    linkageType: ''
    returnType: Self::Pixel
    signature: 'fn get_pixel(&self, x: u32, y: u32) -> Self::Pixel'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_pixel_mut
      Src: /src/image/src/images/sub_image.rs:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: SubImageInner::get_pixel_mut
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached:
    - get_pixel_mut
    linkageType: ''
    returnType: '&mut Self::Pixel'
    signature: 'fn get_pixel_mut(&mut self, x: u32, y: u32) -> &mut Self::Pixel'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_pixel
      Src: /src/image/src/images/sub_image.rs:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - Self::Pixel
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: SubImageInner::put_pixel
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached:
    - put_pixel
    linkageType: ''
    returnType: void
    signature: 'fn put_pixel(&mut self, x: u32, y: u32, pixel: Self::Pixel)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: blend_pixel
      Src: /src/image/src/images/sub_image.rs:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - Self::Pixel
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 16
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: SubImageInner::blend_pixel
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached:
    - blend_pixel
    linkageType: ''
    returnType: void
    signature: 'fn blend_pixel(&mut self, x: u32, y: u32, pixel: Self::Pixel)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pixels::len
      Src: /src/image/src/images/buffer.rs:39,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: Pixels::size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - Pixels::len
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer.rs:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 14
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Pixels::len
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next_back
      Src: /src/image/src/images/buffer.rs:59,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:59,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/images/buffer.rs:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 14
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Pixels::next_back
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - map
    - next_back
    - <P as Pixel>::from_slice
    linkageType: ''
    returnType: Option
    signature: fn next_back(&mut self) -> Option<&'a P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/image/src/images/buffer.rs:76,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:76,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: Pixels::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - debug_struct
    - field
    - finish
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/image/src/images/buffer.rs:98,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:98,1
    - Dst: <P as Pixel>::from_slice_mut
      Src: /src/image/src/images/buffer.rs:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 14
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: PixelsMut::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - map
    - next
    - <P as Pixel>::from_slice_mut
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<&'a mut P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PixelsMut::len
      Src: /src/image/src/images/buffer.rs:103,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: PixelsMut::size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - PixelsMut::len
    - Some
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer.rs:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 14
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: PixelsMut::len
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next_back
      Src: /src/image/src/images/buffer.rs:123,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:123,1
    - Dst: <P as Pixel>::from_slice_mut
      Src: /src/image/src/images/buffer.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 15
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: PixelsMut::next_back
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - map
    - next_back
    - <P as Pixel>::from_slice_mut
    linkageType: ''
    returnType: Option
    signature: fn next_back(&mut self) -> Option<&'a mut P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/image/src/images/buffer.rs:134,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:134,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: PixelsMut::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - debug_struct
    - field
    - finish
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::from
      Src: /src/image/src/images/buffer.rs:156,1
    - Dst: chunks_exact
      Src: /src/image/src/images/buffer.rs:159,1
    - Dst: Vec::get
      Src: /src/image/src/images/buffer.rs:162,1
    - Dst: Option::expect
      Src: /src/image/src/images/buffer.rs:162,1
    - Dst: Vec::chunks_exact
      Src: /src/image/src/images/buffer.rs:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - pixels
    - width
    - height
    argTypes:
    - '&''a [P::Subpixel]'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 171
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 171
    functionName: Rows::with_image
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Vec::get
    - Option::expect
    - usize::from
    - chunks_exact
    - Vec::chunks_exact
    linkageType: ''
    returnType: Self
    signature: 'fn with_image(pixels: &''a [P::Subpixel], width: u32, height: u32)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/image/src/images/buffer.rs:182,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:183,1
    - Dst: chunks_exact
      Src: /src/image/src/images/buffer.rs:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: Rows::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - chunks_exact
    - next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<Pixels<'a, P>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rows::len
      Src: /src/image/src/images/buffer.rs:191,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: Rows::size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - Rows::len
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer.rs:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 14
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: Rows::len
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next_back
      Src: /src/image/src/images/buffer.rs:211,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:212,1
    - Dst: chunks_exact
      Src: /src/image/src/images/buffer.rs:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 15
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: Rows::next_back
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - next_back
    - chunks_exact
    linkageType: ''
    returnType: Option
    signature: fn next_back(&mut self) -> Option<Pixels<'a, P>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/buffer.rs:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: Rows::clone
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/image/src/images/buffer.rs:232,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:232,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: Rows::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - debug_struct
    - field
    - finish
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::from
      Src: /src/image/src/images/buffer.rs:254,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/images/buffer.rs:257,1
    - Dst: Vec::get_mut
      Src: /src/image/src/images/buffer.rs:260,1
    - Dst: expect
      Src: /src/image/src/images/buffer.rs:260,1
    - Dst: Vec::chunks_exact_mut
      Src: /src/image/src/images/buffer.rs:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - pixels
    - width
    - height
    argTypes:
    - '&''a mut [P::Subpixel]'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 269
      start: 253
    functionDepth: 3
    functionLinenumber: 253
    functionLinenumberEnd: 269
    functionName: RowsMut::with_image
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - chunks_exact_mut
    - Vec::chunks_exact_mut
    - Vec::get_mut
    - usize::from
    - expect
    linkageType: ''
    returnType: Self
    signature: 'fn with_image(pixels: &''a mut [P::Subpixel], width: u32, height:
      u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/image/src/images/buffer.rs:280,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:281,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/images/buffer.rs:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 285
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 285
    functionName: RowsMut::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - next
    - chunks_exact_mut
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<PixelsMut<'a, P>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RowsMut::len
      Src: /src/image/src/images/buffer.rs:289,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: RowsMut::size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - RowsMut::len
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer.rs:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 298
    functionDepth: 14
    functionLinenumber: 298
    functionLinenumberEnd: 300
    functionName: RowsMut::len
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next_back
      Src: /src/image/src/images/buffer.rs:309,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:310,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/images/buffer.rs:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 15
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: RowsMut::next_back
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - next_back
    - chunks_exact_mut
    linkageType: ''
    returnType: Option
    signature: fn next_back(&mut self) -> Option<PixelsMut<'a, P>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/image/src/images/buffer.rs:322,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:322,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: RowsMut::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - debug_struct
    - field
    - finish
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/image/src/images/buffer.rs:353,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 354
      start: 346
    functionDepth: 14
    functionLinenumber: 346
    functionLinenumberEnd: 354
    functionName: EnumeratePixels::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - map
    - next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<(u32, u32, &'a P)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnumeratePixels::len
      Src: /src/image/src/images/buffer.rs:358,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: EnumeratePixels::size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - EnumeratePixels::len
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer.rs:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 14
    functionLinenumber: 367
    functionLinenumberEnd: 369
    functionName: EnumeratePixels::len
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/buffer.rs:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 378
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 378
    functionName: EnumeratePixels::clone
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/image/src/images/buffer.rs:386,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:386,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:386,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:386,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:386,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 392
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 392
    functionName: EnumeratePixels::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - debug_struct
    - field
    - finish
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/image/src/images/buffer.rs:415,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 412
    functionDepth: 14
    functionLinenumber: 412
    functionLinenumberEnd: 426
    functionName: EnumerateRows::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - map
    - next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<(u32, EnumeratePixels<'a, P>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnumerateRows::len
      Src: /src/image/src/images/buffer.rs:430,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 432
    functionName: EnumerateRows::size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - EnumerateRows::len
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer.rs:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 439
    functionDepth: 14
    functionLinenumber: 439
    functionLinenumberEnd: 441
    functionName: EnumerateRows::len
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/buffer.rs:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 450
    functionName: EnumerateRows::clone
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/image/src/images/buffer.rs:458,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:458,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:458,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:458,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 463
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 463
    functionName: EnumerateRows::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - debug_struct
    - field
    - finish
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/image/src/images/buffer.rs:491,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 492
      start: 484
    functionDepth: 14
    functionLinenumber: 484
    functionLinenumberEnd: 492
    functionName: EnumeratePixelsMut::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - map
    - next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<(u32, u32, &'a mut P)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnumeratePixelsMut::len
      Src: /src/image/src/images/buffer.rs:496,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 498
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 498
    functionName: EnumeratePixelsMut::size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - EnumeratePixelsMut::len
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer.rs:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 505
    functionDepth: 14
    functionLinenumber: 505
    functionLinenumberEnd: 507
    functionName: EnumeratePixelsMut::len
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/image/src/images/buffer.rs:515,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:515,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:515,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:515,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:515,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 521
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 521
    functionName: EnumeratePixelsMut::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - debug_struct
    - field
    - finish
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/image/src/images/buffer.rs:544,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 555
      start: 541
    functionDepth: 14
    functionLinenumber: 541
    functionLinenumberEnd: 555
    functionName: EnumerateRowsMut::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - map
    - next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<(u32, EnumeratePixelsMut<'a, P>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnumerateRowsMut::len
      Src: /src/image/src/images/buffer.rs:559,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 561
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 561
    functionName: EnumerateRowsMut::size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - EnumerateRowsMut::len
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer.rs:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 570
      start: 568
    functionDepth: 14
    functionLinenumber: 568
    functionLinenumberEnd: 570
    functionName: EnumerateRowsMut::len
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/image/src/images/buffer.rs:578,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:578,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:578,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:578,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 583
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 583
    functionName: EnumerateRowsMut::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - debug_struct
    - field
    - finish
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::check_image_fits
      Src: /src/image/src/images/buffer.rs:674,1
    - Dst: io::Result::len
      Src: /src/image/src/images/buffer.rs:674,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - width
    - height
    - buf
    argTypes:
    - u32
    - u32
    - Container
    constantsTouched: []
    func_position:
      end: 684
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 684
    functionName: ImageBuffer::from_raw
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 26
    functionsReached:
    - Some
    - Self::check_image_fits
    - io::Result::len
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_raw(width: u32, height: u32, buf: Container) -> Option<ImageBuffer<P,
      Container>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 689
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 689
    functionName: ImageBuffer::into_raw
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Container
    signature: pub fn into_raw(self) -> Container
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 694
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 694
    functionName: ImageBuffer::as_raw
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Container'
    signature: pub fn as_raw(&self) -> &Container
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::dimensions
      Src: /src/image/src/images/buffer.rs:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1174
    functionDepth: 1
    functionLinenumber: 1174
    functionLinenumberEnd: 1176
    functionName: ImageBuffer::dimensions
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - ImageBuffer::dimensions
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 704
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 704
    functionName: ImageBuffer::width
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn width(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 709
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 709
    functionName: ImageBuffer::height
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn height(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::image_buffer_len
      Src: /src/image/src/images/buffer.rs:713,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 715
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 715
    functionName: ImageBuffer::inner_pixels
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - Self::image_buffer_len
    - Option::unwrap
    linkageType: ''
    returnType: '&[P::Subpixel]'
    signature: pub(crate) fn inner_pixels(&self) -> &[P::Subpixel]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:721,1
    - Dst: '&[P::Subpixel]::chunks_exact'
      Src: /src/image/src/images/buffer.rs:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 725
      start: 719
    functionDepth: 2
    functionLinenumber: 719
    functionLinenumberEnd: 725
    functionName: ImageBuffer::pixels
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - '&[P::Subpixel]::chunks_exact'
    - ImageBuffer::inner_pixels
    linkageType: ''
    returnType: Pixels
    signature: pub fn pixels(&self) -> Pixels<'_, P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rows::with_image
      Src: /src/image/src/images/buffer.rs:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 734
      start: 732
    functionDepth: 4
    functionLinenumber: 732
    functionLinenumberEnd: 734
    functionName: ImageBuffer::rows
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Rows::with_image
    linkageType: ''
    returnType: Rows
    signature: pub fn rows(&self) -> Rows<'_, P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::pixels
      Src: /src/image/src/images/buffer.rs:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 748
      start: 741
    functionDepth: 3
    functionLinenumber: 741
    functionLinenumberEnd: 748
    functionName: ImageBuffer::enumerate_pixels
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::pixels
    linkageType: ''
    returnType: EnumeratePixels
    signature: pub fn enumerate_pixels(&self) -> EnumeratePixels<'_, P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::rows
      Src: /src/image/src/images/buffer.rs:755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 759
      start: 753
    functionDepth: 5
    functionLinenumber: 753
    functionLinenumberEnd: 759
    functionName: ImageBuffer::enumerate_rows
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::rows
    linkageType: ''
    returnType: EnumerateRows
    signature: pub fn enumerate_rows(&self) -> EnumerateRows<'_, P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::get_pixel
      Src: /src/image/src/images/buffer.rs:1179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1180
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1180
    functionName: ImageBuffer::get_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - ImageBuffer::get_pixel
    linkageType: ''
    returnType: P
    signature: 'fn get_pixel(&self, x: u32, y: u32) -> P'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: saturating_mul
      Src: /src/image/src/images/buffer.rs:786,1
    - Dst: saturating_add
      Src: /src/image/src/images/buffer.rs:786,1
    - Dst: saturating_mul
      Src: /src/image/src/images/buffer.rs:786,1
    - Dst: get
      Src: /src/image/src/images/buffer.rs:791,1
    - Dst: io::Result::checked_add
      Src: /src/image/src/images/buffer.rs:792,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:791,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/images/buffer.rs:793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 794
      start: 781
    functionDepth: 13
    functionLinenumber: 781
    functionLinenumberEnd: 794
    functionName: ImageBuffer::get_pixel_checked
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - map
    - get
    - <P as Pixel>::from_slice
    - saturating_add
    - saturating_mul
    - io::Result::checked_add
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_pixel_checked(&self, x: u32, y: u32) -> Option<&P>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::image_buffer_len
      Src: /src/image/src/images/buffer.rs:802,1
    - Dst: Option::is_some_and
      Src: /src/image/src/images/buffer.rs:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - width
    - height
    - len
    argTypes:
    - u32
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 804
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 804
    functionName: ImageBuffer::check_image_fits
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Self::image_buffer_len
    - Option::is_some_and
    linkageType: ''
    returnType: bool
    signature: 'fn check_image_fits(width: u32, height: u32, len: usize) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:807,1
    - Dst: and_then
      Src: /src/image/src/images/buffer.rs:807,1
    - Dst: u64::checked_mul
      Src: /src/image/src/images/buffer.rs:808,1
    - Dst: and_then
      Src: /src/image/src/images/buffer.rs:807,1
    - Dst: u64::checked_mul
      Src: /src/image/src/images/buffer.rs:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 810
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 810
    functionName: ImageBuffer::image_buffer_len
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - and_then
    - u64::checked_mul
    linkageType: ''
    returnType: Option
    signature: 'fn image_buffer_len(width: u32, height: u32) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:818,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 819
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 819
    functionName: ImageBuffer::pixel_indices
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - ImageBuffer::pixel_indices_unchecked
    linkageType: ''
    returnType: Option
    signature: 'fn pixel_indices(&self, x: u32, y: u32) -> Option<Range<usize>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 827
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 827
    functionName: ImageBuffer::pixel_indices_unchecked
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Range
    signature: 'fn pixel_indices_unchecked(&self, x: u32, y: u32) -> Range<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SampleLayout::row_major_packed
      Src: /src/image/src/images/buffer.rs:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 833
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 833
    functionName: ImageBuffer::sample_layout
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - SampleLayout::row_major_packed
    linkageType: ''
    returnType: SampleLayout
    signature: pub fn sample_layout(&self) -> SampleLayout
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::sample_layout
      Src: /src/image/src/images/buffer.rs:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 852
      start: 841
    functionDepth: 2
    functionLinenumber: 841
    functionLinenumberEnd: 852
    functionName: ImageBuffer::into_flat_samples
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::sample_layout
    linkageType: ''
    returnType: FlatSamples
    signature: 'pub fn into_flat_samples(self) -> FlatSamples<Container>whereContainer:
      AsRef<[P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::sample_layout
      Src: /src/image/src/images/buffer.rs:861,1
    - Dst: as_ref
      Src: /src/image/src/images/buffer.rs:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 867
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 867
    functionName: ImageBuffer::as_flat_samples
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::sample_layout
    - as_ref
    linkageType: ''
    returnType: FlatSamples
    signature: 'pub fn as_flat_samples(&self) -> FlatSamples<&[P::Subpixel]>whereContainer:
      AsRef<[P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::sample_layout
      Src: /src/image/src/images/buffer.rs:876,1
    - Dst: as_mut
      Src: /src/image/src/images/buffer.rs:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 882
      start: 872
    functionDepth: 2
    functionLinenumber: 872
    functionLinenumberEnd: 882
    functionName: ImageBuffer::as_flat_samples_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - ImageBuffer::sample_layout
    linkageType: ''
    returnType: FlatSamples
    signature: 'pub fn as_flat_samples_mut(&mut self) -> FlatSamples<&mut [P::Subpixel]>whereContainer:
      AsMut<[P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::image_buffer_len
      Src: /src/image/src/images/buffer.rs:892,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 894
      start: 891
    functionDepth: 1
    functionLinenumber: 891
    functionLinenumberEnd: 894
    functionName: ImageBuffer::inner_pixels_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - Self::image_buffer_len
    - Option::unwrap
    linkageType: ''
    returnType: '&mut [P::Subpixel]'
    signature: pub(crate) fn inner_pixels_mut(&mut self) -> &mut [P::Subpixel]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::inner_pixels_mut
      Src: /src/image/src/images/buffer.rs:899,1
    - Dst: '&mut [P::Subpixel]::chunks_exact_mut'
      Src: /src/image/src/images/buffer.rs:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 903
      start: 897
    functionDepth: 2
    functionLinenumber: 897
    functionLinenumberEnd: 903
    functionName: ImageBuffer::pixels_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::inner_pixels_mut
    - '&mut [P::Subpixel]::chunks_exact_mut'
    linkageType: ''
    returnType: PixelsMut
    signature: pub fn pixels_mut(&mut self) -> PixelsMut<'_, P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RowsMut::with_image
      Src: /src/image/src/images/buffer.rs:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 912
      start: 910
    functionDepth: 4
    functionLinenumber: 910
    functionLinenumberEnd: 912
    functionName: ImageBuffer::rows_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - RowsMut::with_image
    linkageType: ''
    returnType: RowsMut
    signature: pub fn rows_mut(&mut self) -> RowsMut<'_, P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::pixels_mut
      Src: /src/image/src/images/buffer.rs:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 925
      start: 917
    functionDepth: 3
    functionLinenumber: 917
    functionLinenumberEnd: 925
    functionName: ImageBuffer::enumerate_pixels_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::pixels_mut
    linkageType: ''
    returnType: EnumeratePixelsMut
    signature: pub fn enumerate_pixels_mut(&mut self) -> EnumeratePixelsMut<'_, P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::rows_mut
      Src: /src/image/src/images/buffer.rs:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 937
      start: 930
    functionDepth: 5
    functionLinenumber: 930
    functionLinenumberEnd: 937
    functionName: ImageBuffer::enumerate_rows_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::rows_mut
    linkageType: ''
    returnType: EnumerateRowsMut
    signature: pub fn enumerate_rows_mut(&mut self) -> EnumerateRowsMut<'_, P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::get_pixel_mut
      Src: /src/image/src/images/buffer.rs:1196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1197
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1197
    functionName: ImageBuffer::get_pixel_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 2
    functionsReached:
    - ImageBuffer::get_pixel_mut
    linkageType: ''
    returnType: '&mut P'
    signature: 'fn get_pixel_mut(&mut self, x: u32, y: u32) -> &mut P'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: saturating_mul
      Src: /src/image/src/images/buffer.rs:964,1
    - Dst: saturating_add
      Src: /src/image/src/images/buffer.rs:964,1
    - Dst: saturating_mul
      Src: /src/image/src/images/buffer.rs:964,1
    - Dst: get_mut
      Src: /src/image/src/images/buffer.rs:969,1
    - Dst: io::Result::checked_add
      Src: /src/image/src/images/buffer.rs:970,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:969,1
    - Dst: <P as Pixel>::from_slice_mut
      Src: /src/image/src/images/buffer.rs:971,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 972
      start: 959
    functionDepth: 13
    functionLinenumber: 959
    functionLinenumberEnd: 972
    functionName: ImageBuffer::get_pixel_mut_checked
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - map
    - get_mut
    - saturating_add
    - <P as Pixel>::from_slice_mut
    - saturating_mul
    - io::Result::checked_add
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_pixel_mut_checked(&mut self, x: u32, y: u32) -> Option<&mut
      P>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::get_pixel_mut
      Src: /src/image/src/images/buffer.rs:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - P
    constantsTouched: []
    func_position:
      end: 1201
      start: 1199
    functionDepth: 2
    functionLinenumber: 1199
    functionLinenumberEnd: 1201
    functionName: ImageBuffer::put_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::get_pixel_mut
    linkageType: ''
    returnType: void
    signature: 'fn put_pixel(&mut self, x: u32, y: u32, pixel: P)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: save_buffer
      Src: /src/image/src/images/buffer.rs:1000,1
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:1002,1
    - Dst: '&[P::Subpixel]::as_bytes'
      Src: /src/image/src/images/buffer.rs:1002,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1003,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - path
    argTypes:
    - Q
    constantsTouched: []
    func_position:
      end: 1007
      start: 995
    functionDepth: 16
    functionLinenumber: 995
    functionLinenumberEnd: 1007
    functionName: ImageBuffer::save
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - '&[P::Subpixel]::as_bytes'
    - ImageBuffer::inner_pixels
    - ImageBuffer::height
    - ImageBuffer::width
    - save_buffer
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn save<Q>(&self, path: Q) -> ImageResult<()>whereQ: AsRef<Path>,P:
      PixelWithColorType,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: save_buffer_with_format
      Src: /src/image/src/images/buffer.rs:1027,1
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:1029,1
    - Dst: '&[P::Subpixel]::as_bytes'
      Src: /src/image/src/images/buffer.rs:1029,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1030,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - path
    - format
    argTypes:
    - Q
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1035
      start: 1021
    functionDepth: 14
    functionLinenumber: 1021
    functionLinenumberEnd: 1035
    functionName: ImageBuffer::save_with_format
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - '&[P::Subpixel]::as_bytes'
    - ImageBuffer::inner_pixels
    - save_buffer_with_format
    - ImageBuffer::height
    - ImageBuffer::width
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn save_with_format<Q>(&self, path: Q, format: ImageFormat) ->
      ImageResult<()>whereQ: AsRef<Path>,P: PixelWithColorType,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_buffer_with_format
      Src: /src/image/src/images/buffer.rs:1054,1
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:1056,1
    - Dst: '&[P::Subpixel]::as_bytes'
      Src: /src/image/src/images/buffer.rs:1056,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1057,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - format
    argTypes:
    - '&mut W'
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1062
      start: 1048
    functionDepth: 13
    functionLinenumber: 1048
    functionLinenumberEnd: 1062
    functionName: ImageBuffer::write_to
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - '&[P::Subpixel]::as_bytes'
    - ImageBuffer::inner_pixels
    - ImageBuffer::height
    - ImageBuffer::width
    - write_buffer_with_format
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn write_to<W>(&self, writer: &mut W, format: ImageFormat) ->
      ImageResult<()>whereW: std::io::Write + std::io::Seek,P: PixelWithColorType,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::write_image
      Src: /src/image/src/images/buffer.rs:1078,1
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:1079,1
    - Dst: '&[P::Subpixel]::as_bytes'
      Src: /src/image/src/images/buffer.rs:1079,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1080,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - E
    constantsTouched: []
    func_position:
      end: 1084
      start: 1072
    functionDepth: 2
    functionLinenumber: 1072
    functionLinenumberEnd: 1084
    functionName: ImageBuffer::write_with_encoder
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - '&[P::Subpixel]::as_bytes'
    - ImageBuffer::inner_pixels
    - ImageResult::write_image
    - ImageBuffer::height
    - ImageBuffer::width
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn write_with_encoder<E>(&self, encoder: E) -> ImageResult<()>whereE:
      ImageEncoder,P: PixelWithColorType,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:1097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1092
    functionDepth: 1
    functionLinenumber: 1092
    functionLinenumberEnd: 1099
    functionName: ImageBuffer::default
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1111
    functionName: ImageBuffer::deref
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&'
    signature: fn deref(&self) -> &<Self as Deref>::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1119
    functionDepth: 0
    functionLinenumber: 1119
    functionLinenumberEnd: 1121
    functionName: ImageBuffer::deref_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut '
    signature: fn deref_mut(&mut self) -> &mut <Self as Deref>::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::get_pixel
      Src: /src/image/src/images/buffer.rs:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames: []
    argTypes:
    - (u32, u32)
    constantsTouched: []
    func_position:
      end: 1133
      start: 1131
    functionDepth: 2
    functionLinenumber: 1131
    functionLinenumberEnd: 1133
    functionName: ImageBuffer::index
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::get_pixel
    linkageType: ''
    returnType: '&P'
    signature: 'fn index(&self, (x, y): (u32, u32)) -> &P'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::get_pixel_mut
      Src: /src/image/src/images/buffer.rs:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames: []
    argTypes:
    - (u32, u32)
    constantsTouched: []
    func_position:
      end: 1143
      start: 1141
    functionDepth: 2
    functionLinenumber: 1141
    functionLinenumberEnd: 1143
    functionName: ImageBuffer::index_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::get_pixel_mut
    linkageType: ''
    returnType: '&mut P'
    signature: 'fn index_mut(&mut self, (x, y): (u32, u32)) -> &mut P'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/buffer.rs:1153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1158
    functionName: ImageBuffer::clone
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - clone
    linkageType: ''
    returnType: ImageBuffer
    signature: fn clone(&self) -> ImageBuffer<P, Container>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone_from
      Src: /src/image/src/images/buffer.rs:1161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - source
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 1164
      start: 1160
    functionDepth: 2
    functionLinenumber: 1160
    functionLinenumberEnd: 1164
    functionName: ImageBuffer::clone_from
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - clone_from
    linkageType: ''
    returnType: void
    signature: 'fn clone_from(&mut self, source: &Self)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1185,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/images/buffer.rs:1186,1
    - Dst: get_unchecked
      Src: /src/image/src/images/buffer.rs:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1187
      start: 1184
    functionDepth: 1
    functionLinenumber: 1184
    functionLinenumberEnd: 1187
    functionName: ImageBuffer::unsafe_get_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - get_unchecked
    - <P as Pixel>::from_slice
    - ImageBuffer::pixel_indices_unchecked
    linkageType: ''
    returnType: P
    signature: 'unsafe fn unsafe_get_pixel(&self, x: u32, y: u32) -> P'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1206,1
    - Dst: <P as Pixel>::from_slice_mut
      Src: /src/image/src/images/buffer.rs:1207,1
    - Dst: get_unchecked_mut
      Src: /src/image/src/images/buffer.rs:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - P
    constantsTouched: []
    func_position:
      end: 1209
      start: 1205
    functionDepth: 1
    functionLinenumber: 1205
    functionLinenumberEnd: 1209
    functionName: ImageBuffer::unsafe_put_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - <P as Pixel>::from_slice_mut
    - get_unchecked_mut
    - ImageBuffer::pixel_indices_unchecked
    linkageType: ''
    returnType: void
    signature: 'unsafe fn unsafe_put_pixel(&mut self, x: u32, y: u32, pixel: P)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::get_pixel_mut
      Src: /src/image/src/images/buffer.rs:1215,1
    - Dst: '&mut P::blend'
      Src: /src/image/src/images/buffer.rs:1215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - x
    - y
    - p
    argTypes:
    - u32
    - u32
    - P
    constantsTouched: []
    func_position:
      end: 1216
      start: 1214
    functionDepth: 4
    functionLinenumber: 1214
    functionLinenumberEnd: 1216
    functionName: ImageBuffer::blend_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - '&mut P::blend'
    - ImageBuffer::get_pixel_mut
    linkageType: ''
    returnType: void
    signature: 'fn blend_pixel(&mut self, x: u32, y: u32, p: P)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1229,1
    - Dst: u32::max
      Src: /src/image/src/images/buffer.rs:1229,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1229,1
    - Dst: ImageResult::max
      Src: /src/image/src/images/buffer.rs:1229,1
    - Dst: rev
      Src: /src/image/src/images/buffer.rs:1234,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1237,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1238,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1239,1
    - Dst: copy_within
      Src: /src/image/src/images/buffer.rs:1240,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1246,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1247,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1248,1
    - Dst: copy_within
      Src: /src/image/src/images/buffer.rs:1249,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 63
    argCount: 3
    argNames:
    - source
    - x
    - y
    argTypes:
    - Rect
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1253
      start: 1218
    functionDepth: 2
    functionLinenumber: 1218
    functionLinenumberEnd: 1253
    functionName: ImageBuffer::copy_within
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - rev
    - ImageBuffer::height
    - ImageBuffer::width
    - ImageBuffer::pixel_indices_unchecked
    - copy_within
    - u32::max
    - ImageResult::max
    linkageType: ''
    returnType: bool
    signature: 'fn copy_within(&mut self, source: Rect, x: u32, y: u32) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::image_buffer_len
      Src: /src/image/src/images/buffer.rs:1272,1
    - Dst: Option::expect
      Src: /src/image/src/images/buffer.rs:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1280
      start: 1271
    functionDepth: 1
    functionLinenumber: 1271
    functionLinenumberEnd: 1280
    functionName: ImageBuffer::new
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 40
    functionsReached:
    - Self::image_buffer_len
    - Option::expect
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn new(width: u32, height: u32) -> ImageBuffer<P, Vec<P::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1288,1
    - Dst: io::Result::pixels_mut
      Src: /src/image/src/images/buffer.rs:1289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - width
    - height
    - pixel
    argTypes:
    - u32
    - u32
    - P
    constantsTouched: []
    func_position:
      end: 1293
      start: 1287
    functionDepth: 2
    functionLinenumber: 1287
    functionLinenumberEnd: 1293
    functionName: ImageBuffer::from_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 16
    functionsReached:
    - io::Result::pixels_mut
    - ImageBuffer::new
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn from_pixel(width: u32, height: u32, pixel: P) -> ImageBuffer<P,
      Vec<P::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1306,1
    - Dst: io::Result::enumerate_pixels_mut
      Src: /src/image/src/images/buffer.rs:1307,1
    - Dst: f
      Src: /src/image/src/images/buffer.rs:1308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - width
    - height
    - f
    argTypes:
    - u32
    - u32
    - F
    constantsTouched: []
    func_position:
      end: 1311
      start: 1302
    functionDepth: 17
    functionLinenumber: 1302
    functionLinenumberEnd: 1311
    functionName: ImageBuffer::from_fn
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 6
    functionsReached:
    - io::Result::enumerate_pixels_mut
    - f
    - ImageBuffer::new
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn from_fn<F>(width: u32, height: u32, mut f: F) -> ImageBuffer<P,
      Vec<P::Subpixel>>whereF: FnMut(u32, u32) -> P,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:1321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - width
    - height
    - buf
    argTypes:
    - u32
    - u32
    - Vec<P::Subpixel>
    constantsTouched: []
    func_position:
      end: 1322
      start: 1316
    functionDepth: 3
    functionLinenumber: 1316
    functionLinenumberEnd: 1322
    functionName: ImageBuffer::from_vec
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_vec(width: u32,height: u32,buf: Vec<P::Subpixel>,) ->
      Option<ImageBuffer<P, Vec<P::Subpixel>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::into_raw
      Src: /src/image/src/images/buffer.rs:1328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1327
    functionDepth: 1
    functionLinenumber: 1327
    functionLinenumberEnd: 1329
    functionName: ImageBuffer::into_vec
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::into_raw
    linkageType: ''
    returnType: Vec
    signature: pub fn into_vec(self) -> Vec<P::Subpixel>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GrayImage::dimensions
      Src: /src/image/src/images/buffer.rs:1352,1
    - Dst: GrayImage::into_raw
      Src: /src/image/src/images/buffer.rs:1353,1
    - Dst: ImageResult::len
      Src: /src/image/src/images/buffer.rs:1354,1
    - Dst: ImageResult::resize
      Src: /src/image/src/images/buffer.rs:1355,1
    - Dst: ImageResult::checked_mul
      Src: /src/image/src/images/buffer.rs:1355,1
    - Dst: unwrap
      Src: /src/image/src/images/buffer.rs:1355,1
    - Dst: ImageBuffer::from_vec
      Src: /src/image/src/images/buffer.rs:1356,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1356,1
    - Dst: utils::expand_packed
      Src: /src/image/src/images/buffer.rs:1357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 2
    argNames:
    - palette
    - transparent_idx
    argTypes:
    - '&[(u8, u8, u8)]'
    - Option<u8>
    constantsTouched: []
    func_position:
      end: 1374
      start: 1347
    functionDepth: 11
    functionLinenumber: 1347
    functionLinenumberEnd: 1374
    functionName: GrayImage::expand_palette
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_vec
    - ImageResult::len
    - ImageResult::resize
    - ImageResult::checked_mul
    - GrayImage::into_raw
    - unwrap
    - utils::expand_packed
    - GrayImage::dimensions
    linkageType: ''
    returnType: RgbaImage
    signature: 'pub fn expand_palette(self,palette: &[(u8, u8, u8)],transparent_idx:
      Option<u8>,) -> RgbaImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1401,1
    - Dst: '&RgbaImage::pixels_mut'
      Src: /src/image/src/images/buffer.rs:1402,1
    - Dst: PixelsMutPar::zip
      Src: /src/image/src/images/buffer.rs:1402,1
    - Dst: ImageBuffer::pixels
      Src: /src/image/src/images/buffer.rs:1402,1
    - Dst: ImageResult::from_color
      Src: /src/image/src/images/buffer.rs:1403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1399
    functionDepth: 5
    functionLinenumber: 1399
    functionLinenumberEnd: 1406
    functionName: ImageBuffer::convert
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 2
    functionsReached:
    - '&RgbaImage::pixels_mut'
    - PixelsMutPar::zip
    - ImageBuffer::new
    - ImageResult::from_color
    - ImageBuffer::pixels
    linkageType: ''
    returnType: ImageBuffer
    signature: fn convert(&self) -> ImageBuffer<ToType, Vec<ToType::Subpixel>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::into_rgb8
      Src: /src/image/src/images/buffer.rs:1436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1437
      start: 1435
    functionDepth: 3
    functionLinenumber: 1435
    functionLinenumberEnd: 1437
    functionName: RgbImage::from
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageResult::into_rgb8
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: DynamicImage) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::into_rgba8
      Src: /src/image/src/images/buffer.rs:1442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1443
      start: 1441
    functionDepth: 2
    functionLinenumber: 1441
    functionLinenumberEnd: 1443
    functionName: RgbaImage::from
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageResult::into_rgba8
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: DynamicImage) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::into_luma8
      Src: /src/image/src/images/buffer.rs:1448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1449
      start: 1447
    functionDepth: 3
    functionLinenumber: 1447
    functionLinenumberEnd: 1449
    functionName: GrayImage::from
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageResult::into_luma8
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: DynamicImage) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::into_luma_alpha8
      Src: /src/image/src/images/buffer.rs:1454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1455
      start: 1453
    functionDepth: 3
    functionLinenumber: 1453
    functionLinenumberEnd: 1455
    functionName: GrayAlphaImage::from
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageResult::into_luma_alpha8
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: DynamicImage) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::into_rgb16
      Src: /src/image/src/images/buffer.rs:1460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1461
      start: 1459
    functionDepth: 3
    functionLinenumber: 1459
    functionLinenumberEnd: 1461
    functionName: Rgb16Image::from
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageResult::into_rgb16
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: DynamicImage) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::into_rgba16
      Src: /src/image/src/images/buffer.rs:1466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1467
      start: 1465
    functionDepth: 3
    functionLinenumber: 1465
    functionLinenumberEnd: 1467
    functionName: Rgba16Image::from
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageResult::into_rgba16
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: DynamicImage) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::into_luma16
      Src: /src/image/src/images/buffer.rs:1472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1473
      start: 1471
    functionDepth: 3
    functionLinenumber: 1471
    functionLinenumberEnd: 1473
    functionName: Gray16Image::from
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageResult::into_luma16
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: DynamicImage) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::into_luma_alpha16
      Src: /src/image/src/images/buffer.rs:1478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1479
      start: 1477
    functionDepth: 3
    functionLinenumber: 1477
    functionLinenumberEnd: 1479
    functionName: GrayAlpha16Image::from
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageResult::into_luma_alpha16
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: DynamicImage) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::into_rgba32f
      Src: /src/image/src/images/buffer.rs:1484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1485
      start: 1483
    functionDepth: 3
    functionLinenumber: 1483
    functionLinenumberEnd: 1485
    functionName: Rgba32FImage::from
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageResult::into_rgba32f
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: DynamicImage) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:1501,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1499
    functionDepth: 3
    functionLinenumber: 1499
    functionLinenumberEnd: 1503
    functionName: test::slice_buffer
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn slice_buffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1532,1
    - Dst: get_mut
      Src: /src/image/src/images/buffer.rs:1534,1
    - Dst: unwrap
      Src: /src/image/src/images/buffer.rs:1534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1531
    functionDepth: 2
    functionLinenumber: 1531
    functionLinenumberEnd: 1538
    functionName: test::get_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - get_mut
    - unwrap
    - ImageBuffer::new
    linkageType: ''
    returnType: void
    signature: fn get_pixel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1542,1
    - Dst: get_pixel_mut_checked
      Src: /src/image/src/images/buffer.rs:1543,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1543,1
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:1554,1
    - Dst: put_pixel
      Src: /src/image/src/images/buffer.rs:1555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1541
    functionDepth: 14
    functionLinenumber: 1541
    functionLinenumberEnd: 1559
    functionName: test::get_pixel_checked
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - RgbImage::new
    - get_pixel_mut_checked
    - ImageBuffer::new
    - put_pixel
    linkageType: ''
    returnType: void
    signature: fn get_pixel_checked()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1563,1
    - Dst: pixels_mut
      Src: /src/image/src/images/buffer.rs:1565,1
    - Dst: PixelsMutPar::next
      Src: /src/image/src/images/buffer.rs:1565,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1565,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:1566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1562
    functionDepth: 3
    functionLinenumber: 1562
    functionLinenumberEnd: 1569
    functionName: test::mut_iter
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::new
    - PixelsMutPar::next
    - pixels_mut
    - color::Rgb
    linkageType: ''
    returnType: void
    signature: fn mut_iter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::from_raw
      Src: /src/image/src/images/buffer.rs:1603,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/buffer.rs:1603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1602
    functionDepth: 4
    functionLinenumber: 1602
    functionLinenumberEnd: 1612
    functionName: test::pixels_on_large_buffer
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - RgbImage::from_raw
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn pixels_on_large_buffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::<Rgb<u8>, Vec<u8>>::default
      Src: /src/image/src/images/buffer.rs:1616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1615
    functionDepth: 0
    functionLinenumber: 1615
    functionLinenumberEnd: 1618
    functionName: test::default
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::<Rgb<u8>, Vec<u8>>::default
    linkageType: ''
    returnType: void
    signature: fn default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:1623,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1622
    functionDepth: 3
    functionLinenumber: 1622
    functionLinenumberEnd: 1631
    functionName: test::test_image_buffer_copy_within_oob
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_image_buffer_copy_within_oob()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:1637,1
    - Dst: Vec::from
      Src: /src/image/src/images/buffer.rs:1637,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1634
    functionDepth: 3
    functionLinenumber: 1634
    functionLinenumberEnd: 1649
    functionName: test::test_image_buffer_copy_within_tl
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - Vec::from
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_image_buffer_copy_within_tl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:1655,1
    - Dst: Vec::from
      Src: /src/image/src/images/buffer.rs:1655,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1652
    functionDepth: 3
    functionLinenumber: 1652
    functionLinenumberEnd: 1667
    functionName: test::test_image_buffer_copy_within_tr
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - Vec::from
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_image_buffer_copy_within_tr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:1673,1
    - Dst: Vec::from
      Src: /src/image/src/images/buffer.rs:1673,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1670
    functionDepth: 3
    functionLinenumber: 1670
    functionLinenumberEnd: 1685
    functionName: test::test_image_buffer_copy_within_bl
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - Vec::from
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_image_buffer_copy_within_bl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:1691,1
    - Dst: Vec::from
      Src: /src/image/src/images/buffer.rs:1691,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1688
    functionDepth: 3
    functionLinenumber: 1688
    functionLinenumberEnd: 1703
    functionName: test::test_image_buffer_copy_within_br
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - Vec::from
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_image_buffer_copy_within_br()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:1710,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1710,1
    - Dst: std::io::Cursor::new
      Src: /src/image/src/images/buffer.rs:1711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1707
    functionDepth: 3
    functionLinenumber: 1707
    functionLinenumberEnd: 1713
    functionName: test::write_to_with_large_buffer
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - std::io::Cursor::new
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn write_to_with_large_buffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::from_raw
      Src: /src/image/src/images/buffer.rs:1723,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/buffer.rs:1723,1
    - Dst: Vec::pixels
      Src: /src/image/src/images/buffer.rs:1725,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:1726,1
    - Dst: Vec::pixels_mut
      Src: /src/image/src/images/buffer.rs:1729,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:1730,1
    - Dst: Vec::rows
      Src: /src/image/src/images/buffer.rs:1733,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:1734,1
    - Dst: Vec::rows_mut
      Src: /src/image/src/images/buffer.rs:1737,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:1738,1
    - Dst: Vec::enumerate_pixels
      Src: /src/image/src/images/buffer.rs:1741,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:1742,1
    - Dst: Vec::enumerate_rows
      Src: /src/image/src/images/buffer.rs:1745,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:1746,1
    - Dst: Vec::enumerate_pixels_mut
      Src: /src/image/src/images/buffer.rs:1749,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:1750,1
    - Dst: Vec::enumerate_rows_mut
      Src: /src/image/src/images/buffer.rs:1753,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:1754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1716
    functionDepth: 14
    functionLinenumber: 1716
    functionLinenumberEnd: 1756
    functionName: test::exact_size_iter_size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Vec::enumerate_rows
    - ExactSizeIterator::len
    - Vec::pixels_mut
    - Vec::rows_mut
    - Vec::enumerate_pixels
    - ImageResult::unwrap
    - RgbImage::from_raw
    - Vec::enumerate_pixels_mut
    - Vec::enumerate_rows_mut
    - Vec::pixels
    - Vec::rows
    linkageType: ''
    returnType: void
    signature: fn exact_size_iter_size_hint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1766,1
    - Dst: pixels_mut
      Src: /src/image/src/images/buffer.rs:1767,1
    - Dst: channels_mut
      Src: /src/image/src/images/buffer.rs:1768,1
    - Dst: iter
      Src: /src/image/src/images/buffer.rs:1774,1
    - Dst: convert
      Src: /src/image/src/images/buffer.rs:1775,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:1778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1781
      start: 1765
    functionDepth: 6
    functionLinenumber: 1765
    functionLinenumberEnd: 1781
    functionName: benchmarks::conversion
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - test::black_box
    - channels_mut
    - iter
    - ImageBuffer::new
    - pixels_mut
    - convert
    linkageType: ''
    returnType: void
    signature: 'fn conversion(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1785,1
    - Dst: pixels_mut
      Src: /src/image/src/images/buffer.rs:1786,1
    - Dst: channels_mut
      Src: /src/image/src/images/buffer.rs:1787,1
    - Dst: iter
      Src: /src/image/src/images/buffer.rs:1793,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:1794,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/images/buffer.rs:1798,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:1799,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:1800,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:1801,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:1804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1808
      start: 1784
    functionDepth: 3
    functionLinenumber: 1784
    functionLinenumberEnd: 1808
    functionName: benchmarks::image_access_row_by_row
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - test::black_box
    - Vec::get_pixel
    - channels_mut
    - iter
    - ImageBuffer::new
    - wrapping_add
    - pixels_mut
    linkageType: ''
    returnType: void
    signature: 'fn image_access_row_by_row(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1812,1
    - Dst: pixels_mut
      Src: /src/image/src/images/buffer.rs:1813,1
    - Dst: channels_mut
      Src: /src/image/src/images/buffer.rs:1814,1
    - Dst: iter
      Src: /src/image/src/images/buffer.rs:1820,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:1821,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/images/buffer.rs:1825,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:1826,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:1827,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:1828,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:1831,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1835
      start: 1811
    functionDepth: 3
    functionLinenumber: 1811
    functionLinenumberEnd: 1835
    functionName: benchmarks::image_access_col_by_col
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - test::black_box
    - Vec::get_pixel
    - channels_mut
    - iter
    - ImageBuffer::new
    - wrapping_add
    - pixels_mut
    linkageType: ''
    returnType: void
    signature: 'fn image_access_col_by_col(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:19,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:19,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:20,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:20,1
    - Dst: f64::max
      Src: /src/image/src/math/utils.rs:23,1
    - Dst: f64::min
      Src: /src/image/src/math/utils.rs:25,1
    - Dst: std::cmp::max
      Src: /src/image/src/math/utils.rs:28,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:28,1
    - Dst: round
      Src: /src/image/src/math/utils.rs:28,1
    - Dst: std::cmp::max
      Src: /src/image/src/math/utils.rs:29,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:29,1
    - Dst: round
      Src: /src/image/src/math/utils.rs:29,1
    - Dst: u64::from
      Src: /src/image/src/math/utils.rs:31,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:32,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:32,1
    - Dst: std::cmp::max
      Src: /src/image/src/math/utils.rs:33,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:33,1
    - Dst: round
      Src: /src/image/src/math/utils.rs:33,1
    - Dst: u64::from
      Src: /src/image/src/math/utils.rs:34,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:35,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:35,1
    - Dst: std::cmp::max
      Src: /src/image/src/math/utils.rs:36,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:36,1
    - Dst: round
      Src: /src/image/src/math/utils.rs:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 55
    argCount: 5
    argNames:
    - width
    - height
    - nwidth
    - nheight
    - fill
    argTypes:
    - u32
    - u32
    - u32
    - u32
    - bool
    constantsTouched: []
    func_position:
      end: 40
      start: 12
    functionDepth: 12
    functionLinenumber: 12
    functionLinenumberEnd: 40
    functionName: resize_dimensions
    functionSourceFile: /src/image/src/math/utils.rs
    functionUses: 3
    functionsReached:
    - f64::max
    - f64::from
    - round
    - u64::from
    - f64::min
    - std::cmp::max
    linkageType: ''
    returnType: (u32, u32)
    signature: 'pub(crate) fn resize_dimensions(width: u32,height: u32,nwidth: u32,nheight:
      u32,fill: bool,) -> (u32, u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs:72,1
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 13
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: test::resize_handles_fill
    functionSourceFile: /src/image/src/math/utils.rs
    functionUses: 0
    functionsReached:
    - super::resize_dimensions
    linkageType: ''
    returnType: void
    signature: fn resize_handles_fill()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 13
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: test::resize_never_rounds_to_zero
    functionSourceFile: /src/image/src/math/utils.rs
    functionUses: 0
    functionsReached:
    - super::resize_dimensions
    linkageType: ''
    returnType: void
    signature: fn resize_never_rounds_to_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs:90,1
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 13
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: test::resize_handles_overflow
    functionSourceFile: /src/image/src/math/utils.rs
    functionUses: 0
    functionsReached:
    - super::resize_dimensions
    linkageType: ''
    returnType: void
    signature: fn resize_handles_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs:102,1
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 13
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: test::resize_rounds
    functionSourceFile: /src/image/src/math/utils.rs
    functionUses: 0
    functionsReached:
    - super::resize_dimensions
    linkageType: ''
    returnType: void
    signature: fn resize_rounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs:111,1
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs:114,1
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs:117,1
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 110
    functionDepth: 13
    functionLinenumber: 110
    functionLinenumberEnd: 122
    functionName: test::resize_handles_zero
    functionSourceFile: /src/image/src/math/utils.rs
    functionUses: 0
    functionsReached:
    - super::resize_dimensions
    linkageType: ''
    returnType: void
    signature: fn resize_handles_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Result::len
      Src: /src/image/src/utils/mod.rs:11,1
    - Dst: rev
      Src: /src/image/src/utils/mod.rs:19,1
    - Dst: flat_map
      Src: /src/image/src/utils/mod.rs:19,1
    - Dst: map
      Src: /src/image/src/utils/mod.rs:23,1
    - Dst: zip
      Src: /src/image/src/utils/mod.rs:23,1
    - Dst: std::iter::repeat
      Src: /src/image/src/utils/mod.rs:23,1
    - Dst: skip
      Src: /src/image/src/utils/mod.rs:19,1
    - Dst: io::Result::len
      Src: /src/image/src/utils/mod.rs:25,1
    - Dst: step_by
      Src: /src/image/src/utils/mod.rs:26,1
    - Dst: io::Result::zip
      Src: /src/image/src/utils/mod.rs:27,1
    - Dst: func
      Src: /src/image/src/utils/mod.rs:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 57
    argCount: 4
    argNames:
    - buf
    - channels
    - bit_depth
    - func
    argTypes:
    - '&mut [u8]'
    - usize
    - u8
    - F
    constantsTouched: []
    func_position:
      end: 32
      start: 7
    functionDepth: 14
    functionLinenumber: 7
    functionLinenumberEnd: 32
    functionName: expand_packed
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 1
    functionsReached:
    - io::Result::len
    - rev
    - io::Result::zip
    - map
    - flat_map
    - func
    - skip
    - std::iter::repeat
    - zip
    - step_by
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn expand_packed<F>(buf: &mut [u8], channels: usize, bit_depth:
      u8, mut func: F)whereF: FnMut(u8, &mut [u8]),'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/image/src/utils/mod.rs:42,1
    - Dst: u32::from
      Src: /src/image/src/utils/mod.rs:46,1
    - Dst: Vec::new
      Src: /src/image/src/utils/mod.rs:49,1
    - Dst: push
      Src: /src/image/src/utils/mod.rs:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 3
    argNames:
    - bit_depth
    - row_size
    - buf
    argTypes:
    - u8
    - u32
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 64
      start: 38
    functionDepth: 13
    functionLinenumber: 38
    functionLinenumberEnd: 64
    functionName: expand_bits
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 2
    functionsReached:
    - Vec::new
    - push
    - u32::from
    linkageType: ''
    returnType: Vec
    signature: 'pub(crate) fn expand_bits(bit_depth: u8, row_size: u32, buf: &[u8])
      -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/image/src/utils/mod.rs:70,1
    - Dst: u64::from
      Src: /src/image/src/utils/mod.rs:70,1
    - Dst: u64::from
      Src: /src/image/src/utils/mod.rs:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - width
    - height
    - bytes_per_pixel
    argTypes:
    - u32
    - u32
    - u8
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: check_dimension_overflow
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 4
    functionsReached:
    - u64::from
    linkageType: ''
    returnType: bool
    signature: 'pub(crate) fn check_dimension_overflow(width: u32, height: u32, bytes_per_pixel:
      u8) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/utils/mod.rs:79,1
    - Dst: to_owned
      Src: /src/image/src/utils/mod.rs:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vec
    argTypes:
    - '&[T]'
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: vec_copy_to_u8
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 0
    functionsReached:
    - to_owned
    - bytemuck::cast_slice
    linkageType: ''
    returnType: Vec
    signature: 'pub(crate) fn vec_copy_to_u8<T>(vec: &[T]) -> Vec<u8>whereT: bytemuck::Pod,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - a
    - min
    - max
    argTypes:
    - N
    - N
    - N
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: clamp
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: N
    signature: 'pub(crate) fn clamp<N>(a: N, min: N, max: N) -> NwhereN: PartialOrd,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/utils/mod.rs:98,1
    - Dst: io::Result::try_reserve_exact
      Src: /src/image/src/utils/mod.rs:99,1
    - Dst: Ok
      Src: /src/image/src/utils/mod.rs:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 13
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: vec_try_with_capacity
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 5
    functionsReached:
    - Vec::new
    - Ok
    - io::Result::try_reserve_exact
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn vec_try_with_capacity<T>(capacity: usize) -> Result<Vec<T>,
      TryReserveError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/image/src/utils/mod.rs:111,1
    - Dst: check
      Src: /src/image/src/utils/mod.rs:120,1
    - Dst: check
      Src: /src/image/src/utils/mod.rs:127,1
    - Dst: check
      Src: /src/image/src/utils/mod.rs:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 106
    functionDepth: 14
    functionLinenumber: 106
    functionLinenumberEnd: 135
    functionName: test::gray_to_luma8_skip
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 0
    functionsReached:
    - check
    linkageType: ''
    returnType: void
    signature: fn gray_to_luma8_skip()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: image::load_from_memory_with_format
      Src: /src/image/fuzz/fuzzers/fuzzer_script_ico.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7
      start: 5
    functionDepth: 16
    functionLinenumber: 5
    functionLinenumberEnd: 7
    functionName: fuzz_target
    functionSourceFile: /src/image/fuzz/fuzzers/fuzzer_script_ico.rs
    functionUses: 0
    functionsReached:
    - image::load_from_memory_with_format
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenExrDecoder::with_alpha_preference
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:19,1
    - Dst: Some
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:19,1
    - Dst: usize::try_from
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:20,1
    - Dst: ImageResult::total_bytes
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:20,1
    - Dst: ImageResult::set_limits
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:22,1
    - Dst: Limits::default
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:22,1
    - Dst: ImageResult::dimensions
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:23,1
    - Dst: ImageResult::read_image
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:25,1
    - Dst: '&RgbaImage::as_mut_slice'
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:25,1
    - Dst: Ok
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:26,1
    - Dst: Err
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:28,1
    - Dst: image::ImageError::Limits
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:28,1
    - Dst: image::error::LimitError::from_kind
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - read
    argTypes:
    - impl BufRead + Seek
    constantsTouched: []
    func_position:
      end: 34
      start: 18
    functionDepth: 15
    functionLinenumber: 18
    functionLinenumberEnd: 34
    functionName: r::o::u::n::d::t::r::i::p::read_as_rgba_byte_image
    functionSourceFile: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - Err
    - ImageResult::dimensions
    - usize::try_from
    - Some
    - ImageResult::total_bytes
    - ImageResult::set_limits
    - Limits::default
    - OpenExrDecoder::with_alpha_preference
    - image::ImageError::Limits
    - '&RgbaImage::as_mut_slice'
    - image::error::LimitError::from_kind
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_as_rgba_byte_image(read: impl BufRead + Seek) -> ImageResult<(u32,
      u32, Vec<u8>)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenExrEncoder::new
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:44,1
    - Dst: Self::write_image
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:44,1
    - Dst: ImageResult::as_slice
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - write
    argTypes:
    - impl Write + Seek
    - '&(u32, u32, Vec<u8>)'
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 50
    functionName: r::o::u::n::d::t::r::i::p::write_rgba_image
    functionSourceFile: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs
    functionUses: 0
    functionsReached:
    - Self::write_image
    - OpenExrEncoder::new
    - ImageResult::as_slice
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_rgba_image(write: impl Write + Seek,(width, height, data):
      &(u32, u32, Vec<u8>),) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_as_rgba_byte_image
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:52,1
    - Dst: Cursor::new
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:52,1
    - Dst: Vec::with_capacity
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:55,1
    - Dst: '&[u8]::len'
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:55,1
    - Dst: write_rgba_image
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:56,1
    - Dst: Cursor::new
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:56,1
    - Dst: read_as_rgba_byte_image
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:58,1
    - Dst: Cursor::new
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:58,1
    - Dst: Ok
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:65,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 55
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 66
      start: 15
    functionDepth: 16
    functionLinenumber: 15
    functionLinenumberEnd: 66
    functionName: roundtrip
    functionSourceFile: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs
    functionUses: 0
    functionsReached:
    - Vec::with_capacity
    - '&[u8]::len'
    - write_rgba_image
    - Cursor::new
    - read_as_rgba_byte_image
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn roundtrip(bytes: &[u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: image::codecs::tga::TgaDecoder::new
      Src: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs:11,1
    - Dst: std::io::Cursor::new
      Src: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs:11,1
    - Dst: ImageResult::total_bytes
      Src: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs:12,1
    - Dst: Ok
      Src: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs:13,1
    - Dst: ImageResult::read_image
      Src: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs:16,1
    - Dst: Ok
      Src: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs:17,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 18
      start: 9
    functionDepth: 12
    functionLinenumber: 9
    functionLinenumberEnd: 18
    functionName: decode
    functionSourceFile: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs
    functionUses: 9
    functionsReached:
    - ImageResult::read_image
    - image::codecs::tga::TgaDecoder::new
    - std::io::Cursor::new
    - ImageResult::total_bytes
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn decode(data: &[u8]) -> Result<(), image::ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Elapsed
      Src: /src/image/examples/scaledown/main.rs:11,1
    - Dst: ImageResult::elapsed
      Src: /src/image/examples/scaledown/main.rs:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - start
    argTypes:
    - '&Instant'
    constantsTouched: []
    func_position:
      end: 12
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 12
    functionName: Elapsed::from
    functionSourceFile: /src/image/examples/scaledown/main.rs
    functionUses: 0
    functionsReached:
    - Elapsed
    - ImageResult::elapsed
    linkageType: ''
    returnType: Self
    signature: 'fn from(start: &Instant) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_secs
      Src: /src/image/examples/scaledown/main.rs:17,1
    - Dst: subsec_nanos
      Src: /src/image/examples/scaledown/main.rs:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 24
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 24
    functionName: Elapsed::fmt
    functionSourceFile: /src/image/examples/scaledown/main.rs
    functionUses: 0
    functionsReached:
    - as_secs
    - subsec_nanos
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, out: &mut fmt::Formatter) -> Result<(), fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/examples/concat/main.rs:27,1
    - Dst: map
      Src: /src/image/examples/concat/main.rs:27,1
    - Dst: width
      Src: /src/image/examples/concat/main.rs:27,1
    - Dst: ImageResult::sum
      Src: /src/image/examples/concat/main.rs:27,1
    - Dst: iter
      Src: /src/image/examples/concat/main.rs:30,1
    - Dst: map
      Src: /src/image/examples/concat/main.rs:30,1
    - Dst: height
      Src: /src/image/examples/concat/main.rs:30,1
    - Dst: ImageResult::max
      Src: /src/image/examples/concat/main.rs:30,1
    - Dst: unwrap_or
      Src: /src/image/examples/concat/main.rs:30,1
    - Dst: image::ImageBuffer::new
      Src: /src/image/examples/concat/main.rs:33,1
    - Dst: ImageBuffer::copy_from
      Src: /src/image/examples/concat/main.rs:38,1
    - Dst: ImageResult::unwrap
      Src: /src/image/examples/concat/main.rs:38,1
    - Dst: Option::width
      Src: /src/image/examples/concat/main.rs:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - images
    argTypes:
    - '&[I]'
    constantsTouched: []
    func_position:
      end: 43
      start: 20
    functionDepth: 14
    functionLinenumber: 20
    functionLinenumberEnd: 43
    functionName: h_concat
    functionSourceFile: /src/image/examples/concat/main.rs
    functionUses: 0
    functionsReached:
    - image::ImageBuffer::new
    - map
    - iter
    - width
    - unwrap_or
    - ImageResult::unwrap
    - height
    - ImageResult::sum
    - ImageBuffer::copy_from
    - Option::width
    - ImageResult::max
    linkageType: ''
    returnType: ImageBuffer
    signature: 'fn h_concat<I, P, S>(images: &[I]) -> ImageBuffer<P, Vec<S>>whereI:
      GenericImageView<Pixel = P>,P: Pixel<Subpixel = S> + ''static,S: Primitive +
      ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bench_load
      Src: /src/image/benches/decode.rs:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 46
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 85
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 85
    functionName: load_all
    functionSourceFile: /src/image/benches/decode.rs
    functionUses: 0
    functionsReached:
    - bench_load
    linkageType: ''
    returnType: void
    signature: 'fn load_all(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::benchmark_group
      Src: /src/image/benches/decode.rs:92,1
    - Dst: std::iter
      Src: /src/image/benches/decode.rs:93,1
    - Dst: chain
      Src: /src/image/benches/decode.rs:93,1
    - Dst: clone
      Src: /src/image/benches/decode.rs:96,1
    - Dst: chain
      Src: /src/image/benches/decode.rs:96,1
    - Dst: iter::once
      Src: /src/image/benches/decode.rs:96,1
    - Dst: collect
      Src: /src/image/benches/decode.rs:96,1
    - Dst: fs::read
      Src: /src/image/benches/decode.rs:97,1
    - Dst: bool::unwrap
      Src: /src/image/benches/decode.rs:97,1
    - Dst: bench_function
      Src: /src/image/benches/decode.rs:98,1
    - Dst: to_owned
      Src: /src/image/benches/decode.rs:98,1
    - Dst: std::iter
      Src: /src/image/benches/decode.rs:99,1
    - Dst: image::load_from_memory_with_format
      Src: /src/image/benches/decode.rs:100,1
    - Dst: ImageResult::unwrap
      Src: /src/image/benches/decode.rs:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 2
    argNames:
    - c
    - def
    argTypes:
    - '&mut Criterion'
    - '&BenchDef'
    constantsTouched: []
    func_position:
      end: 104
      start: 90
    functionDepth: 16
    functionLinenumber: 90
    functionLinenumberEnd: 104
    functionName: bench_load
    functionSourceFile: /src/image/benches/decode.rs
    functionUses: 1
    functionsReached:
    - chain
    - fs::read
    - Option::benchmark_group
    - clone
    - ImageResult::unwrap
    - collect
    - std::iter
    - iter::once
    - bool::unwrap
    - image::load_from_memory_with_format
    - to_owned
    - bench_function
    linkageType: ''
    returnType: void
    signature: 'fn bench_load(c: &mut Criterion, def: &BenchDef)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/blur.rs:6,1
    - Dst: image::Rgb
      Src: /src/image/benches/blur.rs:6,1
    - Dst: DynamicImage::ImageRgb8
      Src: /src/image/benches/blur.rs:7,1
    - Dst: RgbImage::from_pixel
      Src: /src/image/benches/blur.rs:7,1
    - Dst: image::Rgb
      Src: /src/image/benches/blur.rs:7,1
    - Dst: Option::bench_function
      Src: /src/image/benches/blur.rs:9,1
    - Dst: iter
      Src: /src/image/benches/blur.rs:10,1
    - Dst: image::imageops::fast_blur
      Src: /src/image/benches/blur.rs:10,1
    - Dst: Option::bench_function
      Src: /src/image/benches/blur.rs:13,1
    - Dst: iter
      Src: /src/image/benches/blur.rs:14,1
    - Dst: image::imageops::fast_blur
      Src: /src/image/benches/blur.rs:14,1
    - Dst: Option::bench_function
      Src: /src/image/benches/blur.rs:17,1
    - Dst: iter
      Src: /src/image/benches/blur.rs:18,1
    - Dst: image::imageops::fast_blur
      Src: /src/image/benches/blur.rs:18,1
    - Dst: Option::bench_function
      Src: /src/image/benches/blur.rs:21,1
    - Dst: iter
      Src: /src/image/benches/blur.rs:22,1
    - Dst: image::imageops::blur_advanced
      Src: /src/image/benches/blur.rs:22,1
    - Dst: GaussianBlurParameters::new_from_sigma
      Src: /src/image/benches/blur.rs:22,1
    - Dst: Option::bench_function
      Src: /src/image/benches/blur.rs:25,1
    - Dst: iter
      Src: /src/image/benches/blur.rs:26,1
    - Dst: image::imageops::blur_advanced
      Src: /src/image/benches/blur.rs:26,1
    - Dst: GaussianBlurParameters::new_from_sigma
      Src: /src/image/benches/blur.rs:26,1
    - Dst: Option::bench_function
      Src: /src/image/benches/blur.rs:29,1
    - Dst: iter
      Src: /src/image/benches/blur.rs:30,1
    - Dst: image::imageops::blur_advanced
      Src: /src/image/benches/blur.rs:30,1
    - Dst: GaussianBlurParameters::new_from_sigma
      Src: /src/image/benches/blur.rs:30,1
    - Dst: Option::bench_function
      Src: /src/image/benches/blur.rs:33,1
    - Dst: iter
      Src: /src/image/benches/blur.rs:34,1
    - Dst: image::imageops::blur_advanced
      Src: /src/image/benches/blur.rs:34,1
    - Dst: GaussianBlurParameters::new_from_sigma
      Src: /src/image/benches/blur.rs:34,1
    - Dst: Option::bench_function
      Src: /src/image/benches/blur.rs:37,1
    - Dst: iter
      Src: /src/image/benches/blur.rs:38,1
    - Dst: image::imageops::blur_advanced
      Src: /src/image/benches/blur.rs:38,1
    - Dst: GaussianBlurParameters::new_from_sigma
      Src: /src/image/benches/blur.rs:38,1
    - Dst: Option::bench_function
      Src: /src/image/benches/blur.rs:41,1
    - Dst: iter
      Src: /src/image/benches/blur.rs:42,1
    - Dst: image::imageops::blur_advanced
      Src: /src/image/benches/blur.rs:42,1
    - Dst: GaussianBlurParameters::new_from_sigma
      Src: /src/image/benches/blur.rs:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 103
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 44
      start: 5
    functionDepth: 4
    functionLinenumber: 5
    functionLinenumberEnd: 44
    functionName: bench_fast_blur
    functionSourceFile: /src/image/benches/blur.rs
    functionUses: 0
    functionsReached:
    - image::imageops::fast_blur
    - GaussianBlurParameters::new_from_sigma
    - Option::bench_function
    - iter
    - image::Rgb
    - DynamicImage::ImageRgb8
    - image::imageops::blur_advanced
    - ImageBuffer::from_pixel
    - RgbImage::from_pixel
    linkageType: ''
    returnType: void
    signature: 'pub fn bench_fast_blur(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/copy_from.rs:5,1
    - Dst: image::Rgba
      Src: /src/image/benches/copy_from.rs:5,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/copy_from.rs:6,1
    - Dst: image::Rgba
      Src: /src/image/benches/copy_from.rs:6,1
    - Dst: Option::bench_function
      Src: /src/image/benches/copy_from.rs:8,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:9,1
    - Dst: ImageBuffer::copy_from
      Src: /src/image/benches/copy_from.rs:9,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 11
      start: 4
    functionDepth: 4
    functionLinenumber: 4
    functionLinenumberEnd: 11
    functionName: bench_copy_from
    functionSourceFile: /src/image/benches/copy_from.rs
    functionUses: 0
    functionsReached:
    - image::Rgba
    - Option::bench_function
    - iter
    - criterion::black_box
    - ImageBuffer::copy_from
    - ImageBuffer::from_pixel
    linkageType: ''
    returnType: void
    signature: 'pub fn bench_copy_from(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode_definition
      Src: /src/image/benches/encode.rs:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 43
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 43
    functionName: encode_all
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 0
    functionsReached:
    - encode_definition
    linkageType: ''
    returnType: void
    signature: 'fn encode_all(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut BenchGroup::bench_with_input'
      Src: /src/image/benches/encode.rs:57,1
    - Dst: BenchmarkId::new
      Src: /src/image/benches/encode.rs:58,1
    - Dst: '&dyn Encoder::encode_raw'
      Src: /src/image/benches/encode.rs:62,1
    - Dst: iter
      Src: /src/image/benches/encode.rs:63,1
    - Dst: '&dyn Encoder::encode_raw'
      Src: /src/image/benches/encode.rs:63,1
    - Dst: '&mut BenchGroup::bench_with_input'
      Src: /src/image/benches/encode.rs:66,1
    - Dst: BenchmarkId::new
      Src: /src/image/benches/encode.rs:67,1
    - Dst: '&dyn Encoder::encode_raw'
      Src: /src/image/benches/encode.rs:71,1
    - Dst: iter
      Src: /src/image/benches/encode.rs:72,1
    - Dst: '&dyn Encoder::encode_bufvec'
      Src: /src/image/benches/encode.rs:72,1
    - Dst: '&mut BenchGroup::bench_with_input'
      Src: /src/image/benches/encode.rs:75,1
    - Dst: BenchmarkId::new
      Src: /src/image/benches/encode.rs:76,1
    - Dst: File::create
      Src: /src/image/benches/encode.rs:79,1
    - Dst: unwrap
      Src: /src/image/benches/encode.rs:79,1
    - Dst: iter
      Src: /src/image/benches/encode.rs:80,1
    - Dst: '&dyn Encoder::encode_file'
      Src: /src/image/benches/encode.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 4
    argNames:
    - group
    - with
    - size
    - color
    argTypes:
    - '&mut BenchGroup'
    - '&dyn Encoder'
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 83
      start: 54
    functionDepth: 13
    functionLinenumber: 54
    functionLinenumberEnd: 83
    functionName: encode_zeroed
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 0
    functionsReached:
    - BenchmarkId::new
    - File::create
    - iter
    - '&dyn Encoder::encode_raw'
    - '&mut BenchGroup::bench_with_input'
    - unwrap
    - '&dyn Encoder::encode_bufvec'
    - '&dyn Encoder::encode_file'
    linkageType: ''
    returnType: void
    signature: 'fn encode_zeroed(group: &mut BenchGroup, with: &dyn Encoder, size:
      u32, color: ExtendedColorType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Criterion::benchmark_group'
      Src: /src/image/benches/encode.rs:86,1
    - Dst: encode_zeroed
      Src: /src/image/benches/encode.rs:90,1
    - Dst: bool::into
      Src: /src/image/benches/encode.rs:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - criterion
    - def
    argTypes:
    - '&mut Criterion'
    - '&BenchDef'
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 14
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: encode_definition
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 1
    functionsReached:
    - bool::into
    - encode_zeroed
    - '&mut Criterion::benchmark_group'
    linkageType: ''
    returnType: void
    signature: 'fn encode_definition(criterion: &mut Criterion, def: &BenchDef)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Img::clear
      Src: /src/image/benches/encode.rs:105,1
    - Dst: T::encode
      Src: /src/image/benches/encode.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - into
    - im
    - dims
    - color
    argTypes:
    - '&mut Vec<u8>'
    - '&[u8]'
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 14
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: T::encode_raw
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 0
    functionsReached:
    - T::encode
    - Img::clear
    linkageType: ''
    returnType: void
    signature: 'fn encode_raw(&self, into: &mut Vec<u8>, im: &[u8], dims: u32, color:
      ExtendedColorType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Img::clear
      Src: /src/image/benches/encode.rs:110,1
    - Dst: BufWriter::new
      Src: /src/image/benches/encode.rs:111,1
    - Dst: T::encode
      Src: /src/image/benches/encode.rs:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - into
    - im
    - dims
    - color
    argTypes:
    - '&mut Vec<u8>'
    - '&[u8]'
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 13
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: T::encode_bufvec
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 0
    functionsReached:
    - T::encode
    - Img::clear
    - BufWriter::new
    linkageType: ''
    returnType: void
    signature: 'fn encode_bufvec(&self, into: &mut Vec<u8>, im: &[u8], dims: u32,
      color: ExtendedColorType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::std::io::Result::seek
      Src: /src/image/benches/encode.rs:116,1
    - Dst: SeekFrom::Start
      Src: /src/image/benches/encode.rs:116,1
    - Dst: io::Result::unwrap
      Src: /src/image/benches/encode.rs:116,1
    - Dst: BufWriter::new
      Src: /src/image/benches/encode.rs:117,1
    - Dst: T::encode
      Src: /src/image/benches/encode.rs:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - file
    - im
    - dims
    - color
    argTypes:
    - '&File'
    - '&[u8]'
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 119
      start: 115
    functionDepth: 13
    functionLinenumber: 115
    functionLinenumberEnd: 119
    functionName: T::encode_file
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 0
    functionsReached:
    - ::std::io::Result::seek
    - BufWriter::new
    - SeekFrom::Start
    - T::encode
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn encode_file(&self, mut file: &File, im: &[u8], dims: u32, color:
      ExtendedColorType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpEncoder::new
      Src: /src/image/benches/encode.rs:124,1
    - Dst: encode
      Src: /src/image/benches/encode.rs:125,1
    - Dst: ImageResult::unwrap
      Src: /src/image/benches/encode.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - into
    - im
    - size
    - color
    argTypes:
    - impl Write
    - '&[u8]'
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 14
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: Bmp::encode
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - encode
    - BmpEncoder::new
    linkageType: ''
    returnType: void
    signature: 'fn encode(&self, mut into: impl Write, im: &[u8], size: u32, color:
      ExtendedColorType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JpegEncoder::new
      Src: /src/image/benches/encode.rs:131,1
    - Dst: encode
      Src: /src/image/benches/encode.rs:132,1
    - Dst: ImageResult::unwrap
      Src: /src/image/benches/encode.rs:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - into
    - im
    - size
    - color
    argTypes:
    - impl Write
    - '&[u8]'
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 15
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: Jpeg::encode
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 0
    functionsReached:
    - JpegEncoder::new
    - encode
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn encode(&self, mut into: impl Write, im: &[u8], size: u32, color:
      ExtendedColorType)'
Fuzzer filename: /src/image/fuzz/fuzzers/fuzzer_script_ico.rs
Fuzzing method: fuzz_target
report: name
sources:
- function_names:
  - process_images
  - render_images
  - ReferenceTestCase::from_str
  - parse_crc
  - check_references
  - c::h::e::c::k::_::h::d::r::_::r::e::f::e::r::e::n::c::e::s::read_raw_file
  - check_hdr_references
  source_file: /src/image/tests/reference_images.rs
- function_names:
  - process_images
  - truncate_images
  - truncate_tga
  - truncate_tiff
  - truncate_png
  - truncate_gif
  - truncate_bmp
  - truncate_ico
  - truncate_jpg
  - truncate_hdr
  - truncate_farbfeld
  - truncate_exr
  - truncate_pcx
  source_file: /src/image/tests/truncate_images.rs
- function_names:
  - process_images
  - check_regressions
  - check_webp_frames_regressions
  - bad_bmps
  - bad_gif_oom
  source_file: /src/image/tests/regression.rs
- function_names:
  - test_image
  - width_height_limits
  - allocation_limits
  - permissive_limits
  - load_through_reader
  - gif
  - png
  - jpeg
  - webp
  - tiff
  - avif
  - bmp
  source_file: /src/image/tests/limits.rs
- function_names:
  - test_rgbu8_to_rgbu16
  - test_rgbau8_to_rgbau16
  source_file: /src/image/tests/conversions.rs
- function_names:
  - gif_decode
  - assert_limit_error
  - animated_full_frame_discard
  - animated_frame_combine
  source_file: /src/image/tests/limits_anim.rs
- function_names:
  - save_16bit_to_pbm
  - save_16bit_to_ppm
  source_file: /src/image/tests/save_pnm.rs
- function_names:
  - jqeg_qualitys
  source_file: /src/image/tests/save_jpeg.rs
- function_names:
  - webp_decode
  - main
  source_file: /src/image/fuzz-afl/fuzzers/fuzz_webp.rs
- function_names:
  - pnm_decode
  - main
  source_file: /src/image/fuzz-afl/fuzzers/fuzz_pnm.rs
- function_names:
  - read_file_from_args
  source_file: /src/image/fuzz-afl/reproducers/utils.rs
- function_names:
  - webp_decode
  - main
  source_file: /src/image/fuzz-afl/reproducers/reproduce_webp.rs
- function_names:
  - pnm_decode
  - main
  source_file: /src/image/fuzz-afl/reproducers/reproduce_pnm.rs
- function_names:
  - Orientation::from_exif
  - Orientation::to_exif
  - Orientation::from_exif_chunk
  - Orientation::remove_from_exif_chunk
  - Orientation::from_exif_chunk_inner
  - Orientation::locate_orientation_entry
  - tests::test_extraction_and_clearing
  source_file: /src/image/src/metadata.rs
- function_names:
  - '[u8]::as_bytes'
  - '[u16]::as_bytes'
  - '[f32]::as_bytes'
  - declare_primitive
  - Enlargeable::clamp_from
  - Enlargeable::to_larger
  - Lerp::lerp
  - f32::lerp
  - Pixel::map_without_alpha
  - Pixel::apply_without_alpha
  source_file: /src/image/src/traits.rs
- function_names:
  - ColorType::bytes_per_pixel
  - ColorType::has_alpha
  - ColorType::has_color
  - ColorType::bits_per_pixel
  - ColorType::channel_count
  - ExtendedColorType::channel_count
  - ExtendedColorType::bits_per_pixel
  - ExtendedColorType::buffer_size
  - ExtendedColorType::from
  - define_colors
  - T::from_primitive
  - normalize_float
  - u8::from_primitive
  - u16::from_primitive
  - u::8::::::::f::r::o::m::_::p::r::i::m::i::t::i::v::e::from
  - u8::from_primitive
  - f32::from_primitive
  - f32::from_primitive
  - u16::from_primitive
  - S::into_color
  - rgb_to_luma
  - Luma::from_color
  - Luma::from_color
  - Luma::from_color
  - Luma::from_color
  - LumaA::from_color
  - LumaA::from_color
  - LumaA::from_color
  - LumaA::from_color
  - Rgba::from_color
  - Rgba::from_color
  - Rgba::from_color
  - Rgba::from_color
  - Rgb::from_color
  - Rgb::from_color
  - Rgb::from_color
  - Rgb::from_color
  - LumaA::blend
  - Luma::blend
  - Rgba::blend
  - Rgb::blend
  - LumaA::invert
  - Luma::invert
  - Rgba::invert
  - Rgb::invert
  - tests::test_apply_with_alpha_rgba
  - tests::test_apply_with_alpha_rgb
  - tests::test_map_with_alpha_rgba
  - tests::test_map_with_alpha_rgb
  - tests::test_blend_luma_alpha
  - tests::test_blend_rgba
  - tests::test_apply_without_alpha_rgba
  - tests::test_apply_without_alpha_rgb
  - tests::test_map_without_alpha_rgba
  - tests::test_map_without_alpha_rgb
  - tests::test_lossless_conversions
  - tests::accuracy_conversion
  source_file: /src/image/src/color.rs
- function_names:
  - R::read_exact_vec
  source_file: /src/image/src/io.rs
- function_names:
  - UnsupportedError::from_format_and_kind
  - UnsupportedError::kind
  - UnsupportedError::format_hint
  - DecodingError::new
  - DecodingError::from_format_hint
  - DecodingError::format_hint
  - EncodingError::new
  - EncodingError::from_format_hint
  - EncodingError::format_hint
  - ParameterError::from_kind
  - ParameterError::kind
  - LimitError::from_kind
  - LimitError::kind
  - LimitError::from
  - ImageError::from
  - ImageError::from
  - ImageFormatHint::from
  - ImageFormatHint::from
  - UnsupportedError::from
  - ImageError::fmt
  - ImageError::source
  - UnsupportedError::fmt
  - ParameterError::fmt
  - ParameterError::source
  - EncodingError::fmt
  - EncodingError::source
  - DecodingError::fmt
  - DecodingError::source
  - LimitError::fmt
  - ImageFormatHint::fmt
  - t::e::s::t::s::::::::t::e::s::t::_::s::e::n::d::_::s::y::n::c::_::s::t::a::b::i::l::i::t::y::assert_send_sync
  - tests::test_send_sync_stability
  source_file: /src/image/src/error.rs
- function_names: []
  source_file: /src/image/src/images.rs
- function_names:
  - insert_as_doc
  source_file: /src/image/src/lib.rs
- function_names:
  - Frames::new
  - Frames::collect_frames
  - Frames::next
  - Frame::clone
  - Frame::clone_from
  - Frame::new
  - Frame::from_parts
  - Frame::delay
  - Frame::buffer
  - Frame::buffer_mut
  - Frame::into_buffer
  - Frame::left
  - Frame::top
  - Delay::from_numer_denom_ms
  - Delay::from_saturating_duration
  - Delay::numer_denom_ms
  - Delay::from_ratio
  - Delay::into_ratio
  - D::e::l::a::y::::::::c::l::o::s::e::s::t::_::b::o::u::n::d::e::d::_::f::r::a::c::t::i::o::n::compare_fraction
  - D::e::l::a::y::::::::c::l::o::s::e::s::t::_::b::o::u::n::d::e::d::_::f::r::a::c::t::i::o::n::abs_diff_nom
  - Delay::closest_bounded_fraction
  - Duration::from
  - Ratio::new
  - Ratio::to_integer
  - Ratio::eq
  - Ratio::partial_cmp
  - Ratio::cmp
  - tests::simple
  - tests::fps_30
  - tests::duration_outlier
  - tests::duration_approx
  - tests::precise
  - tests::small
  source_file: /src/image/src/animation.rs
- function_names:
  - ImageReader::new
  - ImageReader::with_format
  - ImageReader::format
  - ImageReader::set_format
  - ImageReader::clear_format
  - ImageReader::no_limits
  - ImageReader::limits
  - ImageReader::into_inner
  - ImageReader::make_decoder
  - ImageReader::into_decoder
  - ImageReader::with_guessed_format
  - ImageReader::guess_format
  - ImageReader::into_dimensions
  - ImageReader::decode
  - ImageReader::require_format
  - ImageReader::open
  - ImageReader::open_impl
  source_file: /src/image/src/io/image_reader_type.rs
- function_names:
  - ImageEncoder::set_icc_profile
  - ImageEncoder::make_compatible_img
  - T::write_image
  - dynimage_conversion_8bit
  source_file: /src/image/src/io/encoder.rs
- function_names:
  - Limits::default
  - Limits::no_limits
  - Limits::check_support
  - Limits::check_dimensions
  - Limits::reserve
  - Limits::reserve_usize
  - Limits::reserve_buffer
  - Limits::free
  - Limits::free_usize
  source_file: /src/image/src/io/limits.rs
- function_names:
  - ImageDecoder::original_color_type
  - ImageDecoder::icc_profile
  - ImageDecoder::exif_metadata
  - ImageDecoder::orientation
  - ImageDecoder::total_bytes
  - ImageDecoder::set_limits
  - Box::dimensions
  - Box::color_type
  - Box::original_color_type
  - Box::icc_profile
  - Box::exif_metadata
  - Box::total_bytes
  - Box::read_image
  - Box::read_image_boxed
  - Box::set_limits
  - tests::total_bytes_overflow
  source_file: /src/image/src/io/decoder.rs
- function_names:
  - load
  - save_buffer
  - save_buffer_with_format
  - encoder_for_format
  - guess_format
  - guess_format_impl
  - load_rect
  - decoder_to_vec
  - t::e::s::t::s::::::::t::e::s::t::_::l::o::a::d::_::r::e::c::t::seek_scanline
  - t::e::s::t::s::::::::t::e::s::t::_::l::o::a::d::_::r::e::c::t::read_scanline
  - tests::test_load_rect
  - t::e::s::t::s::::::::t::e::s::t::_::l::o::a::d::_::r::e::c::t::_::s::i::n::g::l::e::_::s::c::a::n::l::i::n::e::read_scanline
  - tests::test_load_rect_single_scanline
  source_file: /src/image/src/io/free_functions.rs
- function_names:
  - I::m::a::g::e::F::o::r::m::a::t::::::::f::r::o::m::_::e::x::t::e::n::s::i::o::n::inner
  - ImageFormat::from_extension
  - I::m::a::g::e::F::o::r::m::a::t::::::::f::r::o::m::_::p::a::t::h::inner
  - ImageFormat::from_path
  - ImageFormat::from_mime_type
  - ImageFormat::to_mime_type
  - ImageFormat::can_read
  - ImageFormat::can_write
  - ImageFormat::extensions_str
  - ImageFormat::reading_enabled
  - ImageFormat::writing_enabled
  - ImageFormat::all
  - t::e::s::t::s::::::::t::e::s::t::_::i::m::a::g::e::_::f::o::r::m::a::t::_::f::r::o::m::_::p::a::t::h::from_path
  - tests::test_image_format_from_path
  - tests::image_formats_are_recognized
  - tests::all
  - tests::reading_enabled
  - tests::writing_enabled
  source_file: /src/image/src/io/format.rs
- function_names:
  - PCXDecoder::new
  - ImageError::from_pcx_decode
  - PCXReader::read
  - PCXReader::read_to_end
  - PCXDecoder::dimensions
  - PCXDecoder::color_type
  - PCXDecoder::original_color_type
  - PCXDecoder::read_image
  - PCXDecoder::read_image_boxed
  source_file: /src/image/src/codecs/pcx.rs
- function_names:
  - F::a::r::b::f::e::l::d::R::e::a::d::e::r::::::::n::e::w::read_dimm
  - FarbfeldReader::new
  - FarbfeldReader::read
  - F::a::r::b::f::e::l::d::R::e::a::d::e::r::::::::s::e::e::k::parse_offset
  - FarbfeldReader::seek
  - consume_channel
  - cache_byte
  - FarbfeldDecoder::new
  - FarbfeldDecoder::dimensions
  - FarbfeldDecoder::color_type
  - FarbfeldDecoder::read_image
  - FarbfeldDecoder::read_image_boxed
  - FarbfeldDecoder::read_rect
  - FarbfeldEncoder::new
  - FarbfeldEncoder::encode
  - FarbfeldEncoder::encode_impl
  - FarbfeldEncoder::write_image
  - tests::read_rect_1x2
  - tests::read_rect_2x2
  - tests::read_rect_2x1
  - tests::read_rect_2x3
  - tests::read_rect_in_stream
  - tests::dimension_overflow
  - tests::read_rect
  - tests::degenerate_pixels
  source_file: /src/image/src/codecs/farbfeld.rs
- function_names:
  - DxtVariant::decoded_bytes_per_block
  - DxtVariant::encoded_bytes_per_block
  - DxtVariant::color_type
  - DxtDecoder::new
  - DxtDecoder::scanline_bytes
  - DxtDecoder::read_scanline
  - DxtDecoder::dimensions
  - DxtDecoder::color_type
  - DxtDecoder::read_image
  - DxtDecoder::read_image_boxed
  - enc565_decode
  - alpha_table_dxt5
  - decode_dxt_colors
  - decode_dxt5_block
  - decode_dxt3_block
  - decode_dxt1_block
  - decode_dxt1_row
  - decode_dxt3_row
  - decode_dxt5_row
  source_file: /src/image/src/codecs/dxt.rs
- function_names:
  - GifDecoder::new
  - GifReader::read
  - GifReader::read_to_end
  - GifDecoder::dimensions
  - GifDecoder::color_type
  - GifDecoder::set_limits
  - GifDecoder::read_image
  - GifDecoder::read_image_boxed
  - GifFrameIterator::new
  - G::i::f::F::r::a::m::e::I::t::e::r::a::t::o::r::::::::n::e::x::t::blend_and_dispose_pixel
  - GifFrameIterator::next
  - GifDecoder::into_frames
  - FrameInfo::new_from_frame
  - Repeat::to_gif_enum
  - GifEncoder::new
  - GifEncoder::new_with_speed
  - GifEncoder::set_repeat
  - GifEncoder::encode
  - GifEncoder::encode_frame
  - GifEncoder::encode_frames
  - GifEncoder::try_encode_frames
  - GifEncoder::convert_frame
  - G::i::f::E::n::c::o::d::e::r::::::::g::i::f::_::d::i::m::e::n::s::i::o::n::s::inner_dimensions
  - GifEncoder::gif_dimensions
  - GifEncoder::encode_gif
  - GifEncoder::write_image
  - ImageError::from_decoding
  - ImageError::from_encoding
  - test::frames_exceeding_logical_screen_size
  source_file: /src/image/src/codecs/gif.rs
- function_names:
  - TiffDecoder::new
  - TiffDecoder::total_bytes_buffer
  - check_sample_format
  - err_unknown_color_type
  - ImageError::from_tiff_decode
  - ImageError::from_tiff_encode
  - TiffReader::read
  - TiffReader::read_to_end
  - TiffDecoder::dimensions
  - TiffDecoder::color_type
  - TiffDecoder::original_color_type
  - TiffDecoder::icc_profile
  - TiffDecoder::orientation
  - TiffDecoder::set_limits
  - TiffDecoder::read_image
  - TiffDecoder::read_image_boxed
  - cmyk_to_rgb
  - u8_slice_as_pod
  - TiffEncoder::new
  - TiffEncoder::encode
  - TiffEncoder::write_image
  source_file: /src/image/src/codecs/tiff.rs
- function_names:
  - DecoderError::fmt
  - ImageError::from
  - PixelFormat::from_reader
  - Header::from_reader
  - DX10Header::from_reader
  - DX10Header::validate
  - DdsDecoder::new
  - DdsDecoder::dimensions
  - DdsDecoder::color_type
  - DdsDecoder::read_image
  - DdsDecoder::read_image_boxed
  - test::dimension_overflow
  source_file: /src/image/src/codecs/dds.rs
- function_names:
  - PngDecoder::new
  - PngDecoder::with_limits
  - PngDecoder::gamma_value
  - PngDecoder::apng
  - PngDecoder::is_apng
  - unsupported_color
  - PngDecoder::dimensions
  - PngDecoder::color_type
  - PngDecoder::icc_profile
  - PngDecoder::read_image
  - PngDecoder::read_image_boxed
  - PngDecoder::set_limits
  - ApngDecoder::new
  - ApngDecoder::mix_next_frame
  - ApngDecoder::animatable_color_type
  - ApngDecoder::into_frames
  - PngEncoder::new
  - PngEncoder::new_with_quality
  - PngEncoder::encode_inner
  - PngEncoder::write_image
  - PngEncoder::set_icc_profile
  - ImageError::from_png
  - BadPngRepresentation::fmt
  - tests::ensure_no_decoder_off_by_one
  - tests::underlying_error
  - tests::encode_bad_color_type
  source_file: /src/image/src/codecs/png.rs
- function_names:
  - OpenExrDecoder::new
  - OpenExrDecoder::with_alpha_preference
  - OpenExrDecoder::selected_exr_header
  - OpenExrDecoder::dimensions
  - OpenExrDecoder::color_type
  - OpenExrDecoder::original_color_type
  - OpenExrDecoder::read_image
  - OpenExrDecoder::read_image_boxed
  - write_buffer
  - OpenExrEncoder::new
  - OpenExrEncoder::write_image
  - to_image_err
  - test::write_rgb_image
  - test::write_rgba_image
  - test::read_as_rgba_image_from_file
  - test::read_as_rgb_image_from_file
  - test::read_as_rgb_image
  - test::read_as_rgba_image
  - test::compare_exr_hdr
  - test::roundtrip_rgba
  - test::roundtrip_rgb
  - test::compare_rgba_rgb
  - test::compare_cropped
  source_file: /src/image/src/codecs/openexr.rs
- function_names:
  - QoiDecoder::new
  - QoiDecoder::dimensions
  - QoiDecoder::color_type
  - QoiDecoder::read_image
  - QoiDecoder::read_image_boxed
  - decoding_error
  - encoding_error
  - QoiEncoder::new
  - QoiEncoder::write_image
  - tests::decode_test_image
  source_file: /src/image/src/codecs/qoi.rs
- function_names:
  - HdrEncoder::write_image
  - HdrEncoder::new
  - HdrEncoder::encode
  - HdrEncoder::encode_pixels
  - RunIterator::new
  - RunIterator::next
  - NorunCombineIterator::new
  - NorunCombineIterator::next
  - rle_compress
  - write_rgbe8
  - to_rgbe8
  - t::o::_::r::g::b::e::8::_::t::e::s::t::relative_dist
  - to_rgbe8_test
  - runiterator_test
  - n::o::r::u::n::c::o::m::b::i::n::e::_::t::e::s::t::a
  - noruncombine_test
  source_file: /src/image/src/codecs/hdr/encoder.rs
- function_names:
  - DecoderError::fmt
  - ImageError::from
  - DecoderError::source
  - LineType::fmt
  - rgbe8
  - Rgbe8Pixel::to_hdr
  - HdrDecoder::new
  - HdrDecoder::new_nonstrict
  - HdrDecoder::with_strictness
  - HdrDecoder::metadata
  - HdrDecoder::read_image_transform
  - HdrDecoder::dimensions
  - HdrDecoder::color_type
  - HdrDecoder::read_image
  - HdrDecoder::read_image_boxed
  - read_scanline
  - read_byte
  - decode_component
  - d::e::c::o::d::e::_::o::l::d::_::r::l::e::rl_marker
  - decode_old_rle
  - read_rgbe
  - HdrMetadata::new
  - HdrMetadata::update_header_info
  - parse_space_separated_f32
  - parse_dimensions_line
  - limit_string_len
  - split_at_first
  - read_line_u8
  - tests::split_at_first_test
  - tests::read_line_u8_test
  - tests::dimension_overflow
  source_file: /src/image/src/codecs/hdr/decoder.rs
- function_names: []
  source_file: /src/image/src/codecs/hdr/mod.rs
- function_names:
  - BmpEncoder::new
  - BmpEncoder::encode
  - BmpEncoder::encode_with_palette
  - BmpEncoder::encode_rgb
  - BmpEncoder::encode_rgba
  - BmpEncoder::encode_gray
  - BmpEncoder::write_row_pad
  - BmpEncoder::write_image
  - BmpEncoder::make_compatible_img
  - get_unsupported_error_message
  - get_pixel_info
  - tests::round_trip_image
  - tests::round_trip_single_pixel_rgb
  - tests::huge_files_return_error
  - tests::round_trip_single_pixel_rgba
  - tests::round_trip_3px_rgb
  - tests::round_trip_gray
  - tests::round_trip_graya
  source_file: /src/image/src/codecs/bmp/encoder.rs
- function_names:
  - RowIterator::next
  - DecoderError::fmt
  - ImageError::from
  - ChannelWidthError::fmt
  - check_for_overflow
  - num_bytes
  - with_rows
  - set_8bit_pixel_run
  - set_4bit_pixel_run
  - set_2bit_pixel_run
  - set_1bit_pixel_run
  - Bitfield::from_mask
  - Bitfield::read
  - Bitfields::from_mask
  - BmpDecoder::new_decoder
  - BmpDecoder::new
  - BmpDecoder::new_without_file_header
  - BmpDecoder::new_with_ico_format
  - BmpDecoder::set_indexed_color
  - BmpDecoder::reader
  - BmpDecoder::read_file_header
  - BmpDecoder::read_bitmap_core_header
  - BmpDecoder::read_bitmap_info_header
  - BmpDecoder::read_bitmasks
  - BmpDecoder::read_metadata
  - BmpDecoder::read_metadata_in_ico_format
  - BmpDecoder::get_palette_size
  - BmpDecoder::bytes_per_color
  - BmpDecoder::read_palette
  - BmpDecoder::get_palette
  - BmpDecoder::num_channels
  - BmpDecoder::rows
  - BmpDecoder::read_palettized_pixel_data
  - BmpDecoder::read_16_bit_pixel_data
  - BmpDecoder::read_32_bit_pixel_data
  - BmpDecoder::read_full_byte_pixel_data
  - BmpDecoder::read_rle_data
  - BmpDecoder::read_image_data
  - BmpDecoder::dimensions
  - BmpDecoder::color_type
  - BmpDecoder::read_image
  - BmpDecoder::read_image_boxed
  - BmpDecoder::read_rect
  - test::test_bitfield_len
  - test::read_rect
  - test::read_rle_too_short
  - test::test_no_header
  source_file: /src/image/src/codecs/bmp/decoder.rs
- function_names: []
  source_file: /src/image/src/codecs/bmp/mod.rs
- function_names:
  - ImageType::new
  - ImageType::is_color
  - ImageType::is_color_mapped
  - ImageType::is_encoded
  - Header::from_pixel_info
  - Header::from_reader
  - Header::write_to
  source_file: /src/image/src/codecs/tga/header.rs
- function_names:
  - EncoderError::fmt
  - ImageError::from
  - TgaEncoder::new
  - TgaEncoder::disable_rle
  - TgaEncoder::write_raw_packet
  - TgaEncoder::write_rle_encoded_packet
  - TgaEncoder::run_length_encode
  - TgaEncoder::encode
  - TgaEncoder::write_image
  - TgaEncoder::make_compatible_img
  - tests::test_image_width_too_large
  - tests::test_image_height_too_large
  - tests::test_compression_diff
  - tests::round_trip_image
  - tests::mixed_packets
  - tests::round_trip_gray
  - tests::round_trip_graya
  - tests::round_trip_single_pixel_rgb
  - tests::round_trip_three_pixel_rgb
  - tests::round_trip_3px_rgb
  - tests::round_trip_different
  - tests::round_trip_different_2
  - tests::round_trip_different_3
  - tests::round_trip_bw
  - tests::round_trip_image
  - tests::round_trip_single_pixel_rgb
  - tests::round_trip_single_pixel_rgba
  - tests::round_trip_gray
  - tests::round_trip_graya
  - tests::round_trip_3px_rgb
  source_file: /src/image/src/codecs/tga/encoder.rs
- function_names:
  - ColorMap::get
  - TgaOrientation::from_image_desc_byte
  - TgaDecoder::new
  - TgaDecoder::read_encoded_data
  - TgaDecoder::expand_color_map
  - TgaDecoder::reverse_encoding_in_output
  - TgaDecoder::fixup_orientation
  - TgaDecoder::dimensions
  - TgaDecoder::color_type
  - TgaDecoder::original_color_type
  - TgaDecoder::read_image
  - TgaDecoder::read_image_boxed
  source_file: /src/image/src/codecs/tga/decoder.rs
- function_names: []
  source_file: /src/image/src/codecs/tga/mod.rs
- function_names:
  - ArbitraryTuplType::name
  - PnmSubtype::magic_constant
  - PnmSubtype::sample_encoding
  - PnmHeader::subtype
  - PnmHeader::width
  - PnmHeader::height
  - PnmHeader::maximal_sample
  - PnmHeader::as_bitmap
  - PnmHeader::as_graymap
  - PnmHeader::as_pixmap
  - PnmHeader::as_arbitrary
  - PnmHeader::write
  - PnmHeader::from
  - PnmHeader::from
  - PnmHeader::from
  - PnmHeader::from
  source_file: /src/image/src/codecs/pnm/header.rs
- function_names:
  - PnmEncoder::new
  - PnmEncoder::with_subtype
  - PnmEncoder::with_header
  - PnmEncoder::with_dynamic_header
  - PnmEncoder::encode
  - PnmEncoder::encode_impl
  - PnmEncoder::write_dynamic_header
  - PnmEncoder::write_subtyped_header
  - PnmEncoder::write_with_header
  - PnmEncoder::write_image
  - CheckedImageBuffer::check
  - UncheckedHeader::check_header_dimensions
  - CheckedDimensions::check_header_color
  - CheckedHeaderColor::check_sample_values
  - CheckedHeader::write_header
  - CheckedHeader::header
  - SampleWriter::write_samples_ascii
  - SampleWriter::write_pbm_bits
  - FlatSamples::len
  - FlatSamples::all_smaller
  - FlatSamples::encoding_for
  - FlatSamples::from
  - FlatSamples::from
  - TupleEncoding::write_image
  source_file: /src/image/src/codecs/pnm/encoder.rs
- function_names:
  - DecoderError::fmt
  - ImageError::from
  - DecoderError::source
  - PnmHeaderLine::fmt
  - ErrorDataSource::fmt
  - Sample::sample_size
  - Sample::bytelen
  - PnmDecoder::new
  - PnmDecoder::into_inner
  - PnmDecoder::read_bitmap_header
  - PnmDecoder::read_graymap_header
  - PnmDecoder::read_pixmap_header
  - PnmDecoder::read_arbitrary_header
  - HeaderReader::read_magic_constant
  - HeaderReader::read_next_string
  - HeaderReader::read_next_line
  - HeaderReader::read_next_u32
  - HeaderReader::read_bitmap_header
  - HeaderReader::read_graymap_header
  - HeaderReader::read_pixmap_header
  - H::e::a::d::e::r::R::e::a::d::e::r::::::::r::e::a::d::_::a::r::b::i::t::r::a::r::y::_::h::e::a::d::e::r::parse_single_value_line
  - HeaderReader::read_arbitrary_header
  - PnmDecoder::dimensions
  - PnmDecoder::color_type
  - PnmDecoder::original_color_type
  - PnmDecoder::read_image
  - PnmDecoder::read_image_boxed
  - PnmDecoder::read_samples
  - PnmDecoder::read_ascii
  - PnmDecoder::subtype
  - read_separated_ascii
  - U8::from_bytes
  - U8::from_ascii
  - U16::from_bytes
  - U16::from_ascii
  - PbmBit::bytelen
  - PbmBit::from_bytes
  - PbmBit::from_ascii
  - BWBit::from_bytes
  - BWBit::from_ascii
  - BitmapHeader::tuple_type
  - GraymapHeader::tuple_type
  - PixmapHeader::tuple_type
  - ArbitraryHeader::tuple_type
  - tests::pam_blackandwhite
  - tests::pam_grayscale
  - tests::pam_rgb
  - tests::pbm_binary
  - tests::pbm_binary_ascii_termination
  - tests::pbm_ascii
  - tests::pbm_ascii_nospace
  - tests::pgm_binary
  - tests::pgm_ascii
  - tests::ppm_ascii
  - tests::dimension_overflow
  - tests::issue_1508
  - tests::issue_1616_overflow
  - tests::data_too_short
  source_file: /src/image/src/codecs/pnm/decoder.rs
- function_names:
  - AutoBreak::new
  - AutoBreak::flush_buf
  - AutoBreak::write
  - AutoBreak::flush
  - AutoBreak::drop
  - tests::test_aligned_writes
  - tests::test_greater_writes
  source_file: /src/image/src/codecs/pnm/autobreak.rs
- function_names:
  - tests::execute_roundtrip_default
  - tests::execute_roundtrip_with_subtype
  - tests::execute_roundtrip_u16
  - tests::roundtrip_gray
  - tests::roundtrip_rgb
  - tests::roundtrip_u16
  source_file: /src/image/src/codecs/pnm/mod.rs
- function_names:
  - BitWriter::new
  - BitWriter::write_bits
  - BitWriter::pad_byte
  - BitWriter::huffman_encode
  - BitWriter::write_block
  - BitWriter::write_marker
  - BitWriter::write_segment
  - PixelDensity::dpi
  - PixelDensity::default
  - JpegEncoder::new
  - JpegEncoder::with_exif_metadata
  - JpegEncoder::new_with_quality
  - JpegEncoder::set_pixel_density
  - JpegEncoder::encode
  - JpegEncoder::write_exif
  - JpegEncoder::encode_image
  - JpegEncoder::encode_gray
  - JpegEncoder::encode_rgb
  - JpegEncoder::write_icc_profile_chunks
  - JpegEncoder::write_image
  - JpegEncoder::set_icc_profile
  - JpegEncoder::make_compatible_img
  - build_jfif_header
  - build_frame_header
  - build_scan_header
  - build_huffman_segment
  - build_quantization_segment
  - encode_coefficient
  - rgb_to_ycbcr
  - pixel_at_or_near
  - copy_blocks_ycbcr
  - copy_blocks_gray
  - tests::decode
  - tests::roundtrip_sanity_check
  - tests::grayscale_roundtrip_sanity_check
  - tests::jfif_header_density_check
  - tests::test_image_too_large
  - tests::test_build_jfif_header
  - tests::test_build_frame_header
  - tests::test_build_scan_header
  - tests::test_build_huffman_segment
  - tests::test_build_quantization_segment
  - tests::check_color_types
  - tests::bench_jpeg_encoder_new
  source_file: /src/image/src/codecs/jpeg/encoder.rs
- function_names:
  - fdct
  source_file: /src/image/src/codecs/jpeg/transform.rs
- function_names:
  - derive_codes_and_sizes
  - build_huff_lut_const
  source_file: /src/image/src/codecs/jpeg/entropy.rs
- function_names:
  - JpegDecoder::new
  - JpegDecoder::dimensions
  - JpegDecoder::color_type
  - JpegDecoder::icc_profile
  - JpegDecoder::exif_metadata
  - JpegDecoder::orientation
  - JpegDecoder::read_image
  - JpegDecoder::set_limits
  - JpegDecoder::read_image_boxed
  - ColorType::from_jpeg
  - to_supported_color_space
  - new_zune_decoder
  - ImageError::from_jpeg
  - tests::test_exif_orientation
  source_file: /src/image/src/codecs/jpeg/decoder.rs
- function_names: []
  source_file: /src/image/src/codecs/jpeg/mod.rs
- function_names:
  - WebPEncoder::new_lossless
  - WebPEncoder::encode
  - WebPEncoder::write_image
  - WebPEncoder::set_icc_profile
  - WebPEncoder::make_compatible_img
  - ImageError::from_webp_encode
  - tests::write_webp
  source_file: /src/image/src/codecs/webp/encoder.rs
- function_names:
  - WebPDecoder::new
  - WebPDecoder::has_animation
  - WebPDecoder::set_background_color
  - WebPDecoder::dimensions
  - WebPDecoder::color_type
  - WebPDecoder::read_image
  - WebPDecoder::read_image_boxed
  - WebPDecoder::icc_profile
  - WebPDecoder::exif_metadata
  - WebPDecoder::orientation
  - WebPDecoder::into_frames
  - ImageError::from_webp_decode
  - tests::add_with_overflow_size
  source_file: /src/image/src/codecs/webp/decoder.rs
- function_names: []
  source_file: /src/image/src/codecs/webp/mod.rs
- function_names:
  - CbCrInverseTransform::to_integers
  - PlaneDefinition::fmt
  - YuvConversionError::fmt
  - check_yuv_plane_preconditions
  - check_rgb_preconditions
  - get_inverse_transform
  - YuvIntensityRange::get_yuv_range
  - YuvStandardMatrix::get_kr_kb
  - qrshr
  - yuv400_to_rgba8
  - yuv400_to_rgba10
  - yuv400_to_rgba12
  - yuv400_to_rgbx_impl
  - yuv420_to_rgba8
  - yuv420_to_rgba10
  - yuv420_to_rgba12
  - ycbcr_execute
  - process_halved_chroma_row_cbcr
  - yuv420_to_rgbx_invoker
  - yuv422_to_rgba8
  - yuv422_to_rgba10
  - yuv422_to_rgba12
  - yuv422_to_rgbx_invoker
  - yuv444_to_rgba8
  - yuv444_to_rgba10
  - yuv444_to_rgba12
  - yuv444_to_rgbx_impl
  - gbr_to_rgba8
  - gbr_to_rgba10
  - gbr_to_rgba12
  - gbr_to_rgbx_impl
  source_file: /src/image/src/codecs/avif/yuv.rs
- function_names:
  - ColorSpace::to_ravif
  - AvifEncoder::new
  - AvifEncoder::new_with_speed_quality
  - AvifEncoder::with_colorspace
  - AvifEncoder::with_num_threads
  - AvifEncoder::write_image
  - AvifEncoder::set_color
  - A::v::i::f::E::n::c::o::d::e::r::::::::e::n::c::o::d::e::_::a::s::_::i::m::g::try_from_raw
  - A::v::i::f::E::n::c::o::d::e::r::::::::e::n::c::o::d::e::_::a::s::_::i::m::g::convert_into
  - A::v::i::f::E::n::c::o::d::e::r::::::::e::n::c::o::d::e::_::a::s::_::i::m::g::cast_buffer
  - AvifEncoder::encode_as_img
  source_file: /src/image/src/codecs/avif/encoder.rs
- function_names:
  - error_map
  - AvifDecoderError::fmt
  - AvifDecoder::new
  - reshape_plane
  - Plane16View::default
  - transmute_y_plane16
  - transmute_chroma_plane16
  - get_matrix
  - AvifDecoder::dimensions
  - AvifDecoder::color_type
  - AvifDecoder::icc_profile
  - AvifDecoder::read_image
  - AvifDecoder::read_image_boxed
  - AvifDecoder::process_16bit_picture
  - read_until_ready
  source_file: /src/image/src/codecs/avif/decoder.rs
- function_names: []
  source_file: /src/image/src/codecs/avif/mod.rs
- function_names:
  - ycgco_execute_limited
  - ycgco_execute_full
  - process_halved_chroma_row_cgco
  - ycgco444_to_rgbx_impl
  - define_ycgco_half_chroma
  - define_ycgcg_full_chroma
  source_file: /src/image/src/codecs/avif/ycgco.rs
- function_names:
  - IcoFrame::with_encoded
  - IcoFrame::as_png
  - IcoEncoder::new
  - IcoEncoder::encode_images
  - IcoEncoder::write_image
  - write_icondir
  - write_direntry
  source_file: /src/image/src/codecs/ico/encoder.rs
- function_names:
  - DecoderError::fmt
  - ImageError::from
  - IcoEntryImageFormat::fmt
  - ImageFormat::from
  - IcoDecoder::new
  - read_entries
  - read_entry
  - best_entry
  - DirEntry::real_width
  - DirEntry::real_height
  - DirEntry::matches_dimensions
  - DirEntry::seek_to_start
  - DirEntry::is_png
  - DirEntry::decoder
  - IcoDecoder::dimensions
  - IcoDecoder::color_type
  - IcoDecoder::read_image
  - IcoDecoder::read_image_boxed
  - test::bmp_16_with_missing_alpha_channel
  source_file: /src/image/src/codecs/ico/decoder.rs
- function_names: []
  source_file: /src/image/src/codecs/ico/mod.rs
- function_names:
  - FloatNearest::to_i8
  - FloatNearest::to_i16
  - FloatNearest::to_i64
  - FloatNearest::to_u8
  - FloatNearest::to_u16
  - FloatNearest::to_u64
  - FloatNearest::to_f64
  - sinc
  - lanczos
  - bc_cubic_spline
  - gaussian
  - lanczos3_kernel
  - gaussian_kernel
  - catmullrom_kernel
  - triangle_kernel
  - box_kernel
  - horizontal_sample
  - sample_bilinear
  - sample_nearest
  - interpolate_nearest
  - interpolate_bilinear
  - vertical_sample
  - ThumbnailSum::zeroed
  - ThumbnailSum::sample_val
  - ThumbnailSum::add_pixel
  - thumbnail
  - thumbnail_sample_block
  - thumbnail_sample_fraction_horizontal
  - thumbnail_sample_fraction_vertical
  - thumbnail_sample_fraction_both
  - filter3x3
  - resize
  - blur
  - blur_advanced
  - get_gaussian_kernel_1d
  - GaussianBlurParameters::new_from_radius
  - GaussianBlurParameters::new_from_kernel_size
  - GaussianBlurParameters::new_anisotropic_kernel_size
  - GaussianBlurParameters::new_from_sigma
  - GaussianBlurParameters::round_to_nearest_odd
  - GaussianBlurParameters::sigma_size
  - GaussianBlurParameters::kernel_size_from_sigma
  - gaussian_blur_dyn_image
  - gaussian_blur_indirect
  - gaussian_blur_indirect_impl
  - unsharpen
  - tests::bench_resize
  - tests::test_resize_same_size
  - tests::test_sample_bilinear
  - tests::test_sample_nearest
  - tests::test_sample_bilinear_correctness
  - tests::bench_sample_bilinear
  - tests::test_sample_nearest_correctness
  - tests::bench_resize_same_size
  - tests::test_issue_186
  - tests::bench_thumbnail
  - tests::bench_thumbnail_upsize
  - tests::bench_thumbnail_upsize_irregular
  - t::e::s::t::s::::::::r::e::s::i::z::e::_::t::r::a::n::s::p::a::r::e::n::t::_::i::m::a::g::e::assert_resize
  - tests::resize_transparent_image
  - tests::bug_1600
  - tests::issue_2340
  - tests::issue_2340_refl
  source_file: /src/image/src/imageops/sample.rs
- function_names:
  - grayscale
  - grayscale_alpha
  - grayscale_with_type
  - grayscale_with_type_alpha
  - invert
  - contrast
  - contrast_in_place
  - brighten
  - brighten_in_place
  - huerotate
  - huerotate_in_place
  - ColorMap::lookup
  - ColorMap::has_lookup
  - BiLevel::index_of
  - BiLevel::lookup
  - BiLevel::has_lookup
  - BiLevel::map_color
  - color_quant::NeuQuant::index_of
  - color_quant::NeuQuant::lookup
  - color_quant::NeuQuant::has_lookup
  - color_quant::NeuQuant::map_color
  - diffuse_err
  - do_dithering
  - dither
  - index_colors
  - test::test_dither
  - test::test_grayscale
  - test::test_invert
  - test::test_brighten
  - test::test_brighten_place
  - test::pixel_diffs
  source_file: /src/image/src/imageops/colorops.rs
- function_names:
  - rotate90
  - rotate180
  - rotate270
  - rotate90_in
  - rotate180_in
  - rotate270_in
  - flip_horizontal
  - flip_vertical
  - flip_horizontal_in
  - flip_vertical_in
  - rotate180_in_place
  - flip_horizontal_in_place
  - flip_vertical_in_place
  - test::test_rotate90
  - test::test_rotate180
  - test::test_rotate270
  - test::test_rotate180_in_place
  - test::test_flip_horizontal
  - test::test_flip_vertical
  - test::test_flip_horizontal_in_place
  - test::test_flip_vertical_in_place
  - test::pixel_diffs
  source_file: /src/image/src/imageops/affine.rs
- function_names:
  - crop
  - crop_imm
  - crop_dimms
  - overlay_bounds
  - overlay_bounds_ext
  - overlay
  - tile
  - vertical_gradient
  - horizontal_gradient
  - replace
  - tests::test_overlay_bounds_ext
  - tests::test_image_in_image
  - tests::test_image_in_image_outside_of_bounds
  - tests::test_image_outside_image_no_wrap_around
  - tests::test_image_coordinate_overflow
  - tests::test_image_horizontal_gradient_limits
  - tests::test_image_vertical_gradient_limits
  - tests::test_blur_zero
  - tests::test_fast_blur_zero
  - tests::test_fast_blur_negative
  - tests::test_fast_large_sigma
  - tests::test_fast_blur_empty
  - tests::test_fast_blur_3_channels
  - tests::test_fast_blur_2_channels
  - tests::test_fast_blur_1_channels
  - tests::fast_blur_approximates_gaussian_blur_well
  source_file: /src/image/src/imageops/mod.rs
- function_names:
  - fast_blur
  - test_radius_size
  - boxes_for_gauss
  - ceil_to_odd
  - rounding_saturating_mul
  - box_blur_horizontal_pass_strategy
  - box_blur_vertical_pass_strategy
  - box_blur_horizontal_pass_impl
  - box_blur_vertical_pass_impl
  - tests::test_box_blur
  source_file: /src/image/src/imageops/fast_blur.rs
- function_names:
  - mla
  - mla
  - usize::safe_mul
  - usize::safe_add
  - make_arena_row
  - make_columns_arenas
  - u32::to_
  - u32::to_
  - f32::to_
  - f32::to_
  - filter_symmetric_column
  - filter_symmetric_row
  - u8::transform
  - u16::transform
  - f32::transform
  - u16::transform
  - prepare_symmetric_kernel
  - filter_2d_separable_ring_queue
  - filter_2d_separable
  - filter_2d_sep_plane
  - filter_2d_sep_la
  - filter_2d_sep_rgb
  - filter_2d_sep_rgba
  - filter_2d_sep_la_f32
  - filter_2d_sep_plane_f32
  - filter_2d_sep_rgb_f32
  - filter_2d_sep_rgba_f32
  - filter_2d_sep_rgb_u16
  - filter_2d_sep_rgba_u16
  - filter_2d_sep_la_u16
  - filter_2d_sep_plane_u16
  source_file: /src/image/src/imageops/filter_1d.rs
- function_names:
  - PixelsPar::drive_unindexed
  - PixelsPar::opt_len
  - PixelsPar::drive
  - PixelsPar::len
  - PixelsPar::with_producer
  - PixelsPar::fmt
  - PixelsMutPar::drive_unindexed
  - PixelsMutPar::opt_len
  - PixelsMutPar::drive
  - PixelsMutPar::len
  - PixelsMutPar::with_producer
  - PixelsMutPar::fmt
  - EnumeratePixelsPar::drive_unindexed
  - EnumeratePixelsPar::opt_len
  - EnumeratePixelsPar::drive
  - EnumeratePixelsPar::len
  - EnumeratePixelsPar::with_producer
  - EnumeratePixelsPar::fmt
  - EnumeratePixelsMutPar::drive_unindexed
  - EnumeratePixelsMutPar::opt_len
  - EnumeratePixelsMutPar::drive
  - EnumeratePixelsMutPar::len
  - EnumeratePixelsMutPar::with_producer
  - EnumeratePixelsMutPar::fmt
  - ImageBuffer::par_pixels
  - ImageBuffer::par_enumerate_pixels
  - ImageBuffer::par_pixels_mut
  - ImageBuffer::par_enumerate_pixels_mut
  - ImageBuffer::from_par_fn
  - test::test_width_height
  - test::zero_width_zero_height
  - test::zero_width_nonzero_height
  - test::nonzero_width_zero_height
  - test::iter_parity
  - benchmarks::creation
  - benchmarks::creation_par
  - benchmarks::pixel_func
  source_file: /src/image/src/images/buffer_par.rs
- function_names:
  - GenericImageView::width
  - GenericImageView::height
  - GenericImageView::in_bounds
  - GenericImageView::unsafe_get_pixel
  - GenericImageView::pixels
  - GenericImageView::view
  - Pixels::next
  - Pixels::clone
  - GenericImage::unsafe_put_pixel
  - GenericImage::copy_from
  - GenericImage::copy_within
  - GenericImage::sub_image
  - tests::test_image_alpha_blending
  - tests::test_in_bounds
  - tests::test_can_subimage_clone_nonmut
  - tests::test_can_nest_views
  - tests::test_view_out_of_bounds
  - tests::test_view_coordinates_out_of_bounds
  - tests::test_view_width_out_of_bounds
  - tests::test_view_height_out_of_bounds
  - tests::test_view_x_out_of_bounds
  - tests::test_view_y_out_of_bounds
  - tests::test_view_in_bounds
  - tests::test_copy_sub_image
  - tests::test_generic_image_copy_within_oob
  - tests::test_generic_image_copy_within_tl
  - tests::test_generic_image_copy_within_tr
  - tests::test_generic_image_copy_within_bl
  - tests::test_generic_image_copy_within_br
  source_file: /src/image/src/images/generic_image.rs
- function_names:
  - dynamic_map
  - DynamicImage::clone
  - DynamicImage::clone_from
  - DynamicImage::new
  - DynamicImage::new_luma8
  - DynamicImage::new_luma_a8
  - DynamicImage::new_rgb8
  - DynamicImage::new_rgba8
  - DynamicImage::new_luma16
  - DynamicImage::new_luma_a16
  - DynamicImage::new_rgb16
  - DynamicImage::new_rgba16
  - DynamicImage::new_rgb32f
  - DynamicImage::new_rgba32f
  - DynamicImage::from_decoder
  - DynamicImage::to
  - DynamicImage::to_rgb8
  - DynamicImage::to_rgb16
  - DynamicImage::to_rgb32f
  - DynamicImage::to_rgba8
  - DynamicImage::to_rgba16
  - DynamicImage::to_rgba32f
  - DynamicImage::to_luma8
  - DynamicImage::to_luma16
  - DynamicImage::to_luma32f
  - DynamicImage::to_luma_alpha8
  - DynamicImage::to_luma_alpha16
  - DynamicImage::to_luma_alpha32f
  - DynamicImage::into_rgb8
  - DynamicImage::into_rgb16
  - DynamicImage::into_rgb32f
  - DynamicImage::into_rgba8
  - DynamicImage::into_rgba16
  - DynamicImage::into_rgba32f
  - DynamicImage::into_luma8
  - DynamicImage::into_luma16
  - DynamicImage::into_luma_alpha8
  - DynamicImage::into_luma_alpha16
  - DynamicImage::crop
  - DynamicImage::crop_imm
  - DynamicImage::as_rgb8
  - DynamicImage::as_mut_rgb8
  - DynamicImage::as_rgba8
  - DynamicImage::as_mut_rgba8
  - DynamicImage::as_luma8
  - DynamicImage::as_mut_luma8
  - DynamicImage::as_luma_alpha8
  - DynamicImage::as_mut_luma_alpha8
  - DynamicImage::as_rgb16
  - DynamicImage::as_mut_rgb16
  - DynamicImage::as_rgba16
  - DynamicImage::as_mut_rgba16
  - DynamicImage::as_rgb32f
  - DynamicImage::as_mut_rgb32f
  - DynamicImage::as_rgba32f
  - DynamicImage::as_mut_rgba32f
  - DynamicImage::as_luma16
  - DynamicImage::as_mut_luma16
  - DynamicImage::as_luma_alpha16
  - DynamicImage::as_mut_luma_alpha16
  - DynamicImage::as_flat_samples_u8
  - DynamicImage::as_flat_samples_u16
  - DynamicImage::as_flat_samples_f32
  - DynamicImage::as_bytes
  - DynamicImage::into_bytes
  - DynamicImage::color
  - DynamicImage::width
  - DynamicImage::height
  - DynamicImage::has_alpha
  - DynamicImage::grayscale
  - DynamicImage::invert
  - DynamicImage::resize
  - DynamicImage::resize_exact
  - DynamicImage::thumbnail
  - DynamicImage::thumbnail_exact
  - DynamicImage::resize_to_fill
  - DynamicImage::blur
  - DynamicImage::blur_advanced
  - DynamicImage::fast_blur
  - DynamicImage::unsharpen
  - DynamicImage::filter3x3
  - DynamicImage::adjust_contrast
  - DynamicImage::brighten
  - DynamicImage::huerotate
  - DynamicImage::flipv
  - DynamicImage::flipv_in_place
  - DynamicImage::fliph
  - DynamicImage::fliph_in_place
  - DynamicImage::rotate90
  - DynamicImage::rotate180
  - DynamicImage::rotate180_in_place
  - DynamicImage::rotate270
  - DynamicImage::apply_orientation
  - DynamicImage::write_with_encoder_impl
  - DynamicImage::write_to
  - DynamicImage::write_with_encoder
  - DynamicImage::save
  - DynamicImage::save_with_format
  - DynamicImage::from
  - DynamicImage::from
  - DynamicImage::from
  - DynamicImage::from
  - DynamicImage::from
  - DynamicImage::from
  - DynamicImage::from
  - DynamicImage::from
  - DynamicImage::from
  - DynamicImage::from
  - DynamicImage::from
  - DynamicImage::from
  - DynamicImage::dimensions
  - DynamicImage::get_pixel
  - DynamicImage::put_pixel
  - DynamicImage::blend_pixel
  - DynamicImage::get_pixel_mut
  - DynamicImage::default
  - decoder_to_image
  - open
  - image_dimensions
  - write_buffer_with_format
  - load_from_memory
  - load_from_memory_with_format
  - bench::bench_conversion
  - test::test_empty_file
  - test::image_dimensions
  - test::open_16bpc_png
  - test::test_grayscale
  - test::test_grayscale_alpha_discarded
  - test::test_grayscale_alpha_preserved
  - test::test_grayscale_luma8
  - test::test_grayscale_luma_a8
  - test::test_grayscale_rgb8
  - test::test_grayscale_rgba8
  - test::test_grayscale_luma16
  - test::test_grayscale_luma_a16
  - test::test_grayscale_rgb16
  - test::test_grayscale_rgba16
  - test::test_grayscale_rgb32f
  - test::test_grayscale_rgba32f
  - test::test_dynamic_image_default_implementation
  - test::test_to_vecu8
  - test::issue_1705_can_turn_16bit_image_into_bytes
  - test::test_convert_to
  source_file: /src/image/src/images/dynimage.rs
- function_names:
  - SampleLayout::row_major_packed
  - SampleLayout::column_major_packed
  - SampleLayout::strides_cwh
  - SampleLayout::extents
  - SampleLayout::bounds
  - SampleLayout::min_length
  - SampleLayout::fits
  - SampleLayout::increasing_stride_dims
  - SampleLayout::has_aliased_samples
  - SampleLayout::is_normal
  - SampleLayout::in_bounds
  - SampleLayout::index
  - SampleLayout::index_ignoring_bounds
  - SampleLayout::in_bounds_index
  - SampleLayout::shrink_to
  - Dim::stride
  - Dim::checked_len
  - Dim::len
  - FlatSamples::strides_cwh
  - FlatSamples::extents
  - FlatSamples::bounds
  - FlatSamples::as_ref
  - FlatSamples::as_mut
  - FlatSamples::to_vec
  - FlatSamples::get_sample
  - FlatSamples::get_mut_sample
  - FlatSamples::as_view
  - FlatSamples::as_view_with_mut_samples
  - FlatSamples::as_view_mut
  - FlatSamples::as_slice
  - FlatSamples::as_mut_slice
  - FlatSamples::image_slice
  - FlatSamples::image_mut_slice
  - FlatSamples::try_into_buffer
  - FlatSamples::min_length
  - FlatSamples::fits
  - FlatSamples::has_aliased_samples
  - FlatSamples::is_normal
  - FlatSamples::in_bounds
  - FlatSamples::index
  - FlatSamples::index_ignoring_bounds
  - FlatSamples::in_bounds_index
  - FlatSamples::shrink_to
  - FlatSamples::with_monocolor
  - View::into_inner
  - View::flat
  - View::samples
  - View::get_sample
  - View::get_mut_sample
  - View::min_length
  - View::image_slice
  - View::image_mut_slice
  - View::shrink_to
  - View::try_upgrade
  - ViewMut::into_inner
  - ViewMut::flat
  - ViewMut::samples
  - ViewMut::min_length
  - ViewMut::get_sample
  - ViewMut::get_mut_sample
  - ViewMut::image_slice
  - ViewMut::image_mut_slice
  - ViewMut::shrink_to
  - panic_cwh_out_of_bounds
  - panic_pixel_out_of_bounds
  - FlatSamples::index
  - FlatSamples::index_mut
  - View::dimensions
  - View::get_pixel
  - ViewMut::dimensions
  - ViewMut::get_pixel
  - ViewMut::get_pixel_mut
  - ViewMut::put_pixel
  - ViewMut::blend_pixel
  - ImageError::from
  - Error::fmt
  - NormalForm::partial_cmp
  - tests::aliasing_view
  - tests::mutable_view
  - tests::normal_forms
  - tests::image_buffer_conversion
  source_file: /src/image/src/images/flat.rs
- function_names:
  - SubImage::new
  - SubImage::change_bounds
  - SubImage::offsets
  - SubImage::to_image
  - SubImage::view
  - SubImage::inner
  - SubImage::sub_image
  - SubImage::inner_mut
  - SubImage::deref
  - SubImage::deref_mut
  - SubImageInner::dimensions
  - SubImageInner::get_pixel
  - SubImageInner::get_pixel_mut
  - SubImageInner::put_pixel
  - SubImageInner::blend_pixel
  source_file: /src/image/src/images/sub_image.rs
- function_names:
  - Pixels::next
  - Pixels::size_hint
  - Pixels::len
  - Pixels::next_back
  - Pixels::clone
  - Pixels::fmt
  - PixelsMut::next
  - PixelsMut::size_hint
  - PixelsMut::len
  - PixelsMut::next_back
  - PixelsMut::fmt
  - Rows::with_image
  - Rows::next
  - Rows::size_hint
  - Rows::len
  - Rows::next_back
  - Rows::clone
  - Rows::fmt
  - RowsMut::with_image
  - RowsMut::next
  - RowsMut::size_hint
  - RowsMut::len
  - RowsMut::next_back
  - RowsMut::fmt
  - EnumeratePixels::next
  - EnumeratePixels::size_hint
  - EnumeratePixels::len
  - EnumeratePixels::clone
  - EnumeratePixels::fmt
  - EnumerateRows::next
  - EnumerateRows::size_hint
  - EnumerateRows::len
  - EnumerateRows::clone
  - EnumerateRows::fmt
  - EnumeratePixelsMut::next
  - EnumeratePixelsMut::size_hint
  - EnumeratePixelsMut::len
  - EnumeratePixelsMut::fmt
  - EnumerateRowsMut::next
  - EnumerateRowsMut::size_hint
  - EnumerateRowsMut::len
  - EnumerateRowsMut::fmt
  - ImageBuffer::from_raw
  - ImageBuffer::into_raw
  - ImageBuffer::as_raw
  - ImageBuffer::dimensions
  - ImageBuffer::width
  - ImageBuffer::height
  - ImageBuffer::inner_pixels
  - ImageBuffer::pixels
  - ImageBuffer::rows
  - ImageBuffer::enumerate_pixels
  - ImageBuffer::enumerate_rows
  - ImageBuffer::get_pixel
  - ImageBuffer::get_pixel_checked
  - ImageBuffer::check_image_fits
  - ImageBuffer::image_buffer_len
  - ImageBuffer::pixel_indices
  - ImageBuffer::pixel_indices_unchecked
  - ImageBuffer::sample_layout
  - ImageBuffer::into_flat_samples
  - ImageBuffer::as_flat_samples
  - ImageBuffer::as_flat_samples_mut
  - ImageBuffer::inner_pixels_mut
  - ImageBuffer::pixels_mut
  - ImageBuffer::rows_mut
  - ImageBuffer::enumerate_pixels_mut
  - ImageBuffer::enumerate_rows_mut
  - ImageBuffer::get_pixel_mut
  - ImageBuffer::get_pixel_mut_checked
  - ImageBuffer::put_pixel
  - ImageBuffer::save
  - ImageBuffer::save_with_format
  - ImageBuffer::write_to
  - ImageBuffer::write_with_encoder
  - ImageBuffer::default
  - ImageBuffer::deref
  - ImageBuffer::deref_mut
  - ImageBuffer::index
  - ImageBuffer::index_mut
  - ImageBuffer::clone
  - ImageBuffer::clone_from
  - ImageBuffer::dimensions
  - ImageBuffer::get_pixel
  - ImageBuffer::unsafe_get_pixel
  - ImageBuffer::get_pixel_mut
  - ImageBuffer::put_pixel
  - ImageBuffer::unsafe_put_pixel
  - ImageBuffer::blend_pixel
  - ImageBuffer::copy_within
  - ImageBuffer::new
  - ImageBuffer::from_pixel
  - ImageBuffer::from_fn
  - ImageBuffer::from_vec
  - ImageBuffer::into_vec
  - GrayImage::expand_palette
  - ImageBuffer::convert
  - RgbImage::from
  - RgbaImage::from
  - GrayImage::from
  - GrayAlphaImage::from
  - Rgb16Image::from
  - Rgba16Image::from
  - Gray16Image::from
  - GrayAlpha16Image::from
  - Rgba32FImage::from
  - test::slice_buffer
  - test::get_pixel
  - test::get_pixel_checked
  - test::mut_iter
  - test::zero_width_zero_height
  - test::zero_width_nonzero_height
  - test::nonzero_width_zero_height
  - test::pixels_on_large_buffer
  - test::default
  - test::test_image_buffer_copy_within_oob
  - test::test_image_buffer_copy_within_tl
  - test::test_image_buffer_copy_within_tr
  - test::test_image_buffer_copy_within_bl
  - test::test_image_buffer_copy_within_br
  - test::write_to_with_large_buffer
  - test::exact_size_iter_size_hint
  - benchmarks::conversion
  - benchmarks::image_access_row_by_row
  - benchmarks::image_access_col_by_col
  source_file: /src/image/src/images/buffer.rs
- function_names:
  - resize_dimensions
  - test::resize_handles_fill
  - test::resize_never_rounds_to_zero
  - test::resize_handles_overflow
  - test::resize_rounds
  - test::resize_handles_zero
  source_file: /src/image/src/math/utils.rs
- function_names: []
  source_file: /src/image/src/math/rect.rs
- function_names: []
  source_file: /src/image/src/math/mod.rs
- function_names:
  - expand_packed
  - expand_bits
  - check_dimension_overflow
  - vec_copy_to_u8
  - clamp
  - vec_try_with_capacity
  - test::gray_to_luma8_skip
  source_file: /src/image/src/utils/mod.rs
- function_names:
  - fuzz_target
  source_file: /src/image/fuzz/fuzzers/fuzzer_script_ico.rs
- function_names:
  - fuzz_target
  source_file: /src/image/fuzz/fuzzers/fuzzer_script_png.rs
- function_names:
  - fuzz_target
  source_file: /src/image/fuzz/fuzzers/fuzzer_script_bmp.rs
- function_names:
  - fuzz_target
  source_file: /src/image/fuzz/fuzzers/roundtrip_webp.rs
- function_names:
  - fuzz_target
  source_file: /src/image/fuzz/fuzzers/fuzzer_script_jpeg.rs
- function_names:
  - fuzz_target
  source_file: /src/image/fuzz/fuzzers/fuzzer_script_webp.rs
- function_names:
  - fuzz_target
  source_file: /src/image/fuzz/fuzzers/fuzzer_script_hdr.rs
- function_names:
  - fuzz_target
  source_file: /src/image/fuzz/fuzzers/fuzzer_script_tiff.rs
- function_names:
  - r::o::u::n::d::t::r::i::p::read_as_rgba_byte_image
  - r::o::u::n::d::t::r::i::p::write_rgba_image
  - roundtrip
  - fuzz_target
  source_file: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs
- function_names:
  - fuzz_target
  source_file: /src/image/fuzz/fuzzers/fuzzer_script_pnm.rs
- function_names:
  - fuzz_target
  source_file: /src/image/fuzz/fuzzers/fuzzer_script_guess.rs
- function_names:
  - fuzz_target
  source_file: /src/image/fuzz/fuzzers/fuzzer_script_gif.rs
- function_names:
  - fuzz_target
  - decode
  source_file: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs
- function_names:
  - main
  source_file: /src/image/examples/decode.rs
- function_names:
  - main
  source_file: /src/image/examples/convert.rs
- function_names:
  - main
  source_file: /src/image/examples/opening.rs
- function_names:
  - main
  source_file: /src/image/examples/fractal.rs
- function_names:
  - main
  source_file: /src/image/examples/fast_blur/main.rs
- function_names:
  - main
  source_file: /src/image/examples/tile/main.rs
- function_names:
  - Elapsed::from
  - Elapsed::fmt
  - main
  source_file: /src/image/examples/scaleup/main.rs
- function_names:
  - main
  source_file: /src/image/examples/gradient/main.rs
- function_names:
  - main
  - h_concat
  source_file: /src/image/examples/concat/main.rs
- function_names:
  - Elapsed::from
  - Elapsed::fmt
  - main
  source_file: /src/image/examples/scaledown/main.rs
- function_names:
  - load_all
  - bench_load
  source_file: /src/image/benches/decode.rs
- function_names:
  - bench_fast_blur
  source_file: /src/image/benches/fast_blur.rs
- function_names:
  - bench_copy_from
  source_file: /src/image/benches/copy_from.rs
- function_names:
  - encode_all
  - encode_zeroed
  - encode_definition
  - T::encode_raw
  - T::encode_bufvec
  - T::encode_file
  - Bmp::encode
  - Jpeg::encode
  source_file: /src/image/benches/encode.rs
- function_names:
  - bench_fast_blur
  source_file: /src/image/benches/blur.rs
