All functions:
  Elements:
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from_str
      Src: /src/image/tests/metadata.rs:28,1
    - Dst: Result::unwrap
      Src: /src/image/tests/metadata.rs:28,1
    - Dst: fs::read
      Src: /src/image/tests/metadata.rs:30,1
    - Dst: PngDecoder::new
      Src: /src/image/tests/metadata.rs:31,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/metadata.rs:31,1
    - Dst: xmp_metadata
      Src: /src/image/tests/metadata.rs:32,1
    - Dst: Ok
      Src: /src/image/tests/metadata.rs:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 15
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: test_read_xmp_png
    functionSourceFile: /src/image/tests/metadata.rs
    functionUses: 0
    functionsReached:
    - std::io::Cursor::new
    - Result::unwrap
    - PathBuf::from_str
    - Ok
    - PngDecoder::new
    - xmp_metadata
    - fs::read
    linkageType: ''
    returnType: Result
    signature: fn test_read_xmp_png() -> Result<(), image::ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from_str
      Src: /src/image/tests/metadata.rs:42,1
    - Dst: Result::unwrap
      Src: /src/image/tests/metadata.rs:42,1
    - Dst: fs::read
      Src: /src/image/tests/metadata.rs:44,1
    - Dst: WebPDecoder::new
      Src: /src/image/tests/metadata.rs:45,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/metadata.rs:45,1
    - Dst: xmp_metadata
      Src: /src/image/tests/metadata.rs:46,1
    - Dst: Ok
      Src: /src/image/tests/metadata.rs:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 15
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: test_read_xmp_webp
    functionSourceFile: /src/image/tests/metadata.rs
    functionUses: 0
    functionsReached:
    - std::io::Cursor::new
    - Result::unwrap
    - PathBuf::from_str
    - Ok
    - WebPDecoder::new
    - xmp_metadata
    - fs::read
    linkageType: ''
    returnType: Result
    signature: fn test_read_xmp_webp() -> Result<(), image::ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from_str
      Src: /src/image/tests/metadata.rs:57,1
    - Dst: Result::unwrap
      Src: /src/image/tests/metadata.rs:57,1
    - Dst: fs::read
      Src: /src/image/tests/metadata.rs:59,1
    - Dst: TiffDecoder::new
      Src: /src/image/tests/metadata.rs:60,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/metadata.rs:60,1
    - Dst: xmp_metadata
      Src: /src/image/tests/metadata.rs:61,1
    - Dst: Ok
      Src: /src/image/tests/metadata.rs:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 15
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: test_read_xmp_tiff
    functionSourceFile: /src/image/tests/metadata.rs
    functionUses: 0
    functionsReached:
    - std::io::Cursor::new
    - TiffDecoder::new
    - Result::unwrap
    - PathBuf::from_str
    - Ok
    - xmp_metadata
    - fs::read
    linkageType: ''
    returnType: Result
    signature: fn test_read_xmp_tiff() -> Result<(), image::ImageError>
  - 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: 14
    functionLinenumber: 12
    functionLinenumberEnd: 37
    functionName: process_images
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 4
    functionsReached:
    - iter
    - unwrap
    - clone
    - func
    - '&str::to_string'
    - collect
    - filter_map
    - ImageResult::push
    - glob::glob
    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: 15
    functionLinenumber: 44
    functionLinenumberEnd: 82
    functionName: render_images
    functionSourceFile: /src/image/tests/reference_images.rs
    functionUses: 0
    functionsReached:
    - push
    - fs::create_dir_all
    - unwrap
    - as_os_str
    - Option::save
    - image::open
    - process_images
    - clone
    - ImageResult::pop
    - ImageResult::unwrap
    - collect
    - ImageResult::components
    - Option::as_bytes
    - Option::update
    - Crc32::new
    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: 14
    functionLinenumber: 109
    functionLinenumberEnd: 147
    functionName: ReferenceTestCase::from_str
    functionSourceFile: /src/image/tests/reference_images.rs
    functionUses: 0
    functionsReached:
    - split('_').collect::<Vec<_>>
    - unwrap
    - map_err
    - ok_or
    - '&str::rsplitn'
    - parse_crc
    - FrameInfo::checked_sub
    - Err
    - parse
    - len
    - Ok
    - to_owned
    - Option::ok_or
    - next
    - split
    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: 14
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: parse_crc
    functionSourceFile: /src/image/tests/reference_images.rs
    functionUses: 1
    functionsReached:
    - ok
    - u32::from_str_radix
    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: 15
    functionLinenumber: 156
    functionLinenumberEnd: 343
    functionName: check_references
    functionSourceFile: /src/image/tests/reference_images.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - fs::File::open
    - image::codecs::gif::GifDecoder::new
    - DynamicImage::from
    - FrameInfo::into_buffer
    - ImageResult::pop
    - ImageResult::apng
    - ImageResult::unwrap
    - to_str
    - DynamicImage::try_into
    - as_os_str
    - Rgba16Image::into
    - next
    - to_le_bytes
    - Rgb16Image::into
    - clone
    - u16::from_ne_bytes
    - with_guessed_format
    - io::Result::unwrap
    - Crc32::new
    - push
    - image::open
    - process_images
    - None::as_bytes
    - None::to_rgb16
    - '&[u8]::chunks'
    - io::BufReader::new
    - None::is_none
    - format
    - collect
    - ImageResult::components
    - None::to_rgba16
    - ImageResult::drain
    - ImageReader::open
    - None::as_mut
    - Self::update
    - ImageResult::into_frames
    - f32::from_ne_bytes
    - Some
    - parse
    - image::codecs::png::PngDecoder::new
    - animation::Frames::collect_frames
    - Self::finalize
    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: 13
    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:
    - Vec::with_capacity
    - File::open
    - BufReader::new
    - read_u32::<LE>
    - Result::push
    - Ok
    - read_f32::<LE>
    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: 14
    functionLinenumber: 347
    functionLinenumberEnd: 412
    functionName: check_hdr_references
    functionSourceFile: /src/image/tests/reference_images.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - fs::File::open
    - rev
    - ImageResult::unwrap
    - ::std::io::Result::unwrap
    - take
    - clone
    - io::Result::unwrap
    - read_raw_file
    - "components()\n            .rev()\n            .take(2)\n            .collect::<Vec<_>>"
    - push
    - io::BufReader::new
    - collect
    - filter_map
    - ImageResult::components
    - image::codecs::hdr::HdrDecoder::new
    - glob::glob
    - iter
    - set_extension
    - Option::into_vec
    - DynamicImage::from_decoder
    - ImageResult::push
    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: std::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: 15
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: truncate_images
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 10
    functionsReached:
    - Vec::with_capacity
    - unwrap
    - fs::File::open
    - process_images
    - Some
    - step_by
    - io::Result::unwrap
    - std::io::Result::len
    - ImageResult::ok
    - take
    - read_to_end
    - image::load_from_memory
    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: 16
    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: 16
    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: 16
    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: 16
    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: 16
    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: 16
    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: 16
    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: 16
    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: 16
    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: 16
    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: 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: 15
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: check_regressions
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - image::open
    - process_images
    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: std::io::Result::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: 13
    functionLinenumber: 48
    functionLinenumberEnd: 78
    functionName: check_webp_frames_regressions
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - animation::Frames::take
    - "iter()\n        .collect::<PathBuf>"
    - unwrap
    - inspect
    - ImageResult::unwrap
    - WebPDecoder::new
    - fs::read
    - count
    - Self::clone
    - filter_map
    - glob::glob
    - Cursor::new
    - ImageResult::into_frames
    - iter
    - image_webp::WebPDecoder::new
    - enumerate
    - join
    - std::io::Result::unwrap
    - num_frames
    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: 13
    functionLinenumber: 84
    functionLinenumberEnd: 100
    functionName: bad_bmps
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - image::load
    - "iter()\n        .collect::<PathBuf>"
    - iter
    - unwrap
    - BufReader::new
    - File::open
    - join
    - filter_map
    - io::Result::unwrap
    - glob::glob
    linkageType: ''
    returnType: void
    signature: fn bad_bmps()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/tests/regression.rs:111,1
    - Dst: "iter()\n        .collect::<PathBuf>"
      Src: /src/image/tests/regression.rs:111,1
    - Dst: join
      Src: /src/image/tests/regression.rs:111,1
    - Dst: join
      Src: /src/image/tests/regression.rs:111,1
    - Dst: join
      Src: /src/image/tests/regression.rs:111,1
    - Dst: BufReader::new
      Src: /src/image/tests/regression.rs:117,1
    - Dst: File::open
      Src: /src/image/tests/regression.rs:117,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/regression.rs:117,1
    - Dst: image::codecs::bmp::BmpDecoder::new_without_file_header
      Src: /src/image/tests/regression.rs:118,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/regression.rs:118,1
    - Dst: image::DynamicImage::from_decoder
      Src: /src/image/tests/regression.rs:120,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/regression.rs:120,1
    - Dst: into_rgba8
      Src: /src/image/tests/regression.rs:120,1
    - Dst: into_raw
      Src: /src/image/tests/regression.rs:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 110
    functionDepth: 13
    functionLinenumber: 110
    functionLinenumberEnd: 132
    functionName: bmp_bitfields
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - "iter()\n        .collect::<PathBuf>"
    - iter
    - File::open
    - BufReader::new
    - join
    - ImageResult::unwrap
    - image::DynamicImage::from_decoder
    - image::codecs::bmp::BmpDecoder::new_without_file_header
    - io::Result::unwrap
    - into_raw
    - into_rgba8
    linkageType: ''
    returnType: void
    signature: fn bmp_bitfields()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: image::load_from_memory
      Src: /src/image/tests/regression.rs:146,1
    - Dst: ImageResult::unwrap_err
      Src: /src/image/tests/regression.rs:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 135
    functionDepth: 15
    functionLinenumber: 135
    functionLinenumberEnd: 152
    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: 13
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: test_image
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 7
    functionsReached:
    - RgbImage::new
    - ImageResult::unwrap
    - Vec::write_to
    - Vec::new
    - Cursor::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: 12
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: allocation_limits
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - into
    - Some
    - Limits::no_limits
    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: 12
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: permissive_limits
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 1
    functionsReached:
    - into
    - Some
    - Limits::no_limits
    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: 13
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: load_through_reader
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 1
    functionsReached:
    - Result::set_format
    - Result::limits
    - Result::decode
    - ImageReader::new
    - Cursor::new
    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: 14
    functionLinenumber: 71
    functionLinenumberEnd: 97
    functionName: gif
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 2
    functionsReached:
    - GifDecoder::new
    - ImageResult::unwrap
    - test_image
    - Cursor::new
    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: 14
    functionLinenumber: 101
    functionLinenumberEnd: 124
    functionName: png
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 3
    functionsReached:
    - Cursor::new
    - ImageResult::unwrap
    - test_image
    - 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: 14
    functionLinenumber: 128
    functionLinenumberEnd: 144
    functionName: jpeg
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 1
    functionsReached:
    - JpegDecoder::new
    - ImageResult::unwrap
    - test_image
    - Cursor::new
    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: 14
    functionLinenumber: 148
    functionLinenumberEnd: 164
    functionName: webp
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - ImageResult::unwrap
    - test_image
    - WebPDecoder::new
    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: 14
    functionLinenumber: 168
    functionLinenumberEnd: 191
    functionName: tiff
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - permissive_limits
    - TiffDecoder::new
    - Some
    - Result::unwrap
    - load_through_reader
    - into
    - test_image
    - Cursor::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: 14
    functionLinenumber: 195
    functionLinenumberEnd: 211
    functionName: avif
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 2
    functionsReached:
    - ImageResult::unwrap
    - AvifDecoder::new
    - test_image
    - Cursor::new
    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: 14
    functionLinenumber: 215
    functionLinenumberEnd: 231
    functionName: bmp
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - BmpDecoder::new
    - ImageResult::unwrap
    - test_image
    - Cursor::new
    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: 6
    functionLinenumber: 5
    functionLinenumberEnd: 16
    functionName: test_rgbu8_to_rgbu16
    functionSourceFile: /src/image/tests/conversions.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_pixel
    - image::Rgb::<u8>
    - ImageBuffer::convert
    - image::Rgb::<u16>
    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: 6
    functionLinenumber: 19
    functionLinenumberEnd: 34
    functionName: test_rgbau8_to_rgbau16
    functionSourceFile: /src/image/tests/conversions.rs
    functionUses: 0
    functionsReached:
    - image::Rgba::<u8>
    - ImageBuffer::from_pixel
    - image::Rgba::<u16>
    - ImageBuffer::convert
    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: 13
    functionLinenumber: 9
    functionLinenumberEnd: 21
    functionName: gif_decode
    functionSourceFile: /src/image/tests/limits_anim.rs
    functionUses: 2
    functionsReached:
    - ImageResult::into_frames
    - GifDecoder::new
    - ImageResult::unwrap
    - Ok
    - ImageResult::set_limits
    - Cursor::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: 2
    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: std::io::Result::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: 14
    functionLinenumber: 38
    functionLinenumberEnd: 67
    functionName: animated_full_frame_discard
    functionSourceFile: /src/image/tests/limits_anim.rs
    functionUses: 0
    functionsReached:
    - std::fs::read
    - std::io::Result::unwrap
    - Some
    - Limits::default
    - ImageResult::expect
    - assert_limit_error
    - 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: std::io::Result::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: 14
    functionLinenumber: 72
    functionLinenumberEnd: 101
    functionName: animated_frame_combine
    functionSourceFile: /src/image/tests/limits_anim.rs
    functionUses: 0
    functionsReached:
    - std::fs::read
    - std::io::Result::unwrap
    - Some
    - Limits::default
    - ImageResult::expect
    - assert_limit_error
    - 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: 17
    functionLinenumber: 10
    functionLinenumberEnd: 29
    functionName: save_16bit_to_pbm
    functionSourceFile: /src/image/tests/save_pnm.rs
    functionUses: 0
    functionsReached:
    - fs::create_dir_all
    - expect
    - image::open
    - Option::unwrap
    - ImageResult::expect
    - Option::as_luma16
    - Option::save
    - io::Result::expect
    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: 17
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: save_16bit_to_ppm
    functionSourceFile: /src/image/tests/save_pnm.rs
    functionUses: 0
    functionsReached:
    - fs::create_dir_all
    - expect
    - image::open
    - Option::as_rgb16
    - Option::unwrap
    - ImageResult::expect
    - Option::save
    - io::Result::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: 17
    functionLinenumber: 8
    functionLinenumberEnd: 29
    functionName: jqeg_qualitys
    functionSourceFile: /src/image/tests/save_jpeg.rs
    functionUses: 0
    functionsReached:
    - JpegEncoder::new_with_quality
    - image::open
    - Option::write_with_encoder
    - ImageResult::unwrap
    - JpegEncoder::new
    - io::Result::unwrap
    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: 13
    functionLinenumber: 11
    functionLinenumberEnd: 20
    functionName: webp_decode
    functionSourceFile: /src/image/fuzz-afl/reproducers/reproduce_webp.rs
    functionUses: 0
    functionsReached:
    - ImageResult::dimensions
    - u32::saturating_mul
    - Err
    - ImageError::Limits
    - LimitError::from_kind
    - image::codecs::webp::WebPDecoder::new
    - DynamicImage::from_decoder
    - Cursor::new
    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: 17
    functionLinenumber: 27
    functionLinenumberEnd: 50
    functionName: main
    functionSourceFile: /src/image/examples/scaledown/main.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - image::open
    - Instant::now
    - ImageResult::unwrap
    - Option::thumbnail
    - File::create
    - io::Result::unwrap
    - Option::resize
    - ImageBuffer::write_to
    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: 12
    functionLinenumber: 9
    functionLinenumberEnd: 18
    functionName: pnm_decode
    functionSourceFile: /src/image/fuzz-afl/reproducers/reproduce_pnm.rs
    functionUses: 0
    functionsReached:
    - ImageResult::dimensions
    - u32::saturating_mul
    - Err
    - ImageError::Limits
    - LimitError::from_kind
    - DynamicImage::from_decoder
    - image::codecs::pnm::PnmDecoder::new
    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: std::io::Result::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: 14
    functionLinenumber: 1
    functionLinenumberEnd: 10
    functionName: read_file_from_args
    functionSourceFile: /src/image/fuzz-afl/reproducers/utils.rs
    functionUses: 0
    functionsReached:
    - std::env::args
    - std::fs::read
    - Vec::len
    - std::io::Result::expect
    - std::process::exit
    - Vec::collect
    linkageType: ''
    returnType: Vec
    signature: pub fn read_file_from_args() -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/metadata.rs:45,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:46,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:47,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:48,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:49,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:50,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:51,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - exif_orientation
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 55
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 55
    functionName: Orientation::from_exif
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 1
    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: 70
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 70
    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:82,1
    - Dst: Option::map
      Src: /src/image/src/metadata.rs:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 14
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: Orientation::from_exif_chunk
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 4
    functionsReached:
    - Self::from_exif_chunk_inner
    - Option::map
    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:94,1
    - Dst: Cursor::new
      Src: /src/image/src/metadata.rs:95,1
    - Dst: Self::set_position
      Src: /src/image/src/metadata.rs:96,1
    - Dst: to_exif
      Src: /src/image/src/metadata.rs:97,1
    - Dst: into
      Src: /src/image/src/metadata.rs:97,1
    - Dst: write_u16::<BigEndian>
      Src: /src/image/src/metadata.rs:99,1
    - Dst: unwrap
      Src: /src/image/src/metadata.rs:99,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/metadata.rs:100,1
    - Dst: unwrap
      Src: /src/image/src/metadata.rs:100,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 14
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: Orientation::remove_from_exif_chunk
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 1
    functionsReached:
    - unwrap
    - to_exif
    - Self::from_exif_chunk_inner
    - Self::set_position
    - Some
    - write_u16::<LittleEndian>
    - write_u16::<BigEndian>
    - into
    - Cursor::new
    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:111,1
    - Dst: Result::read_exact
      Src: /src/image/src/metadata.rs:114,1
    - Dst: std::io::Result::ok
      Src: /src/image/src/metadata.rs:114,1
    - Dst: Self::locate_orientation_entry::<LittleEndian>
      Src: /src/image/src/metadata.rs:118,1
    - Dst: map
      Src: /src/image/src/metadata.rs:118,1
    - Dst: Self::locate_orientation_entry::<BigEndian>
      Src: /src/image/src/metadata.rs:122,1
    - Dst: map
      Src: /src/image/src/metadata.rs:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 128
      start: 110
    functionDepth: 13
    functionLinenumber: 110
    functionLinenumberEnd: 128
    functionName: Orientation::from_exif_chunk_inner
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 0
    functionsReached:
    - Self::locate_orientation_entry::<BigEndian>
    - std::io::Result::ok
    - map
    - Result::read_exact
    - Self::locate_orientation_entry::<LittleEndian>
    - 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:135,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:135,1
    - Dst: Result::set_position
      Src: /src/image/src/metadata.rs:136,1
    - Dst: u64::from
      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: read_u16::<B>
      Src: /src/image/src/metadata.rs:139,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:139,1
    - Dst: read_u16::<B>
      Src: /src/image/src/metadata.rs:140,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:140,1
    - Dst: read_u32::<B>
      Src: /src/image/src/metadata.rs:141,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:141,1
    - Dst: read_u16::<B>
      Src: /src/image/src/metadata.rs:142,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:142,1
    - Dst: read_u16::<B>
      Src: /src/image/src/metadata.rs:143,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:143,1
    - Dst: Result::position
      Src: /src/image/src/metadata.rs:145,1
    - Dst: Self::from_exif
      Src: /src/image/src/metadata.rs:146,1
    - Dst: ImageResult::min
      Src: /src/image/src/metadata.rs:146,1
    - Dst: ImageResult::map
      Src: /src/image/src/metadata.rs:147,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 62
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Cursor<&[u8]>'
    constantsTouched: []
    func_position:
      end: 152
      start: 131
    functionDepth: 14
    functionLinenumber: 131
    functionLinenumberEnd: 152
    functionName: Orientation::locate_orientation_entry
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 0
    functionsReached:
    - u64::from
    - Self::from_exif
    - read_u32::<B>
    - ok
    - read_u16::<B>
    - ImageResult::min
    - Result::position
    - ImageResult::map
    - Result::set_position
    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:173,1
    - Dst: JpegDecoder::new
      Src: /src/image/src/metadata.rs:174,1
    - Dst: ImageResult::expect
      Src: /src/image/src/metadata.rs:174,1
    - Dst: ImageResult::exif_metadata
      Src: /src/image/src/metadata.rs:175,1
    - Dst: Result::expect
      Src: /src/image/src/metadata.rs:175,1
    - Dst: expect
      Src: /src/image/src/metadata.rs:175,1
    - Dst: Orientation::from_exif_chunk
      Src: /src/image/src/metadata.rs:180,1
    - Dst: Option::expect
      Src: /src/image/src/metadata.rs:180,1
    - Dst: Orientation::remove_from_exif_chunk
      Src: /src/image/src/metadata.rs:184,1
    - Dst: Option::expect
      Src: /src/image/src/metadata.rs:184,1
    - Dst: Orientation::from_exif_chunk
      Src: /src/image/src/metadata.rs:188,1
    - Dst: Option::expect
      Src: /src/image/src/metadata.rs:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 172
    functionDepth: 13
    functionLinenumber: 172
    functionLinenumberEnd: 191
    functionName: tests::test_extraction_and_clearing
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 0
    functionsReached:
    - Result::expect
    - expect
    - Orientation::remove_from_exif_chunk
    - Orientation::from_exif_chunk
    - Option::expect
    - ImageResult::exif_metadata
    - ImageResult::expect
    - JpegDecoder::new
    - Cursor::new
    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: 2
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: Enlargeable::clamp_from
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - Self::min_value
    - NumCast::from
    - to_larger
    - Self::max_value
    - Self::unwrap
    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:
    - Self::unwrap
    - NumCast::from
    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:
    - NumCast::from
    - Self::max_value
    - Self::unwrap
    - <Self::Ratio as NumCast>::from
    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: <P::TransformableSubpixel as HelpDispatchTransform>::transform_on::<P>
      Src: /src/image/src/traits.rs:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - transform
    - into
    argTypes:
    - '&cicp::CicpTransform'
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 369
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 369
    functionName: private::dispatch_transform_from_sealed
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - <P::TransformableSubpixel as HelpDispatchTransform>::transform_on::<P>
    linkageType: ''
    returnType: '&''_ CicpApplicable'
    signature: 'pub(crate) fn dispatch_transform_from_sealed<P: SealedPixelWithColorType>(transform:
      &cicp::CicpTransform,into: LayoutWithColor,) -> &''_ CicpApplicable<''_, P::TransformableSubpixel>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dispatch_transform_from_sealed::<P>
      Src: /src/image/src/traits.rs:377,1
    - Dst: Into::layout
      Src: /src/image/src/traits.rs:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - transform
    argTypes:
    - '&cicp::CicpTransform'
    constantsTouched: []
    func_position:
      end: 378
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 378
    functionName: private::double_dispatch_transform_from_sealed
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - dispatch_transform_from_sealed::<P>
    - Into::layout
    linkageType: ''
    returnType: '&''_ CicpApplicable'
    signature: 'pub(crate) fn double_dispatch_transform_from_sealed<P: SealedPixelWithColorType,Into:
      SealedPixelWithColorType,>(transform: &cicp::CicpTransform,) -> &''_ CicpApplicable<''_,
      P::TransformableSubpixel>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: apply_with_alpha
      Src: /src/image/src/traits.rs:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 519
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 519
    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:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 528
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 528
    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:
    - Dst: read
      Src: /src/image/src/hooks.rs:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: GenericReader::read
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_vectored
      Src: /src/image/src/hooks.rs:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bufs
    argTypes:
    - '&mut [std::io::IoSliceMut<''_>]'
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: GenericReader::read_vectored
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - read_vectored
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn read_vectored(&mut self, bufs: &mut [std::io::IoSliceMut<''_>])
      -> std::io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_to_end
      Src: /src/image/src/hooks.rs:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: GenericReader::read_to_end
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - read_to_end
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn read_to_end(&mut self, buf: &mut Vec<u8>) -> std::io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_to_string
      Src: /src/image/src/hooks.rs:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut String'
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: GenericReader::read_to_string
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - read_to_string
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn read_to_string(&mut self, buf: &mut String) -> std::io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_exact
      Src: /src/image/src/hooks.rs:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: GenericReader::read_exact
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - read_exact
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn read_exact(&mut self, buf: &mut [u8]) -> std::io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fill_buf
      Src: /src/image/src/hooks.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: GenericReader::fill_buf
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - fill_buf
    linkageType: ''
    returnType: std::io::Result
    signature: fn fill_buf(&mut self) -> std::io::Result<&[u8]>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: consume
      Src: /src/image/src/hooks.rs:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - amt
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: GenericReader::consume
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - consume
    linkageType: ''
    returnType: void
    signature: 'fn consume(&mut self, amt: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_until
      Src: /src/image/src/hooks.rs:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - byte
    - buf
    argTypes:
    - u8
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: GenericReader::read_until
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - read_until
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> std::io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_line
      Src: /src/image/src/hooks.rs:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut String'
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: GenericReader::read_line
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - read_line
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn read_line(&mut self, buf: &mut String) -> std::io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek
      Src: /src/image/src/hooks.rs:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pos
    argTypes:
    - std::io::SeekFrom
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: GenericReader::seek
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - seek
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn seek(&mut self, pos: std::io::SeekFrom) -> std::io::Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rewind
      Src: /src/image/src/hooks.rs:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: GenericReader::rewind
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - rewind
    linkageType: ''
    returnType: std::io::Result
    signature: fn rewind(&mut self) -> std::io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stream_position
      Src: /src/image/src/hooks.rs:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: GenericReader::stream_position
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - stream_position
    linkageType: ''
    returnType: std::io::Result
    signature: fn stream_position(&mut self) -> std::io::Result<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/image/src/hooks.rs:75,1
    - Dst: unwrap
      Src: /src/image/src/hooks.rs:75,1
    - Dst: is_none
      Src: /src/image/src/hooks.rs:76,1
    - Dst: Some
      Src: /src/image/src/hooks.rs:77,1
    - Dst: HashMap::new
      Src: /src/image/src/hooks.rs:77,1
    - Dst: as_mut
      Src: /src/image/src/hooks.rs:79,1
    - Dst: unwrap
      Src: /src/image/src/hooks.rs:79,1
    - Dst: entry
      Src: /src/image/src/hooks.rs:79,1
    - Dst: Option::insert
      Src: /src/image/src/hooks.rs:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 2
    argNames:
    - extension
    - hook
    argTypes:
    - OsString
    - DecodingHook
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 13
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: register_decoding_hook
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - Option::insert
    - unwrap
    - entry
    - as_mut
    - Some
    - HashMap::new
    - is_none
    - write
    linkageType: ''
    returnType: bool
    signature: 'pub fn register_decoding_hook(extension: OsString, hook: DecodingHook)
      -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/image/src/hooks.rs:90,1
    - Dst: unwrap
      Src: /src/image/src/hooks.rs:90,1
    - Dst: as_ref
      Src: /src/image/src/hooks.rs:90,1
    - Dst: map
      Src: /src/image/src/hooks.rs:90,1
    - Dst: contains_key
      Src: /src/image/src/hooks.rs:94,1
    - Dst: unwrap_or
      Src: /src/image/src/hooks.rs:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - extension
    argTypes:
    - '&OsStr'
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 14
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: decoding_hook_registered
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - unwrap
    - map
    - read
    - unwrap_or
    - contains_key
    linkageType: ''
    returnType: bool
    signature: 'pub fn decoding_hook_registered(extension: &OsStr) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/image/src/hooks.rs:135,1
    - Dst: unwrap
      Src: /src/image/src/hooks.rs:135,1
    - Dst: push
      Src: /src/image/src/hooks.rs:135,1
    - Dst: ImageResult::unwrap_or
      Src: /src/image/src/hooks.rs:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - extension
    - signature
    - mask
    argTypes:
    - OsString
    - '&''static [u8]'
    - Option<&'static [u8]>
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: register_format_detection_hook
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - push
    - unwrap
    - write
    - ImageResult::unwrap_or
    linkageType: ''
    returnType: void
    signature: 'pub fn register_format_detection_hook(extension: OsString,signature:
      &''static [u8],mask: Option<&''static [u8]>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: ColorType::bytes_per_pixel
    functionSourceFile: /src/image/src/color.rs
    functionUses: 5
    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: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: ColorType::has_alpha
    functionSourceFile: /src/image/src/color.rs
    functionUses: 1
    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: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    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:79,1
    - Dst: ColorType::bytes_per_pixel
      Src: /src/image/src/color.rs:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: ColorType::bits_per_pixel
    functionSourceFile: /src/image/src/color.rs
    functionUses: 1
    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:85,1
    - Dst: ::std::io::Result::channel_count
      Src: /src/image/src/color.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 12
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: ColorType::channel_count
    functionSourceFile: /src/image/src/color.rs
    functionUses: 2
    functionsReached:
    - ColorType::into
    - ::std::io::Result::channel_count
    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: 200
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 200
    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: 234
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 234
    functionName: ExtendedColorType::bits_per_pixel
    functionSourceFile: /src/image/src/color.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn bits_per_pixel(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/color.rs:261,1
    - Dst: Some
      Src: /src/image/src/color.rs:262,1
    - Dst: Some
      Src: /src/image/src/color.rs:263,1
    - Dst: Some
      Src: /src/image/src/color.rs:264,1
    - Dst: Some
      Src: /src/image/src/color.rs:265,1
    - Dst: Some
      Src: /src/image/src/color.rs:266,1
    - Dst: Some
      Src: /src/image/src/color.rs:267,1
    - Dst: Some
      Src: /src/image/src/color.rs:268,1
    - Dst: Some
      Src: /src/image/src/color.rs:269,1
    - Dst: Some
      Src: /src/image/src/color.rs:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 273
    functionName: ExtendedColorType::color_type
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn color_type(&self) -> Option<ColorType>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExtendedColorType::bits_per_pixel
      Src: /src/image/src/color.rs:277,1
    - Dst: div_ceil
      Src: /src/image/src/color.rs:278,1
    - Dst: saturating_mul
      Src: /src/image/src/color.rs:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 13
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: ExtendedColorType::buffer_size
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - ExtendedColorType::bits_per_pixel
    - saturating_mul
    - div_ceil
    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: 297
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 297
    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: ImageResult::color_type
      Src: /src/image/src/color.rs:304,1
    - Dst: Option::ok_or
      Src: /src/image/src/color.rs:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: ColorType::try_from
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Option::ok_or
    - ImageResult::color_type
    linkageType: ''
    returnType: Result
    signature: 'fn try_from(value: ExtendedColorType) -> Result<ColorType, Self::Error>'
  - 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: 464
      start: 310
    functionDepth: 14
    functionLinenumber: 310
    functionLinenumberEnd: 464
    functionName: define_colors
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - zip
    - apply2
    - from_color
    - clone
    - Zero::zero
    - apply_with_alpha
    - copy_from_slice
    - Luma
    - iter_mut
    - Invert::invert
    - LumaA
    - Self
    - Rgba
    - Rgb
    - g
    - '&[T]::as_mut_ptr'
    - <$ident<T> as Pixel>::from_slice
    - '&[T]::as_ptr'
    - iter
    - apply
    - f
    - get_mut
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - sample
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 489
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 489
    functionName: T::from_primitive
    functionSourceFile: /src/image/src/color.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from_primitive(sample: T) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f32::max
      Src: /src/image/src/color.rs:502,1
    - Dst: round
      Src: /src/image/src/color.rs:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - float
    - max
    argTypes:
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 504
      start: 500
    functionDepth: 14
    functionLinenumber: 500
    functionLinenumberEnd: 504
    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:531,1
    - Dst: from
      Src: /src/image/src/color.rs:531,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - c16
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 532
      start: 521
    functionDepth: 3
    functionLinenumber: 521
    functionLinenumberEnd: 532
    functionName: u8::from_primitive
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - from
    - Self::unwrap
    - NumCast::from
    linkageType: ''
    returnType: Self
    signature: 'fn from_primitive(c16: u16) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::to_u64
      Src: /src/image/src/color.rs:551,1
    - Dst: Option::unwrap
      Src: /src/image/src/color.rs:551,1
    - Dst: NumCast::from
      Src: /src/image/src/color.rs:552,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - c8
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 553
      start: 550
    functionDepth: 15
    functionLinenumber: 550
    functionLinenumberEnd: 553
    functionName: u16::from_primitive
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - NumCast::from
    - u8::to_u64
    - Self::unwrap
    - Option::unwrap
    linkageType: ''
    returnType: Self
    signature: 'fn from_primitive(c8: u8) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::into
      Src: /src/image/src/color.rs:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - impl Into<u32>
    constantsTouched: []
    func_position:
      end: 524
      start: 522
    functionDepth: 12
    functionLinenumber: 522
    functionLinenumberEnd: 524
    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:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - int
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 546
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 546
    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:581,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:581,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:581,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:581,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:581,1
    - Dst: from_color
      Src: /src/image/src/color.rs:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 584
      start: 577
    functionDepth: 14
    functionLinenumber: 577
    functionLinenumberEnd: 584
    functionName: S::into_color
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Zero::zero
    - from_color
    - O::from_channels
    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:593,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:593,1
    - Dst: to_larger
      Src: /src/image/src/color.rs:593,1
    - Dst: <T::Larger as NumCast>::from
      Src: /src/image/src/color.rs:594,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:594,1
    - Dst: to_larger
      Src: /src/image/src/color.rs:594,1
    - Dst: <T::Larger as NumCast>::from
      Src: /src/image/src/color.rs:595,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:595,1
    - Dst: to_larger
      Src: /src/image/src/color.rs:595,1
    - Dst: T::clamp_from
      Src: /src/image/src/color.rs:596,1
    - Dst: <T::Larger as NumCast>::from
      Src: /src/image/src/color.rs:596,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 1
    argNames:
    - rgb
    argTypes:
    - '&[T]'
    constantsTouched: []
    func_position:
      end: 597
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 597
    functionName: rgb_to_luma
    functionSourceFile: /src/image/src/color.rs
    functionUses: 1
    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:636,1
    - Dst: '&Rgba<S>::channels'
      Src: /src/image/src/color.rs:637,1
    - Dst: rgb_to_luma
      Src: /src/image/src/color.rs:638,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Rgba<S>'
    constantsTouched: []
    func_position:
      end: 640
      start: 635
    functionDepth: 4
    functionLinenumber: 635
    functionLinenumberEnd: 640
    functionName: Luma::from_color
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - rgb_to_luma
    - '&Rgba<S>::channels'
    - Luma::channels_mut
    - T::from_primitive
    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:686,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:687,1
    - Dst: '&Luma<S>::channels'
      Src: /src/image/src/color.rs:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Luma<S>'
    constantsTouched: []
    func_position:
      end: 689
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 689
    functionName: LumaA::from_color
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - LumaA::channels_mut
    - T::from_primitive
    - '&Luma<S>::channels'
    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:743,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:744,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - gray
    argTypes:
    - '&Luma<S>'
    constantsTouched: []
    func_position:
      end: 747
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 747
    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:798,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:799,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Luma<S>'
    constantsTouched: []
    func_position:
      end: 801
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 801
    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:813,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:813,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:818,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:818,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:819,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:819,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: LumaA
      Src: /src/image/src/color.rs:836,1
    - Dst: NumCast::from
      Src: /src/image/src/color.rs:837,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:837,1
    - Dst: NumCast::from
      Src: /src/image/src/color.rs:838,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 64
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&LumaA<T>'
    constantsTouched: []
    func_position:
      end: 840
      start: 811
    functionDepth: 3
    functionLinenumber: 811
    functionLinenumberEnd: 840
    functionName: LumaA::blend
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - LumaA
    - to_f32
    - NumCast::from
    - Self::unwrap
    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: 846
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 846
    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:853,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:863,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:863,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:867,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:867,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:868,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:868,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:869,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:869,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:870,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:870,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:873,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:873,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:874,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:874,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:875,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:875,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:876,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:876,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:904,1
    - Dst: NumCast::from
      Src: /src/image/src/color.rs:905,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:905,1
    - Dst: NumCast::from
      Src: /src/image/src/color.rs:906,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:906,1
    - Dst: NumCast::from
      Src: /src/image/src/color.rs:907,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:907,1
    - Dst: NumCast::from
      Src: /src/image/src/color.rs:908,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:908,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 137
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Rgba<T>'
    constantsTouched: []
    func_position:
      end: 910
      start: 850
    functionDepth: 3
    functionLinenumber: 850
    functionLinenumberEnd: 910
    functionName: Rgba::blend
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - to_f32
    - NumCast::from
    - Rgba
    - is_zero
    - Self::unwrap
    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: 916
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 916
    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:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 931
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 931
    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:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 942
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 942
    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:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 952
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 952
    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:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 966
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 966
    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:975,1
    - Dst: apply_with_alpha
      Src: /src/image/src/color.rs:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 978
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 978
    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:982,1
    - Dst: apply_with_alpha
      Src: /src/image/src/color.rs:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 985
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 985
    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:989,1
    - Dst: map_with_alpha
      Src: /src/image/src/color.rs:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 991
      start: 988
    functionDepth: 0
    functionLinenumber: 988
    functionLinenumberEnd: 991
    functionName: tests::test_map_with_alpha_rgba
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - map_with_alpha
    - Rgba
    linkageType: ''
    returnType: void
    signature: fn test_map_with_alpha_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgb
      Src: /src/image/src/color.rs:995,1
    - Dst: map_with_alpha
      Src: /src/image/src/color.rs:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 997
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 997
    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:1001,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:1002,1
    - Dst: blend
      Src: /src/image/src/color.rs:1003,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:1007,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:1008,1
    - Dst: blend
      Src: /src/image/src/color.rs:1009,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:1013,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:1014,1
    - Dst: blend
      Src: /src/image/src/color.rs:1015,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:1019,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:1020,1
    - Dst: blend
      Src: /src/image/src/color.rs:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1000
    functionDepth: 4
    functionLinenumber: 1000
    functionLinenumberEnd: 1024
    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:1028,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1029,1
    - Dst: blend
      Src: /src/image/src/color.rs:1030,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1033,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1034,1
    - Dst: blend
      Src: /src/image/src/color.rs:1035,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1038,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1039,1
    - Dst: blend
      Src: /src/image/src/color.rs:1040,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1043,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1044,1
    - Dst: blend
      Src: /src/image/src/color.rs:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1027
    functionDepth: 4
    functionLinenumber: 1027
    functionLinenumberEnd: 1047
    functionName: tests::test_blend_rgba
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - blend
    - Rgba
    linkageType: ''
    returnType: void
    signature: fn test_blend_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgba
      Src: /src/image/src/color.rs:1051,1
    - Dst: apply_without_alpha
      Src: /src/image/src/color.rs:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1054
    functionName: tests::test_apply_without_alpha_rgba
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - apply_without_alpha
    - Rgba
    linkageType: ''
    returnType: void
    signature: fn test_apply_without_alpha_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgb
      Src: /src/image/src/color.rs:1058,1
    - Dst: apply_without_alpha
      Src: /src/image/src/color.rs:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1057
    functionDepth: 1
    functionLinenumber: 1057
    functionLinenumberEnd: 1061
    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:1065,1
    - Dst: map_without_alpha
      Src: /src/image/src/color.rs:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1064
    functionDepth: 1
    functionLinenumber: 1064
    functionLinenumberEnd: 1067
    functionName: tests::test_map_without_alpha_rgba
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - map_without_alpha
    - Rgba
    linkageType: ''
    returnType: void
    signature: fn test_map_without_alpha_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgb
      Src: /src/image/src/color.rs:1071,1
    - Dst: map_without_alpha
      Src: /src/image/src/color.rs:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1073
    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: 1095
      start: 1087
    functionDepth: 0
    functionLinenumber: 1087
    functionLinenumberEnd: 1095
    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:1100,1
    - Dst: u8::to_luma
      Src: /src/image/src/color.rs:1101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1098
    functionDepth: 3
    functionLinenumber: 1098
    functionLinenumberEnd: 1103
    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: 14
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: R::read_exact_vec
    functionSourceFile: /src/image/src/io.rs
    functionUses: 0
    functionsReached:
    - io::Result::len
    - Err
    - into
    - err
    - Ok
    - unwrap_or
    - io::Result::truncate
    - R::take
    - io::Result::try_reserve
    - read_to_end
    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: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: UnsupportedError::from_format_and_kind
    functionSourceFile: /src/image/src/error.rs
    functionUses: 45
    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:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 220
    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:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 226
    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:234,1
    - Dst: ImageError::into
      Src: /src/image/src/error.rs:234,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: 236
      start: 231
    functionDepth: 12
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: DecodingError::new
    functionSourceFile: /src/image/src/error.rs
    functionUses: 21
    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: 247
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 247
    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:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 253
    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:261,1
    - Dst: ImageError::into
      Src: /src/image/src/error.rs:261,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: 263
      start: 258
    functionDepth: 12
    functionLinenumber: 258
    functionLinenumberEnd: 263
    functionName: EncodingError::new
    functionSourceFile: /src/image/src/error.rs
    functionUses: 7
    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: 274
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 274
    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:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 280
    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: 291
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: ParameterError::from_kind
    functionSourceFile: /src/image/src/error.rs
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_kind(kind: ParameterErrorKind) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/error.rs:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 297
    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: 305
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: LimitError::from_kind
    functionSourceFile: /src/image/src/error.rs
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_kind(kind: LimitErrorKind) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/error.rs:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 311
    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: 317
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 317
    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: 13
    functionLinenumber: 1478
    functionLinenumberEnd: 1506
    functionName: ImageError::from
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - DecodingError::new
    - ImageError::Parameter
    - ImageError::Unsupported
    - bool::into
    - UnsupportedErrorKind::Color
    - NormalFormRequiredError
    - ImageError::Decoding
    - ParameterError::from_kind
    - UnsupportedError::from_format_and_kind
    linkageType: ''
    returnType: ImageError
    signature: 'fn from(error: Error) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::extension
      Src: /src/image/src/error.rs:340,1
    - Dst: ImageFormatHint::PathExtension
      Src: /src/image/src/error.rs:341,1
    - Dst: Option::into
      Src: /src/image/src/error.rs:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&''_ std::path::Path'
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 15
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: ImageFormatHint::from
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - Option::into
    - ImageFormatHint::PathExtension
    - ImageResult::extension
    linkageType: ''
    returnType: Self
    signature: 'fn from(path: &''_ std::path::Path) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageFormatHint::clone
      Src: /src/image/src/error.rs:350,1
    - Dst: UnsupportedErrorKind::Format
      Src: /src/image/src/error.rs:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hint
    argTypes:
    - ImageFormatHint
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 2
    functionLinenumber: 348
    functionLinenumberEnd: 353
    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:362,1
    - Dst: ImageError::fmt
      Src: /src/image/src/error.rs:363,1
    - Dst: ImageError::fmt
      Src: /src/image/src/error.rs:364,1
    - Dst: ImageError::fmt
      Src: /src/image/src/error.rs:365,1
    - Dst: ImageError::fmt
      Src: /src/image/src/error.rs:366,1
    - Dst: ImageError::fmt
      Src: /src/image/src/error.rs:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 369
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 369
    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:375,1
    - Dst: ImageError::source
      Src: /src/image/src/error.rs:376,1
    - Dst: ImageError::source
      Src: /src/image/src/error.rs:377,1
    - Dst: ImageError::source
      Src: /src/image/src/error.rs:378,1
    - Dst: ImageError::source
      Src: /src/image/src/error.rs:379,1
    - Dst: ImageError::source
      Src: /src/image/src/error.rs:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 382
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 382
    functionName: ImageError::source
    functionSourceFile: /src/image/src/error.rs
    functionUses: 3
    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: 422
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 422
    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:459,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 460
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 460
    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:467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 469
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 469
    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: 482
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 482
    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:489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 491
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 491
    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: 505
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 505
    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:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 514
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 514
    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:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 527
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 527
    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: 540
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 540
    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: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 565
      start: 559
    functionDepth: 0
    functionLinenumber: 559
    functionLinenumberEnd: 565
    functionName: TryFromExtendedColorError::fmt
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 590
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 590
    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:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 593
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 593
    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: 304
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 304
    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: 3
    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:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - RgbaImage
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 95
    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: 106
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: Frame::from_parts
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 1
    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: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Frame::delay
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 1
    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: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    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: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    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: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Frame::into_buffer
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 1
    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: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    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: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    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:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: Delay::from_numer_denom_ms
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 3
    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:186,1
    - Dst: min
      Src: /src/image/src/animation.rs:186,1
    - Dst: Self::as_nanos
      Src: /src/image/src/animation.rs:187,1
    - Dst: Self::closest_bounded_fraction
      Src: /src/image/src/animation.rs:196,1
    - Dst: Self::from_numer_denom_ms
      Src: /src/image/src/animation.rs:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - duration
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 198
      start: 175
    functionDepth: 5
    functionLinenumber: 175
    functionLinenumberEnd: 198
    functionName: Delay::from_saturating_duration
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 4
    functionsReached:
    - min
    - Self::as_millis
    - Self::from_numer_denom_ms
    - Self::closest_bounded_fraction
    - Self::as_nanos
    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: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    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: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: Delay::from_ratio
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 2
    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: 215
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: Delay::into_ratio
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Ratio
    signature: pub(crate) fn into_ratio(self) -> Ratio
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmp
      Src: /src/image/src/animation.rs:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames: []
    argTypes:
    - (u64, u64)
    - (u64, u64)
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 5
    functionLinenumber: 232
    functionLinenumberEnd: 234
    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:241,1
    - Dst: min
      Src: /src/image/src/animation.rs:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames: []
    argTypes:
    - (u64, u64)
    - (u64, u64)
    constantsTouched: []
    func_position:
      end: 244
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 244
    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:
    - min
    - max
    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:246,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:246,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:252,1
    - Dst: compare_fraction
      Src: /src/image/src/animation.rs:258,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:263,1
    - Dst: compare_fraction
      Src: /src/image/src/animation.rs:270,1
    - Dst: abs_diff_nom
      Src: /src/image/src/animation.rs:281,1
    - Dst: abs_diff_nom
      Src: /src/image/src/animation.rs:283,1
    - Dst: cmp
      Src: /src/image/src/animation.rs:288,1
    - Dst: compare_fraction
      Src: /src/image/src/animation.rs:296,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 89
    argCount: 3
    argNames:
    - denom_bound
    - nom
    - denom
    argTypes:
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 307
      start: 221
    functionDepth: 4
    functionLinenumber: 221
    functionLinenumberEnd: 307
    functionName: Delay::closest_bounded_fraction
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - abs_diff_nom
    - u64::from
    - compare_fraction
    - cmp
    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:312,1
    - Dst: Self::to_integer
      Src: /src/image/src/animation.rs:313,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:315,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:315,1
    - Dst: Duration::from_millis
      Src: /src/image/src/animation.rs:316,1
    - Dst: Self::into
      Src: /src/image/src/animation.rs:316,1
    - Dst: Duration::from_nanos
      Src: /src/image/src/animation.rs:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - delay
    argTypes:
    - Delay
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 12
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: Duration::from
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 2
    functionsReached:
    - u64::from
    - Duration::from_millis
    - Duration::from_nanos
    - Delay::into_ratio
    - Self::into
    - Self::to_integer
    linkageType: ''
    returnType: Self
    signature: 'fn from(delay: Delay) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rem_euclid
      Src: /src/image/src/animation.rs:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 326
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 326
    functionName: gcd
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 1
    functionsReached:
    - rem_euclid
    linkageType: ''
    returnType: u32
    signature: 'const fn gcd(mut a: u32, mut b: u32) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gcd
      Src: /src/image/src/animation.rs:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - numerator
    - denominator
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 343
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 343
    functionName: Ratio::new
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 2
    functionsReached:
    - gcd
    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: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: Ratio::to_integer
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 1
    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:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 4
    functionLinenumber: 352
    functionLinenumberEnd: 354
    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:361,1
    - Dst: Ratio::cmp
      Src: /src/image/src/animation.rs:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 362
      start: 360
    functionDepth: 4
    functionLinenumber: 360
    functionLinenumberEnd: 362
    functionName: Ratio::partial_cmp
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Ratio::cmp
    - Some
    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:382,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:382,1
    - Dst: cmp
      Src: /src/image/src/animation.rs:382,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:382,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 383
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 383
    functionName: Ratio::cmp
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 2
    functionsReached:
    - u64::from
    - cmp
    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:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 394
    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:398,1
    - Dst: Duration::from
      Src: /src/image/src/animation.rs:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 397
    functionDepth: 13
    functionLinenumber: 397
    functionLinenumberEnd: 403
    functionName: tests::fps_30
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Duration::from
    - Delay::from_numer_denom_ms
    linkageType: ''
    returnType: void
    signature: fn fps_30()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Duration::from_secs
      Src: /src/image/src/animation.rs:407,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 406
    functionDepth: 6
    functionLinenumber: 406
    functionLinenumberEnd: 410
    functionName: tests::duration_outlier
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Duration::from_secs
    - Delay::from_saturating_duration
    linkageType: ''
    returnType: void
    signature: fn duration_outlier()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Duration::from_millis
      Src: /src/image/src/animation.rs:414,1
    - Dst: Duration::from_micros
      Src: /src/image/src/animation.rs:414,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:415,1
    - Dst: Duration::from_millis
      Src: /src/image/src/animation.rs:418,1
    - Dst: Duration::from_micros
      Src: /src/image/src/animation.rs:418,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:419,1
    - Dst: Duration::from_millis
      Src: /src/image/src/animation.rs:423,1
    - Dst: Duration::from_micros
      Src: /src/image/src/animation.rs:423,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 427
      start: 413
    functionDepth: 6
    functionLinenumber: 413
    functionLinenumberEnd: 427
    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:433,1
    - Dst: Duration::from_nanos
      Src: /src/image/src/animation.rs:433,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 436
      start: 430
    functionDepth: 6
    functionLinenumber: 430
    functionLinenumberEnd: 436
    functionName: tests::precise
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Duration::from_secs
    - Duration::from_nanos
    - Delay::from_saturating_duration
    linkageType: ''
    returnType: void
    signature: fn precise()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Delay::from_numer_denom_ms
      Src: /src/image/src/animation.rs:441,1
    - Dst: Duration::from
      Src: /src/image/src/animation.rs:442,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 439
    functionDepth: 13
    functionLinenumber: 439
    functionLinenumberEnd: 447
    functionName: tests::small
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Delay::from_saturating_duration
    - Duration::from
    - Delay::from_numer_denom_ms
    linkageType: ''
    returnType: void
    signature: fn small()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::default
      Src: /src/image/src/io/image_reader_type.rs:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffered_reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 95
    functionName: ImageReader::new
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 2
    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:104,1
    - Dst: Format::BuiltIn
      Src: /src/image/src/io/image_reader_type.rs:104,1
    - Dst: Limits::default
      Src: /src/image/src/io/image_reader_type.rs:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buffered_reader
    - format
    argTypes:
    - R
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: ImageReader::with_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Format::BuiltIn
    - Limits::default
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_format(buffered_reader: R, format: ImageFormat) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/io/image_reader_type.rs:112,1
    - Dst: ImageFormat::from_extension
      Src: /src/image/src/io/image_reader_type.rs:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 15
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: ImageReader::format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - ImageFormat::from_extension
    - Some
    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:120,1
    - Dst: Format::BuiltIn
      Src: /src/image/src/io/image_reader_type.rs:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: ImageReader::set_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Format::BuiltIn
    - 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: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    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:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 134
    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: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    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: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    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: read
      Src: /src/image/src/io/image_reader_type.rs:163,1
    - Dst: unwrap
      Src: /src/image/src/io/image_reader_type.rs:163,1
    - Dst: as_ref
      Src: /src/image/src/io/image_reader_type.rs:164,1
    - Dst: get
      Src: /src/image/src/io/image_reader_type.rs:165,1
    - Dst: hook
      Src: /src/image/src/io/image_reader_type.rs:166,1
    - Dst: hooks::GenericReader
      Src: /src/image/src/io/image_reader_type.rs:166,1
    - Dst: BufReader::new
      Src: /src/image/src/io/image_reader_type.rs:166,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:166,1
    - Dst: ImageFormat::from_extension
      Src: /src/image/src/io/image_reader_type.rs:171,1
    - Dst: Option::ok_or
      Src: /src/image/src/io/image_reader_type.rs:171,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/image_reader_type.rs:171,1
    - Dst: ImageFormatHint::PathExtension
      Src: /src/image/src/io/image_reader_type.rs:172,1
    - Dst: Option::into
      Src: /src/image/src/io/image_reader_type.rs:172,1
    - Dst: into
      Src: /src/image/src/io/image_reader_type.rs:172,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:179,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:181,1
    - Dst: avif::AvifDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:181,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:183,1
    - Dst: png::PngDecoder::with_limits
      Src: /src/image/src/io/image_reader_type.rs:183,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:185,1
    - Dst: gif::GifDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:185,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:187,1
    - Dst: jpeg::JpegDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:187,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:189,1
    - Dst: webp::WebPDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:189,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:191,1
    - Dst: tiff::TiffDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:191,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:193,1
    - Dst: tga::TgaDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:193,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:195,1
    - Dst: dds::DdsDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:195,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:197,1
    - Dst: bmp::BmpDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:197,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:199,1
    - Dst: ico::IcoDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:199,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:201,1
    - Dst: hdr::HdrDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:201,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:203,1
    - Dst: openexr::OpenExrDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:203,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:205,1
    - Dst: pnm::PnmDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:205,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:207,1
    - Dst: farbfeld::FarbfeldDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:207,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:209,1
    - Dst: qoi::QoiDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:209,1
    - Dst: Err
      Src: /src/image/src/io/image_reader_type.rs:211,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/image_reader_type.rs:211,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/io/image_reader_type.rs:212,1
    - Dst: into
      Src: /src/image/src/io/image_reader_type.rs:212,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 86
    argCount: 3
    argNames:
    - format
    - reader
    - limits_for_png
    argTypes:
    - Format
    - R
    - Limits
    constantsTouched: []
    func_position:
      end: 216
      start: 151
    functionDepth: 9
    functionLinenumber: 151
    functionLinenumberEnd: 216
    functionName: ImageReader::make_decoder
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - get
    - unwrap
    - ImageFormatHint::PathExtension
    - ImageFormat::from_extension
    - tiff::TiffDecoder::new
    - gif::GifDecoder::new
    - dds::DdsDecoder::new
    - qoi::QoiDecoder::new
    - tga::TgaDecoder::new
    - png::PngDecoder::with_limits
    - Err
    - ImageFormatHint::Exact
    - read
    - avif::AvifDecoder::new
    - hdr::HdrDecoder::new
    - Box::new
    - ico::IcoDecoder::new
    - pnm::PnmDecoder::new
    - hooks::GenericReader
    - hook
    - Option::ok_or
    - into
    - farbfeld::FarbfeldDecoder::new
    - BufReader::new
    - ImageError::Unsupported
    - webp::WebPDecoder::new
    - Ok
    - Option::into
    - jpeg::JpegDecoder::new
    - openexr::OpenExrDecoder::new
    - bmp::BmpDecoder::new
    linkageType: ''
    returnType: ImageResult
    signature: 'fn make_decoder(format: Format,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:221,1
    - Dst: ImageReader::require_format
      Src: /src/image/src/io/image_reader_type.rs:221,1
    - Dst: clone
      Src: /src/image/src/io/image_reader_type.rs:221,1
    - Dst: ImageResult::set_limits
      Src: /src/image/src/io/image_reader_type.rs:222,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 10
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: ImageReader::into_decoder
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 1
    functionsReached:
    - Self::make_decoder
    - clone
    - Ok
    - ImageResult::set_limits
    - ImageReader::require_format
    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:255,1
    - Dst: Self::or
      Src: /src/image/src/io/image_reader_type.rs:257,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 259
      start: 254
    functionDepth: 14
    functionLinenumber: 254
    functionLinenumberEnd: 259
    functionName: ImageReader::with_guessed_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - ImageReader::guess_format
    - Ok
    - Self::or
    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:265,1
    - Dst: io::copy
      Src: /src/image/src/io/image_reader_type.rs:266,1
    - Dst: by_ref
      Src: /src/image/src/io/image_reader_type.rs:268,1
    - Dst: take
      Src: /src/image/src/io/image_reader_type.rs:268,1
    - Dst: Cursor::new
      Src: /src/image/src/io/image_reader_type.rs:269,1
    - Dst: seek
      Src: /src/image/src/io/image_reader_type.rs:271,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/io/image_reader_type.rs:271,1
    - Dst: read
      Src: /src/image/src/io/image_reader_type.rs:273,1
    - Dst: unwrap
      Src: /src/image/src/io/image_reader_type.rs:273,1
    - Dst: ImageResult::is_empty
      Src: /src/image/src/io/image_reader_type.rs:275,1
    - Dst: ImageResult::starts_with
      Src: /src/image/src/io/image_reader_type.rs:276,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:277,1
    - Dst: Some
      Src: /src/image/src/io/image_reader_type.rs:277,1
    - Dst: Format::Extension
      Src: /src/image/src/io/image_reader_type.rs:277,1
    - Dst: Option::clone
      Src: /src/image/src/io/image_reader_type.rs:277,1
    - Dst: ImageResult::len
      Src: /src/image/src/io/image_reader_type.rs:279,1
    - Dst: len
      Src: /src/image/src/io/image_reader_type.rs:279,1
    - Dst: ImageResult::iter
      Src: /src/image/src/io/image_reader_type.rs:280,1
    - Dst: zip
      Src: /src/image/src/io/image_reader_type.rs:280,1
    - Dst: std::iter
      Src: /src/image/src/io/image_reader_type.rs:282,1
    - Dst: zip
      Src: /src/image/src/io/image_reader_type.rs:280,1
    - Dst: ImageResult::iter
      Src: /src/image/src/io/image_reader_type.rs:283,1
    - Dst: chain
      Src: /src/image/src/io/image_reader_type.rs:283,1
    - Dst: iter::repeat
      Src: /src/image/src/io/image_reader_type.rs:283,1
    - Dst: all
      Src: /src/image/src/io/image_reader_type.rs:280,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:286,1
    - Dst: Some
      Src: /src/image/src/io/image_reader_type.rs:286,1
    - Dst: Format::Extension
      Src: /src/image/src/io/image_reader_type.rs:286,1
    - Dst: Option::clone
      Src: /src/image/src/io/image_reader_type.rs:286,1
    - Dst: free_functions::guess_format_impl
      Src: /src/image/src/io/image_reader_type.rs:290,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:291,1
    - Dst: Some
      Src: /src/image/src/io/image_reader_type.rs:291,1
    - Dst: Format::BuiltIn
      Src: /src/image/src/io/image_reader_type.rs:291,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:294,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 261
    functionDepth: 13
    functionLinenumber: 261
    functionLinenumberEnd: 295
    functionName: ImageReader::guess_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 1
    functionsReached:
    - std::iter
    - ImageResult::starts_with
    - unwrap
    - ImageResult::len
    - Format::Extension
    - iter::repeat
    - Option::clone
    - zip
    - seek
    - take
    - stream_position
    - read
    - free_functions::guess_format_impl
    - ImageResult::is_empty
    - ImageResult::iter
    - all
    - io::copy
    - len
    - Format::BuiltIn
    - Cursor::new
    - chain
    - SeekFrom::Start
    - Some
    - by_ref
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: fn guess_format(&mut self) -> io::Result<Option<Format>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReader::into_decoder
      Src: /src/image/src/io/image_reader_type.rs:303,1
    - Dst: ImageResult::map
      Src: /src/image/src/io/image_reader_type.rs:303,1
    - Dst: dimensions
      Src: /src/image/src/io/image_reader_type.rs:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 11
    functionLinenumber: 302
    functionLinenumberEnd: 304
    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:312,1
    - Dst: Self::make_decoder
      Src: /src/image/src/io/image_reader_type.rs:315,1
    - Dst: Limits::clone
      Src: /src/image/src/io/image_reader_type.rs:315,1
    - Dst: Limits::reserve
      Src: /src/image/src/io/image_reader_type.rs:319,1
    - Dst: ImageResult::total_bytes
      Src: /src/image/src/io/image_reader_type.rs:319,1
    - Dst: ImageResult::set_limits
      Src: /src/image/src/io/image_reader_type.rs:320,1
    - Dst: DynamicImage::from_decoder
      Src: /src/image/src/io/image_reader_type.rs:322,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 323
      start: 311
    functionDepth: 10
    functionLinenumber: 311
    functionLinenumberEnd: 323
    functionName: ImageReader::decode
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Self::make_decoder
    - Limits::clone
    - Limits::reserve
    - ImageResult::total_bytes
    - DynamicImage::from_decoder
    - ImageResult::set_limits
    - ImageReader::require_format
    linkageType: ''
    returnType: ImageResult
    signature: pub fn decode(mut self) -> ImageResult<DynamicImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/io/image_reader_type.rs:326,1
    - Dst: ok_or_else
      Src: /src/image/src/io/image_reader_type.rs:326,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/image_reader_type.rs:327,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/io/image_reader_type.rs:327,1
    - Dst: UnsupportedErrorKind::Format
      Src: /src/image/src/io/image_reader_type.rs:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 332
    functionName: ImageReader::require_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 2
    functionsReached:
    - ok_or_else
    - ImageError::Unsupported
    - clone
    - UnsupportedErrorKind::Format
    - UnsupportedError::from_format_and_kind
    linkageType: ''
    returnType: ImageResult
    signature: fn require_format(&mut self) -> ImageResult<Format>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::open_impl
      Src: /src/image/src/io/image_reader_type.rs:348,1
    - Dst: ImageResult::as_ref
      Src: /src/image/src/io/image_reader_type.rs:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 349
      start: 344
    functionDepth: 16
    functionLinenumber: 344
    functionLinenumberEnd: 349
    functionName: ImageReader::open
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 3
    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: ImageResult::extension
      Src: /src/image/src/io/image_reader_type.rs:352,1
    - Dst: Option::filter
      Src: /src/image/src/io/image_reader_type.rs:352,1
    - Dst: Option::is_empty
      Src: /src/image/src/io/image_reader_type.rs:354,1
    - Dst: map
      Src: /src/image/src/io/image_reader_type.rs:352,1
    - Dst: Format::Extension
      Src: /src/image/src/io/image_reader_type.rs:355,1
    - Dst: Option::to_owned
      Src: /src/image/src/io/image_reader_type.rs:355,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:357,1
    - Dst: BufReader::new
      Src: /src/image/src/io/image_reader_type.rs:358,1
    - Dst: File::open
      Src: /src/image/src/io/image_reader_type.rs:358,1
    - Dst: Limits::default
      Src: /src/image/src/io/image_reader_type.rs:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&Path'
    constantsTouched: []
    func_position:
      end: 362
      start: 351
    functionDepth: 15
    functionLinenumber: 351
    functionLinenumberEnd: 362
    functionName: ImageReader::open_impl
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - File::open
    - BufReader::new
    - Format::Extension
    - map
    - Option::to_owned
    - Limits::default
    - Ok
    - ImageResult::extension
    - Option::filter
    - Option::is_empty
    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: 12
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: ImageEncoder::set_icc_profile
    functionSourceFile: /src/image/src/io/encoder.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - Err
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    linkageType: ''
    returnType: Result
    signature: 'fn set_icc_profile(&mut self, icc_profile: Vec<u8>) -> Result<(),
      UnsupportedError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/io/encoder.rs:75,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/io/encoder.rs:75,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/io/encoder.rs:77,1
    - Dst: '&str::into'
      Src: /src/image/src/io/encoder.rs:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - exif
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 12
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: ImageEncoder::set_exif_metadata
    functionSourceFile: /src/image/src/io/encoder.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - Err
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    linkageType: ''
    returnType: Result
    signature: 'fn set_exif_metadata(&mut self, exif: 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: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    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:115,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: 116
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 116
    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:125,1
    - Dst: Some
      Src: /src/image/src/io/encoder.rs:127,1
    - Dst: Option::to_luma8
      Src: /src/image/src/io/encoder.rs:127,1
    - Dst: GrayImage::into
      Src: /src/image/src/io/encoder.rs:127,1
    - Dst: Some
      Src: /src/image/src/io/encoder.rs:128,1
    - Dst: Option::to_luma_alpha8
      Src: /src/image/src/io/encoder.rs:128,1
    - Dst: GrayAlphaImage::into
      Src: /src/image/src/io/encoder.rs:128,1
    - Dst: Some
      Src: /src/image/src/io/encoder.rs:129,1
    - Dst: Option::to_rgb8
      Src: /src/image/src/io/encoder.rs:129,1
    - Dst: RgbImage::into
      Src: /src/image/src/io/encoder.rs:129,1
    - Dst: Some
      Src: /src/image/src/io/encoder.rs:130,1
    - Dst: Option::to_rgba8
      Src: /src/image/src/io/encoder.rs:130,1
    - Dst: Result::into
      Src: /src/image/src/io/encoder.rs:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - img
    argTypes:
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 132
      start: 122
    functionDepth: 12
    functionLinenumber: 122
    functionLinenumberEnd: 132
    functionName: dynimage_conversion_8bit
    functionSourceFile: /src/image/src/io/encoder.rs
    functionUses: 3
    functionsReached:
    - Option::color
    - GrayAlphaImage::into
    - Option::to_luma_alpha8
    - Option::to_rgb8
    - Option::to_rgba8
    - Result::into
    - Some
    - RgbImage::into
    - GrayImage::into
    - Option::to_luma8
    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:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: Limits::default
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 6
    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: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: Limits::no_limits
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: Limits
    signature: pub fn no_limits() -> Limits
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/io/limits.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _supported
    argTypes:
    - '&LimitSupport'
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: Limits::check_support
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 6
    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:80,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/limits.rs:80,1
    - Dst: error::LimitError::from_kind
      Src: /src/image/src/io/limits.rs:80,1
    - Dst: Err
      Src: /src/image/src/io/limits.rs:88,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/limits.rs:88,1
    - Dst: error::LimitError::from_kind
      Src: /src/image/src/io/limits.rs:88,1
    - Dst: Ok
      Src: /src/image/src/io/limits.rs:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 95
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 95
    functionName: Limits::check_dimensions
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 7
    functionsReached:
    - ImageError::Limits
    - Err
    - error::LimitError::from_kind
    - 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:100,1
    - Dst: Err
      Src: /src/image/src/io/limits.rs:102,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/limits.rs:102,1
    - Dst: error::LimitError::from_kind
      Src: /src/image/src/io/limits.rs:102,1
    - Dst: Ok
      Src: /src/image/src/io/limits.rs:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - amount
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: Limits::reserve
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 3
    functionsReached:
    - as_mut
    - Err
    - ImageError::Limits
    - error::LimitError::from_kind
    - 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:117,1
    - Dst: Limits::reserve
      Src: /src/image/src/io/limits.rs:118,1
    - Dst: is_some
      Src: /src/image/src/io/limits.rs:119,1
    - Dst: Err
      Src: /src/image/src/io/limits.rs:119,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/limits.rs:119,1
    - Dst: error::LimitError::from_kind
      Src: /src/image/src/io/limits.rs:120,1
    - Dst: Ok
      Src: /src/image/src/io/limits.rs:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - amount
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 127
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 127
    functionName: Limits::reserve_usize
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 1
    functionsReached:
    - Limits::reserve
    - Err
    - u64::try_from
    - ImageError::Limits
    - error::LimitError::from_kind
    - is_some
    - Ok
    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:140,1
    - Dst: u64::from
      Src: /src/image/src/io/limits.rs:141,1
    - Dst: Self::saturating_mul
      Src: /src/image/src/io/limits.rs:141,1
    - Dst: u64::from
      Src: /src/image/src/io/limits.rs:142,1
    - Dst: T::saturating_mul
      Src: /src/image/src/io/limits.rs:141,1
    - Dst: Option::bytes_per_pixel
      Src: /src/image/src/io/limits.rs:143,1
    - Dst: u8::into
      Src: /src/image/src/io/limits.rs:143,1
    - Dst: Limits::reserve
      Src: /src/image/src/io/limits.rs:144,1
    - Dst: Ok
      Src: /src/image/src/io/limits.rs:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - width
    - height
    - color_type
    argTypes:
    - u32
    - u32
    - ColorType
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 13
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: Limits::reserve_buffer
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 1
    functionsReached:
    - T::saturating_mul
    - u64::from
    - Limits::reserve
    - Self::saturating_mul
    - u8::into
    - Limits::check_dimensions
    - Ok
    - Option::bytes_per_pixel
    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:153,1
    - Dst: saturating_add
      Src: /src/image/src/io/limits.rs:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - amount
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: Limits::free
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 1
    functionsReached:
    - saturating_add
    - as_mut
    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:162,1
    - Dst: Limits::free
      Src: /src/image/src/io/limits.rs:163,1
    - Dst: is_some
      Src: /src/image/src/io/limits.rs:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - amount
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: Limits::free_usize
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 1
    functionsReached:
    - Limits::free
    - is_some
    - u64::try_from
    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: Option::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: 12
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: ImageDecoder::original_color_type
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - Option::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: 1
    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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: ImageDecoder::xmp_metadata
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn xmp_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/io/decoder.rs:47,1
    - Dst: ImageDecoder::exif_metadata
      Src: /src/image/src/io/decoder.rs:47,1
    - Dst: and_then
      Src: /src/image/src/io/decoder.rs:47,1
    - Dst: Orientation::from_exif_chunk
      Src: /src/image/src/io/decoder.rs:49,1
    - Dst: unwrap_or
      Src: /src/image/src/io/decoder.rs:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 15
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: ImageDecoder::orientation
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageDecoder::exif_metadata
    - Orientation::from_exif_chunk
    - Ok
    - unwrap_or
    - and_then
    linkageType: ''
    returnType: ImageResult
    signature: fn orientation(&mut self) -> ImageResult<Orientation>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageDecoder::dimensions
      Src: /src/image/src/io/decoder.rs:60,1
    - Dst: u64::from
      Src: /src/image/src/io/decoder.rs:61,1
    - Dst: u64::from
      Src: /src/image/src/io/decoder.rs:61,1
    - Dst: u64::from
      Src: /src/image/src/io/decoder.rs:62,1
    - Dst: ImageDecoder::color_type
      Src: /src/image/src/io/decoder.rs:62,1
    - Dst: Option::bytes_per_pixel
      Src: /src/image/src/io/decoder.rs:62,1
    - Dst: saturating_mul
      Src: /src/image/src/io/decoder.rs:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 12
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: ImageDecoder::total_bytes
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - u64::from
    - saturating_mul
    - ImageDecoder::color_type
    - ImageDecoder::dimensions
    - Option::bytes_per_pixel
    linkageType: ''
    returnType: u64
    signature: fn total_bytes(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_support
      Src: /src/image/src/io/decoder.rs:109,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/io/decoder.rs:109,1
    - Dst: ImageDecoder::dimensions
      Src: /src/image/src/io/decoder.rs:110,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/io/decoder.rs:111,1
    - Dst: Ok
      Src: /src/image/src/io/decoder.rs:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - limits
    argTypes:
    - crate::Limits
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 12
    functionLinenumber: 108
    functionLinenumberEnd: 113
    functionName: ImageDecoder::set_limits
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - Limits::check_support
    - ImageDecoder::dimensions
    - Limits::check_dimensions
    - Ok
    - crate::LimitSupport::default
    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:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 12
    functionLinenumber: 130
    functionLinenumberEnd: 132
    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:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 135
    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:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 13
    functionLinenumber: 136
    functionLinenumberEnd: 138
    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:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 13
    functionLinenumber: 139
    functionLinenumberEnd: 141
    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:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 13
    functionLinenumber: 142
    functionLinenumberEnd: 144
    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: xmp_metadata
      Src: /src/image/src/io/decoder.rs:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: Box::xmp_metadata
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - xmp_metadata
    linkageType: ''
    returnType: ImageResult
    signature: fn xmp_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: orientation
      Src: /src/image/src/io/decoder.rs:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 16
    functionLinenumber: 148
    functionLinenumberEnd: 150
    functionName: Box::orientation
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - orientation
    linkageType: ''
    returnType: ImageResult
    signature: fn orientation(&mut self) -> ImageResult<Orientation>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: total_bytes
      Src: /src/image/src/io/decoder.rs:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 13
    functionLinenumber: 151
    functionLinenumberEnd: 153
    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:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 159
    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:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 162
    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:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - limits
    argTypes:
    - crate::Limits
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 13
    functionLinenumber: 163
    functionLinenumberEnd: 165
    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:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 219
    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: 14
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: load
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 3
    functionsReached:
    - Result::set_format
    - Result::decode
    - ImageReader::new
    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: 15
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: save_buffer
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 1
    functionsReached:
    - ImageFormat::from_path
    - save_buffer_with_format
    - ImageResult::as_ref
    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: 13
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: save_buffer_with_format
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 2
    functionsReached:
    - BufWriter::new
    - encoder_for_format
    - bool::into
    - File::create
    - ImageResult::write_image
    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: 13
    functionLinenumber: 60
    functionLinenumberEnd: 102
    functionName: encoder_for_format
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 4
    functionsReached:
    - UnsupportedErrorKind::Format
    - ico::IcoEncoder::new
    - jpeg::JpegEncoder::new
    - bmp::BmpEncoder::new
    - Err
    - png::PngEncoder::new
    - pnm::PnmEncoder::new
    - Box::new
    - avif::AvifEncoder::new
    - tga::TgaEncoder::new
    - qoi::QoiEncoder::new
    - gif::GifEncoder::new
    - tiff::TiffEncoder::new
    - webp::WebPEncoder::new_lossless
    - farbfeld::FarbfeldEncoder::new
    - hdr::HdrEncoder::new
    - ImageError::Unsupported
    - openexr::OpenExrEncoder::new
    - ImageFormatHint::Name
    - Ok
    - UnsupportedError::from_format_and_kind
    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:139,1
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:140,1
    - Dst: Err
      Src: /src/image/src/io/free_functions.rs:141,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/free_functions.rs:141,1
    - Dst: into
      Src: /src/image/src/io/free_functions.rs:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 15
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: guess_format
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 2
    functionsReached:
    - ImageError::Unsupported
    - Err
    - Ok
    - guess_format_impl
    - into
    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:147,1
    - Dst: '&RgbaImage::starts_with'
      Src: /src/image/src/io/free_functions.rs:148,1
    - Dst: Some
      Src: /src/image/src/io/free_functions.rs:149,1
    - Dst: '&RgbaImage::len'
      Src: /src/image/src/io/free_functions.rs:151,1
    - Dst: len
      Src: /src/image/src/io/free_functions.rs:151,1
    - Dst: '&RgbaImage::iter'
      Src: /src/image/src/io/free_functions.rs:152,1
    - Dst: zip
      Src: /src/image/src/io/free_functions.rs:152,1
    - Dst: std::iter
      Src: /src/image/src/io/free_functions.rs:154,1
    - Dst: zip
      Src: /src/image/src/io/free_functions.rs:152,1
    - Dst: ImageResult::iter
      Src: /src/image/src/io/free_functions.rs:155,1
    - Dst: chain
      Src: /src/image/src/io/free_functions.rs:155,1
    - Dst: iter::repeat
      Src: /src/image/src/io/free_functions.rs:155,1
    - Dst: all
      Src: /src/image/src/io/free_functions.rs:152,1
    - Dst: Some
      Src: /src/image/src/io/free_functions.rs:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 163
      start: 145
    functionDepth: 14
    functionLinenumber: 145
    functionLinenumberEnd: 163
    functionName: guess_format_impl
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 2
    functionsReached:
    - std::iter
    - ImageResult::iter
    - chain
    - '&RgbaImage::iter'
    - Some
    - all
    - len
    - iter::repeat
    - '&RgbaImage::len'
    - zip
    - '&RgbaImage::starts_with'
    - 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:187,1
    - Dst: Result::unwrap
      Src: /src/image/src/io/free_functions.rs:187,1
    - Dst: u64::try_from
      Src: /src/image/src/io/free_functions.rs:188,1
    - Dst: Result::unwrap
      Src: /src/image/src/io/free_functions.rs:188,1
    - Dst: u64::from
      Src: /src/image/src/io/free_functions.rs:191,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: ImageResult::dimensions
      Src: /src/image/src/io/free_functions.rs:196,1
    - Dst: u64::from
      Src: /src/image/src/io/free_functions.rs:197,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/io/free_functions.rs:197,1
    - Dst: Option::bytes_per_pixel
      Src: /src/image/src/io/free_functions.rs:197,1
    - Dst: u64::from
      Src: /src/image/src/io/free_functions.rs:198,1
    - Dst: Vec::new
      Src: /src/image/src/io/free_functions.rs:209,1
    - Dst: Some
      Src: /src/image/src/io/free_functions.rs:220,1
    - Dst: ImageResult::saturating_sub
      Src: /src/image/src/io/free_functions.rs:222,1
    - Dst: min
      Src: /src/image/src/io/free_functions.rs:223,1
    - Dst: min
      Src: /src/image/src/io/free_functions.rs:223,1
    - Dst: write_all
      Src: /src/image/src/io/free_functions.rs:227,1
    - Dst: unwrap
      Src: /src/image/src/io/free_functions.rs:227,1
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:233,1
    - Dst: seek_scanline
      Src: /src/image/src/io/free_functions.rs:239,1
    - Dst: read_scanline
      Src: /src/image/src/io/free_functions.rs:246,1
    - Dst: Self::resize
      Src: /src/image/src/io/free_functions.rs:249,1
    - Dst: read_scanline
      Src: /src/image/src/io/free_functions.rs:250,1
    - Dst: Some
      Src: /src/image/src/io/free_functions.rs:251,1
    - Dst: ImageResult::saturating_sub
      Src: /src/image/src/io/free_functions.rs:253,1
    - Dst: min
      Src: /src/image/src/io/free_functions.rs:254,1
    - Dst: min
      Src: /src/image/src/io/free_functions.rs:254,1
    - Dst: write_all
      Src: /src/image/src/io/free_functions.rs:258,1
    - Dst: unwrap
      Src: /src/image/src/io/free_functions.rs:258,1
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:266,1
    - Dst: u64::from
      Src: /src/image/src/io/free_functions.rs:269,1
    - Dst: u64::from
      Src: /src/image/src/io/free_functions.rs:270,1
    - Dst: Err
      Src: /src/image/src/io/free_functions.rs:274,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/io/free_functions.rs:274,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/io/free_functions.rs:274,1
    - Dst: Err
      Src: /src/image/src/io/free_functions.rs:279,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/free_functions.rs:279,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/io/free_functions.rs:279,1
    - Dst: u64::from
      Src: /src/image/src/io/free_functions.rs:284,1
    - Dst: read_image_range
      Src: /src/image/src/io/free_functions.rs:287,1
    - Dst: std::io::Result::chunks_mut
      Src: /src/image/src/io/free_functions.rs:289,1
    - Dst: zip
      Src: /src/image/src/io/free_functions.rs:289,1
    - Dst: read_image_range
      Src: /src/image/src/io/free_functions.rs:292,1
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:298,1
    - Dst: seek_scanline
      Src: /src/image/src/io/free_functions.rs:298,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: 299
      start: 169
    functionDepth: 11
    functionLinenumber: 169
    functionLinenumberEnd: 299
    functionName: load_rect
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 4
    functionsReached:
    - ImageResult::dimensions
    - u64::from
    - unwrap
    - ImageError::Parameter
    - read_image_range
    - u64::try_from
    - ImageError::Limits
    - zip
    - Option::bytes_per_pixel
    - std::io::Result::chunks_mut
    - write_all
    - Err
    - Result::unwrap
    - LimitError::from_kind
    - min
    - ImageResult::saturating_sub
    - ImageResult::color_type
    - Some
    - read_scanline
    - Ok
    - seek_scanline
    - ParameterError::from_kind
    - Vec::new
    - Self::resize
    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:309,1
    - Dst: ImageResult::total_bytes
      Src: /src/image/src/io/free_functions.rs:309,1
    - Dst: u64::is_err
      Src: /src/image/src/io/free_functions.rs:310,1
    - Dst: u64::unwrap
      Src: /src/image/src/io/free_functions.rs:310,1
    - Dst: Err
      Src: /src/image/src/io/free_functions.rs:311,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/free_functions.rs:311,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/io/free_functions.rs:311,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/io/free_functions.rs:317,1
    - Dst: bytemuck::cast_slice_mut
      Src: /src/image/src/io/free_functions.rs:317,1
    - Dst: std::io::Result::as_mut_slice
      Src: /src/image/src/io/free_functions.rs:317,1
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - impl ImageDecoder
    constantsTouched: []
    func_position:
      end: 319
      start: 305
    functionDepth: 13
    functionLinenumber: 305
    functionLinenumberEnd: 319
    functionName: decoder_to_vec
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 5
    functionsReached:
    - ImageResult::read_image
    - Err
    - u64::is_err
    - ImageResult::total_bytes
    - usize::try_from
    - ImageError::Limits
    - LimitError::from_kind
    - std::io::Result::as_mut_slice
    - Ok
    - u64::unwrap
    - bytemuck::cast_slice_mut
    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:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - m
    - n
    argTypes:
    - '&mut MockDecoder'
    - u64
    constantsTouched: []
    func_position:
      end: 357
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 357
    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:361,1
    - Dst: min
      Src: /src/image/src/io/free_functions.rs:364,1
    - Dst: copy_from_slice
      Src: /src/image/src/io/free_functions.rs:365,1
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 2
    argNames:
    - m
    - buf
    argTypes:
    - '&mut MockDecoder'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 368
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 368
    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:
    - min
    - Ok
    - copy_from_slice
    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:373,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/io/free_functions.rs:373,1
    - Dst: load_rect
      Src: /src/image/src/io/free_functions.rs:393,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/io/free_functions.rs:393,1
    - Dst: load_rect
      Src: /src/image/src/io/free_functions.rs:412,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/io/free_functions.rs:412,1
    - Dst: load_rect
      Src: /src/image/src/io/free_functions.rs:431,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/io/free_functions.rs:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 449
      start: 329
    functionDepth: 12
    functionLinenumber: 329
    functionLinenumberEnd: 449
    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: std::io::Result::copy_from_slice
      Src: /src/image/src/io/free_functions.rs:484,1
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - _m
    - buf
    argTypes:
    - '&mut MockDecoder'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 486
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 486
    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:
    - Ok
    - std::io::Result::copy_from_slice
    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:480,1
    - Dst: load_rect
      Src: /src/image/src/io/free_functions.rs:489,1
    - Dst: len
      Src: /src/image/src/io/free_functions.rs:497,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/io/free_functions.rs:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 452
    functionDepth: 12
    functionLinenumber: 452
    functionLinenumberEnd: 503
    functionName: tests::test_load_rect_single_scanline
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 0
    functionsReached:
    - len
    - load_rect
    - ImageResult::unwrap
    - Ok
    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:81,1
    - Dst: to_ascii_lowercase
      Src: /src/image/src/io/format.rs:81,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:83,1
    - Dst: Option::as_str
      Src: /src/image/src/io/format.rs:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ext
    argTypes:
    - '&OsStr'
    constantsTouched: []
    func_position:
      end: 101
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 101
    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:
    - Option::to_str
    - Option::as_str
    - Some
    - to_ascii_lowercase
    linkageType: ''
    returnType: Option
    signature: 'fn inner(ext: &OsStr) -> Option<ImageFormat>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/image/src/io/format.rs:103,1
    - Dst: Option::as_ref
      Src: /src/image/src/io/format.rs:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ext
    argTypes:
    - S
    constantsTouched: []
    func_position:
      end: 104
      start: 75
    functionDepth: 14
    functionLinenumber: 75
    functionLinenumberEnd: 104
    functionName: ImageFormat::from_extension
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 2
    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:125,1
    - Dst: Option::and_then
      Src: /src/image/src/io/format.rs:126,1
    - Dst: ok_or_else
      Src: /src/image/src/io/format.rs:126,1
    - Dst: ImageFormatHint::PathExtension
      Src: /src/image/src/io/format.rs:131,1
    - Dst: f32::into
      Src: /src/image/src/io/format.rs:131,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/format.rs:133,1
    - Dst: ImageFormatHint::into
      Src: /src/image/src/io/format.rs:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&Path'
    constantsTouched: []
    func_position:
      end: 135
      start: 124
    functionDepth: 15
    functionLinenumber: 124
    functionLinenumberEnd: 135
    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:
    - ok_or_else
    - Option::and_then
    - ImageError::Unsupported
    - ImageFormatHint::PathExtension
    - ImageFormatHint::into
    - f32::into
    - ImageResult::extension
    linkageType: ''
    returnType: ImageResult
    signature: 'fn inner(path: &Path) -> ImageResult<ImageFormat>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/image/src/io/format.rs:137,1
    - Dst: ImageResult::as_ref
      Src: /src/image/src/io/format.rs:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - path
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 138
      start: 119
    functionDepth: 14
    functionLinenumber: 119
    functionLinenumberEnd: 138
    functionName: ImageFormat::from_path
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 4
    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: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:166,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:170,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - mime_type
    argTypes:
    - M
    constantsTouched: []
    func_position:
      end: 176
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    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: 224
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 224
    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: 250
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 250
    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: 276
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 276
    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: 310
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 310
    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: 335
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 335
    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: 360
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 360
    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:364,1
    - Dst: copied
      Src: /src/image/src/io/format.rs:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 385
      start: 363
    functionDepth: 4
    functionLinenumber: 363
    functionLinenumberEnd: 385
    functionName: ImageFormat::all
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 1
    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:398,1
    - Dst: Path::new
      Src: /src/image/src/io/format.rs:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 399
      start: 397
    functionDepth: 15
    functionLinenumber: 397
    functionLinenumberEnd: 399
    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: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 421
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 421
    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:430,1
    - Dst: Self::to_owned
      Src: /src/image/src/io/format.rs:430,1
    - Dst: Self::extensions_str
      Src: /src/image/src/io/format.rs:431,1
    - Dst: ImageFormat::from_path
      Src: /src/image/src/io/format.rs:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 439
      start: 424
    functionDepth: 13
    functionLinenumber: 424
    functionLinenumberEnd: 439
    functionName: tests::image_formats_are_recognized
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached:
    - Self::to_owned
    - Path::new
    - Self::extensions_str
    - ImageFormat::from_path
    linkageType: ''
    returnType: void
    signature: fn image_formats_are_recognized()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageFormat::all
      Src: /src/image/src/io/format.rs:443,1
    - Dst: impl Iterator::collect
      Src: /src/image/src/io/format.rs:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 449
      start: 442
    functionDepth: 5
    functionLinenumber: 442
    functionLinenumberEnd: 449
    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: 459
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 459
    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: 469
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 469
    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: Self::read_exact
      Src: /src/image/src/codecs/farbfeld.rs:42,1
    - Dst: std::io::Result::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: 13
    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
    - Self::read_exact
    - u32::from_be_bytes
    - std::io::Result::map_err
    - ImageError::Decoding
    - Ok
    - into
    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: std::io::Result::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: 13
    functionLinenumber: 39
    functionLinenumberEnd: 85
    functionName: FarbfeldReader::new
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 1
    functionsReached:
    - DecodingError::new
    - ImageError::Unsupported
    - R::read_exact
    - read_dimm
    - Err
    - crate::utils::check_dimension_overflow
    - std::io::Result::map_err
    - ImageError::Decoding
    - Ok
    - into
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    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: std::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: std::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: 4
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: FarbfeldReader::read
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::chunks_exact_mut
    - cache_byte
    - Ok
    - std::io::Result::len
    - take
    - consume_channel
    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: Result::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: Result::ok
      Src: /src/image/src/codecs/farbfeld.rs:120,1
    - Dst: i64::try_from
      Src: /src/image/src/codecs/farbfeld.rs:122,1
    - Dst: Result::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: Result::ok
      Src: /src/image/src/codecs/farbfeld.rs:125,1
    - Dst: i64::try_from
      Src: /src/image/src/codecs/farbfeld.rs:129,1
    - Dst: Result::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: 14
    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:
    - Some
    - i64::try_from
    - u64::checked_sub
    - checked_sub
    - Result::unwrap_or
    - Result::ok
    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: 15
    functionLinenumber: 115
    functionLinenumberEnd: 166
    functionName: FarbfeldReader::seek
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - seek
    - SeekFrom::Current
    - u64::from
    - expect
    - wrapping_neg
    - io::Error::new
    - SeekFrom::Start
    - cache_byte
    - checked_add
    - Ok
    - parse_offset
    - checked_sub
    - Option::ok_or_else
    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: 2
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: consume_channel
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 2
    functionsReached:
    - ImageResult::write_all
    - u16::from_be_bytes
    - Self::read_exact
    - Ok
    - to_ne_bytes
    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: 3
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: cache_byte
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 2
    functionsReached:
    - Some
    - Ok
    - consume_channel
    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: 14
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: FarbfeldDecoder::new
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 3
    functionsReached:
    - Ok
    - FarbfeldReader::new
    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: 2
    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: 14
    functionLinenumber: 219
    functionLinenumberEnd: 245
    functionName: FarbfeldDecoder::read_rect
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - io::free_functions::load_rect
    - stream_position
    - read_exact
    - SeekFrom::Start
    - map
    - Ok
    - seek
    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: 13
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: FarbfeldEncoder::encode
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 1
    functionsReached:
    - FarbfeldEncoder::encode_impl
    - u64::from
    - Ok
    - saturating_mul
    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: Result::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:
    - u32::to_be_bytes
    - unwrap
    - u16::from_ne_bytes
    - write_all
    - io::Result::try_into
    - Ok
    - to_be_bytes
    - Result::chunks_exact
    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: 12
    functionLinenumber: 294
    functionLinenumberEnd: 311
    functionName: FarbfeldEncoder::write_image
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - ImageError::Unsupported
    - Err
    - UnsupportedErrorKind::Color
    - FarbfeldEncoder::encode
    - into
    - UnsupportedError::from_format_and_kind
    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: 15
    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: 15
    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: 15
    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: 15
    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: std::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: 13
    functionLinenumber: 367
    functionLinenumberEnd: 383
    functionName: tests::read_rect_in_stream
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - read_rect
    - extend_from_slice
    - std::io::Result::unwrap
    - ImageResult::unwrap
    - SeekFrom::Start
    - Self::seek
    - FarbfeldDecoder::new
    - degenerate_pixels
    - Cursor::new
    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: 1438
      start: 1426
    functionDepth: 0
    functionLinenumber: 1426
    functionLinenumberEnd: 1438
    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: 15
    functionLinenumber: 392
    functionLinenumberEnd: 400
    functionName: tests::read_rect
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - read_rect
    - ImageResult::unwrap
    - FarbfeldDecoder::new
    - degenerate_pixels
    - Cursor::new
    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: 1
    functionsReached:
    - ParameterError::from_kind
    - Err
    - ImageError::Parameter
    - Ok
    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: 1
    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: std::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: 13
    functionLinenumber: 106
    functionLinenumberEnd: 126
    functionName: DxtDecoder::read_scanline
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 1
    functionsReached:
    - read_exact_vec
    - encoded_bytes_per_block
    - decode_dxt5_row
    - Ok
    - std::io::Result::len
    - decode_dxt3_row
    - decode_dxt1_row
    - Vec::new
    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: 1
    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: std::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: 14
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: DxtDecoder::read_image
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::chunks_mut
    - u64::max
    - DxtDecoder::read_scanline
    - Ok
    - DxtDecoder::scanline_bytes
    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: 1
    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: 1
    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:204,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: u16::from
      Src: /src/image/src/codecs/dxt.rs:208,1
    - Dst: u16::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: u32::from
      Src: /src/image/src/codecs/dxt.rs:212,1
    - Dst: enc565_decode
      Src: /src/image/src/codecs/dxt.rs:217,1
    - Dst: enc565_decode
      Src: /src/image/src/codecs/dxt.rs:218,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:225,1
    - Dst: u16::from
      Src: /src/image/src/codecs/dxt.rs:225,1
    - Dst: u16::from
      Src: /src/image/src/codecs/dxt.rs:230,1
    - Dst: u16::from
      Src: /src/image/src/codecs/dxt.rs:230,1
    - Dst: div_ceil
      Src: /src/image/src/codecs/dxt.rs:230,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/dxt.rs:237,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 124
    argCount: 3
    argNames:
    - source
    - dest
    - is_dxt1
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - bool
    constantsTouched: []
    func_position:
      end: 240
      start: 200
    functionDepth: 14
    functionLinenumber: 200
    functionLinenumberEnd: 240
    functionName: decode_dxt_colors
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 3
    functionsReached:
    - div_ceil
    - u32::from
    - enc565_decode
    - u16::from
    - '&mut [u8]::len'
    - copy_from_slice
    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:247,1
    - Dst: rev
      Src: /src/image/src/codecs/dxt.rs:247,1
    - Dst: fold
      Src: /src/image/src/codecs/dxt.rs:247,1
    - Dst: u64::from
      Src: /src/image/src/codecs/dxt.rs:250,1
    - Dst: alpha_table_dxt5
      Src: /src/image/src/codecs/dxt.rs:253,1
    - Dst: decode_dxt_colors
      Src: /src/image/src/codecs/dxt.rs:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 262
      start: 243
    functionDepth: 15
    functionLinenumber: 243
    functionLinenumberEnd: 262
    functionName: decode_dxt5_block
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 1
    functionsReached:
    - iter
    - u64::from
    - alpha_table_dxt5
    - rev
    - fold
    - decode_dxt_colors
    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:269,1
    - Dst: rev
      Src: /src/image/src/codecs/dxt.rs:269,1
    - Dst: fold
      Src: /src/image/src/codecs/dxt.rs:269,1
    - Dst: u64::from
      Src: /src/image/src/codecs/dxt.rs:272,1
    - Dst: decode_dxt_colors
      Src: /src/image/src/codecs/dxt.rs:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 281
      start: 265
    functionDepth: 15
    functionLinenumber: 265
    functionLinenumberEnd: 281
    functionName: decode_dxt3_block
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 1
    functionsReached:
    - iter
    - u64::from
    - rev
    - fold
    - decode_dxt_colors
    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:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 15
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: decode_dxt1_block
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 1
    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:293,1
    - Dst: Option::chunks
      Src: /src/image/src/codecs/dxt.rs:299,1
    - Dst: io::Result::enumerate
      Src: /src/image/src/codecs/dxt.rs:299,1
    - Dst: decode_dxt1_block
      Src: /src/image/src/codecs/dxt.rs:300,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/dxt.rs:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 308
      start: 291
    functionDepth: 14
    functionLinenumber: 291
    functionLinenumberEnd: 308
    functionName: decode_dxt1_row
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 1
    functionsReached:
    - Option::chunks
    - io::Result::enumerate
    - Option::len
    - copy_from_slice
    - decode_dxt1_block
    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:314,1
    - Dst: Option::chunks
      Src: /src/image/src/codecs/dxt.rs:320,1
    - Dst: io::Result::enumerate
      Src: /src/image/src/codecs/dxt.rs:320,1
    - Dst: decode_dxt3_block
      Src: /src/image/src/codecs/dxt.rs:321,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/dxt.rs:326,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 329
      start: 312
    functionDepth: 14
    functionLinenumber: 312
    functionLinenumberEnd: 329
    functionName: decode_dxt3_row
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 1
    functionsReached:
    - decode_dxt3_block
    - Option::chunks
    - io::Result::enumerate
    - Option::len
    - copy_from_slice
    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:335,1
    - Dst: Option::chunks
      Src: /src/image/src/codecs/dxt.rs:341,1
    - Dst: io::Result::enumerate
      Src: /src/image/src/codecs/dxt.rs:341,1
    - Dst: decode_dxt5_block
      Src: /src/image/src/codecs/dxt.rs:342,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/dxt.rs:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 350
      start: 333
    functionDepth: 14
    functionLinenumber: 333
    functionLinenumberEnd: 350
    functionName: decode_dxt5_row
    functionSourceFile: /src/image/src/codecs/dxt.rs
    functionUses: 1
    functionsReached:
    - decode_dxt5_block
    - Option::chunks
    - io::Result::enumerate
    - Option::len
    - copy_from_slice
    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: 5
    functionsReached:
    - ImageResult::set_color_output
    - map_err
    - gif::DecodeOptions::new
    - Limits::no_limits
    - Ok
    - ImageResult::read_info
    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: 2
    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: std::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: std::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:
    - position
    - std::io::Result::is_empty
    - mem::swap
    - Ok
    - std::io::Result::len
    - read_to_end
    - get_mut
    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: 2
    functionsReached:
    - height
    - u32::from
    - width
    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: 1
    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
    - Limits::check_support
    - Limits::check_dimensions
    - Ok
    - crate::LimitSupport::default
    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: Result::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: std::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: 12
    functionLinenumber: 111
    functionLinenumberEnd: 215
    functionName: GifDecoder::read_image
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - u64::from
    - unwrap
    - ImageError::Parameter
    - wrapping_sub
    - color::Rgba
    - Option::unwrap
    - ImageError::Limits
    - reserve_usize
    - and_then
    - ImageBuffer::from_raw
    - UnsupportedErrorKind::GenericFeature
    - GifDecoder::dimensions
    - ok_or
    - read_into_buffer
    - ColorType::bytes_per_pixel
    - Err
    - Result::unwrap
    - next_frame_info
    - LimitError::from_kind
    - usize::try_from
    - free_usize
    - Option::enumerate_pixels_mut
    - Option::split_at_mut
    - map_err
    - checked_mul
    - into
    - Option::is_none
    - ImageError::Unsupported
    - std::io::Result::split_at_mut
    - Option::get_pixel
    - GifDecoder::color_type
    - Option::wrapping_sub
    - Ok
    - FrameInfo::new_from_frame
    - ParameterError::from_kind
    - UnsupportedError::from_format_and_kind
    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: 12
    functionLinenumber: 236
    functionLinenumberEnd: 250
    functionName: GifFrameIterator::new
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 1
    functionsReached:
    - ImageResult::dimensions
    - clone
    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: 14
    functionLinenumber: 256
    functionLinenumberEnd: 411
    functionName: GifFrameIterator::next
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - get_pixel
    - unwrap
    - wrapping_sub
    - as_mut
    - color::Rgba
    - reserve_buffer
    - ImageBuffer::from_pixel
    - is_none
    - ImageBuffer::from_fn
    - UnsupportedErrorKind::GenericFeature
    - ImageBuffer::from_raw
    - animation::Frame::from_parts
    - clone
    - width
    - read_into_buffer
    - Err
    - next_frame_info
    - enumerate_pixels_mut
    - ImageError::from_decoding
    - height
    - dimensions
    - get_pixel_mut
    - into
    - ImageError::Unsupported
    - Some
    - Option::wrapping_sub
    - Ok
    - FrameInfo::new_from_frame
    - ::std::io::Result::kind
    - blend_and_dispose_pixel
    - UnsupportedError::from_format_and_kind
    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: 13
    functionLinenumber: 415
    functionLinenumberEnd: 417
    functionName: GifDecoder::into_frames
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - animation::Frames::new
    - GifFrameIterator::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:
    - animation::Delay::from_ratio
    - u32::from
    - Ratio::new
    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::to_gif_enum
    - ImageResult::map_err
    - Some
    - ImageResult::set_repeat
    - 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: Result::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: 16
    functionLinenumber: 503
    functionLinenumberEnd: 528
    functionName: GifEncoder::encode
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 1
    functionsReached:
    - GifEncoder::gif_dimensions
    - GifEncoder::encode_gif
    - Frame::from_rgb_speed
    - ImageError::Unsupported
    - Result::to_owned
    - Err
    - UnsupportedError::from_format_and_kind
    - UnsupportedErrorKind::Color
    - into
    - Frame::from_rgba_speed
    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: 17
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: GifEncoder::encode_frame
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 2
    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: 18
    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: 18
    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: 16
    functionLinenumber: 561
    functionLinenumberEnd: 580
    functionName: GifEncoder::convert_frame
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 1
    functionsReached:
    - GifEncoder::gif_dimensions
    - animation::Frame::delay
    - RgbaImage::width
    - try_into
    - animation::Frame::into_buffer
    - Ok
    - unwrap_or
    - RgbaImage::height
    - Ratio::to_integer
    - Delay::into_ratio
    - Frame::from_rgba_speed
    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: Result::ok
      Src: /src/image/src/codecs/gif.rs:584,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/gif.rs:585,1
    - Dst: Result::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: 14
    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:
    - Result::ok
    - u16::try_from
    - Some
    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: 15
    functionLinenumber: 582
    functionLinenumberEnd: 595
    functionName: GifEncoder::gif_dimensions
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 2
    functionsReached:
    - Option::ok_or_else
    - inner_dimensions
    - ParameterError::from_kind
    - ImageError::Parameter
    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::to_gif_enum
    - unwrap
    - map_err
    - as_mut
    - ImageResult::map_err
    - write_frame
    - FarbfeldEncoder::map_err
    - Some
    - ImageResult::set_repeat
    - take
    - gif::Encoder::new
    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: 17
    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: 13
    functionLinenumber: 634
    functionLinenumberEnd: 642
    functionName: ImageError::from_decoding
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 1
    functionsReached:
    - ImageError::IoError
    - ImageError::Decoding
    - into
    - DecodingError::new
    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: 13
    functionLinenumber: 644
    functionLinenumberEnd: 652
    functionName: ImageError::from_encoding
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - EncodingError::new
    - ImageError::IoError
    - ImageError::Encoding
    - 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: 13
    functionLinenumber: 660
    functionLinenumberEnd: 675
    functionName: test::frames_exceeding_logical_screen_size
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - GifDecoder::new
    - ImageResult::unwrap
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn frames_exceeding_logical_screen_size()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Decoder::new
      Src: /src/image/src/codecs/tiff.rs:44,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/tiff.rs:44,1
    - Dst: Option::dimensions
      Src: /src/image/src/codecs/tiff.rs:46,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/tiff.rs:46,1
    - Dst: Option::colortype
      Src: /src/image/src/codecs/tiff.rs:47,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:47,1
    - Dst: find_tag_unsigned_vec::<u16>
      Src: /src/image/src/codecs/tiff.rs:49,1
    - Dst: check_sample_format
      Src: /src/image/src/codecs/tiff.rs:52,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:56,1
    - Dst: ImageError::from_tiff_decode
      Src: /src/image/src/codecs/tiff.rs:56,1
    - Dst: Option::find_tag
      Src: /src/image/src/codecs/tiff.rs:59,1
    - Dst: map
      Src: /src/image/src/codecs/tiff.rs:59,1
    - Dst: and_then
      Src: /src/image/src/codecs/tiff.rs:61,1
    - Dst: Result::into_u16
      Src: /src/image/src/codecs/tiff.rs:61,1
    - Dst: ok
      Src: /src/image/src/codecs/tiff.rs:61,1
    - Dst: unwrap_or_default
      Src: /src/image/src/codecs/tiff.rs:61,1
    - Dst: unwrap_or_default
      Src: /src/image/src/codecs/tiff.rs:59,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:66,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:66,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:67,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:68,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:69,1
    - Dst: String::from
      Src: /src/image/src/codecs/tiff.rs:69,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: Err
      Src: /src/image/src/codecs/tiff.rs:91,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:91,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:91,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:93,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:93,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:93,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:95,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:95,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:95,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:101,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:101,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:102,1
    - Dst: min
      Src: /src/image/src/codecs/tiff.rs:102,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:105,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:105,1
    - Dst: Option::into
      Src: /src/image/src/codecs/tiff.rs:111,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:114,1
    - Dst: Some
      Src: /src/image/src/codecs/tiff.rs:118,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 95
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 120
      start: 43
    functionDepth: 15
    functionLinenumber: 43
    functionLinenumberEnd: 120
    functionName: TiffDecoder::new
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 3
    functionsReached:
    - ImageResult::map_err
    - Option::colortype
    - ImageError::from_tiff_decode
    - Option::find_tag
    - map
    - UnsupportedErrorKind::GenericFeature
    - and_then
    - Err
    - min
    - map_err
    - unwrap_or_default
    - Decoder::new
    - check_sample_format
    - err_unknown_color_type
    - Option::dimensions
    - saturating_mul
    - into
    - Result::into_u16
    - String::from
    - ok
    - ImageError::Unsupported
    - Some
    - Ok
    - find_tag_unsigned_vec::<u16>
    - Option::into
    - UnsupportedError::from_format_and_kind
    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:124,1
    - Dst: u64::from
      Src: /src/image/src/codecs/tiff.rs:125,1
    - Dst: u64::from
      Src: /src/image/src/codecs/tiff.rs:125,1
    - Dst: u64::from
      Src: /src/image/src/codecs/tiff.rs:129,1
    - Dst: TiffDecoder::color_type
      Src: /src/image/src/codecs/tiff.rs:129,1
    - Dst: ColorType::bytes_per_pixel
      Src: /src/image/src/codecs/tiff.rs:129,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 123
    functionDepth: 13
    functionLinenumber: 123
    functionLinenumberEnd: 132
    functionName: TiffDecoder::total_bytes_buffer
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - u64::from
    - saturating_mul
    - ColorType::bytes_per_pixel
    - TiffDecoder::color_type
    - TiffDecoder::dimensions
    linkageType: ''
    returnType: u64
    signature: fn total_bytes_buffer(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:144,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:144,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:145,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:146,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:147,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:154,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:154,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:155,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:156,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:157,1
    - Dst: SampleFormat::from_u16
      Src: /src/image/src/codecs/tiff.rs:165,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:166,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:167,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:168,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:168,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:169,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:170,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - sample_format
    - color_type
    argTypes:
    - u16
    - tiff::ColorType
    constantsTouched: []
    func_position:
      end: 177
      start: 135
    functionDepth: 12
    functionLinenumber: 135
    functionLinenumberEnd: 177
    functionName: check_sample_format
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - ImageError::Unsupported
    - Err
    - SampleFormat::from_u16
    - Ok
    - into
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    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:180,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:180,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:181,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/tiff.rs:182,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/tiff.rs:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 12
    functionLinenumber: 179
    functionLinenumberEnd: 184
    functionName: err_unknown_color_type
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - ImageError::Unsupported
    - UnsupportedErrorKind::Color
    - into
    - ExtendedColorType::Unknown
    - UnsupportedError::from_format_and_kind
    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:189,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tiff.rs:193,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tiff.rs:193,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:193,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:196,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:196,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:197,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:198,1
    - Dst: to_string
      Src: /src/image/src/codecs/tiff.rs:198,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/tiff.rs:202,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/tiff.rs:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - err
    argTypes:
    - tiff::TiffError
    constantsTouched: []
    func_position:
      end: 205
      start: 187
    functionDepth: 13
    functionLinenumber: 187
    functionLinenumberEnd: 205
    functionName: ImageError::from_tiff_decode
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 2
    functionsReached:
    - ImageError::IoError
    - DecodingError::new
    - ImageError::Unsupported
    - ImageError::Limits
    - LimitError::from_kind
    - ImageError::Decoding
    - to_string
    - into
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    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:209,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/tiff.rs:213,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/tiff.rs:213,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:213,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:216,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:216,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:217,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:218,1
    - Dst: to_string
      Src: /src/image/src/codecs/tiff.rs:218,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/tiff.rs:222,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/tiff.rs:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - err
    argTypes:
    - tiff::TiffError
    constantsTouched: []
    func_position:
      end: 225
      start: 207
    functionDepth: 13
    functionLinenumber: 207
    functionLinenumberEnd: 225
    functionName: ImageError::from_tiff_encode
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - ImageError::IoError
    - ImageError::Encoding
    - ImageError::Unsupported
    - EncodingError::new
    - ImageError::Limits
    - LimitError::from_kind
    - to_string
    - into
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    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:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 236
    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:239,1
    - Dst: std::io::Result::is_empty
      Src: /src/image/src/codecs/tiff.rs:239,1
    - Dst: mem::swap
      Src: /src/image/src/codecs/tiff.rs:240,1
    - Dst: get_mut
      Src: /src/image/src/codecs/tiff.rs:240,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:241,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/tiff.rs:241,1
    - Dst: read_to_end
      Src: /src/image/src/codecs/tiff.rs:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 245
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: TiffReader::read_to_end
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - position
    - std::io::Result::is_empty
    - mem::swap
    - Ok
    - std::io::Result::len
    - read_to_end
    - get_mut
    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: 251
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 251
    functionName: TiffDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 2
    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: 255
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 255
    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: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    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:263,1
    - Dst: ImageResult::get_tag_u8_vec
      Src: /src/image/src/codecs/tiff.rs:263,1
    - Dst: Tag::Unknown
      Src: /src/image/src/codecs/tiff.rs:263,1
    - Dst: ok
      Src: /src/image/src/codecs/tiff.rs:263,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 14
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: TiffDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - ImageResult::get_tag_u8_vec
    - ok
    - Ok
    - Tag::Unknown
    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:271,1
    - Dst: ImageResult::get_tag
      Src: /src/image/src/codecs/tiff.rs:274,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:277,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:279,1
    - Dst: ImageError::from_tiff_decode
      Src: /src/image/src/codecs/tiff.rs:279,1
    - Dst: ImageResult::into_u8_vec
      Src: /src/image/src/codecs/tiff.rs:281,1
    - Dst: map
      Src: /src/image/src/codecs/tiff.rs:281,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 285
      start: 269
    functionDepth: 14
    functionLinenumber: 269
    functionLinenumberEnd: 285
    functionName: TiffDecoder::xmp_metadata
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - map_err
    - ImageResult::into_u8_vec
    - ImageError::from_tiff_decode
    - Err
    - map
    - ImageResult::get_tag
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn xmp_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:289,1
    - Dst: ImageResult::find_tag
      Src: /src/image/src/codecs/tiff.rs:289,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:289,1
    - Dst: and_then
      Src: /src/image/src/codecs/tiff.rs:289,1
    - Dst: Orientation::from_exif
      Src: /src/image/src/codecs/tiff.rs:292,1
    - Dst: DynamicImage::into_u16
      Src: /src/image/src/codecs/tiff.rs:292,1
    - Dst: ok
      Src: /src/image/src/codecs/tiff.rs:292,1
    - Dst: min
      Src: /src/image/src/codecs/tiff.rs:292,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/tiff.rs:289,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:295,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 297
      start: 287
    functionDepth: 14
    functionLinenumber: 287
    functionLinenumberEnd: 297
    functionName: TiffDecoder::orientation
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::into_u16
    - ImageResult::find_tag
    - min
    - map_err
    - ok
    - Orientation::from_exif
    - Ok
    - unwrap_or
    - and_then
    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:300,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/tiff.rs:300,1
    - Dst: TiffDecoder::dimensions
      Src: /src/image/src/codecs/tiff.rs:302,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/codecs/tiff.rs:303,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/tiff.rs:305,1
    - Dst: saturating_sub
      Src: /src/image/src/codecs/tiff.rs:306,1
    - Dst: TiffDecoder::total_bytes_buffer
      Src: /src/image/src/codecs/tiff.rs:306,1
    - Dst: Default::default
      Src: /src/image/src/codecs/tiff.rs:308,1
    - Dst: usize::try_from
      Src: /src/image/src/codecs/tiff.rs:310,1
    - Dst: Result::unwrap_or
      Src: /src/image/src/codecs/tiff.rs:310,1
    - Dst: usize::try_from
      Src: /src/image/src/codecs/tiff.rs:312,1
    - Dst: Result::unwrap_or
      Src: /src/image/src/codecs/tiff.rs:312,1
    - Dst: Some
      Src: /src/image/src/codecs/tiff.rs:314,1
    - Dst: take
      Src: /src/image/src/codecs/tiff.rs:314,1
    - Dst: unwrap
      Src: /src/image/src/codecs/tiff.rs:314,1
    - Dst: with_limits
      Src: /src/image/src/codecs/tiff.rs:314,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 1
    argNames:
    - limits
    argTypes:
    - crate::Limits
    constantsTouched: []
    func_position:
      end: 317
      start: 299
    functionDepth: 14
    functionLinenumber: 299
    functionLinenumberEnd: 317
    functionName: TiffDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - Limits::check_support
    - take
    - Default::default
    - with_limits
    - Some
    - saturating_sub
    - Limits::check_dimensions
    - usize::try_from
    - Ok
    - unwrap_or
    - Result::unwrap_or
    - crate::LimitSupport::default
    - TiffDecoder::dimensions
    - TiffDecoder::total_bytes_buffer
    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:322,1
    - Dst: read_image
      Src: /src/image/src/codecs/tiff.rs:322,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:322,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/tiff.rs:329,1
    - Dst: DynamicImage::chunks_exact
      Src: /src/image/src/codecs/tiff.rs:330,1
    - Dst: Self::write_all
      Src: /src/image/src/codecs/tiff.rs:331,1
    - Dst: cmyk_to_rgb
      Src: /src/image/src/codecs/tiff.rs:331,1
    - Dst: u32::div_ceil
      Src: /src/image/src/codecs/tiff.rs:336,1
    - Dst: DynamicImage::chunks_exact
      Src: /src/image/src/codecs/tiff.rs:338,1
    - Dst: zip
      Src: /src/image/src/codecs/tiff.rs:338,1
    - Dst: std::io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/tiff.rs:340,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:342,1
    - Dst: utils::expand_bits
      Src: /src/image/src/codecs/tiff.rs:342,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:346,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:349,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:349,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:352,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:352,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:355,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:355,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:358,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:358,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:361,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:361,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:364,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:364,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:367,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:367,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:370,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:370,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:373,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:373,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:377,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 96
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 378
      start: 319
    functionDepth: 13
    functionLinenumber: 319
    functionLinenumberEnd: 378
    functionName: TiffDecoder::read_image
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::chunks_exact_mut
    - unwrap
    - DynamicImage::chunks_exact
    - map_err
    - std::io::Result::copy_from_slice
    - bytemuck::cast_slice
    - u32::div_ceil
    - cmyk_to_rgb
    - read_image
    - Ok
    - zip
    - copy_from_slice
    - utils::expand_bits
    - Self::write_all
    - Cursor::new
    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:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 382
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 382
    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:391,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:392,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:393,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - cmyk
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 400
      start: 390
    functionDepth: 3
    functionLinenumber: 390
    functionLinenumberEnd: 400
    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:404,1
    - Dst: map
      Src: /src/image/src/codecs/tiff.rs:404,1
    - Dst: or_else
      Src: /src/image/src/codecs/tiff.rs:404,1
    - Dst: bytemuck::allocation::pod_collect_to_vec
      Src: /src/image/src/codecs/tiff.rs:412,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:413,1
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/tiff.rs:413,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:420,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/tiff.rs:420,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/tiff.rs:420,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/tiff.rs:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 428
      start: 403
    functionDepth: 14
    functionLinenumber: 403
    functionLinenumberEnd: 428
    functionName: u8_slice_as_pod
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - ParameterErrorKind::Generic
    - ImageError::Parameter
    - Err
    - map
    - std::borrow::Cow::Owned
    - or_else
    - Ok
    - ParameterError::from_kind
    - bytemuck::try_cast_slice
    - bytemuck::allocation::pod_collect_to_vec
    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: 434
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 434
    functionName: TiffEncoder::new
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: TiffEncoder
    signature: 'pub fn new(w: W) -> TiffEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::buffer_size
      Src: /src/image/src/codecs/tiff.rs:454,1
    - Dst: tiff::encoder::TiffEncoder::new
      Src: /src/image/src/codecs/tiff.rs:462,1
    - Dst: TiffEncoder::map_err
      Src: /src/image/src/codecs/tiff.rs:462,1
    - Dst: write_image::<Gray8>
      Src: /src/image/src/codecs/tiff.rs:464,1
    - Dst: write_image::<RGB8>
      Src: /src/image/src/codecs/tiff.rs:465,1
    - Dst: write_image::<RGBA8>
      Src: /src/image/src/codecs/tiff.rs:466,1
    - Dst: write_image::<Gray16>
      Src: /src/image/src/codecs/tiff.rs:468,1
    - Dst: u8_slice_as_pod::<u16>
      Src: /src/image/src/codecs/tiff.rs:468,1
    - Dst: as_ref
      Src: /src/image/src/codecs/tiff.rs:468,1
    - Dst: write_image::<RGB16>
      Src: /src/image/src/codecs/tiff.rs:471,1
    - Dst: u8_slice_as_pod::<u16>
      Src: /src/image/src/codecs/tiff.rs:471,1
    - Dst: as_ref
      Src: /src/image/src/codecs/tiff.rs:471,1
    - Dst: write_image::<RGBA16>
      Src: /src/image/src/codecs/tiff.rs:474,1
    - Dst: u8_slice_as_pod::<u16>
      Src: /src/image/src/codecs/tiff.rs:474,1
    - Dst: as_ref
      Src: /src/image/src/codecs/tiff.rs:474,1
    - Dst: write_image::<RGB32Float>
      Src: /src/image/src/codecs/tiff.rs:476,1
    - Dst: u8_slice_as_pod::<f32>
      Src: /src/image/src/codecs/tiff.rs:479,1
    - Dst: as_ref
      Src: /src/image/src/codecs/tiff.rs:479,1
    - Dst: write_image::<RGBA32Float>
      Src: /src/image/src/codecs/tiff.rs:481,1
    - Dst: u8_slice_as_pod::<f32>
      Src: /src/image/src/codecs/tiff.rs:484,1
    - Dst: as_ref
      Src: /src/image/src/codecs/tiff.rs:484,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:487,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:487,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:488,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:489,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/tiff.rs:490,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:463,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:497,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 58
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 498
      start: 444
    functionDepth: 14
    functionLinenumber: 444
    functionLinenumberEnd: 498
    functionName: TiffEncoder::encode
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - write_image::<Gray16>
    - write_image::<RGBA16>
    - TiffEncoder::map_err
    - Err
    - write_image::<RGB8>
    - u8_slice_as_pod::<u16>
    - write_image::<RGBA8>
    - map_err
    - write_image::<RGB16>
    - write_image::<RGBA32Float>
    - write_image::<Gray8>
    - UnsupportedErrorKind::Color
    - tiff::encoder::TiffEncoder::new
    - into
    - ImageError::Unsupported
    - u8_slice_as_pod::<f32>
    - Option::buffer_size
    - write_image::<RGB32Float>
    - Ok
    - UnsupportedError::from_format_and_kind
    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:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 511
      start: 503
    functionDepth: 15
    functionLinenumber: 503
    functionLinenumberEnd: 511
    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: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:47,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:49,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:51,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:55,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:57,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:59,1
    - Dst: Result::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:
    - Result::write_str
    - Result::write_fmt
    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: 12
    functionLinenumber: 119
    functionLinenumberEnd: 138
    functionName: PixelFormat::from_reader
    functionSourceFile: /src/image/src/codecs/dds.rs
    functionUses: 0
    functionsReached:
    - DecoderError::PixelFormatSizeInvalid
    - read_u32::<LittleEndian>
    - Err
    - Result::read_exact
    - Ok
    - into
    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: 2
    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: 13
    functionLinenumber: 189
    functionLinenumberEnd: 206
    functionName: DX10Header::from_reader
    functionSourceFile: /src/image/src/codecs/dds.rs
    functionUses: 1
    functionsReached:
    - read_u32::<LittleEndian>
    - validate
    - Ok
    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: 12
    functionLinenumber: 208
    functionLinenumberEnd: 239
    functionName: DX10Header::validate
    functionSourceFile: /src/image/src/codecs/dds.rs
    functionUses: 0
    functionsReached:
    - DecoderError::ResourceDimensionInvalid
    - DecoderError::Dx10FlagsInvalid
    - DecoderError::DxgiFormatInvalid
    - DecoderError::Dx10ArraySizeInvalid
    - Err
    - Ok
    - into
    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: 12
    functionLinenumber: 250
    functionLinenumberEnd: 325
    functionName: DdsDecoder::new
    functionSourceFile: /src/image/src/codecs/dds.rs
    functionUses: 1
    functionsReached:
    - color_type
    - DxtDecoder::new
    - ImageError::Unsupported
    - UnsupportedErrorKind::Format
    - crate::utils::check_dimension_overflow
    - Err
    - '&str::to_string'
    - Result::read_exact
    - ImageFormatHint::Name
    - Header::from_reader
    - DX10Header::from_reader
    - Ok
    - bytes_per_pixel
    - into
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    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: 12
    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: 1
    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: 14
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: PngDecoder::new
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 6
    functionsReached:
    - Self::with_limits
    - Limits::no_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: Result::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: 13
    functionLinenumber: 44
    functionLinenumberEnd: 119
    functionName: PngDecoder::with_limits
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - ImageResult::read_info
    - map_err
    - unsupported_color
    - ExtendedColorType::Unknown
    - Limits::check_support
    - png::Decoder::new_with_limits
    - Err
    - usize::try_from
    - Limits::check_dimensions
    - Result::output_color_type
    - Ok
    - ImageResult::read_header_info
    - unwrap_or
    - Result::unwrap_or
    - ImageResult::set_transformations
    - crate::LimitSupport::default
    - ImageResult::set_ignore_text_chunk
    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: 16
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: PngDecoder::gamma_value
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - info
    - f64::from
    - map
    - 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: 17
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: PngDecoder::apng
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - Ok
    - ApngDecoder::new
    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: 16
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: PngDecoder::is_apng
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - is_some
    - info
    - Ok
    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: 12
    functionLinenumber: 162
    functionLinenumberEnd: 167
    functionName: unsupported_color
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 2
    functionsReached:
    - UnsupportedErrorKind::Color
    - into
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    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: 16
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: PngDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - info
    - size
    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: 1
    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: 16
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: PngDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - info
    - to_vec
    - map
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:183,1
    - Dst: info
      Src: /src/image/src/codecs/png.rs:183,1
    - Dst: as_ref
      Src: /src/image/src/codecs/png.rs:183,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:183,1
    - Dst: to_vec
      Src: /src/image/src/codecs/png.rs:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 182
    functionDepth: 16
    functionLinenumber: 182
    functionLinenumberEnd: 189
    functionName: PngDecoder::exif_metadata
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - info
    - to_vec
    - map
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn exif_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: info
      Src: /src/image/src/codecs/png.rs:192,1
    - Dst: iter
      Src: /src/image/src/codecs/png.rs:192,1
    - Dst: find
      Src: /src/image/src/codecs/png.rs:192,1
    - Dst: contains
      Src: /src/image/src/codecs/png.rs:197,1
    - Dst: cloned
      Src: /src/image/src/codecs/png.rs:192,1
    - Dst: decompress_text
      Src: /src/image/src/codecs/png.rs:200,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:200,1
    - Dst: get_text
      Src: /src/image/src/codecs/png.rs:201,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:201,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:203,1
    - Dst: as_bytes
      Src: /src/image/src/codecs/png.rs:203,1
    - Dst: to_vec
      Src: /src/image/src/codecs/png.rs:203,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:201,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 191
    functionDepth: 16
    functionLinenumber: 191
    functionLinenumberEnd: 207
    functionName: PngDecoder::xmp_metadata
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - iter
    - info
    - map_err
    - to_vec
    - cloned
    - get_text
    - Some
    - map
    - find
    - as_bytes
    - Ok
    - contains
    - decompress_text
    linkageType: ''
    returnType: ImageResult
    signature: fn xmp_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next_frame
      Src: /src/image/src/codecs/png.rs:213,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:213,1
    - Dst: PngDecoder::color_type
      Src: /src/image/src/codecs/png.rs:218,1
    - Dst: ColorType::bytes_per_pixel
      Src: /src/image/src/codecs/png.rs:218,1
    - Dst: PngDecoder::color_type
      Src: /src/image/src/codecs/png.rs:218,1
    - Dst: ColorType::channel_count
      Src: /src/image/src/codecs/png.rs:218,1
    - Dst: std::io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/png.rs:222,1
    - Dst: for_each
      Src: /src/image/src/codecs/png.rs:222,1
    - Dst: BigEndian::read_u16
      Src: /src/image/src/codecs/png.rs:223,1
    - Dst: NativeEndian::write_u16
      Src: /src/image/src/codecs/png.rs:224,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 229
      start: 209
    functionDepth: 13
    functionLinenumber: 209
    functionLinenumberEnd: 229
    functionName: PngDecoder::read_image
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::chunks_exact_mut
    - map_err
    - next_frame
    - ColorType::bytes_per_pixel
    - PngDecoder::color_type
    - Ok
    - NativeEndian::write_u16
    - BigEndian::read_u16
    - for_each
    - ColorType::channel_count
    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:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 233
    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:236,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/png.rs:236,1
    - Dst: info
      Src: /src/image/src/codecs/png.rs:237,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/codecs/png.rs:238,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - limits
    argTypes:
    - Limits
    constantsTouched: []
    func_position:
      end: 243
      start: 235
    functionDepth: 16
    functionLinenumber: 235
    functionLinenumberEnd: 243
    functionName: PngDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - info
    - Limits::check_support
    - Limits::check_dimensions
    - Ok
    - crate::LimitSupport::default
    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:272,1
    - Dst: ImageResult::animation_control
      Src: /src/image/src/codecs/png.rs:273,1
    - Dst: is_none
      Src: /src/image/src/codecs/png.rs:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - inner
    argTypes:
    - PngDecoder<R>
    constantsTouched: []
    func_position:
      end: 290
      start: 271
    functionDepth: 16
    functionLinenumber: 271
    functionLinenumberEnd: 290
    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:300,1
    - Dst: is_none
      Src: /src/image/src/codecs/png.rs:303,1
    - Dst: Limits::reserve_buffer
      Src: /src/image/src/codecs/png.rs:304,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:305,1
    - Dst: RgbaImage::new
      Src: /src/image/src/codecs/png.rs:305,1
    - Dst: is_none
      Src: /src/image/src/codecs/png.rs:308,1
    - Dst: Limits::reserve_buffer
      Src: /src/image/src/codecs/png.rs:309,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:310,1
    - Dst: RgbaImage::new
      Src: /src/image/src/codecs/png.rs:310,1
    - Dst: checked_sub
      Src: /src/image/src/codecs/png.rs:315,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:316,1
    - Dst: clone
      Src: /src/image/src/codecs/png.rs:327,1
    - Dst: output_buffer_size
      Src: /src/image/src/codecs/png.rs:329,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/png.rs:329,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/png.rs:330,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/png.rs:330,1
    - Dst: Limits::reserve_usize
      Src: /src/image/src/codecs/png.rs:333,1
    - Dst: next_frame
      Src: /src/image/src/codecs/png.rs:337,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:337,1
    - Dst: ApngDecoder::animatable_color_type
      Src: /src/image/src/codecs/png.rs:344,1
    - Dst: as_mut
      Src: /src/image/src/codecs/png.rs:347,1
    - Dst: unwrap
      Src: /src/image/src/codecs/png.rs:347,1
    - Dst: as_mut
      Src: /src/image/src/codecs/png.rs:348,1
    - Dst: unwrap
      Src: /src/image/src/codecs/png.rs:348,1
    - Dst: clone_from
      Src: /src/image/src/codecs/png.rs:354,1
    - Dst: clone_from
      Src: /src/image/src/codecs/png.rs:357,1
    - Dst: sub_image
      Src: /src/image/src/codecs/png.rs:359,1
    - Dst: pixels
      Src: /src/image/src/codecs/png.rs:362,1
    - Dst: collect
      Src: /src/image/src/codecs/png.rs:362,1
    - Dst: put_pixel
      Src: /src/image/src/codecs/png.rs:365,1
    - Dst: Rgba::from
      Src: /src/image/src/codecs/png.rs:365,1
    - Dst: pixels_mut
      Src: /src/image/src/codecs/png.rs:369,1
    - Dst: for_each
      Src: /src/image/src/codecs/png.rs:369,1
    - Dst: Rgba::from
      Src: /src/image/src/codecs/png.rs:370,1
    - Dst: expect
      Src: /src/image/src/codecs/png.rs:375,1
    - Dst: sub_image
      Src: /src/image/src/codecs/png.rs:378,1
    - Dst: copy_from
      Src: /src/image/src/codecs/png.rs:379,1
    - Dst: to_image
      Src: /src/image/src/codecs/png.rs:380,1
    - Dst: unwrap
      Src: /src/image/src/codecs/png.rs:379,1
    - Dst: clone
      Src: /src/image/src/codecs/png.rs:388,1
    - Dst: output_buffer_size
      Src: /src/image/src/codecs/png.rs:391,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/png.rs:391,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/png.rs:392,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/png.rs:392,1
    - Dst: Limits::reserve_usize
      Src: /src/image/src/codecs/png.rs:395,1
    - Dst: next_frame
      Src: /src/image/src/codecs/png.rs:399,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:399,1
    - Dst: info
      Src: /src/image/src/codecs/png.rs:403,1
    - Dst: ImageResult::frame_control
      Src: /src/image/src/codecs/png.rs:407,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:425,1
    - Dst: Limits::reserve_buffer
      Src: /src/image/src/codecs/png.rs:428,1
    - Dst: ImageBuffer::<Luma<_>, _>::from_raw
      Src: /src/image/src/codecs/png.rs:431,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/png.rs:431,1
    - Dst: DynamicImage::ImageLuma8
      Src: /src/image/src/codecs/png.rs:432,1
    - Dst: into_rgba8
      Src: /src/image/src/codecs/png.rs:432,1
    - Dst: ImageBuffer::<LumaA<_>, _>::from_raw
      Src: /src/image/src/codecs/png.rs:435,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/png.rs:435,1
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/src/codecs/png.rs:436,1
    - Dst: into_rgba8
      Src: /src/image/src/codecs/png.rs:436,1
    - Dst: ImageBuffer::<Rgb<_>, _>::from_raw
      Src: /src/image/src/codecs/png.rs:439,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/png.rs:439,1
    - Dst: DynamicImage::ImageRgb8
      Src: /src/image/src/codecs/png.rs:440,1
    - Dst: into_rgba8
      Src: /src/image/src/codecs/png.rs:440,1
    - Dst: ImageBuffer::<Rgba<_>, _>::from_raw
      Src: /src/image/src/codecs/png.rs:442,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/png.rs:442,1
    - Dst: Limits::free_usize
      Src: /src/image/src/codecs/png.rs:450,1
    - Dst: copy_from
      Src: /src/image/src/codecs/png.rs:454,1
    - Dst: expect
      Src: /src/image/src/codecs/png.rs:454,1
    - Dst: Option::enumerate_pixels
      Src: /src/image/src/codecs/png.rs:460,1
    - Dst: get_pixel_mut
      Src: /src/image/src/codecs/png.rs:461,1
    - Dst: blend
      Src: /src/image/src/codecs/png.rs:461,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:470,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:470,1
    - Dst: as_ref
      Src: /src/image/src/codecs/png.rs:470,1
    - Dst: unwrap
      Src: /src/image/src/codecs/png.rs:470,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 278
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 471
      start: 295
    functionDepth: 12
    functionLinenumber: 295
    functionLinenumberEnd: 471
    functionName: ApngDecoder::mix_next_frame
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - unwrap
    - info
    - as_mut
    - copy_from
    - ImageResult::unwrap
    - ImageError::Limits
    - clone_from
    - is_none
    - ImageBuffer::<Rgba<_>, _>::from_raw
    - Limits::free_usize
    - ApngDecoder::animatable_color_type
    - DynamicImage::ImageLumaA8
    - Option::enumerate_pixels
    - ok_or_else
    - clone
    - Rgba::from
    - LimitError::from_kind
    - to_image
    - pixels_mut
    - ImageBuffer::<LumaA<_>, _>::from_raw
    - pixels
    - sub_image
    - next_frame
    - map_err
    - expect
    - RgbaImage::new
    - dimensions
    - Limits::reserve_usize
    - DynamicImage::ImageRgb8
    - get_pixel_mut
    - ImageResult::frame_control
    - ImageBuffer::<Rgb<_>, _>::from_raw
    - output_buffer_size
    - collect
    - checked_sub
    - for_each
    - blend
    - Limits::reserve_buffer
    - Some
    - DynamicImage::ImageLuma8
    - Ok
    - ImageBuffer::<Luma<_>, _>::from_raw
    - put_pixel
    - into_rgba8
    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:475,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:478,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:478,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 482
      start: 473
    functionDepth: 13
    functionLinenumber: 473
    functionLinenumberEnd: 482
    functionName: ApngDecoder::animatable_color_type
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - into
    - unsupported_color
    - Ok
    - Err
    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:513,1
    - Dst: Box::new
      Src: /src/image/src/codecs/png.rs:513,1
    - Dst: FrameIterator
      Src: /src/image/src/codecs/png.rs:513,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 514
      start: 486
    functionDepth: 13
    functionLinenumber: 486
    functionLinenumberEnd: 514
    functionName: ApngDecoder::into_frames
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - FrameIterator
    - Frames::new
    linkageType: ''
    returnType: Frames
    signature: fn into_frames(self) -> Frames<'a>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CompressionType::default
      Src: /src/image/src/codecs/png.rs:573,1
    - Dst: FilterType::default
      Src: /src/image/src/codecs/png.rs:574,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/png.rs:575,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/png.rs:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 578
      start: 570
    functionDepth: 13
    functionLinenumber: 570
    functionLinenumberEnd: 578
    functionName: PngEncoder::new
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 2
    functionsReached:
    - CompressionType::default
    - FilterType::default
    - Vec::new
    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:601,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/png.rs:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - w
    - compression
    - filter
    argTypes:
    - W
    - CompressionType
    - FilterType
    constantsTouched: []
    func_position:
      end: 604
      start: 592
    functionDepth: 13
    functionLinenumber: 592
    functionLinenumberEnd: 604
    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:623,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/png.rs:623,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/png.rs:624,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:625,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/png.rs:626,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:644,1
    - Dst: DeflateCompression::Level
      Src: /src/image/src/codecs/png.rs:644,1
    - Dst: png::Info::with_size
      Src: /src/image/src/codecs/png.rs:657,1
    - Dst: is_empty
      Src: /src/image/src/codecs/png.rs:659,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:660,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/png.rs:660,1
    - Dst: is_empty
      Src: /src/image/src/codecs/png.rs:662,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:663,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/png.rs:663,1
    - Dst: png::Encoder::with_info
      Src: /src/image/src/codecs/png.rs:667,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:667,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/png.rs:667,1
    - Dst: ::std::io::Result::into
      Src: /src/image/src/codecs/png.rs:667,1
    - Dst: ImageResult::set_color
      Src: /src/image/src/codecs/png.rs:669,1
    - Dst: ImageResult::set_depth
      Src: /src/image/src/codecs/png.rs:670,1
    - Dst: ImageResult::set_compression
      Src: /src/image/src/codecs/png.rs:671,1
    - Dst: ImageResult::set_deflate_compression
      Src: /src/image/src/codecs/png.rs:673,1
    - Dst: ImageResult::set_filter
      Src: /src/image/src/codecs/png.rs:675,1
    - Dst: ImageResult::write_header
      Src: /src/image/src/codecs/png.rs:676,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/png.rs:676,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/png.rs:678,1
    - Dst: ::std::io::Result::into
      Src: /src/image/src/codecs/png.rs:678,1
    - Dst: write_image_data
      Src: /src/image/src/codecs/png.rs:679,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:679,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/png.rs:681,1
    - Dst: ::std::io::Result::into
      Src: /src/image/src/codecs/png.rs:681,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 94
    argCount: 4
    argNames:
    - data
    - width
    - height
    - color
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 682
      start: 606
    functionDepth: 12
    functionLinenumber: 606
    functionLinenumberEnd: 682
    functionName: PngEncoder::encode_inner
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - ImageResult::map_err
    - ::std::io::Result::into
    - png::Info::with_size
    - Cow::Borrowed
    - ImageError::IoError
    - Err
    - DeflateCompression::Level
    - ImageResult::set_filter
    - is_empty
    - map_err
    - ImageResult::set_deflate_compression
    - write_image_data
    - UnsupportedErrorKind::Color
    - ImageResult::set_compression
    - into
    - ImageError::Unsupported
    - png::Encoder::with_info
    - ImageResult::set_color
    - Some
    - ImageResult::set_depth
    - ImageResult::write_header
    - UnsupportedError::from_format_and_kind
    linkageType: ''
    returnType: ImageResult
    signature: 'fn encode_inner(self,data: &[u8],width: u32,height: u32,color: ExtendedColorType,)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::buffer_size
      Src: /src/image/src/codecs/png.rs:701,1
    - Dst: PngEncoder::encode_inner
      Src: /src/image/src/codecs/png.rs:716,1
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/codecs/png.rs:724,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/png.rs:724,1
    - Dst: extend
      Src: /src/image/src/codecs/png.rs:725,1
    - Dst: std::io::Result::chunks_exact
      Src: /src/image/src/codecs/png.rs:725,1
    - Dst: flat_map
      Src: /src/image/src/codecs/png.rs:725,1
    - Dst: PngEncoder::encode_inner
      Src: /src/image/src/codecs/png.rs:730,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:732,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/png.rs:732,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/png.rs:733,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:734,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/png.rs:735,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 739
      start: 692
    functionDepth: 14
    functionLinenumber: 692
    functionLinenumberEnd: 739
    functionName: PngEncoder::write_image
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - std::io::Result::chunks_exact
    - extend
    - ImageError::Unsupported
    - Err
    - into
    - flat_map
    - UnsupportedErrorKind::Color
    - Option::buffer_size
    - std::io::Result::len
    - utils::vec_try_with_capacity
    - PngEncoder::encode_inner
    - UnsupportedError::from_format_and_kind
    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:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - icc_profile
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 744
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 744
    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: Ok
      Src: /src/image/src/codecs/png.rs:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - exif
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 749
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 749
    functionName: PngEncoder::set_exif_metadata
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_exif_metadata(&mut self, exif: Vec<u8>) -> Result<(), UnsupportedError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/png.rs:756,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/png.rs:759,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/png.rs:759,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:759,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/png.rs:765,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/png.rs:765,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/png.rs:766,1
    - Dst: ImageError::to_string
      Src: /src/image/src/codecs/png.rs:766,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/png.rs:769,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/png.rs:769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - err
    argTypes:
    - png::DecodingError
    constantsTouched: []
    func_position:
      end: 772
      start: 753
    functionDepth: 13
    functionLinenumber: 753
    functionLinenumberEnd: 772
    functionName: ImageError::from_png
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - ParameterErrorKind::Generic
    - ImageError::IoError
    - DecodingError::new
    - ImageError::Parameter
    - ImageError::Limits
    - LimitError::from_kind
    - ImageError::Decoding
    - ImageError::to_string
    - ParameterError::from_kind
    - into
    linkageType: ''
    returnType: ImageError
    signature: 'fn from_png(err: png::DecodingError) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PngDecoder::new
      Src: /src/image/src/codecs/png.rs:783,1
    - Dst: BufReader::new
      Src: /src/image/src/codecs/png.rs:783,1
    - Dst: std::fs::File::open
      Src: /src/image/src/codecs/png.rs:784,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/png.rs:784,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/png.rs:783,1
    - Dst: decoder_to_vec
      Src: /src/image/src/codecs/png.rs:797,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/png.rs:797,1
    - Dst: bytes
      Src: /src/image/src/codecs/png.rs:797,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:797,1
    - Dst: expect
      Src: /src/image/src/codecs/png.rs:800,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:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 804
      start: 782
    functionDepth: 15
    functionLinenumber: 782
    functionLinenumberEnd: 804
    functionName: tests::ensure_no_decoder_off_by_one
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - BufReader::new
    - bytes
    - expect
    - map
    - ImageResult::expect
    - io::Result::unwrap
    - PngDecoder::new
    - decoder_to_vec
    - "expect(\"Unable to read file\")\n            .bytes()\n            .map(|x|\
      \ x.expect(\"Unable to read byte\"))\n            .collect::<Vec<u8>>"
    - std::fs::File::open
    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:811,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/src/codecs/png.rs:811,1
    - Dst: PngDecoder::new
      Src: /src/image/src/codecs/png.rs:815,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/png.rs:815,1
    - Dst: ImageResult::err
      Src: /src/image/src/codecs/png.rs:815,1
    - Dst: ImageError::unwrap
      Src: /src/image/src/codecs/png.rs:815,1
    - Dst: source
      Src: /src/image/src/codecs/png.rs:816,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/png.rs:816,1
    - Dst: "source()\n            .unwrap()\n            .downcast_ref::<png::DecodingError>"
      Src: /src/image/src/codecs/png.rs:816,1
    - Dst: expect
      Src: /src/image/src/codecs/png.rs:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 821
      start: 807
    functionDepth: 15
    functionLinenumber: 807
    functionLinenumberEnd: 821
    functionName: tests::underlying_error
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - expect
    - source
    - "source()\n            .unwrap()\n            .downcast_ref::<png::DecodingError>"
    - std::fs::read
    - std::io::Result::unwrap
    - ImageError::unwrap
    - Option::unwrap
    - PngDecoder::new
    - ImageResult::err
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn underlying_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::new_rgb32f
      Src: /src/image/src/codecs/png.rs:826,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/png.rs:827,1
    - Dst: Vec::write_to
      Src: /src/image/src/codecs/png.rs:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 829
      start: 824
    functionDepth: 13
    functionLinenumber: 824
    functionLinenumberEnd: 829
    functionName: tests::encode_bad_color_type
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::new_rgb32f
    - Vec::write_to
    - 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: 15
    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: std::io::Result::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: 14
    functionLinenumber: 64
    functionLinenumberEnd: 99
    functionName: OpenExrDecoder::with_alpha_preference
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 3
    functionsReached:
    - iter
    - DecodingError::new
    - ok_or_else
    - position
    - all
    - std::io::Result::map_err
    - headers
    - find_index_of_channel
    - is_some
    - ImageError::Decoding
    - ImageFormatHint::Exact
    - Ok
    - exr::block::read
    - Text::from
    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: 2
    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: 1
    functionsReached:
    - u64::height
    - OpenExrDecoder::selected_exr_header
    - u64::width
    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: 1
    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: std::io::Result::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: 13
    functionLinenumber: 135
    functionLinenumberEnd: 206
    functionName: OpenExrDecoder::read_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - from_chunks
    - OpenExrDecoder::selected_exr_header
    - map
    - largest_resolution_level
    - unwrap_or
    - to_i32
    - and_then
    - OpenExrDecoder::color_type
    - width
    - to_usize
    - ColorType::bytes_per_pixel
    - read
    - copy_from_slice
    - all_attributes
    - rgba_channels
    - height
    - map_err
    - std::io::Result::no_deep_data
    - '&mut [u8]::copy_from_slice'
    - checked_mul
    - OpenExrDecoder::dimensions
    - flat_index_for_size
    - x
    - ColorType::channel_count
    - bytemuck::cast_slice
    - as_slice
    - '&mut [u8]::len'
    - y
    - u64::checked_mul
    - Ok
    - first_valid_layer
    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: Option::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::Unsupported
      Src: /src/image/src/codecs/openexr.rs:275,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/openexr.rs:276,1
    - Dst: into
      Src: /src/image/src/codecs/openexr.rs:277,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/openexr.rs:278,1
    - Dst: Ok
      Src: /src/image/src/codecs/openexr.rs:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 63
    argCount: 5
    argNames:
    - buffered_write
    - unaligned_bytes
    - width
    - height
    - color_type
    argTypes:
    - impl Write + Seek
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 285
      start: 219
    functionDepth: 12
    functionLinenumber: 219
    functionLinenumberEnd: 285
    functionName: write_buffer
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 3
    functionsReached:
    - to_buffered
    - map_err
    - Vec2
    - ImageError::Unsupported
    - SpecificChannels::rgba
    - bytemuck::pod_read_unaligned
    - Err
    - UnsupportedErrorKind::Color
    - Option::bits_per_pixel
    - u8::flat_index_for_size
    - SpecificChannels::rgb
    - Ok
    - "Image // TODO compression method zip??\n                ::from_channels"
    - into
    - write
    - UnsupportedError::from_format_and_kind
    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:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - write
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: OpenExrEncoder::new
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 2
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(write: W) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::buffer_size
      Src: /src/image/src/codecs/openexr.rs:316,1
    - Dst: write_buffer
      Src: /src/image/src/codecs/openexr.rs:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 325
      start: 309
    functionDepth: 14
    functionLinenumber: 309
    functionLinenumberEnd: 325
    functionName: OpenExrEncoder::write_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - Option::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:329,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/openexr.rs:329,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/openexr.rs:330,1
    - Dst: Error::to_string
      Src: /src/image/src/codecs/openexr.rs:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - exr_error
    argTypes:
    - Error
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 13
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: to_image_err
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - ImageError::Decoding
    - Error::to_string
    - DecodingError::new
    - 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:354,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/openexr.rs:356,1
    - Dst: Vec::as_raw
      Src: /src/image/src/codecs/openexr.rs:356,1
    - Dst: '&Container::as_slice'
      Src: /src/image/src/codecs/openexr.rs:356,1
    - Dst: Vec::width
      Src: /src/image/src/codecs/openexr.rs:357,1
    - Dst: Vec::height
      Src: /src/image/src/codecs/openexr.rs:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - write
    - image
    argTypes:
    - impl Write + Seek
    - '&Rgb32FImage'
    constantsTouched: []
    func_position:
      end: 361
      start: 353
    functionDepth: 13
    functionLinenumber: 353
    functionLinenumberEnd: 361
    functionName: test::write_rgb_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - Vec::width
    - bytemuck::cast_slice
    - '&Container::as_slice'
    - write_buffer
    - Vec::as_raw
    - Vec::height
    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:367,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/openexr.rs:369,1
    - Dst: Vec::as_raw
      Src: /src/image/src/codecs/openexr.rs:369,1
    - Dst: '&Container::as_slice'
      Src: /src/image/src/codecs/openexr.rs:369,1
    - Dst: Vec::width
      Src: /src/image/src/codecs/openexr.rs:370,1
    - Dst: Vec::height
      Src: /src/image/src/codecs/openexr.rs:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - write
    - image
    argTypes:
    - impl Write + Seek
    - '&Rgba32FImage'
    constantsTouched: []
    func_position:
      end: 374
      start: 366
    functionDepth: 13
    functionLinenumber: 366
    functionLinenumberEnd: 374
    functionName: test::write_rgba_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - Vec::width
    - bytemuck::cast_slice
    - '&Container::as_slice'
    - write_buffer
    - Vec::as_raw
    - Vec::height
    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:378,1
    - Dst: BufReader::new
      Src: /src/image/src/codecs/openexr.rs:378,1
    - Dst: File::open
      Src: /src/image/src/codecs/openexr.rs:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - impl AsRef<Path>
    constantsTouched: []
    func_position:
      end: 379
      start: 377
    functionDepth: 16
    functionLinenumber: 377
    functionLinenumberEnd: 379
    functionName: test::read_as_rgba_image_from_file
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - File::open
    - read_as_rgba_image
    - BufReader::new
    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:383,1
    - Dst: BufReader::new
      Src: /src/image/src/codecs/openexr.rs:383,1
    - Dst: File::open
      Src: /src/image/src/codecs/openexr.rs:383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - impl AsRef<Path>
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 16
    functionLinenumber: 382
    functionLinenumberEnd: 384
    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:388,1
    - Dst: Some
      Src: /src/image/src/codecs/openexr.rs:388,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/openexr.rs:389,1
    - Dst: decoder_to_vec
      Src: /src/image/src/codecs/openexr.rs:390,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/openexr.rs:392,1
    - Dst: Option::ok_or_else
      Src: /src/image/src/codecs/openexr.rs:392,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/openexr.rs:396,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/openexr.rs:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - read
    argTypes:
    - impl BufRead + Seek
    constantsTouched: []
    func_position:
      end: 398
      start: 387
    functionDepth: 15
    functionLinenumber: 387
    functionLinenumberEnd: 398
    functionName: test::read_as_rgb_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - ImageResult::dimensions
    - Some
    - ImageError::Limits
    - LimitError::from_kind
    - decoder_to_vec
    - Option::ok_or_else
    - OpenExrDecoder::with_alpha_preference
    - ImageBuffer::from_raw
    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:402,1
    - Dst: Some
      Src: /src/image/src/codecs/openexr.rs:402,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/openexr.rs:403,1
    - Dst: decoder_to_vec
      Src: /src/image/src/codecs/openexr.rs:404,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/openexr.rs:406,1
    - Dst: Option::ok_or_else
      Src: /src/image/src/codecs/openexr.rs:406,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/openexr.rs:410,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/openexr.rs:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - read
    argTypes:
    - impl BufRead + Seek
    constantsTouched: []
    func_position:
      end: 412
      start: 401
    functionDepth: 15
    functionLinenumber: 401
    functionLinenumberEnd: 412
    functionName: test::read_as_rgba_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - ImageResult::dimensions
    - Some
    - ImageError::Limits
    - LimitError::from_kind
    - decoder_to_vec
    - Option::ok_or_else
    - OpenExrDecoder::with_alpha_preference
    - ImageBuffer::from_raw
    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:424,1
    - Dst: iter().collect::<PathBuf>
      Src: /src/image/src/codecs/openexr.rs:424,1
    - Dst: join
      Src: /src/image/src/codecs/openexr.rs:425,1
    - Dst: join
      Src: /src/image/src/codecs/openexr.rs:427,1
    - Dst: HdrDecoder::new
      Src: /src/image/src/codecs/openexr.rs:430,1
    - Dst: BufReader::new
      Src: /src/image/src/codecs/openexr.rs:430,1
    - Dst: File::open
      Src: /src/image/src/codecs/openexr.rs:430,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/openexr.rs:430,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:430,1
    - Dst: DynamicImage::from_decoder
      Src: /src/image/src/codecs/openexr.rs:431,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:431,1
    - Dst: read_as_rgb_image_from_file
      Src: /src/image/src/codecs/openexr.rs:436,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:436,1
    - Dst: pixels
      Src: /src/image/src/codecs/openexr.rs:439,1
    - Dst: Vec::zip
      Src: /src/image/src/codecs/openexr.rs:439,1
    - Dst: pixels
      Src: /src/image/src/codecs/openexr.rs:439,1
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:440,1
    - Dst: zip
      Src: /src/image/src/codecs/openexr.rs:440,1
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:440,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 415
    functionDepth: 14
    functionLinenumber: 415
    functionLinenumberEnd: 450
    functionName: test::compare_exr_hdr
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - File::open
    - BufReader::new
    - iter
    - join
    - ImageResult::unwrap
    - iter().collect::<PathBuf>
    - read_as_rgb_image_from_file
    - Vec::zip
    - io::Result::unwrap
    - zip
    - pixels
    - DynamicImage::from_decoder
    - HdrDecoder::new
    linkageType: ''
    returnType: void
    signature: fn compare_exr_hdr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/image/src/codecs/openexr.rs:454,1
    - Dst: cycle
      Src: /src/image/src/codecs/openexr.rs:454,1
    - Dst: next
      Src: /src/image/src/codecs/openexr.rs:457,1
    - Dst: unwrap
      Src: /src/image/src/codecs/openexr.rs:457,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/codecs/openexr.rs:459,1
    - Dst: Rgba
      Src: /src/image/src/codecs/openexr.rs:460,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:460,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:460,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:460,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:460,1
    - Dst: write_rgba_image
      Src: /src/image/src/codecs/openexr.rs:464,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/openexr.rs:464,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:464,1
    - Dst: read_as_rgba_image
      Src: /src/image/src/codecs/openexr.rs:465,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/openexr.rs:465,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 468
      start: 453
    functionDepth: 17
    functionLinenumber: 453
    functionLinenumberEnd: 468
    functionName: test::roundtrip_rgba
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - unwrap
    - cycle
    - write_rgba_image
    - next_random
    - ImageResult::unwrap
    - Rgba
    - read_as_rgba_image
    - ImageBuffer::from_fn
    - next
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn roundtrip_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/image/src/codecs/openexr.rs:472,1
    - Dst: cycle
      Src: /src/image/src/codecs/openexr.rs:472,1
    - Dst: next
      Src: /src/image/src/codecs/openexr.rs:475,1
    - Dst: unwrap
      Src: /src/image/src/codecs/openexr.rs:475,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/codecs/openexr.rs:477,1
    - Dst: Rgb
      Src: /src/image/src/codecs/openexr.rs:478,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:478,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:478,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:478,1
    - Dst: write_rgb_image
      Src: /src/image/src/codecs/openexr.rs:482,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/openexr.rs:482,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:482,1
    - Dst: read_as_rgb_image
      Src: /src/image/src/codecs/openexr.rs:483,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/openexr.rs:483,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 486
      start: 471
    functionDepth: 17
    functionLinenumber: 471
    functionLinenumberEnd: 486
    functionName: test::roundtrip_rgb
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - unwrap
    - cycle
    - read_as_rgb_image
    - next_random
    - ImageResult::unwrap
    - Rgb
    - write_rgb_image
    - ImageBuffer::from_fn
    - next
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn roundtrip_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:490,1
    - Dst: "iter()\n            .collect::<PathBuf>"
      Src: /src/image/src/codecs/openexr.rs:490,1
    - Dst: join
      Src: /src/image/src/codecs/openexr.rs:490,1
    - Dst: read_as_rgb_image_from_file
      Src: /src/image/src/codecs/openexr.rs:495,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:495,1
    - Dst: read_as_rgba_image_from_file
      Src: /src/image/src/codecs/openexr.rs:496,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:496,1
    - Dst: pixels
      Src: /src/image/src/codecs/openexr.rs:500,1
    - Dst: Vec::zip
      Src: /src/image/src/codecs/openexr.rs:500,1
    - Dst: pixels
      Src: /src/image/src/codecs/openexr.rs:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 489
    functionDepth: 17
    functionLinenumber: 489
    functionLinenumberEnd: 503
    functionName: test::compare_rgba_rgb
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - iter
    - "iter()\n            .collect::<PathBuf>"
    - join
    - ImageResult::unwrap
    - read_as_rgba_image_from_file
    - read_as_rgb_image_from_file
    - Vec::zip
    - pixels
    linkageType: ''
    returnType: void
    signature: fn compare_rgba_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:516,1
    - Dst: iter().collect::<PathBuf>
      Src: /src/image/src/codecs/openexr.rs:516,1
    - Dst: join
      Src: /src/image/src/codecs/openexr.rs:517,1
    - Dst: join
      Src: /src/image/src/codecs/openexr.rs:518,1
    - Dst: read_first_flat_layer_from_file
      Src: /src/image/src/codecs/openexr.rs:522,1
    - Dst: unwrap
      Src: /src/image/src/codecs/openexr.rs:522,1
    - Dst: read_first_flat_layer_from_file
      Src: /src/image/src/codecs/openexr.rs:523,1
    - Dst: unwrap
      Src: /src/image/src/codecs/openexr.rs:523,1
    - Dst: read_as_rgba_image_from_file
      Src: /src/image/src/codecs/openexr.rs:536,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:536,1
    - Dst: read_as_rgba_image_from_file
      Src: /src/image/src/codecs/openexr.rs:537,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 543
      start: 506
    functionDepth: 17
    functionLinenumber: 506
    functionLinenumberEnd: 543
    functionName: test::compare_cropped
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - iter
    - read_first_flat_layer_from_file
    - join
    - ImageResult::unwrap
    - iter().collect::<PathBuf>
    - read_as_rgba_image_from_file
    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: 2
    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:
    - decode_to_buf
    - map_err
    - 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: 13
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: decoding_error
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - ImageError::Decoding
    - into
    - DecodingError::new
    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: 13
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: encoding_error
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - EncodingError::new
    - ImageError::Encoding
    - 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::Unsupported
      Src: /src/image/src/codecs/qoi.rs:80,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/qoi.rs:81,1
    - Dst: into
      Src: /src/image/src/codecs/qoi.rs:82,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/qoi.rs:83,1
    - Dst: Option::buffer_size
      Src: /src/image/src/codecs/qoi.rs:88,1
    - Dst: qoi::encode_to_vec
      Src: /src/image/src/codecs/qoi.rs:97,1
    - Dst: map_err
      Src: /src/image/src/codecs/qoi.rs:97,1
    - Dst: write_all
      Src: /src/image/src/codecs/qoi.rs:100,1
    - Dst: flush
      Src: /src/image/src/codecs/qoi.rs:101,1
    - Dst: Ok
      Src: /src/image/src/codecs/qoi.rs:103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 104
      start: 69
    functionDepth: 12
    functionLinenumber: 69
    functionLinenumberEnd: 104
    functionName: QoiEncoder::write_image
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - map_err
    - ImageError::Unsupported
    - write_all
    - Err
    - UnsupportedErrorKind::Color
    - Option::buffer_size
    - qoi::encode_to_vec
    - Ok
    - into
    - flush
    - UnsupportedError::from_format_and_kind
    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:114,1
    - Dst: File::open
      Src: /src/image/src/codecs/qoi.rs:114,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/qoi.rs:114,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/qoi.rs:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 17
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: tests::decode_test_image
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - File::open
    - io::Result::unwrap
    - QoiDecoder::new
    - ImageResult::expect
    linkageType: ''
    returnType: void
    signature: fn decode_test_image()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::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:32,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/hdr/encoder.rs:32,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/hdr/encoder.rs:33,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/encoder.rs:34,1
    - Dst: UnsupportedErrorKind::Color
      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: 39
      start: 15
    functionDepth: 14
    functionLinenumber: 15
    functionLinenumberEnd: 39
    functionName: HdrEncoder::write_image
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageError::Unsupported
    - bytemuck::pod_read_unaligned
    - Err
    - map
    - '&[u8]::chunks_exact'
    - Option::bits_per_pixel
    - to_rgbe8
    - UnsupportedErrorKind::Color
    - Rgb::<f32>
    - HdrEncoder::encode_pixels
    - into
    - UnsupportedError::from_format_and_kind
    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: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    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:51,1
    - Dst: iter
      Src: /src/image/src/codecs/hdr/encoder.rs:51,1
    - Dst: map
      Src: /src/image/src/codecs/hdr/encoder.rs:51,1
    - Dst: to_rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - rgb
    - width
    - height
    argTypes:
    - '&[Rgb<f32>]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 14
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: HdrEncoder::encode
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - to_rgbe8
    - iter
    - map
    - 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: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: Self::write_all
      Src: /src/image/src/codecs/hdr/encoder.rs:73,1
    - Dst: as_bytes
      Src: /src/image/src/codecs/hdr/encoder.rs:73,1
    - Dst: contains
      Src: /src/image/src/codecs/hdr/encoder.rs:75,1
    - Dst: write_rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:77,1
    - Dst: codecs::hdr::rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:81,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/hdr/encoder.rs:91,1
    - Dst: zip
      Src: /src/image/src/codecs/hdr/encoder.rs:91,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/hdr/encoder.rs:93,1
    - Dst: zip
      Src: /src/image/src/codecs/hdr/encoder.rs:91,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/hdr/encoder.rs:94,1
    - Dst: zip
      Src: /src/image/src/codecs/hdr/encoder.rs:91,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/hdr/encoder.rs:95,1
    - Dst: zip
      Src: /src/image/src/codecs/hdr/encoder.rs:91,1
    - Dst: write_rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:104,1
    - Dst: clear
      Src: /src/image/src/codecs/hdr/encoder.rs:105,1
    - Dst: rle_compress
      Src: /src/image/src/codecs/hdr/encoder.rs:106,1
    - Dst: Self::write_all
      Src: /src/image/src/codecs/hdr/encoder.rs:107,1
    - Dst: clear
      Src: /src/image/src/codecs/hdr/encoder.rs:108,1
    - Dst: rle_compress
      Src: /src/image/src/codecs/hdr/encoder.rs:109,1
    - Dst: Self::write_all
      Src: /src/image/src/codecs/hdr/encoder.rs:110,1
    - Dst: clear
      Src: /src/image/src/codecs/hdr/encoder.rs:111,1
    - Dst: rle_compress
      Src: /src/image/src/codecs/hdr/encoder.rs:112,1
    - Dst: Self::write_all
      Src: /src/image/src/codecs/hdr/encoder.rs:113,1
    - Dst: clear
      Src: /src/image/src/codecs/hdr/encoder.rs:114,1
    - Dst: rle_compress
      Src: /src/image/src/codecs/hdr/encoder.rs:115,1
    - Dst: Self::write_all
      Src: /src/image/src/codecs/hdr/encoder.rs:116,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/encoder.rs:119,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: 120
      start: 57
    functionDepth: 3
    functionLinenumber: 57
    functionLinenumberEnd: 120
    functionName: HdrEncoder::encode_pixels
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 2
    functionsReached:
    - codecs::hdr::rgbe8
    - rle_compress
    - clear
    - write_rgbe8
    - Ok
    - contains
    - zip
    - as_bytes
    - Self::write_all
    - iter_mut
    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: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: RunIterator::new
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 2
    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:149,1
    - Dst: iter
      Src: /src/image/src/codecs/hdr/encoder.rs:153,1
    - Dst: take_while
      Src: /src/image/src/codecs/hdr/encoder.rs:153,1
    - Dst: take
      Src: /src/image/src/codecs/hdr/encoder.rs:153,1
    - Dst: count
      Src: /src/image/src/codecs/hdr/encoder.rs:153,1
    - Dst: self::RunOrNot::Run
      Src: /src/image/src/codecs/hdr/encoder.rs:159,1
    - Dst: self::RunOrNot::Norun
      Src: /src/image/src/codecs/hdr/encoder.rs:161,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 14
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: RunIterator::next
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - iter
    - count
    - take_while
    - Some
    - self::RunOrNot::Norun
    - len
    - self::RunOrNot::Run
    - 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:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&''a [u8]'
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: NorunCombineIterator::new
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 2
    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:189,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:192,1
    - Dst: self::RunOrNot::Run
      Src: /src/image/src/codecs/hdr/encoder.rs:192,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/encoder.rs:196,1
    - Dst: cmp
      Src: /src/image/src/codecs/hdr/encoder.rs:200,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:201,1
    - Dst: self::RunOrNot::Norun
      Src: /src/image/src/codecs/hdr/encoder.rs:201,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:205,1
    - Dst: self::RunOrNot::Norun
      Src: /src/image/src/codecs/hdr/encoder.rs:205,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:207,1
    - Dst: self::RunOrNot::Norun
      Src: /src/image/src/codecs/hdr/encoder.rs:207,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:211,1
    - Dst: self::RunOrNot::Norun
      Src: /src/image/src/codecs/hdr/encoder.rs:211,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:218,1
    - Dst: self::RunOrNot::Run
      Src: /src/image/src/codecs/hdr/encoder.rs:218,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:219,1
    - Dst: self::RunOrNot::Norun
      Src: /src/image/src/codecs/hdr/encoder.rs:219,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:223,1
    - Dst: self::RunOrNot::Norun
      Src: /src/image/src/codecs/hdr/encoder.rs:223,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/encoder.rs:229,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:231,1
    - Dst: self::RunOrNot::Norun
      Src: /src/image/src/codecs/hdr/encoder.rs:231,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/encoder.rs:236,1
    - Dst: self::RunOrNot::Run
      Src: /src/image/src/codecs/hdr/encoder.rs:236,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 246
      start: 187
    functionDepth: 5
    functionLinenumber: 187
    functionLinenumberEnd: 246
    functionName: NorunCombineIterator::next
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - next
    - cmp
    - Some
    - self::RunOrNot::Norun
    - self::RunOrNot::Run
    - 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:251,1
    - Dst: Result::is_empty
      Src: /src/image/src/codecs/hdr/encoder.rs:252,1
    - Dst: ImageResult::push
      Src: /src/image/src/codecs/hdr/encoder.rs:253,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:259,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:264,1
    - Dst: ImageResult::push
      Src: /src/image/src/codecs/hdr/encoder.rs:268,1
    - Dst: ImageResult::extend_from_slice
      Src: /src/image/src/codecs/hdr/encoder.rs:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 2
    argNames:
    - data
    - rle
    argTypes:
    - '&[u8]'
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 273
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 273
    functionName: rle_compress
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 1
    functionsReached:
    - ImageResult::clear
    - NorunCombineIterator::new
    - ImageResult::extend_from_slice
    - ImageResult::push
    - Result::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:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - w
    - v
    argTypes:
    - '&mut W'
    - Rgbe8Pixel
    constantsTouched: []
    func_position:
      end: 277
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 277
    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:282,1
    - Dst: f32::max
      Src: /src/image/src/codecs/hdr/encoder.rs:282,1
    - Dst: log2
      Src: /src/image/src/codecs/hdr/encoder.rs:287,1
    - Dst: floor
      Src: /src/image/src/codecs/hdr/encoder.rs:287,1
    - Dst: f32::powi
      Src: /src/image/src/codecs/hdr/encoder.rs:288,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/hdr/encoder.rs:290,1
    - Dst: zip
      Src: /src/image/src/codecs/hdr/encoder.rs:290,1
    - Dst: Rgb<f32>::iter
      Src: /src/image/src/codecs/hdr/encoder.rs:290,1
    - Dst: f32::trunc
      Src: /src/image/src/codecs/hdr/encoder.rs:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 1
    argNames:
    - pix
    argTypes:
    - Rgb<f32>
    constantsTouched: []
    func_position:
      end: 298
      start: 280
    functionDepth: 4
    functionLinenumber: 280
    functionLinenumberEnd: 298
    functionName: to_rgbe8
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 3
    functionsReached:
    - Rgb<f32>::iter
    - floor
    - f32::max
    - log2
    - f32::trunc
    - f32::powi
    - zip
    - iter_mut
    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:330,1
    - Dst: zip
      Src: /src/image/src/codecs/hdr/encoder.rs:330,1
    - Dst: iter
      Src: /src/image/src/codecs/hdr/encoder.rs:331,1
    - Dst: fold
      Src: /src/image/src/codecs/hdr/encoder.rs:330,1
    - Dst: f32::max
      Src: /src/image/src/codecs/hdr/encoder.rs:332,1
    - Dst: abs
      Src: /src/image/src/codecs/hdr/encoder.rs:332,1
    - Dst: iter
      Src: /src/image/src/codecs/hdr/encoder.rs:334,1
    - Dst: chain
      Src: /src/image/src/codecs/hdr/encoder.rs:334,1
    - Dst: iter
      Src: /src/image/src/codecs/hdr/encoder.rs:335,1
    - Dst: fold
      Src: /src/image/src/codecs/hdr/encoder.rs:334,1
    - Dst: f32::max
      Src: /src/image/src/codecs/hdr/encoder.rs:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Rgb<f32>
    - Rgb<f32>
    constantsTouched: []
    func_position:
      end: 342
      start: 327
    functionDepth: 4
    functionLinenumber: 327
    functionLinenumberEnd: 342
    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:
    - iter
    - f32::max
    - abs
    - chain
    - fold
    - zip
    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:309,1
    - Dst: codecs::hdr::rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:311,1
    - Dst: codecs::hdr::rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:313,1
    - Dst: codecs::hdr::rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:315,1
    - Dst: codecs::hdr::rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:317,1
    - Dst: codecs::hdr::rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:323,1
    - Dst: color::Rgb
      Src: /src/image/src/codecs/hdr/encoder.rs:350,1
    - Dst: to_rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs:351,1
    - Dst: Rgbe8Pixel::to_hdr
      Src: /src/image/src/codecs/hdr/encoder.rs:351,1
    - Dst: relative_dist
      Src: /src/image/src/codecs/hdr/encoder.rs:352,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 361
      start: 301
    functionDepth: 5
    functionLinenumber: 301
    functionLinenumberEnd: 361
    functionName: to_rgbe8_test
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - codecs::hdr::rgbe8
    - Rgbe8Pixel::to_hdr
    - to_rgbe8
    - relative_dist
    - 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:366,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:369,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:373,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:377,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:381,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:386,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:391,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:396,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:401,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:406,1
    - Dst: RunIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 415
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 415
    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:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - v
    - other
    argTypes:
    - Vec<T>
    - Vec<T>
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    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:425,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:429,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:434,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:439,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:444,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:450,1
    - Dst: a
      Src: /src/image/src/codecs/hdr/encoder.rs:457,1
    - Dst: a
      Src: /src/image/src/codecs/hdr/encoder.rs:457,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:458,1
    - Dst: a
      Src: /src/image/src/codecs/hdr/encoder.rs:464,1
    - Dst: a
      Src: /src/image/src/codecs/hdr/encoder.rs:464,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:465,1
    - Dst: std::iter::repeat
      Src: /src/image/src/codecs/hdr/encoder.rs:471,1
    - Dst: ImageResult::flat_map
      Src: /src/image/src/codecs/hdr/encoder.rs:471,1
    - Dst: take
      Src: /src/image/src/codecs/hdr/encoder.rs:471,1
    - Dst: collect
      Src: /src/image/src/codecs/hdr/encoder.rs:471,1
    - Dst: NorunCombineIterator::new
      Src: /src/image/src/codecs/hdr/encoder.rs:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 86
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 480
      start: 418
    functionDepth: 17
    functionLinenumber: 418
    functionLinenumberEnd: 480
    functionName: noruncombine_test
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::flat_map
    - NorunCombineIterator::new
    - collect
    - take
    - std::iter::repeat
    - a
    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: Result::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:
    - Result::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 as From<_>>::from
    - f32::exp2
    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: 13
    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: 13
    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: std::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: 12
    functionLinenumber: 180
    functionLinenumberEnd: 257
    functionName: HdrDecoder::with_strictness
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - parse_dimensions_line
    - ImageError::Unsupported
    - std::io::Result::is_empty
    - crate::utils::check_dimension_overflow
    - read_line_u8
    - Err
    - String::from_utf8_lossy
    - Result::read_exact
    - HdrMetadata::update_header_info
    - Ok
    - HdrMetadata::new
    - bytes_per_pixel
    - into
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    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: std::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: 14
    functionLinenumber: 265
    functionLinenumberEnd: 292
    functionName: HdrDecoder::read_image_transform
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - std::io::Result::iter
    - f
    - read_scanline
    - Ok
    - zip
    - '&mut [T]::chunks_mut'
    - Option::iter_mut
    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: 15
    functionLinenumber: 304
    functionLinenumberEnd: 315
    functionName: HdrDecoder::read_image
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - bytemuck::cast_slice
    - enumerate
    - Ok
    - copy_from_slice
    - Option::into_iter
    - HdrDecoder::read_image_transform
    - to_hdr
    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: std::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: 13
    functionLinenumber: 323
    functionLinenumberEnd: 341
    functionName: read_scanline
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 3
    functionsReached:
    - decode_component
    - decode_old_rle
    - read_rgbe
    - Ok
    - std::io::Result::len
    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: 2
    functionLinenumber: 344
    functionLinenumberEnd: 348
    functionName: read_byte
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    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: 12
    functionLinenumber: 352
    functionLinenumberEnd: 394
    functionName: decode_component
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - DecoderError::WrongScanlineLength
    - iter
    - enumerate
    - Err
    - read_byte
    - Result::read_exact
    - Ok
    - into
    - set_component
    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: std::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: 12
    functionLinenumber: 399
    functionLinenumberEnd: 451
    functionName: decode_old_rle
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - rl_marker
    - DecoderError::WrongScanlineLength
    - read_rgbe
    - Err
    - Ok
    - std::io::Result::len
    - Option::is_some
    - into
    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: 2
    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: std::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: 15
    functionLinenumber: 507
    functionLinenumberEnd: 595
    functionName: HdrMetadata::update_header_info
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - String::new
    - UnsupportedErrorKind::Format
    - DecoderError::UnparsableF32
    - limit_string_len
    - unwrap_or
    - Err
    - S::Larger::trim
    - trim().parse::<f32>
    - to_owned
    - push
    - std::io::Result::to_owned
    - S::Larger::to_owned
    - trim
    - parse_space_separated_f32
    - into
    - ImageError::Unsupported
    - Option::map
    - Some
    - ImageFormatHint::Name
    - Ok
    - split_at_first
    - UnsupportedError::from_format_and_kind
    linkageType: ''
    returnType: ImageResult
    signature: 'fn update_header_info(&mut self, line: &str, strict: bool) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::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: 12
    functionLinenumber: 598
    functionLinenumberEnd: 612
    functionName: parse_space_separated_f32
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - '&mut [f32]::iter_mut'
    - DecoderError::LineTooShort
    - DecoderError::UnparsableF32
    - std::io::Result::split_whitespace
    - Err
    - into
    - is_some
    - parse::<f32>
    - Ok
    - next
    linkageType: ''
    returnType: ImageResult
    signature: 'fn parse_space_separated_f32(line: &str, vals: &mut [f32], line_tp:
      LineType) -> ImageResult<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::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: 12
    functionLinenumber: 616
    functionLinenumberEnd: 661
    functionName: parse_dimensions_line
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - DecoderError::DimensionsLineTooLong
    - parse::<u32>
    - map_err
    - ok_or
    - ImageError::Unsupported
    - std::io::Result::split_whitespace
    - DecoderError::DimensionsLineTooShort
    - Err
    - into
    - DecoderError::UnparsableU32
    - is_some
    - Ok
    - next
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    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: 13
    functionLinenumber: 664
    functionLinenumberEnd: 671
    functionName: limit_string_len
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - '&str::chars'
    - chain
    - count
    - into
    - collect
    - 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: 14
    functionLinenumber: 675
    functionLinenumberEnd: 681
    functionName: split_at_first
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - len
    - find
    - '&str::len'
    - Some
    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: 14
    functionLinenumber: 686
    functionLinenumberEnd: 700
    functionName: read_line_u8
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - Vec::with_capacity
    - Result::read
    - Some
    - Result::push
    - Ok
    - Result::is_empty
    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: 12
    functionLinenumber: 733
    functionLinenumberEnd: 743
    functionName: tests::read_line_u8_test
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - into
    - Cursor::new
    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: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: BmpEncoder::new
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 4
    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:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - image
    - width
    - height
    - c
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 39
      start: 31
    functionDepth: 15
    functionLinenumber: 31
    functionLinenumberEnd: 39
    functionName: BmpEncoder::encode
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    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:56,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/encoder.rs:60,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/bmp/encoder.rs:60,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/bmp/encoder.rs:60,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/bmp/encoder.rs:61,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/bmp/encoder.rs:62,1
    - Dst: Option::buffer_size
      Src: /src/image/src/codecs/bmp/encoder.rs:67,1
    - Dst: written_pixel_info
      Src: /src/image/src/codecs/bmp/encoder.rs:78,1
    - Dst: u32::checked_mul
      Src: /src/image/src/codecs/bmp/encoder.rs:80,1
    - Dst: and_then
      Src: /src/image/src/codecs/bmp/encoder.rs:80,1
    - Dst: DynamicImage::checked_next_multiple_of
      Src: /src/image/src/codecs/bmp/encoder.rs:83,1
    - Dst: and_then
      Src: /src/image/src/codecs/bmp/encoder.rs:80,1
    - Dst: DynamicImage::checked_mul
      Src: /src/image/src/codecs/bmp/encoder.rs:85,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/encoder.rs:86,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/bmp/encoder.rs:80,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/bmp/encoder.rs:89,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/bmp/encoder.rs:89,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/bmp/encoder.rs:97,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/bmp/encoder.rs:97,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/bmp/encoder.rs:98,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/bmp/encoder.rs:98,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/bmp/encoder.rs:99,1
    - Dst: BITMAPFILEHEADER_SIZE::checked_add
      Src: /src/image/src/codecs/bmp/encoder.rs:104,1
    - Dst: and_then
      Src: /src/image/src/codecs/bmp/encoder.rs:104,1
    - Dst: DynamicImage::checked_add
      Src: /src/image/src/codecs/bmp/encoder.rs:106,1
    - Dst: and_then
      Src: /src/image/src/codecs/bmp/encoder.rs:104,1
    - Dst: DynamicImage::checked_add
      Src: /src/image/src/codecs/bmp/encoder.rs:107,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/bmp/encoder.rs:104,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/bmp/encoder.rs:109,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/bmp/encoder.rs:109,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/bmp/encoder.rs:110,1
    - Dst: BITMAPFILEHEADER_SIZE::checked_add
      Src: /src/image/src/codecs/bmp/encoder.rs:115,1
    - Dst: and_then
      Src: /src/image/src/codecs/bmp/encoder.rs:115,1
    - Dst: DynamicImage::checked_add
      Src: /src/image/src/codecs/bmp/encoder.rs:117,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/bmp/encoder.rs:115,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/bmp/encoder.rs:119,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/bmp/encoder.rs:119,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/bmp/encoder.rs:120,1
    - Dst: write_u8
      Src: /src/image/src/codecs/bmp/encoder.rs:126,1
    - Dst: write_u8
      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_u16::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:129,1
    - Dst: writer.write_u16::<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:134,1
    - Dst: writer.write_i32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:135,1
    - Dst: writer.write_i32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:136,1
    - Dst: writer.write_u16::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:137,1
    - Dst: "writer\n            .write_u16::<LittleEndian>"
      Src: /src/image/src/codecs/bmp/encoder.rs:138,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:142,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:144,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:146,1
    - Dst: writer.write_i32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:147,1
    - Dst: writer.write_i32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:148,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:149,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:150,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:153,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:154,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:155,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:156,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:157,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:161,1
    - Dst: BmpEncoder::encode_rgb
      Src: /src/image/src/codecs/bmp/encoder.rs:167,1
    - Dst: BmpEncoder::encode_rgba
      Src: /src/image/src/codecs/bmp/encoder.rs:168,1
    - Dst: BmpEncoder::encode_gray
      Src: /src/image/src/codecs/bmp/encoder.rs:170,1
    - Dst: BmpEncoder::encode_gray
      Src: /src/image/src/codecs/bmp/encoder.rs:173,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/encoder.rs:176,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/encoder.rs:176,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/encoder.rs:177,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/encoder.rs:178,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/bmp/encoder.rs:179,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:185,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 249
    argCount: 5
    argNames:
    - image
    - width
    - height
    - color_type
    - palette
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    - Option<&[[u8; 3]]>
    constantsTouched: []
    func_position:
      end: 186
      start: 48
    functionDepth: 14
    functionLinenumber: 48
    functionLinenumberEnd: 186
    functionName: BmpEncoder::encode_with_palette
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached:
    - BmpEncoder::encode_rgb
    - writer.write_i32::<LittleEndian>
    - ImageError::Parameter
    - BmpEncoder::encode_gray
    - '&str::to_string'
    - EncodingError::new
    - u32::checked_mul
    - and_then
    - writer.write_u16::<LittleEndian>
    - ok_or_else
    - ImageError::Encoding
    - ImageResult::is_some
    - Err
    - ImageFormatHint::Exact
    - DynamicImage::checked_add
    - ParameterErrorKind::Generic
    - checked_mul
    - UnsupportedErrorKind::Color
    - write_u8
    - writer.write_u32::<LittleEndian>
    - "writer\n            .write_u16::<LittleEndian>"
    - into
    - ImageError::Unsupported
    - DynamicImage::checked_mul
    - Some
    - BITMAPFILEHEADER_SIZE::checked_add
    - Option::buffer_size
    - BmpEncoder::encode_rgba
    - DynamicImage::checked_next_multiple_of
    - Ok
    - ParameterError::from_kind
    - written_pixel_info
    - UnsupportedError::from_format_and_kind
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn encode_with_palette(&mut self,image: &[u8],width: u32,height:
      u32,color_type: ExtendedColorType,palette: Option<&[[u8; 3]]>,) -> ImageResult<()>'
  - 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:208,1
    - Dst: BmpEncoder::write_row_pad
      Src: /src/image/src/codecs/bmp/encoder.rs:210,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 5
    argNames:
    - image
    - width
    - height
    - row_padding
    - bytes_per_pixel
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 214
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 214
    functionName: BmpEncoder::encode_rgb
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached:
    - rev
    - write_all
    - chunks_exact
    - Ok
    - BmpEncoder::write_row_pad
    linkageType: ''
    returnType: io::Result
    signature: 'fn encode_rgb(&mut self,image: &[u8],width: u32,height: u32,row_padding:
      u32,bytes_per_pixel: u32,) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rev
      Src: /src/image/src/codecs/bmp/encoder.rs:228,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/bmp/encoder.rs:231,1
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:237,1
    - Dst: BmpEncoder::write_row_pad
      Src: /src/image/src/codecs/bmp/encoder.rs:239,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 5
    argNames:
    - image
    - width
    - height
    - row_padding
    - bytes_per_pixel
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 243
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 243
    functionName: BmpEncoder::encode_rgba
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached:
    - rev
    - write_all
    - chunks_exact
    - Ok
    - BmpEncoder::write_row_pad
    linkageType: ''
    returnType: io::Result
    signature: 'fn encode_rgba(&mut self,image: &[u8],width: u32,height: u32,row_padding:
      u32,bytes_per_pixel: u32,) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:258,1
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:263,1
    - Dst: rev
      Src: /src/image/src/codecs/bmp/encoder.rs:270,1
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:277,1
    - Dst: write_u8
      Src: /src/image/src/codecs/bmp/encoder.rs:282,1
    - Dst: BmpEncoder::write_row_pad
      Src: /src/image/src/codecs/bmp/encoder.rs:287,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:290,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 67
    argCount: 6
    argNames:
    - image
    - width
    - height
    - row_padding
    - bytes_per_pixel
    - palette
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - u32
    - u32
    - Option<&[[u8; 3]]>
    constantsTouched: []
    func_position:
      end: 291
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 291
    functionName: BmpEncoder::encode_gray
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached:
    - write_all
    - rev
    - write_u8
    - Ok
    - BmpEncoder::write_row_pad
    linkageType: ''
    returnType: io::Result
    signature: 'fn encode_gray(&mut self,image: &[u8],width: u32,height: u32,row_padding:
      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:295,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:298,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - row_pad_size
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 299
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 299
    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:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 312
      start: 304
    functionDepth: 16
    functionLinenumber: 304
    functionLinenumberEnd: 312
    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:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - img
    argTypes:
    - crate::io::encoder::MethodSealedToImage
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 320
    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:
    - Dst: Some
      Src: /src/image/src/codecs/bmp/encoder.rs:329,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/encoder.rs:330,1
    - Dst: u32::try_from
      Src: /src/image/src/codecs/bmp/encoder.rs:334,1
    - Dst: ImageResult::map
      Src: /src/image/src/codecs/bmp/encoder.rs:334,1
    - Dst: Result::len
      Src: /src/image/src/codecs/bmp/encoder.rs:334,1
    - Dst: ImageResult::unwrap_or
      Src: /src/image/src/codecs/bmp/encoder.rs:334,1
    - Dst: Result::ok
      Src: /src/image/src/codecs/bmp/encoder.rs:334,1
    - Dst: u32::try_from
      Src: /src/image/src/codecs/bmp/encoder.rs:339,1
    - Dst: ImageResult::map
      Src: /src/image/src/codecs/bmp/encoder.rs:339,1
    - Dst: Result::len
      Src: /src/image/src/codecs/bmp/encoder.rs:339,1
    - Dst: ImageResult::unwrap_or
      Src: /src/image/src/codecs/bmp/encoder.rs:339,1
    - Dst: Result::ok
      Src: /src/image/src/codecs/bmp/encoder.rs:339,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/encoder.rs:342,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/encoder.rs:342,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/encoder.rs:343,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/encoder.rs:344,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/bmp/encoder.rs:345,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/bmp/encoder.rs:351,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/bmp/encoder.rs:352,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/bmp/encoder.rs:352,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/bmp/encoder.rs:353,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 2
    argNames:
    - c
    - palette
    argTypes:
    - ExtendedColorType
    - Option<&[[u8; 3]]>
    constantsTouched: []
    func_position:
      end: 359
      start: 324
    functionDepth: 14
    functionLinenumber: 324
    functionLinenumberEnd: 359
    functionName: written_pixel_info
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached:
    - ok_or_else
    - ImageError::Unsupported
    - u32::try_from
    - ImageError::Encoding
    - EncodingError::new
    - Err
    - Some
    - Result::ok
    - UnsupportedErrorKind::Color
    - ImageFormatHint::Exact
    - Ok
    - ImageResult::unwrap_or
    - into
    - Result::len
    - ImageResult::map
    - UnsupportedError::from_format_and_kind
    linkageType: ''
    returnType: Result
    signature: 'fn written_pixel_info(c: ExtendedColorType,palette: Option<&[[u8;
      3]]>,) -> Result<(u32, u32, u32), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/encoder.rs:474,1
    - Dst: TgaEncoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:476,1
    - Dst: TgaEncoder::disable_rle
      Src: /src/image/src/codecs/tga/encoder.rs:476,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/tga/encoder.rs:477,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/tga/encoder.rs:477,1
    - Dst: TgaDecoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:482,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/tga/encoder.rs:482,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/tga/encoder.rs:482,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/tga/encoder.rs:485,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/tga/encoder.rs:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 4
    argNames:
    - image
    - width
    - height
    - c
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 487
      start: 468
    functionDepth: 13
    functionLinenumber: 468
    functionLinenumberEnd: 487
    functionName: tests::round_trip_image
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - TgaEncoder::disable_rle
    - TgaDecoder::new
    - ImageResult::read_image
    - ImageResult::encode
    - TgaEncoder::new
    - ImageResult::expect
    - Vec::new
    - Cursor::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:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 14
    functionLinenumber: 490
    functionLinenumberEnd: 495
    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:399,1
    - Dst: BmpEncoder::new
      Src: /src/image/src/codecs/bmp/encoder.rs:401,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/bmp/encoder.rs:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 398
    functionDepth: 13
    functionLinenumber: 398
    functionLinenumberEnd: 404
    functionName: tests::huge_files_return_error
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::encode
    - BmpEncoder::new
    - Vec::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:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 498
    functionDepth: 14
    functionLinenumber: 498
    functionLinenumberEnd: 503
    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:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 527
      start: 522
    functionDepth: 14
    functionLinenumber: 522
    functionLinenumberEnd: 527
    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:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 511
      start: 506
    functionDepth: 14
    functionLinenumber: 506
    functionLinenumberEnd: 511
    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:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 14
    functionLinenumber: 514
    functionLinenumberEnd: 519
    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: BmpEncoder::new
      Src: /src/image/src/codecs/bmp/encoder.rs:456,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/bmp/encoder.rs:457,1
    - Dst: ImageResult::unwrap_err
      Src: /src/image/src/codecs/bmp/encoder.rs:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 454
    functionDepth: 14
    functionLinenumber: 454
    functionLinenumberEnd: 460
    functionName: tests::regression_issue_2604
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::encode
    - BmpEncoder::new
    - ImageResult::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn regression_issue_2604()
  - 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: 1
    functionsReached:
    - io::Result::next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<&'a mut [u8]>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::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:
    - Result::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: 14
    functionLinenumber: 240
    functionLinenumberEnd: 251
    functionName: check_for_overflow
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 2
    functionsReached:
    - ImageError::Unsupported
    - Option::map
    - ImageResult::ok_or_else
    - num_bytes
    - into
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    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:
    - checked_mul
    - usize::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: 14
    functionLinenumber: 268
    functionLinenumberEnd: 295
    functionName: with_rows
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 4
    functionsReached:
    - unwrap
    - rev
    - func
    - checked_mul
    - '&RgbaImage::chunks_mut'
    - usize::checked_mul
    - 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 ChunksExactMut<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 ChunksExactMut<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: 2
    functionsReached:
    - Option::take
    - '&mut ChunksExactMut<u8>::next'
    linkageType: ''
    returnType: bool
    signature: 'fn set_8bit_pixel_run<''a, T: Iterator<Item = &''a u8>>(pixel_iter:
      &mut ChunksExactMut<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 ChunksExactMut<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: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn set_4bit_pixel_run<''a, T: Iterator<Item = &''a u8>>(pixel_iter:
      &mut ChunksExactMut<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 ChunksExactMut<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: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn set_2bit_pixel_run<''a, T: Iterator<Item = &''a u8>>(pixel_iter:
      &mut ChunksExactMut<u8>,palette: &[[u8; 3]],indices: T,mut n_pixels: usize,)
      -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut ChunksExactMut<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 ChunksExactMut<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: 1
    functionsReached:
    - usize::from
    - '&mut ChunksExactMut<u8>::next'
    linkageType: ''
    returnType: void
    signature: 'fn set_1bit_pixel_run<''a, T: Iterator<Item = &''a u8>>(pixel_iter:
      &mut ChunksExactMut<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: 12
    functionLinenumber: 409
    functionLinenumberEnd: 426
    functionName: Bitfield::from_mask
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - ImageResult::trailing_zeros
    - trailing_zeros
    - ImageResult::count_ones
    - Err
    - Ok
    - into
    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: 13
    functionLinenumber: 453
    functionLinenumberEnd: 470
    functionName: Bitfields::from_mask
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Bitfield::from_mask
    - Err
    - DecoderError::BitfieldMaskMissing
    - Ok
    - into
    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: 15
    functionLinenumber: 528
    functionLinenumberEnd: 532
    functionName: BmpDecoder::new
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 4
    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: 15
    functionLinenumber: 537
    functionLinenumberEnd: 542
    functionName: BmpDecoder::new_without_file_header
    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_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: 16
    functionLinenumber: 545
    functionLinenumberEnd: 549
    functionName: BmpDecoder::new_with_ico_format
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - ImageResult::read_metadata_in_ico_format
    - 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: 12
    functionLinenumber: 562
    functionLinenumberEnd: 581
    functionName: BmpDecoder::read_file_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - u64::from
    - read_exact
    - Err
    - Ok
    - reader.read_u32::<LittleEndian>
    - into
    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: 15
    functionLinenumber: 586
    functionLinenumberEnd: 613
    functionName: BmpDecoder::read_bitmap_core_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - reader.read_u16::<LittleEndian>
    - i32::from
    - DecoderError::InvalidChannelWidth
    - Err
    - into
    - check_for_overflow
    - Ok
    - BmpDecoder::num_channels
    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: 12
    functionLinenumber: 619
    functionLinenumberEnd: 750
    functionName: BmpDecoder::read_bitmap_info_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - DecoderError::ImageTypeUnknown
    - BmpDecoder::num_channels
    - reader.read_u16::<LittleEndian>
    - DecoderError::NegativeWidth
    - ImageError::Unsupported
    - reader.read_i32::<LittleEndian>
    - DecoderError::InvalidChannelWidth
    - Err
    - check_for_overflow
    - DecoderError::ImageTypeInvalidForTopDown
    - Ok
    - reader.read_u32::<LittleEndian>
    - '&str::to_owned'
    - DecoderError::ImageTooLarge
    - into
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    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: 14
    functionLinenumber: 752
    functionLinenumberEnd: 779
    functionName: BmpDecoder::read_bitmasks
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Bitfields::from_mask
    - Some
    - is_some
    - 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:828,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:845,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:846,1
    - Dst: BmpDecoder::read_palette
      Src: /src/image/src/codecs/bmp/decoder.rs:849,1
    - Dst: stream_position
      Src: /src/image/src/codecs/bmp/decoder.rs:855,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:860,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 861
      start: 781
    functionDepth: 14
    functionLinenumber: 781
    functionLinenumberEnd: 861
    functionName: BmpDecoder::read_metadata
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - BmpDecoder::read_bitmap_core_header
    - u64::from
    - BmpDecoder::read_bitmap_info_header
    - ImageError::Unsupported
    - stream_position
    - BmpDecoder::read_bitmasks
    - Err
    - into
    - SeekFrom::Start
    - BmpDecoder::read_file_header
    - BmpDecoder::read_palette
    - Ok
    - seek
    - reader.read_u32::<LittleEndian>
    - DecoderError::HeaderTooSmall
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    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:868,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 874
      start: 865
    functionDepth: 15
    functionLinenumber: 865
    functionLinenumberEnd: 874
    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:878,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:881,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:881,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:887,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 890
      start: 876
    functionDepth: 12
    functionLinenumber: 876
    functionLinenumberEnd: 890
    functionName: BmpDecoder::get_palette_size
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - into
    - Ok
    - Err
    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: 897
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 897
    functionName: BmpDecoder::bytes_per_color
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    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:902,1
    - Dst: BmpDecoder::get_palette_size
      Src: /src/image/src/codecs/bmp/decoder.rs:903,1
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/codecs/bmp/decoder.rs:907,1
    - Dst: std::io::Result::resize
      Src: /src/image/src/codecs/bmp/decoder.rs:912,1
    - Dst: cmp::min
      Src: /src/image/src/codecs/bmp/decoder.rs:912,1
    - Dst: by_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:913,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:913,1
    - Dst: Option::cmp
      Src: /src/image/src/codecs/bmp/decoder.rs:917,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:919,1
    - Dst: SeekFrom::Current
      Src: /src/image/src/codecs/bmp/decoder.rs:920,1
    - Dst: std::io::Result::resize
      Src: /src/image/src/codecs/bmp/decoder.rs:922,1
    - Dst: map
      Src: /src/image/src/codecs/bmp/decoder.rs:926,1
    - Dst: collect
      Src: /src/image/src/codecs/bmp/decoder.rs:926,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:935,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:937,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 938
      start: 899
    functionDepth: 14
    functionLinenumber: 899
    functionLinenumberEnd: 938
    functionName: BmpDecoder::read_palette
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - SeekFrom::Current
    - read_exact
    - Some
    - map
    - cmp::min
    - BmpDecoder::get_palette_size
    - BmpDecoder::bytes_per_color
    - by_ref
    - collect
    - utils::vec_try_with_capacity
    - seek
    - Option::cmp
    - Ok
    - std::io::Result::resize
    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:942,1
    - Dst: map
      Src: /src/image/src/codecs/bmp/decoder.rs:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 943
      start: 941
    functionDepth: 14
    functionLinenumber: 941
    functionLinenumberEnd: 943
    functionName: BmpDecoder::get_palette
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - map
    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: 953
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 953
    functionName: BmpDecoder::num_channels
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 8
    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:956,1
    - Dst: Chunker::FromTop
      Src: /src/image/src/codecs/bmp/decoder.rs:959,1
    - Dst: ImageResult::chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:959,1
    - Dst: Chunker::FromBottom
      Src: /src/image/src/codecs/bmp/decoder.rs:963,1
    - Dst: ImageResult::chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:963,1
    - Dst: rev
      Src: /src/image/src/codecs/bmp/decoder.rs:963,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - pixel_data
    argTypes:
    - '&''a mut [u8]'
    constantsTouched: []
    func_position:
      end: 966
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 966
    functionName: BmpDecoder::rows
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Chunker::FromTop
    - rev
    - Chunker::FromBottom
    - ImageResult::chunks_exact_mut
    - BmpDecoder::num_channels
    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:969,1
    - Dst: i32::from
      Src: /src/image/src/codecs/bmp/decoder.rs:970,1
    - Dst: as_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:972,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:972,1
    - Dst: Result::seek
      Src: /src/image/src/codecs/bmp/decoder.rs:978,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:978,1
    - Dst: std::io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:981,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:981,1
    - Dst: with_rows
      Src: /src/image/src/codecs/bmp/decoder.rs:984,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:991,1
    - Dst: clone_from_slice
      Src: /src/image/src/codecs/bmp/decoder.rs:993,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:995,1
    - Dst: set_1bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:998,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:998,1
    - Dst: set_2bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1001,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1001,1
    - Dst: set_4bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1004,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1004,1
    - Dst: set_8bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1007,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1007,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1012,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1016,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 88
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1017
      start: 968
    functionDepth: 15
    functionLinenumber: 968
    functionLinenumberEnd: 1017
    functionName: BmpDecoder::read_palettized_pixel_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - std::io::Result::chunks_exact_mut
    - unwrap
    - with_rows
    - Result::seek
    - set_2bit_pixel_run
    - i32::from
    - SeekFrom::Start
    - chunks_exact_mut
    - set_8bit_pixel_run
    - Result::read_exact
    - clone_from_slice
    - Ok
    - set_4bit_pixel_run
    - BmpDecoder::num_channels
    - for_each
    - set_1bit_pixel_run
    - Option::iter
    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:1024,1
    - Dst: as_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:1029,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1029,1
    - Dst: Result::seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1033,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1033,1
    - Dst: with_rows
      Src: /src/image/src/codecs/bmp/decoder.rs:1035,1
    - Dst: chunks_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1042,1
    - Dst: u32::from
      Src: /src/image/src/codecs/bmp/decoder.rs:1043,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:1043,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1045,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1046,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1047,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1050,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1056,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1060,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 78
    argCount: 2
    argNames:
    - buf
    - bitfields
    argTypes:
    - '&mut [u8]'
    - Option<&Bitfields>
    constantsTouched: []
    func_position:
      end: 1061
      start: 1019
    functionDepth: 15
    functionLinenumber: 1019
    functionLinenumberEnd: 1061
    functionName: BmpDecoder::read_16_bit_pixel_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - unwrap
    - read_u16::<LittleEndian>
    - u32::from
    - with_rows
    - Result::seek
    - SeekFrom::Start
    - read
    - Result::read_exact
    - chunks_mut
    - Ok
    - BmpDecoder::num_channels
    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:1065,1
    - Dst: as_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:1067,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1067,1
    - Dst: Result::seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1070,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1070,1
    - Dst: with_rows
      Src: /src/image/src/codecs/bmp/decoder.rs:1072,1
    - Dst: chunks_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1079,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/decoder.rs:1080,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1082,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1083,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1084,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1087,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1093,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1097,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 68
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1098
      start: 1064
    functionDepth: 15
    functionLinenumber: 1064
    functionLinenumberEnd: 1098
    functionName: BmpDecoder::read_32_bit_pixel_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - unwrap
    - with_rows
    - Result::seek
    - read_u32::<LittleEndian>
    - SeekFrom::Start
    - read
    - chunks_mut
    - Ok
    - BmpDecoder::num_channels
    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:1106,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1113,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1113,1
    - Dst: with_rows
      Src: /src/image/src/codecs/bmp/decoder.rs:1117,1
    - Dst: chunks_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1124,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/bmp/decoder.rs:1126,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1132,1
    - Dst: reverse
      Src: /src/image/src/codecs/bmp/decoder.rs:1133,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/bmp/decoder.rs:1136,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1141,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1146,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1150,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 84
    argCount: 2
    argNames:
    - buf
    - format
    argTypes:
    - '&mut [u8]'
    - '&FormatFullBytes'
    constantsTouched: []
    func_position:
      end: 1151
      start: 1101
    functionDepth: 15
    functionLinenumber: 1101
    functionLinenumberEnd: 1151
    functionName: BmpDecoder::read_full_byte_pixel_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - with_rows
    - Result::read_u8
    - SeekFrom::Start
    - Result::read_exact
    - chunks_mut
    - Ok
    - seek
    - BmpDecoder::num_channels
    - reverse
    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:1155,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1155,1
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:1157,1
    - Dst: as_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:1158,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1158,1
    - Dst: BmpDecoder::rows
      Src: /src/image/src/codecs/bmp/decoder.rs:1164,1
    - Dst: RowIterator::next
      Src: /src/image/src/codecs/bmp/decoder.rs:1166,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1167,1
    - Dst: read_u8
      Src: /src/image/src/codecs/bmp/decoder.rs:1172,1
    - Dst: read_u8
      Src: /src/image/src/codecs/bmp/decoder.rs:1175,1
    - Dst: read_u8
      Src: /src/image/src/codecs/bmp/decoder.rs:1181,1
    - Dst: read_u8
      Src: /src/image/src/codecs/bmp/decoder.rs:1182,1
    - Dst: RLEInsn::Delta
      Src: /src/image/src/codecs/bmp/decoder.rs:1183,1
    - Dst: Option::div_ceil
      Src: /src/image/src/codecs/bmp/decoder.rs:1188,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/bmp/decoder.rs:1191,1
    - Dst: read_exact_vec
      Src: /src/image/src/codecs/bmp/decoder.rs:1192,1
    - Dst: RLEInsn::Absolute
      Src: /src/image/src/codecs/bmp/decoder.rs:1193,1
    - Dst: read_u8
      Src: /src/image/src/codecs/bmp/decoder.rs:1198,1
    - Dst: RLEInsn::PixelRun
      Src: /src/image/src/codecs/bmp/decoder.rs:1199,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:1206,1
    - Dst: Result::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1206,1
    - Dst: RowIterator::for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:1207,1
    - Dst: Result::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1207,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1208,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:1211,1
    - Dst: Result::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1211,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:1223,1
    - Dst: Result::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1223,1
    - Dst: RowIterator::next
      Src: /src/image/src/codecs/bmp/decoder.rs:1227,1
    - Dst: Option::ok_or
      Src: /src/image/src/codecs/bmp/decoder.rs:1227,1
    - Dst: fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1228,1
    - Dst: RowIterator::next
      Src: /src/image/src/codecs/bmp/decoder.rs:1232,1
    - Dst: Option::ok_or
      Src: /src/image/src/codecs/bmp/decoder.rs:1232,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1232,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:1239,1
    - Dst: ok_or
      Src: /src/image/src/codecs/bmp/decoder.rs:1239,1
    - Dst: fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1239,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:1247,1
    - Dst: ok_or
      Src: /src/image/src/codecs/bmp/decoder.rs:1247,1
    - Dst: u8::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1248,1
    - Dst: set_8bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1258,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1261,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1264,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1264,1
    - Dst: set_4bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1268,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1271,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1274,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1274,1
    - Dst: take
      Src: /src/image/src/codecs/bmp/decoder.rs:1291,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:1291,1
    - Dst: set_4bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1298,1
    - Dst: std::iter::repeat
      Src: /src/image/src/codecs/bmp/decoder.rs:1301,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1304,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1304,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1315,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 220
    argCount: 2
    argNames:
    - buf
    - image_type
    argTypes:
    - '&mut [u8]'
    - ImageType
    constantsTouched: []
    func_position:
      end: 1316
      start: 1153
    functionDepth: 13
    functionLinenumber: 1153
    functionLinenumberEnd: 1316
    functionName: BmpDecoder::read_rle_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - unwrap
    - u8::fill
    - chunks_exact_mut
    - seek
    - set_4bit_pixel_run
    - BmpDecoder::num_channels
    - next
    - take
    - ok_or
    - read_u8
    - Err
    - fill
    - std::iter::repeat
    - RLEInsn::PixelRun
    - Result::fill
    - BmpDecoder::rows
    - Option::ok_or
    - into
    - for_each
    - read_exact_vec
    - SeekFrom::Start
    - set_8bit_pixel_run
    - Option::div_ceil
    - RLEInsn::Absolute
    - RowIterator::for_each
    - RowIterator::next
    - RLEInsn::Delta
    - Ok
    - Vec::new
    - Option::iter
    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:1322,1
    - Dst: BmpDecoder::read_16_bit_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1323,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:1323,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1324,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1325,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1326,1
    - Dst: BmpDecoder::read_rle_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1327,1
    - Dst: BmpDecoder::read_rle_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1328,1
    - Dst: BmpDecoder::read_16_bit_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1330,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1331,1
    - Dst: DecoderError::BitfieldMasksMissing
      Src: /src/image/src/codecs/bmp/decoder.rs:1331,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1331,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1335,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1338,1
    - Dst: BmpDecoder::read_32_bit_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1340,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1341,1
    - Dst: DecoderError::BitfieldMasksMissing
      Src: /src/image/src/codecs/bmp/decoder.rs:1341,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1341,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1344
      start: 1320
    functionDepth: 16
    functionLinenumber: 1320
    functionLinenumberEnd: 1344
    functionName: BmpDecoder::read_image_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - BmpDecoder::read_rle_data
    - BmpDecoder::read_16_bit_pixel_data
    - Err
    - Some
    - BmpDecoder::read_full_byte_pixel_data
    - BmpDecoder::read_palettized_pixel_data
    - BmpDecoder::read_32_bit_pixel_data
    - DecoderError::BitfieldMasksMissing
    - into
    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: 1350
      start: 1348
    functionDepth: 0
    functionLinenumber: 1348
    functionLinenumberEnd: 1350
    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: 1360
      start: 1352
    functionDepth: 0
    functionLinenumber: 1352
    functionLinenumberEnd: 1360
    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:1364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1365
      start: 1362
    functionDepth: 17
    functionLinenumber: 1362
    functionLinenumberEnd: 1365
    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:1368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1369
      start: 1367
    functionDepth: 3
    functionLinenumber: 1367
    functionLinenumberEnd: 1369
    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:1382,1
    - Dst: io::free_functions::load_rect
      Src: /src/image/src/codecs/bmp/decoder.rs:1383,1
    - Dst: BmpDecoder::total_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:1391,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1392,1
    - Dst: read_image_data
      Src: /src/image/src/codecs/bmp/decoder.rs:1393,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1395,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1395,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1396,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: 1397
      start: 1373
    functionDepth: 13
    functionLinenumber: 1373
    functionLinenumberEnd: 1397
    functionName: BmpDecoder::read_rect
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - read_image_data
    - io::free_functions::load_rect
    - stream_position
    - BmpDecoder::total_bytes
    - SeekFrom::Start
    - Ok
    - seek
    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:1411,1
    - Dst: f64::from
      Src: /src/image/src/codecs/bmp/decoder.rs:1412,1
    - Dst: f64::from
      Src: /src/image/src/codecs/bmp/decoder.rs:1412,1
    - Dst: round
      Src: /src/image/src/codecs/bmp/decoder.rs:1412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1407
    functionDepth: 12
    functionLinenumber: 1407
    functionLinenumberEnd: 1419
    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:1424,1
    - Dst: std::fs::File::open
      Src: /src/image/src/codecs/bmp/decoder.rs:1424,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1424,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:1425,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1425,1
    - Dst: ImageResult::read_rect
      Src: /src/image/src/codecs/bmp/decoder.rs:1428,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1429
      start: 1422
    functionDepth: 13
    functionLinenumber: 1422
    functionLinenumberEnd: 1429
    functionName: test::read_rect
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - BufReader::new
    - ImageResult::read_rect
    - ImageResult::unwrap
    - io::Result::unwrap
    - BmpDecoder::new
    - std::fs::File::open
    linkageType: ''
    returnType: void
    signature: fn read_rect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:1454,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:1454,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1432
    functionDepth: 16
    functionLinenumber: 1432
    functionLinenumberEnd: 1457
    functionName: test::read_rle_too_short
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - BmpDecoder::new
    - ImageResult::unwrap
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn read_rle_too_short()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/codecs/bmp/decoder.rs:1471,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1471,1
    - Dst: std::fs::read
      Src: /src/image/src/codecs/bmp/decoder.rs:1472,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1472,1
    - Dst: BmpDecoder::new_without_file_header
      Src: /src/image/src/codecs/bmp/decoder.rs:1475,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:1475,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1475,1
    - Dst: crate::DynamicImage::from_decoder
      Src: /src/image/src/codecs/bmp/decoder.rs:1476,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1460
    functionDepth: 17
    functionLinenumber: 1460
    functionLinenumberEnd: 1479
    functionName: test::test_no_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - std::fs::read
    - crate::open
    - std::io::Result::unwrap
    - ImageResult::unwrap
    - crate::DynamicImage::from_decoder
    - BmpDecoder::new_without_file_header
    - io::Result::unwrap
    - Cursor::new
    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: 2
    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: 1
    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: 1
    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: 12
    functionLinenumber: 83
    functionLinenumberEnd: 120
    functionName: Header::from_pixel_info
    functionSourceFile: /src/image/src/codecs/tga/header.rs
    functionUses: 1
    functionsReached:
    - ImageError::Unsupported
    - Err
    - UnsupportedErrorKind::Color
    - Ok
    - Self::default
    - into
    - UnsupportedError::from_format_and_kind
    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: 1
    functionsReached:
    - Self::write_u8
    - write_u16::<LittleEndian>
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn write_to(&self, w: &mut dyn Write) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::write_fmt
      Src: /src/image/src/codecs/tga/encoder.rs:22,1
    - Dst: Result::write_fmt
      Src: /src/image/src/codecs/tga/encoder.rs:23,1
    - Dst: Result::write_fmt
      Src: /src/image/src/codecs/tga/encoder.rs:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 26
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 26
    functionName: EncoderError::fmt
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - Result::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: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: TgaEncoder::new
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 5
    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: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: TgaEncoder::disable_rle
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 2
    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:73,1
    - Dst: write_all
      Src: /src/image/src/codecs/tga/encoder.rs:74,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/encoder.rs:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - pixels
    - counter
    argTypes:
    - '&[u8]'
    - u8
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: TgaEncoder::write_raw_packet
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 1
    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:82,1
    - Dst: write_all
      Src: /src/image/src/codecs/tga/encoder.rs:83,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/encoder.rs:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - pixel
    - counter
    argTypes:
    - '&[u8]'
    - u8
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: TgaEncoder::write_rle_encoded_packet
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 1
    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: Option::bits_per_pixel
      Src: /src/image/src/codecs/tga/encoder.rs:95,1
    - Dst: usize::from
      Src: /src/image/src/codecs/tga/encoder.rs:96,1
    - Dst: usize::from
      Src: /src/image/src/codecs/tga/encoder.rs:96,1
    - Dst: vec_try_with_capacity
      Src: /src/image/src/codecs/tga/encoder.rs:100,1
    - Dst: Vec::chunks
      Src: /src/image/src/codecs/tga/encoder.rs:106,1
    - Dst: usize::from
      Src: /src/image/src/codecs/tga/encoder.rs:106,1
    - Dst: TgaEncoder::write_raw_packet
      Src: /src/image/src/codecs/tga/encoder.rs:111,1
    - Dst: std::io::Result::clear
      Src: /src/image/src/codecs/tga/encoder.rs:113,1
    - Dst: TgaEncoder::write_rle_encoded_packet
      Src: /src/image/src/codecs/tga/encoder.rs:118,1
    - Dst: std::io::Result::clear
      Src: /src/image/src/codecs/tga/encoder.rs:121,1
    - Dst: std::io::Result::extend_from_slice
      Src: /src/image/src/codecs/tga/encoder.rs:126,1
    - Dst: TgaEncoder::write_rle_encoded_packet
      Src: /src/image/src/codecs/tga/encoder.rs:132,1
    - Dst: None::unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:132,1
    - Dst: TgaEncoder::write_raw_packet
      Src: /src/image/src/codecs/tga/encoder.rs:133,1
    - Dst: std::io::Result::clear
      Src: /src/image/src/codecs/tga/encoder.rs:138,1
    - Dst: Some
      Src: /src/image/src/codecs/tga/encoder.rs:141,1
    - Dst: TgaEncoder::write_rle_encoded_packet
      Src: /src/image/src/codecs/tga/encoder.rs:146,1
    - Dst: None::unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:146,1
    - Dst: TgaEncoder::write_raw_packet
      Src: /src/image/src/codecs/tga/encoder.rs:147,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/encoder.rs:151,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 93
    argCount: 2
    argNames:
    - image
    - color_type
    argTypes:
    - '&[u8]'
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 152
      start: 88
    functionDepth: 14
    functionLinenumber: 88
    functionLinenumberEnd: 152
    functionName: TgaEncoder::run_length_encode
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 1
    functionsReached:
    - None::unwrap
    - vec_try_with_capacity
    - TgaEncoder::write_rle_encoded_packet
    - Some
    - Option::bits_per_pixel
    - std::io::Result::extend_from_slice
    - std::io::Result::clear
    - Vec::chunks
    - TgaEncoder::write_raw_packet
    - Ok
    - usize::from
    linkageType: ''
    returnType: ImageResult
    signature: 'fn run_length_encode(&mut self,image: &[u8],color_type: ExtendedColorType,)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::buffer_size
      Src: /src/image/src/codecs/tga/encoder.rs:171,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/encoder.rs:181,1
    - Dst: ImageError::from
      Src: /src/image/src/codecs/tga/encoder.rs:181,1
    - Dst: EncoderError::Empty
      Src: /src/image/src/codecs/tga/encoder.rs:181,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/tga/encoder.rs:184,1
    - Dst: Result::map_err
      Src: /src/image/src/codecs/tga/encoder.rs:184,1
    - Dst: ImageError::from
      Src: /src/image/src/codecs/tga/encoder.rs:185,1
    - Dst: EncoderError::WidthInvalid
      Src: /src/image/src/codecs/tga/encoder.rs:185,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/tga/encoder.rs:187,1
    - Dst: Result::map_err
      Src: /src/image/src/codecs/tga/encoder.rs:187,1
    - Dst: ImageError::from
      Src: /src/image/src/codecs/tga/encoder.rs:188,1
    - Dst: EncoderError::HeightInvalid
      Src: /src/image/src/codecs/tga/encoder.rs:188,1
    - Dst: Header::from_pixel_info
      Src: /src/image/src/codecs/tga/encoder.rs:191,1
    - Dst: '&exr::meta::header::Header::write_to'
      Src: /src/image/src/codecs/tga/encoder.rs:192,1
    - Dst: ImageType::new
      Src: /src/image/src/codecs/tga/encoder.rs:194,1
    - Dst: Vec::from
      Src: /src/image/src/codecs/tga/encoder.rs:203,1
    - Dst: Vec::chunks_mut
      Src: /src/image/src/codecs/tga/encoder.rs:205,1
    - Dst: usize::from
      Src: /src/image/src/codecs/tga/encoder.rs:205,1
    - Dst: Option::bits_per_pixel
      Src: /src/image/src/codecs/tga/encoder.rs:205,1
    - Dst: u8::swap
      Src: /src/image/src/codecs/tga/encoder.rs:207,1
    - Dst: TgaEncoder::run_length_encode
      Src: /src/image/src/codecs/tga/encoder.rs:210,1
    - Dst: TgaEncoder::run_length_encode
      Src: /src/image/src/codecs/tga/encoder.rs:213,1
    - Dst: Vec::from
      Src: /src/image/src/codecs/tga/encoder.rs:222,1
    - Dst: Vec::chunks_mut
      Src: /src/image/src/codecs/tga/encoder.rs:224,1
    - Dst: usize::from
      Src: /src/image/src/codecs/tga/encoder.rs:224,1
    - Dst: Option::bits_per_pixel
      Src: /src/image/src/codecs/tga/encoder.rs:224,1
    - Dst: u8::swap
      Src: /src/image/src/codecs/tga/encoder.rs:226,1
    - Dst: write_all
      Src: /src/image/src/codecs/tga/encoder.rs:229,1
    - Dst: write_all
      Src: /src/image/src/codecs/tga/encoder.rs:232,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/encoder.rs:238,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 90
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 239
      start: 164
    functionDepth: 14
    functionLinenumber: 164
    functionLinenumberEnd: 239
    functionName: TgaEncoder::encode
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 1
    functionsReached:
    - ImageError::from
    - u8::swap
    - TgaEncoder::run_length_encode
    - Option::bits_per_pixel
    - Vec::chunks_mut
    - write_all
    - '&exr::meta::header::Header::write_to'
    - EncoderError::Empty
    - Err
    - usize::from
    - u16::try_from
    - ImageType::new
    - Result::map_err
    - Vec::from
    - Option::buffer_size
    - Ok
    - EncoderError::HeightInvalid
    - EncoderError::WidthInvalid
    - Header::from_pixel_info
    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:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 252
      start: 244
    functionDepth: 15
    functionLinenumber: 244
    functionLinenumberEnd: 252
    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:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - img
    argTypes:
    - crate::io::encoder::MethodSealedToImage
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 260
    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:273,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/encoder.rs:278,1
    - Dst: TgaEncoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:279,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/tga/encoder.rs:280,1
    - Dst: ImageError::source
      Src: /src/image/src/codecs/tga/encoder.rs:284,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:284,1
    - Dst: "source()\n                    .unwrap()\n                    .downcast_ref::<EncoderError>"
      Src: /src/image/src/codecs/tga/encoder.rs:284,1
    - Dst: unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 270
    functionDepth: 13
    functionLinenumber: 270
    functionLinenumberEnd: 296
    functionName: tests::test_image_width_too_large
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - "source()\n                    .unwrap()\n                    .downcast_ref::<EncoderError>"
    - Option::unwrap
    - ImageError::source
    - ImageResult::encode
    - TgaEncoder::new
    - usize::from
    - Vec::new
    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:302,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/encoder.rs:307,1
    - Dst: TgaEncoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:308,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/tga/encoder.rs:309,1
    - Dst: ImageError::source
      Src: /src/image/src/codecs/tga/encoder.rs:313,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:313,1
    - Dst: "source()\n                    .unwrap()\n                    .downcast_ref::<EncoderError>"
      Src: /src/image/src/codecs/tga/encoder.rs:313,1
    - Dst: unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 325
      start: 299
    functionDepth: 13
    functionLinenumber: 299
    functionLinenumberEnd: 325
    functionName: tests::test_image_height_too_large
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - "source()\n                    .unwrap()\n                    .downcast_ref::<EncoderError>"
    - Option::unwrap
    - ImageError::source
    - ImageResult::encode
    - TgaEncoder::new
    - usize::from
    - Vec::new
    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:332,1
    - Dst: TgaEncoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:333,1
    - Dst: TgaEncoder::disable_rle
      Src: /src/image/src/codecs/tga/encoder.rs:333,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/tga/encoder.rs:334,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/tga/encoder.rs:334,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/encoder.rs:342,1
    - Dst: TgaEncoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:343,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/tga/encoder.rs:344,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/tga/encoder.rs:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 352
      start: 328
    functionDepth: 13
    functionLinenumber: 328
    functionLinenumberEnd: 352
    functionName: tests::test_compression_diff
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - TgaEncoder::disable_rle
    - ImageResult::encode
    - TgaEncoder::new
    - ImageResult::expect
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_compression_diff()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/tga/encoder.rs:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 385
      start: 378
    functionDepth: 14
    functionLinenumber: 378
    functionLinenumberEnd: 385
    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:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 417
      start: 412
    functionDepth: 14
    functionLinenumber: 412
    functionLinenumberEnd: 417
    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:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 428
    functionDepth: 14
    functionLinenumber: 428
    functionLinenumberEnd: 433
    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:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 436
    functionDepth: 14
    functionLinenumber: 436
    functionLinenumberEnd: 441
    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:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 449
      start: 444
    functionDepth: 14
    functionLinenumber: 444
    functionLinenumberEnd: 449
    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:455,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:455,1
    - Dst: Vec::width
      Src: /src/image/src/codecs/tga/encoder.rs:456,1
    - Dst: Vec::height
      Src: /src/image/src/codecs/tga/encoder.rs:456,1
    - Dst: Vec::as_rgb8
      Src: /src/image/src/codecs/tga/encoder.rs:457,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:457,1
    - Dst: to_vec
      Src: /src/image/src/codecs/tga/encoder.rs:457,1
    - Dst: round_trip_image
      Src: /src/image/src/codecs/tga/encoder.rs:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 452
    functionDepth: 17
    functionLinenumber: 452
    functionLinenumberEnd: 462
    functionName: tests::round_trip_bw
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::width
    - to_vec
    - crate::open
    - round_trip_image
    - Vec::as_rgb8
    - Option::unwrap
    - io::Result::unwrap
    - Vec::height
    linkageType: ''
    returnType: void
    signature: fn round_trip_bw()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::checked_sub
      Src: /src/image/src/codecs/tga/decoder.rs:23,1
    - Dst: get
      Src: /src/image/src/codecs/tga/decoder.rs:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - index
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: ColorMap::get
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached:
    - get
    - Option::checked_sub
    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: 76
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 76
    functionName: TgaOrientation::from_image_desc_byte
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 1
    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:83,1
    - Dst: ImageType::new
      Src: /src/image/src/codecs/tga/decoder.rs:84,1
    - Dst: div_ceil
      Src: /src/image/src/codecs/tga/decoder.rs:87,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:91,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:91,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:91,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:92,1
    - Dst: contains
      Src: /src/image/src/codecs/tga/decoder.rs:98,1
    - Dst: contains
      Src: /src/image/src/codecs/tga/decoder.rs:98,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:99,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tga/decoder.rs:99,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tga/decoder.rs:100,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:101,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/tga/decoder.rs:102,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/tga/decoder.rs:102,1
    - Dst: ImageType::is_color_mapped
      Src: /src/image/src/codecs/tga/decoder.rs:106,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:108,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:108,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:108,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:109,1
    - Dst: contains
      Src: /src/image/src/codecs/tga/decoder.rs:112,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:113,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:113,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:113,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:114,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:118,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tga/decoder.rs:118,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tga/decoder.rs:119,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:120,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tga/decoder.rs:121,1
    - Dst: '&str::into'
      Src: /src/image/src/codecs/tga/decoder.rs:122,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/tga/decoder.rs:133,1
    - Dst: div_ceil
      Src: /src/image/src/codecs/tga/decoder.rs:138,1
    - Dst: contains
      Src: /src/image/src/codecs/tga/decoder.rs:139,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:140,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tga/decoder.rs:140,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tga/decoder.rs:141,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:142,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tga/decoder.rs:143,1
    - Dst: '&str::into'
      Src: /src/image/src/codecs/tga/decoder.rs:144,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/decoder.rs:150,1
    - Dst: Result::read_exact_vec
      Src: /src/image/src/codecs/tga/decoder.rs:151,1
    - Dst: ImageType::is_color_mapped
      Src: /src/image/src/codecs/tga/decoder.rs:155,1
    - Dst: Some
      Src: /src/image/src/codecs/tga/decoder.rs:156,1
    - Dst: checked_sub
      Src: /src/image/src/codecs/tga/decoder.rs:170,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/tga/decoder.rs:170,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:173,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:173,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:174,1
    - Dst: ImageType::is_color
      Src: /src/image/src/codecs/tga/decoder.rs:182,1
    - Dst: Some
      Src: /src/image/src/codecs/tga/decoder.rs:193,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:196,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tga/decoder.rs:196,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tga/decoder.rs:197,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:198,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/tga/decoder.rs:199,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/tga/decoder.rs:199,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/decoder.rs:205,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 191
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 219
      start: 81
    functionDepth: 13
    functionLinenumber: 81
    functionLinenumberEnd: 219
    functionName: TgaDecoder::new
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 3
    functionsReached:
    - Result::read_exact_vec
    - ImageError::Decoding
    - UnsupportedErrorKind::GenericFeature
    - ok_or_else
    - Err
    - ImageType::is_color_mapped
    - contains
    - ExtendedColorType::Unknown
    - div_ceil
    - ImageType::new
    - UnsupportedErrorKind::Color
    - checked_sub
    - into
    - ImageType::is_color
    - UnsupportedError::from_format_and_kind
    - DecodingError::new
    - ImageError::Unsupported
    - Some
    - Result::read_exact
    - Header::from_reader
    - Ok
    - Vec::new
    - '&str::into'
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(mut r: R) -> ImageResult<TgaDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/tga/decoder.rs:228,1
    - Dst: read_u8
      Src: /src/image/src/codecs/tga/decoder.rs:229,1
    - Dst: read_exact
      Src: /src/image/src/codecs/tga/decoder.rs:237,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:239,1
    - Dst: take
      Src: /src/image/src/codecs/tga/decoder.rs:239,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:243,1
    - Dst: min
      Src: /src/image/src/codecs/tga/decoder.rs:249,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/tga/decoder.rs:249,1
    - Dst: read_exact
      Src: /src/image/src/codecs/tga/decoder.rs:251,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/decoder.rs:256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 70
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 257
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 257
    functionName: TgaDecoder::read_encoded_data
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 1
    functionsReached:
    - min
    - read_u8
    - read_exact
    - chunks_exact_mut
    - Option::copy_from_slice
    - Ok
    - std::io::Result::len
    - take
    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:267,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:267,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:269,1
    - Dst: ImageResult::get
      Src: /src/image/src/codecs/tga/decoder.rs:271,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:272,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:274,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:274,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:274,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:275,1
    - Dst: '&[u8]::chunks_exact'
      Src: /src/image/src/codecs/tga/decoder.rs:281,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:281,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:283,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/tga/decoder.rs:285,1
    - Dst: Option::try_into
      Src: /src/image/src/codecs/tga/decoder.rs:285,1
    - Dst: unwrap
      Src: /src/image/src/codecs/tga/decoder.rs:285,1
    - Dst: ImageResult::get
      Src: /src/image/src/codecs/tga/decoder.rs:286,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:287,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:289,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:289,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:289,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:290,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/decoder.rs:299,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 63
    argCount: 3
    argNames:
    - input
    - output
    - color_map
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&ColorMap'
    constantsTouched: []
    func_position:
      end: 300
      start: 260
    functionDepth: 13
    functionLinenumber: 260
    functionLinenumberEnd: 300
    functionName: TgaDecoder::expand_color_map
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 1
    functionsReached:
    - unwrap
    - DecodingError::new
    - Option::try_into
    - chunks_exact_mut
    - Err
    - u16::from_le_bytes
    - '&[u8]::chunks_exact'
    - Option::copy_from_slice
    - ImageError::Decoding
    - Ok
    - zip
    - '&[u8]::iter'
    - ImageResult::get
    - into
    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:310,1
    - Dst: bytes_per_pixel
      Src: /src/image/src/codecs/tga/decoder.rs:310,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:310,1
    - Dst: Option::swap
      Src: /src/image/src/codecs/tga/decoder.rs:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - pixels
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 316
      start: 306
    functionDepth: 12
    functionLinenumber: 306
    functionLinenumberEnd: 316
    functionName: TgaDecoder::reverse_encoding_in_output
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 1
    functionsReached:
    - bytes_per_pixel
    - into
    - Vec::chunks_mut
    - Option::swap
    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:320,1
    - Dst: Vec::split_at_mut
      Src: /src/image/src/codecs/tga/decoder.rs:328,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:330,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:330,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:332,1
    - Dst: rev
      Src: /src/image/src/codecs/tga/decoder.rs:332,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/tga/decoder.rs:334,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:334,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/tga/decoder.rs:334,1
    - Dst: std::mem::swap
      Src: /src/image/src/codecs/tga/decoder.rs:335,1
    - Dst: Vec::chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:344,1
    - Dst: split_at_mut
      Src: /src/image/src/codecs/tga/decoder.rs:346,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:347,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:347,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:349,1
    - Dst: rev
      Src: /src/image/src/codecs/tga/decoder.rs:349,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/tga/decoder.rs:351,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:351,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/tga/decoder.rs:351,1
    - Dst: std::mem::swap
      Src: /src/image/src/codecs/tga/decoder.rs:352,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 84
    argCount: 1
    argNames:
    - pixels
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 357
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 357
    functionName: TgaDecoder::fixup_orientation
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 1
    functionsReached:
    - rev
    - iter_mut
    - chunks_exact_mut
    - std::mem::swap
    - Vec::split_at_mut
    - zip
    - TgaOrientation::from_image_desc_byte
    - Vec::chunks_exact_mut
    - 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: 363
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 363
    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: 367
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: TgaDecoder::color_type
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 1
    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:370,1
    - Dst: TgaDecoder::color_type
      Src: /src/image/src/codecs/tga/decoder.rs:371,1
    - Dst: ColorType::into
      Src: /src/image/src/codecs/tga/decoder.rs:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 12
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: TgaDecoder::original_color_type
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached:
    - unwrap_or_else
    - ColorType::into
    - TgaDecoder::color_type
    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:382,1
    - Dst: TgaDecoder::read_encoded_data
      Src: /src/image/src/codecs/tga/decoder.rs:383,1
    - Dst: read_exact
      Src: /src/image/src/codecs/tga/decoder.rs:385,1
    - Dst: TgaDecoder::fixup_orientation
      Src: /src/image/src/codecs/tga/decoder.rs:388,1
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/codecs/tga/decoder.rs:395,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:396,1
    - Dst: TgaDecoder::expand_color_map
      Src: /src/image/src/codecs/tga/decoder.rs:398,1
    - Dst: TgaDecoder::reverse_encoding_in_output
      Src: /src/image/src/codecs/tga/decoder.rs:401,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/decoder.rs:403,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 53
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 404
      start: 374
    functionDepth: 14
    functionLinenumber: 374
    functionLinenumberEnd: 404
    functionName: TgaDecoder::read_image
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached:
    - is_encoded
    - read_exact
    - extend_from_slice
    - TgaDecoder::fixup_orientation
    - Ok
    - TgaDecoder::read_encoded_data
    - utils::vec_try_with_capacity
    - TgaDecoder::reverse_encoding_in_output
    - TgaDecoder::expand_color_map
    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:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 408
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 408
    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: 149
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 149
    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: 165
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 165
    functionName: PnmSubtype::magic_constant
    functionSourceFile: /src/image/src/codecs/pnm/header.rs
    functionUses: 1
    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: 176
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 176
    functionName: PnmSubtype::sample_encoding
    functionSourceFile: /src/image/src/codecs/pnm/header.rs
    functionUses: 1
    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:184,1
    - Dst: PnmSubtype::Graymap
      Src: /src/image/src/codecs/pnm/header.rs:185,1
    - Dst: PnmSubtype::Pixmap
      Src: /src/image/src/codecs/pnm/header.rs:186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 189
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 189
    functionName: PnmHeader::subtype
    functionSourceFile: /src/image/src/codecs/pnm/header.rs
    functionUses: 1
    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: 200
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 200
    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: 211
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 211
    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: 222
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 222
    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:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    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:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 240
    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:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 249
    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:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 258
    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:262,1
    - Dst: PnmHeader::subtype
      Src: /src/image/src/codecs/pnm/header.rs:262,1
    - Dst: PnmSubtype::magic_constant
      Src: /src/image/src/codecs/pnm/header.rs:262,1
    - Dst: '&mut dyn io::Write::write_all'
      Src: /src/image/src/codecs/pnm/header.rs:267,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/header.rs:313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut dyn io::Write'
    constantsTouched: []
    func_position:
      end: 329
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 329
    functionName: PnmHeader::write
    functionSourceFile: /src/image/src/codecs/pnm/header.rs
    functionUses: 1
    functionsReached:
    - PnmHeader::subtype
    - '&mut dyn io::Write::write_all'
    - Ok
    - PnmSubtype::magic_constant
    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:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - header
    argTypes:
    - ArbitraryHeader
    constantsTouched: []
    func_position:
      end: 365
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 365
    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: 7
    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: 12
    functionLinenumber: 148
    functionLinenumberEnd: 194
    functionName: PnmEncoder::encode
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 1
    functionsReached:
    - u16::from_ne_bytes
    - PnmEncoder::encode_impl
    - ImageResult::chunks
    - bytemuck::try_cast_slice
    - Vec::into
    - FlatSamples::U16
    - ImageResult::collect
    - io::Result::map
    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: 14
    functionLinenumber: 197
    functionLinenumberEnd: 213
    functionName: PnmEncoder::encode_impl
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 1
    functionsReached:
    - PnmEncoder::write_subtyped_header
    - Self::write_with_header
    - PnmEncoder::write_dynamic_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: 13
    functionLinenumber: 218
    functionLinenumberEnd: 259
    functionName: PnmEncoder::write_dynamic_header
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 2
    functionsReached:
    - u32::from
    - ImageError::Unsupported
    - Err
    - Some
    - UnsupportedErrorKind::Color
    - bool::channel_count
    - HeaderRecord::Arbitrary
    - Self::write_with_header
    - into
    - UnsupportedError::from_format_and_kind
    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::Unsupported
      Src: /src/image/src/codecs/pnm/encoder.rs:303,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:304,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/encoder.rs:305,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/pnm/encoder.rs:306,1
    - Dst: Self::write_with_header
      Src: /src/image/src/codecs/pnm/encoder.rs:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 5
    argNames:
    - subtype
    - image
    - width
    - height
    - color
    argTypes:
    - PnmSubtype
    - FlatSamples
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 313
      start: 262
    functionDepth: 14
    functionLinenumber: 262
    functionLinenumberEnd: 313
    functionName: PnmEncoder::write_subtyped_header
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 1
    functionsReached:
    - ImageError::Unsupported
    - HeaderRecord::Pixmap
    - PnmEncoder::write_dynamic_header
    - Err
    - HeaderRecord::Graymap
    - UnsupportedErrorKind::Color
    - Self::write_with_header
    - into
    - HeaderRecord::Bitmap
    - UnsupportedError::from_format_and_kind
    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:328,1
    - Dst: check_header_color
      Src: /src/image/src/codecs/pnm/encoder.rs:328,1
    - Dst: check_sample_values
      Src: /src/image/src/codecs/pnm/encoder.rs:328,1
    - Dst: write_header
      Src: /src/image/src/codecs/pnm/encoder.rs:328,1
    - Dst: write_image
      Src: /src/image/src/codecs/pnm/encoder.rs:328,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: 334
      start: 318
    functionDepth: 14
    functionLinenumber: 318
    functionLinenumberEnd: 334
    functionName: PnmEncoder::write_with_header
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - Range::check_header_dimensions
    - check_sample_values
    - write_image
    - check_header_color
    - write_header
    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: Option::buffer_size
      Src: /src/image/src/codecs/pnm/encoder.rs:346,1
    - Dst: PnmEncoder::encode
      Src: /src/image/src/codecs/pnm/encoder.rs:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 355
      start: 339
    functionDepth: 14
    functionLinenumber: 339
    functionLinenumberEnd: 355
    functionName: PnmEncoder::write_image
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - PnmEncoder::encode
    - Option::buffer_size
    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:365,1
    - Dst: usize::checked_mul
      Src: /src/image/src/codecs/pnm/encoder.rs:368,1
    - Dst: and_then
      Src: /src/image/src/codecs/pnm/encoder.rs:368,1
    - Dst: DynamicImage::checked_mul
      Src: /src/image/src/codecs/pnm/encoder.rs:370,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/encoder.rs:371,1
    - Dst: Vec::len
      Src: /src/image/src/codecs/pnm/encoder.rs:371,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:373,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/pnm/encoder.rs:373,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:373,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/encoder.rs:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 4
    argNames:
    - image
    - width
    - height
    - color
    argTypes:
    - FlatSamples<'a>
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 383
      start: 359
    functionDepth: 13
    functionLinenumber: 359
    functionLinenumberEnd: 383
    functionName: CheckedImageBuffer::check
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 1
    functionsReached:
    - ImageError::Parameter
    - Vec::len
    - DynamicImage::checked_mul
    - Some
    - Err
    - bool::channel_count
    - usize::checked_mul
    - Ok
    - ParameterError::from_kind
    - and_then
    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:392,1
    - Dst: height
      Src: /src/image/src/codecs/pnm/encoder.rs:392,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:394,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/pnm/encoder.rs:394,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:394,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/encoder.rs:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 404
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 404
    functionName: UncheckedHeader::check_header_dimensions
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - height
    - ImageError::Parameter
    - width
    - Err
    - Ok
    - ParameterError::from_kind
    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:412,1
    - Dst: bool::channel_count
      Src: /src/image/src/codecs/pnm/encoder.rs:412,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:421,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/pnm/encoder.rs:421,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:421,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/pnm/encoder.rs:422,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/pnm/encoder.rs:423,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:434,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/pnm/encoder.rs:434,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:434,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/pnm/encoder.rs:435,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/pnm/encoder.rs:436,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:447,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/pnm/encoder.rs:447,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:447,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/pnm/encoder.rs:448,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/pnm/encoder.rs:449,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:479,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/pnm/encoder.rs:479,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:479,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/pnm/encoder.rs:480,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:486,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/pnm/encoder.rs:486,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:486,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/pnm/encoder.rs:487,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/pnm/encoder.rs:488,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/encoder.rs:495,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 1
    argNames:
    - color
    argTypes:
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 499
      start: 411
    functionDepth: 13
    functionLinenumber: 411
    functionLinenumberEnd: 499
    functionName: CheckedDimensions::check_header_color
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - ParameterErrorKind::Generic
    - ImageError::Parameter
    - u32::from
    - Err
    - bool::channel_count
    - Ok
    - ParameterError::from_kind
    - '&str::to_owned'
    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:527,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/encoder.rs:527,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:528,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/encoder.rs:529,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/pnm/encoder.rs:530,1
    - Dst: Vec::all_smaller
      Src: /src/image/src/codecs/pnm/encoder.rs:537,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/encoder.rs:539,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/encoder.rs:539,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/encoder.rs:540,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/encoder.rs:541,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/pnm/encoder.rs:542,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/pnm/encoder.rs:543,1
    - Dst: Vec::encoding_for
      Src: /src/image/src/codecs/pnm/encoder.rs:549,1
    - Dst: CheckedImageBuffer::check
      Src: /src/image/src/codecs/pnm/encoder.rs:551,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/encoder.rs:558,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 53
    argCount: 1
    argNames:
    - image
    argTypes:
    - FlatSamples<'a>
    constantsTouched: []
    func_position:
      end: 563
      start: 503
    functionDepth: 12
    functionLinenumber: 503
    functionLinenumberEnd: 563
    functionName: CheckedHeaderColor::check_sample_values
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::all_smaller
    - ImageError::Unsupported
    - Err
    - CheckedImageBuffer::check
    - UnsupportedErrorKind::Color
    - Vec::encoding_for
    - Ok
    - '&str::to_owned'
    - into
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    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:568,1
    - Dst: '&PnmHeader::write'
      Src: /src/image/src/codecs/pnm/encoder.rs:568,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/encoder.rs:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut dyn Write'
    constantsTouched: []
    func_position:
      end: 570
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 570
    functionName: CheckedHeader::write_header
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - '&PnmHeader::write'
    - CheckedHeader::header
    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: 574
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 574
    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:585,1
    - Dst: flush
      Src: /src/image/src/codecs/pnm/encoder.rs:589,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - samples
    argTypes:
    - V
    constantsTouched: []
    func_position:
      end: 590
      start: 580
    functionDepth: 14
    functionLinenumber: 580
    functionLinenumberEnd: 590
    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:601,1
    - Dst: ImageResult::chunks
      Src: /src/image/src/codecs/pnm/encoder.rs:603,1
    - Dst: std::io::Result::chunks
      Src: /src/image/src/codecs/pnm/encoder.rs:604,1
    - Dst: get
      Src: /src/image/src/codecs/pnm/encoder.rs:608,1
    - Dst: V::default
      Src: /src/image/src/codecs/pnm/encoder.rs:609,1
    - Dst: push
      Src: /src/image/src/codecs/pnm/encoder.rs:614,1
    - Dst: write_all
      Src: /src/image/src/codecs/pnm/encoder.rs:616,1
    - Dst: as_slice
      Src: /src/image/src/codecs/pnm/encoder.rs:616,1
    - Dst: clear
      Src: /src/image/src/codecs/pnm/encoder.rs:617,1
    - Dst: flush
      Src: /src/image/src/codecs/pnm/encoder.rs:620,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 2
    argNames:
    - samples
    - width
    argTypes:
    - '&[V]'
    - u32
    constantsTouched: []
    func_position:
      end: 621
      start: 592
    functionDepth: 14
    functionLinenumber: 592
    functionLinenumberEnd: 621
    functionName: SampleWriter::write_pbm_bits
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - get
    - push
    - std::io::Result::chunks
    - write_all
    - as_slice
    - clear
    - ImageResult::chunks
    - utils::vec_try_with_capacity
    - V::default
    - flush
    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:627,1
    - Dst: len
      Src: /src/image/src/codecs/pnm/encoder.rs:628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 630
      start: 625
    functionDepth: 14
    functionLinenumber: 625
    functionLinenumberEnd: 630
    functionName: FlatSamples::len
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 3
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/codecs/pnm/encoder.rs:634,1
    - Dst: all
      Src: /src/image/src/codecs/pnm/encoder.rs:634,1
    - Dst: u32::from
      Src: /src/image/src/codecs/pnm/encoder.rs:634,1
    - Dst: iter
      Src: /src/image/src/codecs/pnm/encoder.rs:635,1
    - Dst: all
      Src: /src/image/src/codecs/pnm/encoder.rs:635,1
    - Dst: u32::from
      Src: /src/image/src/codecs/pnm/encoder.rs:635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - max_val
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 637
      start: 632
    functionDepth: 14
    functionLinenumber: 632
    functionLinenumberEnd: 637
    functionName: FlatSamples::all_smaller
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - u32::from
    - iter
    - all
    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: 675
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 675
    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:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - samples
    argTypes:
    - '&''a [u16]'
    constantsTouched: []
    func_position:
      end: 687
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 687
    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:696,1
    - Dst: write_pbm_bits
      Src: /src/image/src/codecs/pnm/encoder.rs:696,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:696,1
    - Dst: SampleWriter
      Src: /src/image/src/codecs/pnm/encoder.rs:702,1
    - Dst: write_pbm_bits
      Src: /src/image/src/codecs/pnm/encoder.rs:702,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:702,1
    - Dst: '&mut dyn Write::write_all'
      Src: /src/image/src/codecs/pnm/encoder.rs:708,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:708,1
    - Dst: ImageResult::iter
      Src: /src/image/src/codecs/pnm/encoder.rs:711,1
    - Dst: try_for_each
      Src: /src/image/src/codecs/pnm/encoder.rs:711,1
    - Dst: write_u16::<BigEndian>
      Src: /src/image/src/codecs/pnm/encoder.rs:712,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:712,1
    - Dst: SampleWriter
      Src: /src/image/src/codecs/pnm/encoder.rs:719,1
    - Dst: write_samples_ascii
      Src: /src/image/src/codecs/pnm/encoder.rs:719,1
    - Dst: ImageResult::iter
      Src: /src/image/src/codecs/pnm/encoder.rs:720,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:719,1
    - Dst: SampleWriter
      Src: /src/image/src/codecs/pnm/encoder.rs:724,1
    - Dst: write_samples_ascii
      Src: /src/image/src/codecs/pnm/encoder.rs:724,1
    - Dst: ImageResult::iter
      Src: /src/image/src/codecs/pnm/encoder.rs:725,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut dyn Write'
    constantsTouched: []
    func_position:
      end: 728
      start: 691
    functionDepth: 15
    functionLinenumber: 691
    functionLinenumberEnd: 728
    functionName: TupleEncoding::write_image
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::iter
    - map_err
    - try_for_each
    - write_samples_ascii
    - '&mut dyn Write::write_all'
    - write_pbm_bits
    - SampleWriter
    - write_u16::<BigEndian>
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(&self, writer: &mut dyn Write) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::DynamicImage::new_luma8
      Src: /src/image/src/codecs/pnm/encoder.rs:733,1
    - Dst: PnmEncoder::new
      Src: /src/image/src/codecs/pnm/encoder.rs:737,1
    - Dst: Self::with_subtype
      Src: /src/image/src/codecs/pnm/encoder.rs:737,1
    - Dst: PnmSubtype::Bitmap
      Src: /src/image/src/codecs/pnm/encoder.rs:737,1
    - Dst: DynamicImage::write_with_encoder
      Src: /src/image/src/codecs/pnm/encoder.rs:739,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/pnm/encoder.rs:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 742
      start: 732
    functionDepth: 14
    functionLinenumber: 732
    functionLinenumberEnd: 742
    functionName: pbm_allows_black
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - PnmSubtype::Bitmap
    - crate::DynamicImage::new_luma8
    - PnmEncoder::new
    - Self::with_subtype
    - ImageResult::expect
    - DynamicImage::write_with_encoder
    linkageType: ''
    returnType: void
    signature: fn pbm_allows_black()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::DynamicImage::ImageLuma8
      Src: /src/image/src/codecs/pnm/encoder.rs:747,1
    - Dst: crate::ImageBuffer::from_pixel
      Src: /src/image/src/codecs/pnm/encoder.rs:747,1
    - Dst: crate::Luma
      Src: /src/image/src/codecs/pnm/encoder.rs:747,1
    - Dst: PnmEncoder::new
      Src: /src/image/src/codecs/pnm/encoder.rs:751,1
    - Dst: Self::with_subtype
      Src: /src/image/src/codecs/pnm/encoder.rs:751,1
    - Dst: PnmSubtype::Bitmap
      Src: /src/image/src/codecs/pnm/encoder.rs:751,1
    - Dst: write_with_encoder
      Src: /src/image/src/codecs/pnm/encoder.rs:753,1
    - Dst: expect
      Src: /src/image/src/codecs/pnm/encoder.rs:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 756
      start: 745
    functionDepth: 14
    functionLinenumber: 745
    functionLinenumberEnd: 756
    functionName: pbm_allows_white
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - PnmSubtype::Bitmap
    - expect
    - crate::ImageBuffer::from_pixel
    - PnmEncoder::new
    - crate::Luma
    - Self::with_subtype
    - crate::DynamicImage::ImageLuma8
    - write_with_encoder
    linkageType: ''
    returnType: void
    signature: fn pbm_allows_white()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::DynamicImage::ImageLuma8
      Src: /src/image/src/codecs/pnm/encoder.rs:761,1
    - Dst: crate::ImageBuffer::from_pixel
      Src: /src/image/src/codecs/pnm/encoder.rs:761,1
    - Dst: crate::Luma
      Src: /src/image/src/codecs/pnm/encoder.rs:761,1
    - Dst: PnmEncoder::new
      Src: /src/image/src/codecs/pnm/encoder.rs:765,1
    - Dst: Self::with_subtype
      Src: /src/image/src/codecs/pnm/encoder.rs:765,1
    - Dst: PnmSubtype::Bitmap
      Src: /src/image/src/codecs/pnm/encoder.rs:765,1
    - Dst: write_with_encoder
      Src: /src/image/src/codecs/pnm/encoder.rs:767,1
    - Dst: expect_err
      Src: /src/image/src/codecs/pnm/encoder.rs:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 770
      start: 759
    functionDepth: 14
    functionLinenumber: 759
    functionLinenumberEnd: 770
    functionName: pbm_verifies_pixels
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - PnmSubtype::Bitmap
    - crate::ImageBuffer::from_pixel
    - PnmEncoder::new
    - expect_err
    - crate::Luma
    - Self::with_subtype
    - crate::DynamicImage::ImageLuma8
    - write_with_encoder
    linkageType: ''
    returnType: void
    signature: fn pbm_verifies_pixels()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::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:
    - Result::write_str
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::io::Result::fmt
      Src: /src/image/src/codecs/pnm/decoder.rs:212,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/pnm/decoder.rs:213,1
    - Dst: Result::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: 0
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: ErrorDataSource::fmt
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Result::write_str
    - std::io::Result::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:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    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:243,1
    - Dst: Self::sample_size
      Src: /src/image/src/codecs/pnm/decoder.rs:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - width
    - height
    - samples
    argTypes:
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 244
    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:268,1
    - Dst: PnmSubtype::Bitmap
      Src: /src/image/src/codecs/pnm/decoder.rs:271,1
    - Dst: PnmSubtype::Graymap
      Src: /src/image/src/codecs/pnm/decoder.rs:272,1
    - Dst: PnmSubtype::Pixmap
      Src: /src/image/src/codecs/pnm/decoder.rs:273,1
    - Dst: PnmSubtype::Bitmap
      Src: /src/image/src/codecs/pnm/decoder.rs:274,1
    - Dst: PnmSubtype::Graymap
      Src: /src/image/src/codecs/pnm/decoder.rs:275,1
    - Dst: PnmSubtype::Pixmap
      Src: /src/image/src/codecs/pnm/decoder.rs:276,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:278,1
    - Dst: DecoderError::PnmMagicInvalid
      Src: /src/image/src/codecs/pnm/decoder.rs:278,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:278,1
    - Dst: PnmDecoder::read_bitmap_header
      Src: /src/image/src/codecs/pnm/decoder.rs:282,1
    - Dst: PnmDecoder::read_graymap_header
      Src: /src/image/src/codecs/pnm/decoder.rs:283,1
    - Dst: PnmDecoder::read_pixmap_header
      Src: /src/image/src/codecs/pnm/decoder.rs:284,1
    - Dst: PnmDecoder::read_arbitrary_header
      Src: /src/image/src/codecs/pnm/decoder.rs:285,1
    - Dst: utils::check_dimension_overflow
      Src: /src/image/src/codecs/pnm/decoder.rs:288,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/pnm/decoder.rs:289,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/pnm/decoder.rs:290,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/pnm/decoder.rs:291,1
    - Dst: Option::bytes_per_pixel
      Src: /src/image/src/codecs/pnm/decoder.rs:291,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:293,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/decoder.rs:293,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/decoder.rs:294,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:295,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/pnm/decoder.rs:296,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:305,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 1
    argNames:
    - buffered_read
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 306
      start: 267
    functionDepth: 12
    functionLinenumber: 267
    functionLinenumberEnd: 306
    functionName: PnmDecoder::new
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 20
    functionsReached:
    - ImageResult::dimensions
    - PnmSubtype::Graymap
    - PnmDecoder::read_graymap_header
    - R::read_magic_constant
    - utils::check_dimension_overflow
    - UnsupportedErrorKind::GenericFeature
    - Option::bytes_per_pixel
    - Err
    - PnmSubtype::Bitmap
    - PnmDecoder::read_bitmap_header
    - into
    - DecoderError::PnmMagicInvalid
    - PnmSubtype::Pixmap
    - ImageResult::color_type
    - PnmDecoder::read_arbitrary_header
    - ImageError::Unsupported
    - PnmDecoder::read_pixmap_header
    - Ok
    - UnsupportedError::from_format_and_kind
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(mut buffered_read: R) -> ImageResult<PnmDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 311
    functionName: PnmDecoder::header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&PnmHeader'
    signature: pub fn header(&self) -> &PnmHeader
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 316
    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:319,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:320,1
    - Dst: HeaderRecord::Bitmap
      Src: /src/image/src/codecs/pnm/decoder.rs:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - reader
    - encoding
    argTypes:
    - R
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 328
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 328
    functionName: PnmDecoder::read_bitmap_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::read_bitmap_header
    - HeaderRecord::Bitmap
    - Ok
    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:331,1
    - Dst: '&exr::meta::header::Header::tuple_type'
      Src: /src/image/src/codecs/pnm/decoder.rs:332,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:333,1
    - Dst: HeaderRecord::Graymap
      Src: /src/image/src/codecs/pnm/decoder.rs:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - reader
    - encoding
    argTypes:
    - R
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 341
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 341
    functionName: PnmDecoder::read_graymap_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - HeaderRecord::Graymap
    - Result::read_graymap_header
    - '&exr::meta::header::Header::tuple_type'
    - 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:344,1
    - Dst: '&exr::meta::header::Header::tuple_type'
      Src: /src/image/src/codecs/pnm/decoder.rs:345,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:346,1
    - Dst: HeaderRecord::Pixmap
      Src: /src/image/src/codecs/pnm/decoder.rs:350,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - reader
    - encoding
    argTypes:
    - R
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 354
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 354
    functionName: PnmDecoder::read_pixmap_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - HeaderRecord::Pixmap
    - Ok
    - Result::read_pixmap_header
    - '&exr::meta::header::Header::tuple_type'
    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:357,1
    - Dst: '&exr::meta::header::Header::tuple_type'
      Src: /src/image/src/codecs/pnm/decoder.rs:358,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:359,1
    - Dst: HeaderRecord::Arbitrary
      Src: /src/image/src/codecs/pnm/decoder.rs:363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 367
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 367
    functionName: PnmDecoder::read_arbitrary_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::read_arbitrary_header
    - Ok
    - '&exr::meta::header::Header::tuple_type'
    - HeaderRecord::Arbitrary
    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:374,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 376
    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:380,1
    - Dst: HeaderReader::bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:384,1
    - Dst: '&[u8]::scan'
      Src: /src/image/src/codecs/pnm/decoder.rs:384,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:386,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:386,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:392,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:392,1
    - Dst: filter
      Src: /src/image/src/codecs/pnm/decoder.rs:395,1
    - Dst: '&[u8]::is_empty'
      Src: /src/image/src/codecs/pnm/decoder.rs:398,1
    - Dst: io::Result::is_ascii
      Src: /src/image/src/codecs/pnm/decoder.rs:402,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:403,1
    - Dst: DecoderError::NonAsciiByteInHeader
      Src: /src/image/src/codecs/pnm/decoder.rs:403,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:403,1
    - Dst: '&[u8]::push'
      Src: /src/image/src/codecs/pnm/decoder.rs:406,1
    - Dst: '&[u8]::is_empty'
      Src: /src/image/src/codecs/pnm/decoder.rs:412,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:413,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/pnm/decoder.rs:413,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:413,1
    - Dst: '&[u8]::as_slice'
      Src: /src/image/src/codecs/pnm/decoder.rs:416,1
    - Dst: '&[T]::is_ascii'
      Src: /src/image/src/codecs/pnm/decoder.rs:416,1
    - Dst: String::from_utf8
      Src: /src/image/src/codecs/pnm/decoder.rs:421,1
    - Dst: unwrap_or_else
      Src: /src/image/src/codecs/pnm/decoder.rs:421,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:425,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 379
    functionDepth: 13
    functionLinenumber: 379
    functionLinenumberEnd: 426
    functionName: HeaderReader::read_next_string
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - '&[u8]::scan'
    - io::Result::is_ascii
    - DecoderError::NonAsciiByteInHeader
    - ImageError::IoError
    - String::from_utf8
    - '&[T]::is_ascii'
    - HeaderReader::bytes
    - '&[u8]::is_empty'
    - Err
    - Some
    - filter
    - '&[u8]::as_slice'
    - Ok
    - '&[u8]::push'
    - into
    - unwrap_or_else
    - Vec::new
    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:429,1
    - Dst: HeaderReader::read
      Src: /src/image/src/codecs/pnm/decoder.rs:432,1
    - Dst: '&RgbaImage::push'
      Src: /src/image/src/codecs/pnm/decoder.rs:435,1
    - Dst: String::from_utf8
      Src: /src/image/src/codecs/pnm/decoder.rs:438,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:438,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/pnm/decoder.rs:439,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/pnm/decoder.rs:439,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:439,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 440
      start: 428
    functionDepth: 13
    functionLinenumber: 428
    functionLinenumberEnd: 440
    functionName: HeaderReader::read_next_line
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - '&RgbaImage::push'
    - map_err
    - String::from_utf8
    - DecodingError::new
    - ImageError::Decoding
    - HeaderReader::read
    - into
    - 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:443,1
    - Dst: parse::<u32>
      Src: /src/image/src/codecs/pnm/decoder.rs:444,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:444,1
    - Dst: DecoderError::UnparsableValue
      Src: /src/image/src/codecs/pnm/decoder.rs:445,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 14
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: HeaderReader::read_next_u32
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 2
    functionsReached:
    - parse::<u32>
    - map_err
    - into
    - HeaderReader::read_next_string
    - DecoderError::UnparsableValue
    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:449,1
    - Dst: HeaderReader::read_next_u32
      Src: /src/image/src/codecs/pnm/decoder.rs:450,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 456
      start: 448
    functionDepth: 15
    functionLinenumber: 448
    functionLinenumberEnd: 456
    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:459,1
    - Dst: ImageResult::map
      Src: /src/image/src/codecs/pnm/decoder.rs:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 472
      start: 458
    functionDepth: 16
    functionLinenumber: 458
    functionLinenumberEnd: 472
    functionName: HeaderReader::read_graymap_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::map
    - HeaderReader::read_pixmap_header
    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:475,1
    - Dst: HeaderReader::read_next_u32
      Src: /src/image/src/codecs/pnm/decoder.rs:476,1
    - Dst: HeaderReader::read_next_u32
      Src: /src/image/src/codecs/pnm/decoder.rs:477,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 484
      start: 474
    functionDepth: 15
    functionLinenumber: 474
    functionLinenumberEnd: 484
    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:492,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:493,1
    - Dst: DecoderError::HeaderLineDuplicated
      Src: /src/image/src/codecs/pnm/decoder.rs:493,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:493,1
    - Dst: Option::trim
      Src: /src/image/src/codecs/pnm/decoder.rs:495,1
    - Dst: parse
      Src: /src/image/src/codecs/pnm/decoder.rs:495,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:495,1
    - Dst: DecoderError::UnparsableValue
      Src: /src/image/src/codecs/pnm/decoder.rs:496,1
    - Dst: ErrorDataSource::Line
      Src: /src/image/src/codecs/pnm/decoder.rs:496,1
    - Dst: Option::to_owned
      Src: /src/image/src/codecs/pnm/decoder.rs:496,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:498,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - line_val
    - rest
    - line
    argTypes:
    - '&mut Option<u32>'
    - '&str'
    - PnmHeaderLine
    constantsTouched: []
    func_position:
      end: 501
      start: 487
    functionDepth: 12
    functionLinenumber: 487
    functionLinenumberEnd: 501
    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:
    - Option::trim
    - DecoderError::HeaderLineDuplicated
    - map_err
    - Err
    - Some
    - parse
    - Ok
    - '&mut Option<u32>::is_some'
    - Option::to_owned
    - into
    - ErrorDataSource::Line
    - DecoderError::UnparsableValue
    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:504,1
    - Dst: '&[u8]::next'
      Src: /src/image/src/codecs/pnm/decoder.rs:504,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:505,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/pnm/decoder.rs:505,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:505,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:506,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/pnm/decoder.rs:506,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:508,1
    - Dst: DecoderError::NotNewlineAfterP7Magic
      Src: /src/image/src/codecs/pnm/decoder.rs:508,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:508,1
    - Dst: HeaderReader::read_next_line
      Src: /src/image/src/codecs/pnm/decoder.rs:518,1
    - Dst: std::io::Result::is_empty
      Src: /src/image/src/codecs/pnm/decoder.rs:519,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:520,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:520,1
    - Dst: std::io::Result::as_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:522,1
    - Dst: std::io::Result::is_ascii
      Src: /src/image/src/codecs/pnm/decoder.rs:525,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:526,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:526,1
    - Dst: std::io::Result::trim_left
      Src: /src/image/src/codecs/pnm/decoder.rs:529,1
    - Dst: split_at
      Src: /src/image/src/codecs/pnm/decoder.rs:529,1
    - Dst: std::io::Result::find
      Src: /src/image/src/codecs/pnm/decoder.rs:531,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/pnm/decoder.rs:531,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/pnm/decoder.rs:531,1
    - Dst: parse_single_value_line
      Src: /src/image/src/codecs/pnm/decoder.rs:534,1
    - Dst: parse_single_value_line
      Src: /src/image/src/codecs/pnm/decoder.rs:535,1
    - Dst: parse_single_value_line
      Src: /src/image/src/codecs/pnm/decoder.rs:536,1
    - Dst: parse_single_value_line
      Src: /src/image/src/codecs/pnm/decoder.rs:537,1
    - Dst: Option::trim
      Src: /src/image/src/codecs/pnm/decoder.rs:539,1
    - Dst: None::is_some
      Src: /src/image/src/codecs/pnm/decoder.rs:540,1
    - Dst: None::take
      Src: /src/image/src/codecs/pnm/decoder.rs:541,1
    - Dst: map
      Src: /src/image/src/codecs/pnm/decoder.rs:541,1
    - Dst: DynamicImage::push
      Src: /src/image/src/codecs/pnm/decoder.rs:542,1
    - Dst: DynamicImage::push_str
      Src: /src/image/src/codecs/pnm/decoder.rs:543,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:548,1
    - Dst: to_string
      Src: /src/image/src/codecs/pnm/decoder.rs:548,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:551,1
    - Dst: DecoderError::HeaderLineUnknown
      Src: /src/image/src/codecs/pnm/decoder.rs:551,1
    - Dst: to_string
      Src: /src/image/src/codecs/pnm/decoder.rs:551,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:551,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:556,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:556,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:567,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:569,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:571,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:572,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:573,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:574,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:575,1
    - Dst: ArbitraryTuplType::Custom
      Src: /src/image/src/codecs/pnm/decoder.rs:575,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:578,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 160
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 585
      start: 486
    functionDepth: 12
    functionLinenumber: 486
    functionLinenumberEnd: 585
    functionName: HeaderReader::read_arbitrary_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::is_empty
    - HeaderReader::bytes
    - '&[u8]::next'
    - map
    - parse_single_value_line
    - unwrap_or
    - ImageError::IoError
    - std::io::Result::find
    - std::io::Result::is_ascii
    - Err
    - HeaderReader::read_next_line
    - DecoderError::NotNewlineAfterP7Magic
    - to_string
    - Option::trim
    - ArbitraryTuplType::Custom
    - std::io::Result::as_bytes
    - DynamicImage::push
    - DecoderError::HeaderLineUnknown
    - None::is_some
    - std::io::Result::len
    - into
    - std::io::Result::trim_left
    - split_at
    - None::take
    - Some
    - DynamicImage::push_str
    - Ok
    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:592,1
    - Dst: height
      Src: /src/image/src/codecs/pnm/decoder.rs:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 593
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 593
    functionName: PnmDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - height
    - width
    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: 609
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 609
    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: 625
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 625
    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:630,1
    - Dst: read_samples::<BWBit>
      Src: /src/image/src/codecs/pnm/decoder.rs:631,1
    - Dst: read_samples::<BWBit>
      Src: /src/image/src/codecs/pnm/decoder.rs:632,1
    - Dst: read_samples::<U8>
      Src: /src/image/src/codecs/pnm/decoder.rs:633,1
    - Dst: read_samples::<U8>
      Src: /src/image/src/codecs/pnm/decoder.rs:634,1
    - Dst: read_samples::<U16>
      Src: /src/image/src/codecs/pnm/decoder.rs:635,1
    - Dst: read_samples::<U16>
      Src: /src/image/src/codecs/pnm/decoder.rs:636,1
    - Dst: read_samples::<U8>
      Src: /src/image/src/codecs/pnm/decoder.rs:637,1
    - Dst: read_samples::<U8>
      Src: /src/image/src/codecs/pnm/decoder.rs:638,1
    - Dst: read_samples::<U16>
      Src: /src/image/src/codecs/pnm/decoder.rs:639,1
    - Dst: read_samples::<U16>
      Src: /src/image/src/codecs/pnm/decoder.rs:640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 642
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 642
    functionName: PnmDecoder::read_image
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - read_samples::<U8>
    - read_samples::<PbmBit>
    - read_samples::<BWBit>
    - read_samples::<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/pnm/decoder.rs:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 646
      start: 644
    functionDepth: 3
    functionLinenumber: 644
    functionLinenumberEnd: 646
    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:651,1
    - Dst: PnmSubtype::sample_encoding
      Src: /src/image/src/codecs/pnm/decoder.rs:651,1
    - Dst: width
      Src: /src/image/src/codecs/pnm/decoder.rs:653,1
    - Dst: height
      Src: /src/image/src/codecs/pnm/decoder.rs:654,1
    - Dst: S::bytelen
      Src: /src/image/src/codecs/pnm/decoder.rs:655,1
    - Dst: read_exact_vec
      Src: /src/image/src/codecs/pnm/decoder.rs:658,1
    - Dst: u32::try_into
      Src: /src/image/src/codecs/pnm/decoder.rs:660,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:660,1
    - Dst: u32::try_into
      Src: /src/image/src/codecs/pnm/decoder.rs:662,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:662,1
    - Dst: u32::checked_mul
      Src: /src/image/src/codecs/pnm/decoder.rs:663,1
    - Dst: ok_or
      Src: /src/image/src/codecs/pnm/decoder.rs:663,1
    - Dst: S::from_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:667,1
    - Dst: read_ascii::<S>
      Src: /src/image/src/codecs/pnm/decoder.rs:670,1
    - Dst: maximal_sample
      Src: /src/image/src/codecs/pnm/decoder.rs:675,1
    - Dst: pow
      Src: /src/image/src/codecs/pnm/decoder.rs:676,1
    - Dst: S::sample_size
      Src: /src/image/src/codecs/pnm/decoder.rs:676,1
    - Dst: S::sample_size
      Src: /src/image/src/codecs/pnm/decoder.rs:681,1
    - Dst: std::io::Result::iter_mut
      Src: /src/image/src/codecs/pnm/decoder.rs:682,1
    - Dst: f32::from
      Src: /src/image/src/codecs/pnm/decoder.rs:683,1
    - Dst: round
      Src: /src/image/src/codecs/pnm/decoder.rs:683,1
    - Dst: S::sample_size
      Src: /src/image/src/codecs/pnm/decoder.rs:685,1
    - Dst: std::io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/pnm/decoder.rs:686,1
    - Dst: NativeEndian::read_u16
      Src: /src/image/src/codecs/pnm/decoder.rs:687,1
    - Dst: NativeEndian::write_u16
      Src: /src/image/src/codecs/pnm/decoder.rs:688,1
    - Dst: f32::from
      Src: /src/image/src/codecs/pnm/decoder.rs:688,1
    - Dst: round
      Src: /src/image/src/codecs/pnm/decoder.rs:688,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:693,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 94
    argCount: 2
    argNames:
    - components
    - buf
    argTypes:
    - u32
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 694
      start: 650
    functionDepth: 15
    functionLinenumber: 650
    functionLinenumberEnd: 694
    functionName: PnmDecoder::read_samples
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - u32::checked_mul
    - maximal_sample
    - PnmDecoder::subtype
    - ok_or
    - width
    - S::sample_size
    - std::io::Result::iter_mut
    - S::from_bytes
    - height
    - map_err
    - u32::try_into
    - S::bytelen
    - pow
    - std::io::Result::chunks_exact_mut
    - f32::from
    - read_exact_vec
    - read_ascii::<S>
    - round
    - Ok
    - PnmSubtype::sample_encoding
    - NativeEndian::read_u16
    - 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:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - output_buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 698
      start: 696
    functionDepth: 16
    functionLinenumber: 696
    functionLinenumberEnd: 698
    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:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 703
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 703
    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:712,1
    - Dst: '&[u8]::skip_while'
      Src: /src/image/src/codecs/pnm/decoder.rs:712,1
    - Dst: DynamicImage::as_ref
      Src: /src/image/src/codecs/pnm/decoder.rs:714,1
    - Dst: FlatSamples::ok
      Src: /src/image/src/codecs/pnm/decoder.rs:714,1
    - Dst: bool::is_some_and
      Src: /src/image/src/codecs/pnm/decoder.rs:714,1
    - Dst: take_while
      Src: /src/image/src/codecs/pnm/decoder.rs:712,1
    - Dst: DynamicImage::as_ref
      Src: /src/image/src/codecs/pnm/decoder.rs:715,1
    - Dst: FlatSamples::ok
      Src: /src/image/src/codecs/pnm/decoder.rs:715,1
    - Dst: bool::is_some_and
      Src: /src/image/src/codecs/pnm/decoder.rs:715,1
    - Dst: is_separator
      Src: /src/image/src/codecs/pnm/decoder.rs:715,1
    - Dst: u16::from
      Src: /src/image/src/codecs/pnm/decoder.rs:719,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:720,1
    - Dst: DecoderError::InvalidDigit
      Src: /src/image/src/codecs/pnm/decoder.rs:720,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:720,1
    - Dst: DynamicImage::checked_mul
      Src: /src/image/src/codecs/pnm/decoder.rs:722,1
    - Dst: ok_or
      Src: /src/image/src/codecs/pnm/decoder.rs:722,1
    - Dst: DynamicImage::checked_add
      Src: /src/image/src/codecs/pnm/decoder.rs:723,1
    - Dst: ok_or
      Src: /src/image/src/codecs/pnm/decoder.rs:723,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:728,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:728,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:731,1
    - Dst: T::try_from
      Src: /src/image/src/codecs/pnm/decoder.rs:731,1
    - Dst: Result::or
      Src: /src/image/src/codecs/pnm/decoder.rs:731,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:731,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 65
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut dyn Read'
    constantsTouched: []
    func_position:
      end: 732
      start: 706
    functionDepth: 14
    functionLinenumber: 706
    functionLinenumberEnd: 732
    functionName: read_separated_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - '&[u8]::skip_while'
    - Result::or
    - Result::bytes
    - FlatSamples::ok
    - ok_or
    - DynamicImage::checked_add
    - bool::is_some_and
    - take_while
    - is_separator
    - DynamicImage::as_ref
    - u16::from
    - Err
    - DynamicImage::checked_mul
    - DecoderError::InvalidDigit
    - T::try_from
    - Ok
    - into
    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:738,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - bytes
    - _row_size
    - output_buf
    argTypes:
    - '&[u8]'
    - usize
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 740
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 740
    functionName: U8::from_bytes
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - '&mut [u8]::copy_from_slice'
    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:744,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - reader
    - output_buf
    argTypes:
    - '&mut dyn Read'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 747
      start: 742
    functionDepth: 15
    functionLinenumber: 742
    functionLinenumberEnd: 747
    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:754,1
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image/src/codecs/pnm/decoder.rs:755,1
    - Dst: BigEndian::read_u16
      Src: /src/image/src/codecs/pnm/decoder.rs:756,1
    - Dst: NativeEndian::write_u16
      Src: /src/image/src/codecs/pnm/decoder.rs:757,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:759,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - bytes
    - _row_size
    - output_buf
    argTypes:
    - '&[u8]'
    - usize
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 760
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 760
    functionName: U16::from_bytes
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - '&mut [u8]::chunks_exact_mut'
    - '&mut [u8]::copy_from_slice'
    - Ok
    - BigEndian::read_u16
    - NativeEndian::write_u16
    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:763,1
    - Dst: read_separated_ascii::<u16>
      Src: /src/image/src/codecs/pnm/decoder.rs:764,1
    - Dst: NativeEndian::write_u16
      Src: /src/image/src/codecs/pnm/decoder.rs:765,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - reader
    - output_buf
    argTypes:
    - '&mut dyn Read'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 768
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 768
    functionName: U16::from_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - '&mut [u8]::chunks_exact_mut'
    - read_separated_ascii::<u16>
    - Ok
    - NativeEndian::write_u16
    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:779,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - width
    - height
    - samples
    argTypes:
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 781
      start: 777
    functionDepth: 3
    functionLinenumber: 777
    functionLinenumberEnd: 781
    functionName: PbmBit::bytelen
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - u32::from
    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:784,1
    - Dst: usize::try_into
      Src: /src/image/src/codecs/pnm/decoder.rs:784,1
    - Dst: unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:784,1
    - Dst: '&mut [u8]::copy_from_slice'
      Src: /src/image/src/codecs/pnm/decoder.rs:788,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 3
    argNames:
    - bytes
    - row_size
    - output_buf
    argTypes:
    - '&[u8]'
    - usize
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 790
      start: 783
    functionDepth: 14
    functionLinenumber: 783
    functionLinenumberEnd: 790
    functionName: PbmBit::from_bytes
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - usize::try_into
    - '&mut [u8]::copy_from_slice'
    - Ok
    - utils::expand_bits
    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:794,1
    - Dst: '&[u8]::next'
      Src: /src/image/src/codecs/pnm/decoder.rs:797,1
    - Dst: "next()\n                    .ok_or_else::<ImageError, _>"
      Src: /src/image/src/codecs/pnm/decoder.rs:797,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:799,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:804,1
    - Dst: DecoderError::UnexpectedByteInRaster
      Src: /src/image/src/codecs/pnm/decoder.rs:804,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:804,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:810,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - reader
    - output_buf
    argTypes:
    - '&mut dyn Read'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 811
      start: 792
    functionDepth: 12
    functionLinenumber: 792
    functionLinenumberEnd: 811
    functionName: PbmBit::from_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Result::bytes
    - DecoderError::UnexpectedByteInRaster
    - '&[u8]::next'
    - Err
    - into
    - Ok
    - "next()\n                    .ok_or_else::<ImageError, _>"
    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:819,1
    - Dst: '&mut [u8]::iter'
      Src: /src/image/src/codecs/pnm/decoder.rs:820,1
    - Dst: find
      Src: /src/image/src/codecs/pnm/decoder.rs:820,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:821,1
    - Dst: DecoderError::SampleOutOfBounds
      Src: /src/image/src/codecs/pnm/decoder.rs:821,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:821,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:823,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - bytes
    - row_size
    - output_buf
    argTypes:
    - '&[u8]'
    - usize
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 824
      start: 818
    functionDepth: 12
    functionLinenumber: 818
    functionLinenumberEnd: 824
    functionName: BWBit::from_bytes
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - '&mut [u8]::iter'
    - into
    - find
    - U8::from_bytes
    - Ok
    - DecoderError::SampleOutOfBounds
    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: 828
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 828
    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:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 834
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 834
    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:840,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:840,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:841,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:842,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:843,1
    - Dst: DecoderError::MaxvalTooBig
      Src: /src/image/src/codecs/pnm/decoder.rs:843,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 845
      start: 838
    functionDepth: 12
    functionLinenumber: 838
    functionLinenumberEnd: 845
    functionName: GraymapHeader::tuple_type
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into
    - DecoderError::MaxvalTooBig
    - Err
    - 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:851,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:851,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:852,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:853,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:854,1
    - Dst: DecoderError::MaxvalTooBig
      Src: /src/image/src/codecs/pnm/decoder.rs:854,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 856
      start: 849
    functionDepth: 12
    functionLinenumber: 849
    functionLinenumberEnd: 856
    functionName: PixmapHeader::tuple_type
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into
    - DecoderError::MaxvalTooBig
    - Err
    - 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:862,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:862,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:863,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:864,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:865,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:866,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:869,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:871,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:871,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:879,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:882,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:884,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:884,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:892,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:895,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:897,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:897,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:904,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:907,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:907,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:916,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:919,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:921,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:921,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:928,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:931,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:933,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:933,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:939,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/decoder.rs:939,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/decoder.rs:940,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:941,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/pnm/decoder.rs:942,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:945,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:945,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 947
      start: 860
    functionDepth: 12
    functionLinenumber: 860
    functionLinenumberEnd: 947
    functionName: ArbitraryHeader::tuple_type
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageError::Unsupported
    - Err
    - Ok
    - into
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    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:965,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:965,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:972,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:972,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:980,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:980,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 997
      start: 955
    functionDepth: 13
    functionLinenumber: 955
    functionLinenumberEnd: 997
    functionName: tests::pam_blackandwhite
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - PnmDecoder::new
    - ImageResult::unwrap
    - into_inner
    linkageType: ''
    returnType: void
    signature: fn pam_blackandwhite()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1011,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1011,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1018,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1018,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1020,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1020,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1001
    functionDepth: 13
    functionLinenumber: 1001
    functionLinenumberEnd: 1037
    functionName: tests::pam_blackandwhite_alpha
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - PnmDecoder::new
    - ImageResult::unwrap
    - into_inner
    linkageType: ''
    returnType: void
    signature: fn pam_blackandwhite_alpha()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1051,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1051,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1057,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1057,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1065,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1065,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1065,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1041
    functionDepth: 13
    functionLinenumber: 1041
    functionLinenumberEnd: 1082
    functionName: tests::pam_grayscale
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - PnmDecoder::new
    - ImageResult::unwrap
    - into_inner
    linkageType: ''
    returnType: void
    signature: fn pam_grayscale()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1096,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1096,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1103,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1103,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1114,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1114,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1086
    functionDepth: 13
    functionLinenumber: 1086
    functionLinenumberEnd: 1131
    functionName: tests::pam_grayscale_alpha
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - PnmDecoder::new
    - ImageResult::unwrap
    - into_inner
    linkageType: ''
    returnType: void
    signature: fn pam_grayscale_alpha()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1145,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1145,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1151,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1151,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1156,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1156,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1135
    functionDepth: 13
    functionLinenumber: 1135
    functionLinenumberEnd: 1173
    functionName: tests::pam_rgb
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - PnmDecoder::new
    - ImageResult::unwrap
    - into_inner
    linkageType: ''
    returnType: void
    signature: fn pam_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1187,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1187,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: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1177
    functionDepth: 13
    functionLinenumber: 1177
    functionLinenumberEnd: 1213
    functionName: tests::pam_rgb_alpha
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - PnmDecoder::new
    - ImageResult::unwrap
    - into_inner
    linkageType: ''
    returnType: void
    signature: fn pam_rgb_alpha()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/image/src/codecs/pnm/decoder.rs:1219,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1220,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1220,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1229,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1229,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1231,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1231,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1216
    functionDepth: 15
    functionLinenumber: 1216
    functionLinenumberEnd: 1246
    functionName: tests::pbm_binary
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    - concat
    - PnmDecoder::new
    linkageType: ''
    returnType: void
    signature: fn pbm_binary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufReader::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1266,1
    - Dst: FailRead
      Src: /src/image/src/codecs/pnm/decoder.rs:1266,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1266,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1268,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1268,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1270,1
    - Dst: ImageResult::expect_err
      Src: /src/image/src/codecs/pnm/decoder.rs:1270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1250
    functionDepth: 13
    functionLinenumber: 1250
    functionLinenumberEnd: 1273
    functionName: tests::pbm_binary_ascii_termination
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - BufReader::new
    - ImageResult::expect_err
    - ImageResult::unwrap
    - ImageResult::read_image
    - FailRead
    - PnmDecoder::new
    - Cursor::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:1281,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1281,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1288,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1288,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1290,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1290,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1276
    functionDepth: 13
    functionLinenumber: 1276
    functionLinenumberEnd: 1305
    functionName: tests::pbm_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - PnmDecoder::new
    - ImageResult::unwrap
    - into_inner
    linkageType: ''
    returnType: void
    signature: fn pbm_ascii()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1313,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1313,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1320,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1320,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1322,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1322,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1308
    functionDepth: 13
    functionLinenumber: 1308
    functionLinenumberEnd: 1337
    functionName: tests::pbm_ascii_nospace
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - PnmDecoder::new
    - ImageResult::unwrap
    - into_inner
    linkageType: ''
    returnType: void
    signature: fn pbm_ascii_nospace()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: .16).collect::<Vec<_>>
      Src: /src/image/src/codecs/pnm/decoder.rs:1343,1
    - Dst: concat
      Src: /src/image/src/codecs/pnm/decoder.rs:1344,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1345,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1345,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1353,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1353,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1355,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1355,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1340
    functionDepth: 15
    functionLinenumber: 1340
    functionLinenumberEnd: 1371
    functionName: tests::pgm_binary
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    - concat
    - .16).collect::<Vec<_>>
    - PnmDecoder::new
    linkageType: ''
    returnType: void
    signature: fn pgm_binary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1378,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1378,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1386,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1386,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1388,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1388,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1374
    functionDepth: 13
    functionLinenumber: 1374
    functionLinenumberEnd: 1404
    functionName: tests::pgm_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - PnmDecoder::new
    - ImageResult::unwrap
    - into_inner
    linkageType: ''
    returnType: void
    signature: fn pgm_ascii()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1409,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1409,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1411,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1407
    functionDepth: 13
    functionLinenumber: 1407
    functionLinenumberEnd: 1423
    functionName: tests::ppm_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - PnmDecoder::new
    - 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:1442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1441
    functionDepth: 15
    functionLinenumber: 1441
    functionLinenumberEnd: 1443
    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:1452,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1452,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1446
    functionDepth: 13
    functionLinenumber: 1446
    functionLinenumberEnd: 1455
    functionName: tests::issue_1616_overflow
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - PnmDecoder::new
    - 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:1460,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1460,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1463,1
    - Dst: ImageResult::unwrap_err
      Src: /src/image/src/codecs/pnm/decoder.rs:1463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1458
    functionDepth: 13
    functionLinenumber: 1458
    functionLinenumberEnd: 1464
    functionName: tests::data_too_short
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - PnmDecoder::new
    - ImageResult::unwrap
    - ImageResult::unwrap_err
    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: std::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: 13
    functionLinenumber: 16
    functionLinenumberEnd: 26
    functionName: AutoBreak::new
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 3
    functionsReached:
    - std::io::Result::try_reserve_exact
    - Vec::new
    - Ok
    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: 14
    functionLinenumber: 28
    functionLinenumberEnd: 57
    functionName: AutoBreak::flush_buf
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 2
    functionsReached:
    - drain
    - io::Error::new
    - Err
    - len
    - Ok
    - ::std::io::Result::kind
    - write
    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: 16
    functionLinenumber: 61
    functionLinenumberEnd: 76
    functionName: AutoBreak::write
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 0
    functionsReached:
    - push
    - AutoBreak::flush
    - extend_from_slice
    - len
    - '&RgbaImage::len'
    - 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: 15
    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: 15
    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: 13
    functionLinenumber: 99
    functionLinenumberEnd: 109
    functionName: tests::test_aligned_writes
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - write_all
    - io::Result::unwrap
    - AutoBreak::new
    - 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: 13
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: tests::test_greater_writes
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - write_all
    - io::Result::unwrap
    - AutoBreak::new
    - 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:29,1
    - Dst: PnmEncoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:32,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/pnm/mod.rs:33,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/pnm/mod.rs:33,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:39,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/mod.rs:39,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/pnm/mod.rs:40,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/mod.rs:42,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/pnm/mod.rs:42,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:45,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/mod.rs:45,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/mod.rs:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 4
    argNames:
    - buffer
    - width
    - height
    - color
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 53
      start: 28
    functionDepth: 13
    functionLinenumber: 28
    functionLinenumberEnd: 53
    functionName: tests::execute_roundtrip_default
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - ImageResult::color_type
    - into_inner
    - PnmEncoder::new
    - ImageResult::unwrap
    - ImageResult::read_image
    - ImageResult::encode
    - ImageResult::expect
    - PnmDecoder::new
    - Vec::new
    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:62,1
    - Dst: PnmEncoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:65,1
    - Dst: Self::with_subtype
      Src: /src/image/src/codecs/pnm/mod.rs:65,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/pnm/mod.rs:66,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/pnm/mod.rs:66,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:72,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/mod.rs:72,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/pnm/mod.rs:73,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/mod.rs:75,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/pnm/mod.rs:75,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:78,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/mod.rs:78,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/mod.rs:78,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: 87
      start: 55
    functionDepth: 13
    functionLinenumber: 55
    functionLinenumberEnd: 87
    functionName: tests::execute_roundtrip_with_subtype
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - ImageResult::color_type
    - into_inner
    - PnmEncoder::new
    - Self::with_subtype
    - ImageResult::unwrap
    - ImageResult::read_image
    - ImageResult::encode
    - ImageResult::expect
    - PnmDecoder::new
    - Vec::new
    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:90,1
    - Dst: PnmEncoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:93,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/pnm/mod.rs:94,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/pnm/mod.rs:94,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:100,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/mod.rs:100,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/pnm/mod.rs:101,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/mod.rs:103,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/pnm/mod.rs:103,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/mod.rs:106,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/mod.rs:106,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/mod.rs:106,1
    - Dst: NativeEndian::write_u16_into
      Src: /src/image/src/codecs/pnm/mod.rs:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 4
    argNames:
    - buffer
    - width
    - height
    - color
    argTypes:
    - '&[u16]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 117
      start: 89
    functionDepth: 13
    functionLinenumber: 89
    functionLinenumberEnd: 117
    functionName: tests::execute_roundtrip_u16
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - ImageResult::color_type
    - into_inner
    - PnmEncoder::new
    - ImageResult::unwrap
    - ImageResult::read_image
    - ImageResult::encode
    - NativeEndian::write_u16_into
    - ImageResult::expect
    - PnmDecoder::new
    - Vec::new
    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:129,1
    - Dst: execute_roundtrip_with_subtype
      Src: /src/image/src/codecs/pnm/mod.rs:130,1
    - Dst: execute_roundtrip_with_subtype
      Src: /src/image/src/codecs/pnm/mod.rs:131,1
    - Dst: PnmSubtype::Graymap
      Src: /src/image/src/codecs/pnm/mod.rs:136,1
    - Dst: execute_roundtrip_with_subtype
      Src: /src/image/src/codecs/pnm/mod.rs:138,1
    - Dst: PnmSubtype::Graymap
      Src: /src/image/src/codecs/pnm/mod.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 120
    functionDepth: 14
    functionLinenumber: 120
    functionLinenumberEnd: 145
    functionName: tests::roundtrip_gray
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - execute_roundtrip_default
    - execute_roundtrip_with_subtype
    - PnmSubtype::Graymap
    linkageType: ''
    returnType: void
    signature: fn roundtrip_gray()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: execute_roundtrip_default
      Src: /src/image/src/codecs/pnm/mod.rs:161,1
    - Dst: execute_roundtrip_with_subtype
      Src: /src/image/src/codecs/pnm/mod.rs:162,1
    - Dst: execute_roundtrip_with_subtype
      Src: /src/image/src/codecs/pnm/mod.rs:169,1
    - Dst: PnmSubtype::Pixmap
      Src: /src/image/src/codecs/pnm/mod.rs:174,1
    - Dst: execute_roundtrip_with_subtype
      Src: /src/image/src/codecs/pnm/mod.rs:176,1
    - Dst: PnmSubtype::Pixmap
      Src: /src/image/src/codecs/pnm/mod.rs:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 148
    functionDepth: 14
    functionLinenumber: 148
    functionLinenumberEnd: 183
    functionName: tests::roundtrip_rgb
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - execute_roundtrip_default
    - execute_roundtrip_with_subtype
    - PnmSubtype::Pixmap
    linkageType: ''
    returnType: void
    signature: fn roundtrip_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: execute_roundtrip_u16
      Src: /src/image/src/codecs/pnm/mod.rs:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 14
    functionLinenumber: 186
    functionLinenumberEnd: 190
    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: 1
    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: 3
    functionsReached:
    - write_all
    - Ok
    - u32::from
    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: 1
    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
    - Ok
    - BitWriter::write_bits
    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: Result::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: 14
    functionLinenumber: 284
    functionLinenumberEnd: 288
    functionName: BitWriter::write_segment
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - write_all
    - to_be_bytes
    - Result::len
    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: 2
    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: 1
    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: 14
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: JpegEncoder::new
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 5
    functionsReached:
    - JpegEncoder::new_with_quality
    linkageType: ''
    returnType: JpegEncoder
    signature: 'pub fn new(w: W) -> JpegEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:404,1
    - Dst: utils::clamp
      Src: /src/image/src/codecs/jpeg/encoder.rs:404,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/jpeg/encoder.rs:412,1
    - Dst: std::io::Result::iter_mut
      Src: /src/image/src/codecs/jpeg/encoder.rs:413,1
    - Dst: utils::clamp
      Src: /src/image/src/codecs/jpeg/encoder.rs:414,1
    - Dst: u32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:414,1
    - Dst: u32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:414,1
    - Dst: BitWriter::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:419,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/jpeg/encoder.rs:424,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/jpeg/encoder.rs:425,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/jpeg/encoder.rs:426,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/jpeg/encoder.rs:427,1
    - Dst: PixelDensity::default
      Src: /src/image/src/codecs/jpeg/encoder.rs:429,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:431,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 2
    argNames:
    - w
    - quality
    argTypes:
    - W
    - u8
    constantsTouched: []
    func_position:
      end: 434
      start: 372
    functionDepth: 13
    functionLinenumber: 372
    functionLinenumberEnd: 434
    functionName: JpegEncoder::new_with_quality
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 5
    functionsReached:
    - utils::clamp
    - PixelDensity::default
    - Vec::new
    - u32::from
    - BitWriter::new
    - std::io::Result::iter_mut
    - iter_mut
    - Cow::Borrowed
    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: 441
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 441
    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: Option::buffer_size
      Src: /src/image/src/codecs/jpeg/encoder.rs:460,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/jpeg/encoder.rs:471,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/jpeg/encoder.rs:471,1
    - Dst: JpegEncoder::encode_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:472,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/jpeg/encoder.rs:476,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/jpeg/encoder.rs:476,1
    - Dst: JpegEncoder::encode_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:477,1
    - Dst: Err
      Src: /src/image/src/codecs/jpeg/encoder.rs:479,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/jpeg/encoder.rs:479,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/jpeg/encoder.rs:480,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/encoder.rs:481,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/jpeg/encoder.rs:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 4
    argNames:
    - image
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 486
      start: 453
    functionDepth: 14
    functionLinenumber: 453
    functionLinenumberEnd: 486
    functionName: JpegEncoder::encode
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - ImageError::Unsupported
    - Err
    - Option::unwrap
    - UnsupportedErrorKind::Color
    - Option::buffer_size
    - JpegEncoder::encode_image
    - into
    - ImageBuffer::from_raw
    - UnsupportedError::from_format_and_kind
    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:489,1
    - Dst: to_vec
      Src: /src/image/src/codecs/jpeg/encoder.rs:490,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:491,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:492,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 496
      start: 488
    functionDepth: 14
    functionLinenumber: 488
    functionLinenumberEnd: 496
    functionName: JpegEncoder::write_exif
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - write_segment
    - to_vec
    - extend_from_slice
    - Ok
    - is_empty
    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:515,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:517,1
    - Dst: build_jfif_header
      Src: /src/image/src/codecs/jpeg/encoder.rs:519,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:520,1
    - Dst: JpegEncoder::write_exif
      Src: /src/image/src/codecs/jpeg/encoder.rs:521,1
    - Dst: JpegEncoder::write_icc_profile_chunks
      Src: /src/image/src/codecs/jpeg/encoder.rs:524,1
    - Dst: build_frame_header
      Src: /src/image/src/codecs/jpeg/encoder.rs:526,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/jpeg/encoder.rs:531,1
    - Dst: Vec::width
      Src: /src/image/src/codecs/jpeg/encoder.rs:531,1
    - Dst: Result::map_err
      Src: /src/image/src/codecs/jpeg/encoder.rs:531,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/jpeg/encoder.rs:532,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/jpeg/encoder.rs:532,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/jpeg/encoder.rs:536,1
    - Dst: Vec::height
      Src: /src/image/src/codecs/jpeg/encoder.rs:536,1
    - Dst: Result::map_err
      Src: /src/image/src/codecs/jpeg/encoder.rs:536,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/jpeg/encoder.rs:537,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/jpeg/encoder.rs:537,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:543,1
    - Dst: iter
      Src: /src/image/src/codecs/jpeg/encoder.rs:548,1
    - Dst: enumerate
      Src: /src/image/src/codecs/jpeg/encoder.rs:548,1
    - Dst: build_quantization_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:549,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:550,1
    - Dst: build_huffman_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:553,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:560,1
    - Dst: build_huffman_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:562,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:569,1
    - Dst: build_huffman_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:572,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:579,1
    - Dst: build_huffman_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:581,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:588,1
    - Dst: build_scan_header
      Src: /src/image/src/codecs/jpeg/encoder.rs:591,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:592,1
    - Dst: JpegEncoder::encode_rgb
      Src: /src/image/src/codecs/jpeg/encoder.rs:595,1
    - Dst: JpegEncoder::encode_gray
      Src: /src/image/src/codecs/jpeg/encoder.rs:597,1
    - Dst: pad_byte
      Src: /src/image/src/codecs/jpeg/encoder.rs:600,1
    - Dst: write_marker
      Src: /src/image/src/codecs/jpeg/encoder.rs:601,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:602,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 163
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 603
      start: 507
    functionDepth: 13
    functionLinenumber: 507
    functionLinenumberEnd: 603
    functionName: JpegEncoder::encode_image
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - Vec::width
    - ImageError::Parameter
    - JpegEncoder::write_exif
    - pad_byte
    - JpegEncoder::encode_rgb
    - build_frame_header
    - build_scan_header
    - u16::try_from
    - write_segment
    - JpegEncoder::write_icc_profile_chunks
    - build_quantization_segment
    - build_huffman_segment
    - JpegEncoder::encode_gray
    - write_marker
    - Result::map_err
    - iter
    - enumerate
    - build_jfif_header
    - Ok
    - ParameterError::from_kind
    - Vec::new
    - Vec::height
    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:610,1
    - Dst: step_by
      Src: /src/image/src/codecs/jpeg/encoder.rs:610,1
    - Dst: Vec::width
      Src: /src/image/src/codecs/jpeg/encoder.rs:611,1
    - Dst: step_by
      Src: /src/image/src/codecs/jpeg/encoder.rs:611,1
    - Dst: copy_blocks_gray
      Src: /src/image/src/codecs/jpeg/encoder.rs:612,1
    - Dst: transform::fdct
      Src: /src/image/src/codecs/jpeg/encoder.rs:616,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/jpeg/encoder.rs:619,1
    - Dst: enumerate
      Src: /src/image/src/codecs/jpeg/encoder.rs:619,1
    - Dst: f32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:620,1
    - Dst: round
      Src: /src/image/src/codecs/jpeg/encoder.rs:620,1
    - Dst: write_block
      Src: /src/image/src/codecs/jpeg/encoder.rs:626,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:630,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 62
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 631
      start: 605
    functionDepth: 15
    functionLinenumber: 605
    functionLinenumberEnd: 631
    functionName: JpegEncoder::encode_gray
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - Vec::width
    - copy_blocks_gray
    - enumerate
    - f32::from
    - transform::fdct
    - round
    - step_by
    - write_block
    - Ok
    - iter_mut
    - Vec::height
    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:646,1
    - Dst: step_by
      Src: /src/image/src/codecs/jpeg/encoder.rs:646,1
    - Dst: Vec::width
      Src: /src/image/src/codecs/jpeg/encoder.rs:647,1
    - Dst: step_by
      Src: /src/image/src/codecs/jpeg/encoder.rs:647,1
    - Dst: copy_blocks_ycbcr
      Src: /src/image/src/codecs/jpeg/encoder.rs:649,1
    - Dst: transform::fdct
      Src: /src/image/src/codecs/jpeg/encoder.rs:653,1
    - Dst: transform::fdct
      Src: /src/image/src/codecs/jpeg/encoder.rs:654,1
    - Dst: transform::fdct
      Src: /src/image/src/codecs/jpeg/encoder.rs:655,1
    - Dst: f32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:660,1
    - Dst: round
      Src: /src/image/src/codecs/jpeg/encoder.rs:660,1
    - Dst: f32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:661,1
    - Dst: round
      Src: /src/image/src/codecs/jpeg/encoder.rs:661,1
    - Dst: f32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:663,1
    - Dst: round
      Src: /src/image/src/codecs/jpeg/encoder.rs:663,1
    - Dst: write_block
      Src: /src/image/src/codecs/jpeg/encoder.rs:672,1
    - Dst: write_block
      Src: /src/image/src/codecs/jpeg/encoder.rs:673,1
    - Dst: write_block
      Src: /src/image/src/codecs/jpeg/encoder.rs:674,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:678,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 125
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 679
      start: 633
    functionDepth: 15
    functionLinenumber: 633
    functionLinenumberEnd: 679
    functionName: JpegEncoder::encode_rgb
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - copy_blocks_ycbcr
    - Vec::width
    - f32::from
    - transform::fdct
    - round
    - step_by
    - Ok
    - write_block
    - Vec::height
    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:682,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:683,1
    - Dst: len
      Src: /src/image/src/codecs/jpeg/encoder.rs:690,1
    - Dst: Err
      Src: /src/image/src/codecs/jpeg/encoder.rs:691,1
    - Dst: io::Error::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:691,1
    - Dst: chunks
      Src: /src/image/src/codecs/jpeg/encoder.rs:697,1
    - Dst: len
      Src: /src/image/src/codecs/jpeg/encoder.rs:698,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:699,1
    - Dst: enumerate
      Src: /src/image/src/codecs/jpeg/encoder.rs:701,1
    - Dst: Option::len
      Src: /src/image/src/codecs/jpeg/encoder.rs:703,1
    - Dst: io::Result::clear
      Src: /src/image/src/codecs/jpeg/encoder.rs:705,1
    - Dst: io::Result::reserve
      Src: /src/image/src/codecs/jpeg/encoder.rs:706,1
    - Dst: io::Result::extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:707,1
    - Dst: io::Result::push
      Src: /src/image/src/codecs/jpeg/encoder.rs:708,1
    - Dst: io::Result::push
      Src: /src/image/src/codecs/jpeg/encoder.rs:709,1
    - Dst: io::Result::extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:710,1
    - Dst: write_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:712,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:715,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 716
      start: 681
    functionDepth: 14
    functionLinenumber: 681
    functionLinenumberEnd: 716
    functionName: JpegEncoder::write_icc_profile_chunks
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - Vec::new
    - write_segment
    - enumerate
    - io::Error::new
    - io::Result::clear
    - Err
    - io::Result::push
    - len
    - Option::len
    - io::Result::reserve
    - Ok
    - chunks
    - io::Result::extend_from_slice
    - 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:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 729
      start: 721
    functionDepth: 15
    functionLinenumber: 721
    functionLinenumberEnd: 729
    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:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - icc_profile
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 734
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 734
    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: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - exif
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 739
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 739
    functionName: JpegEncoder::set_exif_metadata
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_exif_metadata(&mut self, exif: Vec<u8>) -> Result<(), UnsupportedError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::color
      Src: /src/image/src/codecs/jpeg/encoder.rs:747,1
    - Dst: Some
      Src: /src/image/src/codecs/jpeg/encoder.rs:749,1
    - Dst: Option::to_luma8
      Src: /src/image/src/codecs/jpeg/encoder.rs:749,1
    - Dst: GrayImage::into
      Src: /src/image/src/codecs/jpeg/encoder.rs:749,1
    - Dst: Some
      Src: /src/image/src/codecs/jpeg/encoder.rs:750,1
    - Dst: Option::to_rgb8
      Src: /src/image/src/codecs/jpeg/encoder.rs:750,1
    - Dst: RgbImage::into
      Src: /src/image/src/codecs/jpeg/encoder.rs:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - img
    argTypes:
    - crate::io::encoder::MethodSealedToImage
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 752
      start: 741
    functionDepth: 12
    functionLinenumber: 741
    functionLinenumberEnd: 752
    functionName: JpegEncoder::make_compatible_img
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - Option::color
    - Option::to_rgb8
    - Some
    - RgbImage::into
    - GrayImage::into
    - Option::to_luma8
    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:756,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:757,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:758,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:768,1
    - Dst: to_be_bytes
      Src: /src/image/src/codecs/jpeg/encoder.rs:768,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:769,1
    - Dst: to_be_bytes
      Src: /src/image/src/codecs/jpeg/encoder.rs:769,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 2
    argNames:
    - m
    - density
    argTypes:
    - '&mut Vec<u8>'
    - PixelDensity
    constantsTouched: []
    func_position:
      end: 771
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 771
    functionName: build_jfif_header
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 3
    functionsReached:
    - clear
    - extend_from_slice
    - to_be_bytes
    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:780,1
    - Dst: push
      Src: /src/image/src/codecs/jpeg/encoder.rs:782,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:783,1
    - Dst: u32::to_be_bytes
      Src: /src/image/src/codecs/jpeg/encoder.rs:783,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:784,1
    - Dst: u32::to_be_bytes
      Src: /src/image/src/codecs/jpeg/encoder.rs:784,1
    - Dst: push
      Src: /src/image/src/codecs/jpeg/encoder.rs:785,1
    - Dst: '&[Component]::len'
      Src: /src/image/src/codecs/jpeg/encoder.rs:785,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:789,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: 791
      start: 773
    functionDepth: 14
    functionLinenumber: 773
    functionLinenumberEnd: 791
    functionName: build_frame_header
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 2
    functionsReached:
    - push
    - u32::to_be_bytes
    - '&[Component]::len'
    - extend_from_slice
    - clear
    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:794,1
    - Dst: push
      Src: /src/image/src/codecs/jpeg/encoder.rs:796,1
    - Dst: '&[Component]::len'
      Src: /src/image/src/codecs/jpeg/encoder.rs:796,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:800,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:804,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 2
    argNames:
    - m
    - components
    argTypes:
    - '&mut Vec<u8>'
    - '&[Component]'
    constantsTouched: []
    func_position:
      end: 805
      start: 793
    functionDepth: 14
    functionLinenumber: 793
    functionLinenumberEnd: 805
    functionName: build_scan_header
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 2
    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:814,1
    - Dst: push
      Src: /src/image/src/codecs/jpeg/encoder.rs:817,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:819,1
    - Dst: '&[u8; 16]::iter'
      Src: /src/image/src/codecs/jpeg/encoder.rs:821,1
    - Dst: map
      Src: /src/image/src/codecs/jpeg/encoder.rs:821,1
    - Dst: ImageResult::sum
      Src: /src/image/src/codecs/jpeg/encoder.rs:821,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:825,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: 826
      start: 807
    functionDepth: 14
    functionLinenumber: 807
    functionLinenumberEnd: 826
    functionName: build_huffman_segment
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 2
    functionsReached:
    - push
    - ImageResult::sum
    - extend_from_slice
    - map
    - '&[u8; 16]::iter'
    - clear
    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:829,1
    - Dst: push
      Src: /src/image/src/codecs/jpeg/encoder.rs:834,1
    - Dst: push
      Src: /src/image/src/codecs/jpeg/encoder.rs:837,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: 839
      start: 828
    functionDepth: 0
    functionLinenumber: 828
    functionLinenumberEnd: 839
    functionName: build_quantization_segment
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 2
    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:842,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - coefficient
    argTypes:
    - i32
    constantsTouched: []
    func_position:
      end: 859
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 859
    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:863,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:864,1
    - Dst: Result::to_u8
      Src: /src/image/src/codecs/jpeg/encoder.rs:864,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/jpeg/encoder.rs:864,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:865,1
    - Dst: Result::to_u8
      Src: /src/image/src/codecs/jpeg/encoder.rs:865,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/jpeg/encoder.rs:865,1
    - Dst: i32::from
      Src: /src/image/src/codecs/jpeg/encoder.rs:866,1
    - Dst: to_u8
      Src: /src/image/src/codecs/jpeg/encoder.rs:866,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/jpeg/encoder.rs:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 1
    argNames:
    - pixel
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 895
      start: 862
    functionDepth: 13
    functionLinenumber: 862
    functionLinenumberEnd: 895
    functionName: rgb_to_ycbcr
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - i32::from
    - Result::to_u8
    - Option::unwrap
    - u8::to_rgb
    - to_u8
    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:901,1
    - Dst: Option::get_pixel
      Src: /src/image/src/codecs/jpeg/encoder.rs:902,1
    - Dst: Option::get_pixel
      Src: /src/image/src/codecs/jpeg/encoder.rs:904,1
    - Dst: min
      Src: /src/image/src/codecs/jpeg/encoder.rs:904,1
    - Dst: Option::width
      Src: /src/image/src/codecs/jpeg/encoder.rs:904,1
    - Dst: Option::min
      Src: /src/image/src/codecs/jpeg/encoder.rs:904,1
    - Dst: Option::height
      Src: /src/image/src/codecs/jpeg/encoder.rs:904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - source
    - x
    - y
    argTypes:
    - '&I'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 906
      start: 900
    functionDepth: 13
    functionLinenumber: 900
    functionLinenumberEnd: 906
    functionName: pixel_at_or_near
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 2
    functionsReached:
    - Option::min
    - min
    - Option::height
    - Option::get_pixel
    - Option::width
    - Option::in_bounds
    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:918,1
    - Dst: rgb_to_ycbcr
      Src: /src/image/src/codecs/jpeg/encoder.rs:919,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: 926
      start: 908
    functionDepth: 14
    functionLinenumber: 908
    functionLinenumberEnd: 926
    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:932,1
    - Dst: u8::to_luma
      Src: /src/image/src/codecs/jpeg/encoder.rs:933,1
    - Dst: T::to_u8
      Src: /src/image/src/codecs/jpeg/encoder.rs:934,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/jpeg/encoder.rs:934,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: 937
      start: 928
    functionDepth: 14
    functionLinenumber: 928
    functionLinenumberEnd: 937
    functionName: copy_blocks_gray
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - Option::unwrap
    - T::to_u8
    - pixel_at_or_near
    - u8::to_luma
    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:960,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:960,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:960,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:963,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - encoded
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 967
      start: 959
    functionDepth: 14
    functionLinenumber: 959
    functionLinenumberEnd: 967
    functionName: tests::decode
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - JpegDecoder::new
    - ImageResult::read_image
    - ImageResult::expect
    - Cursor::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:975,1
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/src/codecs/jpeg/encoder.rs:977,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:978,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:978,1
    - Dst: decode
      Src: /src/image/src/codecs/jpeg/encoder.rs:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 993
      start: 970
    functionDepth: 13
    functionLinenumber: 970
    functionLinenumberEnd: 993
    functionName: tests::roundtrip_sanity_check
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - decode
    - JpegEncoder::new_with_quality
    - ImageResult::write_image
    - ImageResult::expect
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn roundtrip_sanity_check()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:1001,1
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/src/codecs/jpeg/encoder.rs:1003,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:1004,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:1004,1
    - Dst: decode
      Src: /src/image/src/codecs/jpeg/encoder.rs:1011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 996
    functionDepth: 13
    functionLinenumber: 996
    functionLinenumberEnd: 1020
    functionName: tests::grayscale_roundtrip_sanity_check
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - decode
    - JpegEncoder::new_with_quality
    - ImageResult::write_image
    - ImageResult::expect
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn grayscale_roundtrip_sanity_check()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:1024,1
    - Dst: build_jfif_header
      Src: /src/image/src/codecs/jpeg/encoder.rs:1025,1
    - Dst: PixelDensity::dpi
      Src: /src/image/src/codecs/jpeg/encoder.rs:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1023
    functionDepth: 13
    functionLinenumber: 1023
    functionLinenumberEnd: 1045
    functionName: tests::jfif_header_density_check
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - build_jfif_header
    - PixelDensity::dpi
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn jfif_header_density_check()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:1053,1
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/src/codecs/jpeg/encoder.rs:1054,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:1055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1048
    functionDepth: 13
    functionLinenumber: 1048
    functionLinenumberEnd: 1067
    functionName: tests::test_image_too_large
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::write_image
    - JpegEncoder::new_with_quality
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_image_too_large()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PixelDensity::dpi
      Src: /src/image/src/codecs/jpeg/encoder.rs:1072,1
    - Dst: build_jfif_header
      Src: /src/image/src/codecs/jpeg/encoder.rs:1073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1070
    functionDepth: 1
    functionLinenumber: 1070
    functionLinenumberEnd: 1078
    functionName: tests::test_build_jfif_header
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - build_jfif_header
    - PixelDensity::dpi
    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:1103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1081
    functionDepth: 15
    functionLinenumber: 1081
    functionLinenumberEnd: 1108
    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:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1111
    functionDepth: 15
    functionLinenumber: 1111
    functionLinenumberEnd: 1135
    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:1140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1138
    functionDepth: 15
    functionLinenumber: 1138
    functionLinenumberEnd: 1154
    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:1160,1
    - Dst: push
      Src: /src/image/src/codecs/jpeg/encoder.rs:1162,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:1163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1157
    functionDepth: 1
    functionLinenumber: 1157
    functionLinenumberEnd: 1165
    functionName: tests::test_build_quantization_segment
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - push
    - extend_from_slice
    - build_quantization_segment
    linkageType: ''
    returnType: void
    signature: fn test_build_quantization_segment()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:1183,1
    - Dst: Vec::write_to
      Src: /src/image/src/codecs/jpeg/encoder.rs:1185,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:1186,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:1185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1168
    functionDepth: 13
    functionLinenumber: 1168
    functionLinenumberEnd: 1189
    functionName: tests::check_color_types
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::write_to
    - DynamicImage::new
    - ImageResult::expect
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn check_color_types()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/codecs/jpeg/encoder.rs:1194,1
    - Dst: JpegEncoder::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:1196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 1198
      start: 1193
    functionDepth: 15
    functionLinenumber: 1193
    functionLinenumberEnd: 1198
    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: DynamicImage::new_rgb8
      Src: /src/image/src/codecs/jpeg/encoder.rs:1205,1
    - Dst: crate::imageops::crop_imm
      Src: /src/image/src/codecs/jpeg/encoder.rs:1206,1
    - Dst: JpegEncoder::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:1209,1
    - Dst: ImageResult::encode_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:1211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1204
    functionDepth: 15
    functionLinenumber: 1204
    functionLinenumberEnd: 1213
    functionName: sub_image_encoder_regression_1412
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - JpegEncoder::new
    - crate::imageops::crop_imm
    - DynamicImage::new_rgb8
    - ImageResult::encode_image
    linkageType: ''
    returnType: void
    signature: fn sub_image_encoder_regression_1412()
  - 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: 1
    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: 14
    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: 13
    functionLinenumber: 28
    functionLinenumberEnd: 56
    functionName: JpegDecoder::new
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 5
    functionsReached:
    - Self::as_slice
    - ImageResult::dimensions
    - ImageResult::get_output_colorspace
    - unwrap
    - map_err
    - ImageResult::decode_headers
    - zune_jpeg::JpegDecoder::new_with_options
    - u32::try_into
    - Limits::no_limits
    - zune_core::options::DecoderOptions::default
    - Limits::set_strict_mode
    - ImageResult::unwrap
    - Result::read_to_end
    - set_max_height
    - Ok
    - set_max_width
    - Vec::new
    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: 1
    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: 2
    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: 13
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: JpegDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - map_err
    - ImageResult::decode_headers
    - zune_jpeg::JpegDecoder::new_with_options
    - zune_core::options::DecoderOptions::default
    - Limits::set_strict_mode
    - ImageResult::icc_profile
    - set_max_height
    - 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: 15
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: JpegDecoder::exif_metadata
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 1
    functionsReached:
    - map_err
    - ImageResult::decode_headers
    - zune_jpeg::JpegDecoder::new_with_options
    - Orientation::from_exif_chunk
    - zune_core::options::DecoderOptions::default
    - Limits::set_strict_mode
    - FlatSamples::and_then
    - Some
    - ImageResult::exif
    - set_max_height
    - Option::cloned
    - Option::as_ref
    - set_max_width
    - unwrap_or
    - 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/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: 16
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: JpegDecoder::orientation
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - JpegDecoder::exif_metadata
    - unwrap
    - is_none
    - Ok
    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: std::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: 13
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: JpegDecoder::read_image
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - DecodingError::new
    - map_err
    - Err
    - ImageError::Decoding
    - JpegDecoder::total_bytes
    - Ok
    - std::io::Result::len
    - into
    - ImageResult::decode_into
    - new_zune_decoder
    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
    - Limits::check_support
    - Limits::check_dimensions
    - Ok
    - crate::LimitSupport::default
    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: 2
    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:
    - zune_jpeg::JpegDecoder::new_with_options
    - to_supported_color_space
    - zune_core::options::DecoderOptions::default
    - set_strict_mode
    - Limits::jpeg_set_out_colorspace
    - set_max_height
    - 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: 12
    functionLinenumber: 184
    functionLinenumberEnd: 196
    functionName: ImageError::from_jpeg
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - DecodingError::new
    - ImageError::Unsupported
    - ImageError::Limits
    - LimitError::from_kind
    - ImageError::Decoding
    - into
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    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: std::io::Result::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: 14
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: tests::test_exif_orientation
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - std::io::Result::unwrap
    - ImageResult::unwrap
    - JpegDecoder::new
    - fs::read
    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: 2
    functionsReached:
    - image_webp::WebPEncoder::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_lossless(w: W) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::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: 14
    functionLinenumber: 48
    functionLinenumberEnd: 81
    functionName: WebPEncoder::encode
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 1
    functionsReached:
    - map_err
    - ImageError::Unsupported
    - encode
    - Err
    - UnsupportedErrorKind::Color
    - Option::buffer_size
    - into
    - UnsupportedError::from_format_and_kind
    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: 15
    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: 13
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: WebPEncoder::set_icc_profile
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 0
    functionsReached:
    - set_icc_profile
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_icc_profile(&mut self, icc_profile: Vec<u8>) -> Result<(),
      UnsupportedError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_exif_metadata
      Src: /src/image/src/codecs/webp/encoder.rs:102,1
    - Dst: Ok
      Src: /src/image/src/codecs/webp/encoder.rs:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - exif
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 13
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: WebPEncoder::set_exif_metadata
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 0
    functionsReached:
    - set_exif_metadata
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_exif_metadata(&mut self, exif: Vec<u8>) -> Result<(), UnsupportedError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::io::encoder::dynimage_conversion_8bit
      Src: /src/image/src/codecs/webp/encoder.rs:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - img
    argTypes:
    - crate::io::encoder::MethodSealedToImage
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 112
    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:118,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/webp/encoder.rs:119,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/webp/encoder.rs:119,1
    - Dst: into
      Src: /src/image/src/codecs/webp/encoder.rs:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - image_webp::EncodingError
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 13
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: ImageError::from_webp_encode
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 0
    functionsReached:
    - EncodingError::new
    - ImageError::IoError
    - ImageError::Encoding
    - 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:130,1
    - Dst: collect
      Src: /src/image/src/codecs/webp/encoder.rs:130,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/webp/encoder.rs:130,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/webp/encoder.rs:132,1
    - Dst: super::WebPEncoder::new_lossless
      Src: /src/image/src/codecs/webp/encoder.rs:133,1
    - Dst: Self::write_image
      Src: /src/image/src/codecs/webp/encoder.rs:133,1
    - Dst: Option::inner_pixels
      Src: /src/image/src/codecs/webp/encoder.rs:135,1
    - Dst: Option::width
      Src: /src/image/src/codecs/webp/encoder.rs:136,1
    - Dst: Option::height
      Src: /src/image/src/codecs/webp/encoder.rs:137,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/webp/encoder.rs:133,1
    - Dst: crate::load_from_memory_with_format
      Src: /src/image/src/codecs/webp/encoder.rs:142,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/webp/encoder.rs:142,1
    - Dst: to_rgba8
      Src: /src/image/src/codecs/webp/encoder.rs:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 129
    functionDepth: 13
    functionLinenumber: 129
    functionLinenumberEnd: 147
    functionName: tests::write_webp
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 0
    functionsReached:
    - RgbaImage::from_raw
    - crate::load_from_memory_with_format
    - to_rgba8
    - Self::write_image
    - Option::height
    - ImageResult::unwrap
    - collect
    - Option::width
    - Option::inner_pixels
    - Vec::new
    - super::WebPEncoder::new_lossless
    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: 7
    functionsReached:
    - ImageResult::map_err
    - Ok
    - image_webp::WebPDecoder::new
    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: 12
    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:
    - read_image
    - map_err
    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: 13
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: WebPDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - map_err
    - 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/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: 13
    functionLinenumber: 72
    functionLinenumberEnd: 85
    functionName: WebPDecoder::exif_metadata
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 1
    functionsReached:
    - map_err
    - Orientation::from_exif_chunk
    - FlatSamples::and_then
    - Some
    - Option::as_ref
    - exif_metadata
    - unwrap_or
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn exif_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: xmp_metadata
      Src: /src/image/src/codecs/webp/decoder.rs:88,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/decoder.rs:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: WebPDecoder::xmp_metadata
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - xmp_metadata
    - map_err
    linkageType: ''
    returnType: ImageResult
    signature: fn xmp_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/image/src/codecs/webp/decoder.rs:95,1
    - Dst: WebPDecoder::exif_metadata
      Src: /src/image/src/codecs/webp/decoder.rs:96,1
    - Dst: Ok
      Src: /src/image/src/codecs/webp/decoder.rs:98,1
    - Dst: unwrap
      Src: /src/image/src/codecs/webp/decoder.rs:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 14
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: WebPDecoder::orientation
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - WebPDecoder::exif_metadata
    - is_none
    - 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:143,1
    - Dst: Box::new
      Src: /src/image/src/codecs/webp/decoder.rs:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 103
    functionDepth: 13
    functionLinenumber: 103
    functionLinenumberEnd: 147
    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:153,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/webp/decoder.rs:154,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/webp/decoder.rs:154,1
    - Dst: into
      Src: /src/image/src/codecs/webp/decoder.rs:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - image_webp::DecodingError
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 13
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: ImageError::from_webp_decode
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageError::Decoding
    - into
    - ImageError::IoError
    - DecodingError::new
    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:174,1
    - Dst: WebPDecoder::new
      Src: /src/image/src/codecs/webp/decoder.rs:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 177
    functionName: tests::add_with_overflow_size
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - std::io::Cursor::new
    - WebPDecoder::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: Result::write_str
      Src: /src/image/src/codecs/avif/yuv.rs:51,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/avif/yuv.rs:52,1
    - Dst: Result::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:
    - Result::write_str
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut Formatter) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::write_fmt
      Src: /src/image/src/codecs/avif/yuv.rs:68,1
    - Dst: Result::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:
    - Result::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: 14
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: check_yuv_plane_preconditions
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 6
    functionsReached:
    - DecodingError::new
    - YuvConversionError::YuvPlaneSizeMismatch
    - Vec::len
    - Err
    - ImageError::Decoding
    - Ok
    - into
    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: 14
    functionLinenumber: 108
    functionLinenumberEnd: 123
    functionName: check_rgb_preconditions
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 6
    functionsReached:
    - DecodingError::new
    - Err
    - '&[V]::len'
    - YuvConversionError::RgbDestinationSizeMismatch
    - ImageError::Decoding
    - Ok
    - into
    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: 4
    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: 15
    functionLinenumber: 321
    functionLinenumberEnd: 422
    functionName: yuv400_to_rgbx_impl
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - Result::as_
    - check_rgb_preconditions
    - iter
    - Result::get_kr_kb
    - chunks_exact_mut
    - as_
    - chunks_exact
    - Ok
    - zip
    - get_inverse_transform
    - check_yuv_plane_preconditions
    - qrshr::<PRECISION, BIT_DEPTH>
    - YuvChromaRange::get_yuv_range
    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: Result::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: Result::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:
    - Result::as_
    - qrshr::<PRECISION, BIT_DEPTH>
    - as_
    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: 4
    functionLinenumber: 543
    functionLinenumberEnd: 626
    functionName: process_halved_chroma_row_cbcr
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - div_ceil
    - unwrap
    - iter
    - rev
    - chunks_exact_mut
    - as_
    - ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>
    - try_into
    - chunks_exact
    - remainder
    - zip
    - into_remainder
    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: 15
    functionLinenumber: 637
    functionLinenumberEnd: 772
    functionName: yuv420_to_rgbx_invoker
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - div_ceil
    - check_rgb_preconditions
    - check_yuv_plane_preconditions
    - rev
    - worker
    - chunks_exact_mut
    - chunks_exact
    - remainder
    - get_inverse_transform
    - zip
    - Ok
    - Result::get_kr_kb
    - YuvChromaRange::get_yuv_range
    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: 15
    functionLinenumber: 858
    functionLinenumberEnd: 965
    functionName: yuv422_to_rgbx_invoker
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - check_rgb_preconditions
    - check_yuv_plane_preconditions
    - worker
    - chunks_exact_mut
    - chunks_exact
    - Ok
    - get_inverse_transform
    - zip
    - Result::get_kr_kb
    - YuvChromaRange::get_yuv_range
    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: 15
    functionLinenumber: 1031
    functionLinenumberEnd: 1120
    functionName: yuv444_to_rgbx_impl
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - check_rgb_preconditions
    - check_yuv_plane_preconditions
    - iter
    - unwrap
    - chunks_exact_mut
    - as_
    - ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>
    - try_into
    - chunks_exact
    - Ok
    - get_inverse_transform
    - zip
    - Result::get_kr_kb
    - YuvChromaRange::get_yuv_range
    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: 15
    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
    - as_
    - chunks_exact
    - Ok
    - zip
    - check_yuv_plane_preconditions
    - qrshr::<PRECISION, BIT_DEPTH>
    - YuvChromaRange::get_yuv_range
    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: 1
    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: 15
    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: 14
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: AvifEncoder::new_with_speed_quality
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 1
    functionsReached:
    - PngEncoder::with_alpha_quality
    - Encoder::new
    - f32::from
    - with_speed
    - std::cmp::min
    - FarbfeldEncoder::with_quality
    - 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: 14
    functionLinenumber: 103
    functionLinenumberEnd: 132
    functionName: AvifEncoder::write_image
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached:
    - Self::encode_as_img
    - AvifEncoder::set_color
    - encode_rgb
    - map_err
    - bool::buffer_size
    - ImageError::Encoding
    - write_all
    - encode_rgba
    - EncodingError::new
    - Ok
    - into
    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: 3
    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
    - ParameterError::from_kind
    - ImageError::Parameter
    - ImageBuffer::from_raw
    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: std::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: 11
    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::dimensions
    - Vec::into_raw
    - std::io::Result::as_pixels
    - Img::new
    - Vec::convert
    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: std::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: std::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: Result::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: 3
    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:
    - SubImage::copy_from_slice
    - ParameterErrorKind::Generic
    - unwrap
    - Cow::Owned
    - ImageError::Parameter
    - Err
    - Cow::Borrowed
    - try_cast_slice_mut::<_, u8>
    - size_of::<Channel>
    - Ok
    - std::io::Result::len
    - Result::as_mut_slice
    - ParameterError::from_kind
    - bytemuck::try_cast_slice
    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: 14
    functionLinenumber: 141
    functionLinenumberEnd: 285
    functionName: AvifEncoder::encode_as_img
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageError::Parameter
    - try_from_raw::<Luma<u8>>
    - convert_into
    - try_from_raw::<Rgb<u16>>
    - AsPixels::as_pixels
    - Option::pixels
    - try_from_raw::<Rgb<u8>>
    - Err
    - try_from_raw::<Rgba<u8>>
    - RgbColor::Rgb8
    - cast_buffer
    - try_from_raw::<LumaA<u16>>
    - UnsupportedErrorKind::Color
    - try_from_raw::<Luma<u16>>
    - into
    - RgbColor::Rgba8
    - try_from_raw::<LumaA<u8>>
    - try_from_raw::<Rgba<u16>>
    - ImageError::Unsupported
    - Vec::len
    - Img::new
    - Ok
    - ParameterError::from_kind
    - UnsupportedError::from_format_and_kind
    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: 13
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: error_map
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - ImageError::Decoding
    - into
    - DecodingError::new
    linkageType: ''
    returnType: ImageError
    signature: 'fn error_map<E: Into<Box<dyn Error + Send + Sync>>>(err: E) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::write_str
      Src: /src/image/src/codecs/avif/decoder.rs:51,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/avif/decoder.rs:52,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/avif/decoder.rs:53,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/avif/decoder.rs:57,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/avif/decoder.rs:60,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/avif/decoder.rs:63,1
    - Dst: Result::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:
    - Result::write_str
    - Result::write_fmt
    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: ImageResult::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: ImageResult::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: bool::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: 14
    functionLinenumber: 78
    functionLinenumberEnd: 121
    functionName: AvifDecoder::new
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 2
    functionsReached:
    - ImageResult::bit_depth
    - to_vec
    - ImageResult::map_err
    - map
    - ImageError::Decoding
    - mp4parse::read_avif
    - bool::to_vec
    - bool::unwrap_or_default
    - ImageResult::Err
    - ImageFormatHint::Exact
    - dav1d::Decoder::new
    - icc_colour_information
    - is_empty
    - map_err
    - unwrap_or_default
    - send_data
    - read_until_ready
    - primary_item_coded_data
    - DecodingError::new
    - alpha_item_coded_data
    - ok
    - Some
    - Ok
    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: 2
    functionsReached:
    - u16::from_ne_bytes
    - Option::chunks_exact
    - chunks_exact_mut
    - chunks_exact
    - zip
    - iter_mut
    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: 1
    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: 2
    functionLinenumber: 153
    functionLinenumberEnd: 190
    functionName: transmute_y_plane16
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - std::borrow::Cow::Borrowed
    - reshape_plane
    - shape_y_plane
    - std::borrow::Cow::Owned
    - Vec::as_ref
    - bytemuck::try_cast_slice
    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: 2
    functionLinenumber: 193
    functionLinenumberEnd: 239
    functionName: transmute_chroma_plane16
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - std::borrow::Cow::Borrowed
    - u32::div_ceil
    - reshape_plane
    - std::borrow::Cow::Owned
    - shape_chroma_plane
    - Vec::as_ref
    - bytemuck::try_cast_slice
    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: 12
    functionLinenumber: 249
    functionLinenumberEnd: 327
    functionName: get_matrix
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - ImageError::Unsupported
    - '&str::to_string'
    - Err
    - Ok
    - YuvMatrixStrategy::KrKb
    - into
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    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: 1
    functionsReached:
    - height
    - width
    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:
    - Ok
    - clone
    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: std::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: std::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: std::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: 13
    functionLinenumber: 346
    functionLinenumberEnd: 480
    functionName: AvifDecoder::read_image
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - AvifDecoderError::AlphaPlaneFormat
    - ImageResult::plane
    - AvifDecoder::process_16bit_picture
    - ImageError::Limits
    - ImageError::Decoding
    - to_ne_bytes
    - zip
    - ImageResult::stride
    - color_range
    - pixel_layout
    - FlatSamples::chunks_exact
    - Err
    - bytemuck::try_cast_slice_mut
    - LimitError::from_kind
    - matrix_coefficients
    - AvifDecoder::dimensions
    - ImageResult::pixel_layout
    - plane
    - worker
    - bit_depth
    - Vec::as_ref
    - into
    - std::io::Result::chunks_exact_mut
    - stride
    - DecodingError::new
    - AvifDecoderError::UnsupportedLayoutAndMatrix
    - iter
    - AvifDecoderError::YuvLayoutOnIdentityMatrix
    - Iterator::zip
    - get_matrix
    - 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/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: std::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: 13
    functionLinenumber: 488
    functionLinenumberEnd: 656
    functionName: AvifDecoder::process_16bit_picture
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - AvifDecoderError::AlphaPlaneFormat
    - ImageResult::plane
    - chunks_exact_mut
    - ImageError::Decoding
    - zip
    - transmute_chroma_plane16
    - ImageResult::stride
    - pixel_layout
    - Plane16View::default
    - width
    - Err
    - transmute_y_plane16
    - ImageResult::pixel_layout
    - iter_mut
    - plane
    - height
    - worker
    - bit_depth
    - chunks_exact
    - into
    - std::io::Result::chunks_exact_mut
    - stride
    - DecodingError::new
    - Iterator::zip
    - Ok
    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: 14
    functionLinenumber: 662
    functionLinenumberEnd: 673
    functionName: read_until_ready
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - error_map
    - Result::map_err
    - Err
    - ImageResult::send_pending_data
    - ImageResult::get_picture
    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: Result::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: Result::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:
    - Result::as_
    - qrshr::<PRECISION, BIT_DEPTH>
    - as_
    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: Result::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: Result::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:
    - Result::as_
    - clamp
    - 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: 4
    functionLinenumber: 93
    functionLinenumberEnd: 181
    functionName: process_halved_chroma_row_cgco
    functionSourceFile: /src/image/src/codecs/avif/ycgco.rs
    functionUses: 0
    functionsReached:
    - div_ceil
    - unwrap
    - iter
    - ycgco_execute_limited::<V, PRECISION, CHANNELS, BIT_DEPTH>
    - rev
    - chunks_exact_mut
    - as_
    - try_into
    - chunks_exact
    - remainder
    - zip
    - 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: 15
    functionLinenumber: 191
    functionLinenumberEnd: 293
    functionName: ycgco444_to_rgbx_impl
    functionSourceFile: /src/image/src/codecs/avif/ycgco.rs
    functionUses: 0
    functionsReached:
    - check_rgb_preconditions
    - iter
    - ycgco_execute_limited::<V, PRECISION, CHANNELS, BIT_DEPTH>
    - unwrap
    - chunks_exact_mut
    - as_
    - codecs::avif::yuv::check_yuv_plane_preconditions
    - try_into
    - chunks_exact
    - ycgco_execute_full::<V, PRECISION, CHANNELS, BIT_DEPTH>
    - zip
    - Ok
    - YuvChromaRange::get_yuv_range
    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: 12
    functionLinenumber: 36
    functionLinenumberEnd: 66
    functionName: IcoFrame::with_encoded
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 0
    functionsReached:
    - ParameterErrorKind::Generic
    - Img::into
    - ImageError::Parameter
    - Err
    - Ok
    - contains
    - ParameterError::from_kind
    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: 13
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: IcoFrame::as_png
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 1
    functionsReached:
    - PngEncoder::write_image
    - Ok
    - PngEncoder::new
    - Self::with_encoded
    - Vec::new
    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: 14
    functionLinenumber: 95
    functionLinenumberEnd: 124
    functionName: IcoEncoder::encode_images
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 1
    functionsReached:
    - ParameterErrorKind::Generic
    - ImageError::Parameter
    - write_direntry
    - write_all
    - Err
    - len
    - Ok
    - contains
    - write_icondir
    - ParameterError::from_kind
    - usize::from
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn encode_images(mut self, images: &[IcoFrame<''_>]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::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: 14
    functionLinenumber: 135
    functionLinenumberEnd: 152
    functionName: IcoEncoder::write_image
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 0
    functionsReached:
    - Option::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_u32::<LittleEndian>
    - write_u16::<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: Result::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:
    - Result::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: 15
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: IcoDecoder::new
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 2
    functionsReached:
    - Option::decoder
    - read_entries
    - Ok
    - best_entry
    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: 14
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: read_entries
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 1
    functionsReached:
    - read_entry
    - read_u16::<LittleEndian>
    - collect
    - map
    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: 12
    functionLinenumber: 164
    functionLinenumberEnd: 191
    functionName: read_entry
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 1
    functionsReached:
    - read_u16::<LittleEndian>
    - Result::read_u8
    - read_u32::<LittleEndian>
    - Err
    - Ok
    - into
    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:
    - Option::real_width
    - ok_or
    - u32::from
    - ImageResult::pop
    - real_width
    - real_height
    - 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: 1
    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: 1
    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_width
    - DirEntry::real_height
    - u32::min
    - 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: 3
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: DirEntry::seek_to_start
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 2
    functionsReached:
    - Result::seek
    - u64::from
    - SeekFrom::Start
    - Ok
    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: 4
    functionLinenumber: 240
    functionLinenumberEnd: 248
    functionName: DirEntry::is_png
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::read_exact
    - Ok
    - DirEntry::seek_to_start
    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: 13
    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
    - Bmp
    - Png
    - Ok
    - PngDecoder::new
    - DirEntry::is_png
    - DirEntry::seek_to_start
    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: 12
    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: 1
    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: Option::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: 14
    functionLinenumber: 277
    functionLinenumberEnd: 377
    functionName: IcoDecoder::read_image
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::dimensions
    - u64::from
    - ImageResult::read_image_data
    - matches_dimensions
    - Result::read_u8
    - rev
    - ImageResult::read_image
    - u32::div_ceil
    - Err
    - real_height
    - Result::stream_position
    - real_width
    - UnsupportedErrorKind::Color
    - len
    - into
    - ImageResult::color_type
    - ImageError::Unsupported
    - Ok
    - Option::into
    - ImageResult::reader
    - UnsupportedError::from_format_and_kind
    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: 16
    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: 14
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: FloatNearest::to_i8
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - to_i8
    - round
    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: 14
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: FloatNearest::to_i16
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - to_i16
    - round
    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: 14
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: FloatNearest::to_i64
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - round
    - to_i64
    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: 14
    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: 14
    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: 14
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: FloatNearest::to_u64
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - to_u64
    - round
    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: 1
    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: 1
    functionsReached:
    - sinc
    - abs
    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: 1
    functionsReached:
    - abs
    - powi
    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: 1
    functionsReached:
    - Result::powi
    - exp
    - powi
    - sqrt
    - recip
    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: SampleLayout::copy_color_space_from
      Src: /src/image/src/imageops/sample.rs:254,1
    - Dst: Vec::new
      Src: /src/image/src/imageops/sample.rs:255,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: NumCast::from
      Src: /src/image/src/imageops/sample.rs:258,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:258,1
    - Dst: floor
      Src: /src/image/src/imageops/sample.rs:274,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:275,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:275,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:277,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:278,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:280,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:281,1
    - Dst: io::Result::clear
      Src: /src/image/src/imageops/sample.rs:288,1
    - Dst: io::Result::push
      Src: /src/image/src/imageops/sample.rs:292,1
    - Dst: io::Result::iter_mut
      Src: /src/image/src/imageops/sample.rs:295,1
    - Dst: io::Result::iter
      Src: /src/image/src/imageops/sample.rs:302,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:302,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:303,1
    - Dst: Result::channels4
      Src: /src/image/src/imageops/sample.rs:306,1
    - Dst: Pixel::from_channels
      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: NumCast::from
      Src: /src/image/src/imageops/sample.rs:319,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:319,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:319,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:319,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/sample.rs:322,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 131
    argCount: 3
    argNames:
    - image
    - new_width
    - filter
    argTypes:
    - '&Rgba32FImage'
    - u32
    - '&mut Filter'
    constantsTouched: []
    func_position:
      end: 327
      start: 236
    functionDepth: 12
    functionLinenumber: 236
    functionLinenumberEnd: 327
    functionName: horizontal_sample
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - Pixel::from_channels
    - io::Result::push
    - Self::unwrap
    - floor
    - SampleLayout::put_pixel
    - FloatNearest
    - Vec::get_pixel
    - ImageBuffer::new
    - Result::channels4
    - ceil
    - utils::clamp
    - NumCast::from
    - io::Result::clear
    - <i64 as From<_>>::from
    - io::Result::iter_mut
    - Vec::dimensions
    - enumerate
    - io::Result::iter
    - SampleLayout::copy_color_space_from
    - Vec::new
    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:335,1
    - Dst: all
      Src: /src/image/src/imageops/sample.rs:335,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:335,1
    - Dst: Option::dimensions
      Src: /src/image/src/imageops/sample.rs:339,1
    - Dst: interpolate_bilinear
      Src: /src/image/src/imageops/sample.rs:346,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:348,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:348,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:349,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 45
    argCount: 3
    argNames:
    - img
    - u
    - v
    argTypes:
    - '&impl GenericImageView<Pixel = P>'
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 351
      start: 330
    functionDepth: 14
    functionLinenumber: 330
    functionLinenumberEnd: 351
    functionName: sample_bilinear
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - min
    - iter
    - Option::dimensions
    - all
    - contains
    - interpolate_bilinear
    - max
    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:359,1
    - Dst: all
      Src: /src/image/src/imageops/sample.rs:359,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:359,1
    - Dst: Option::dimensions
      Src: /src/image/src/imageops/sample.rs:363,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:365,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:365,1
    - Dst: Self::saturating_sub
      Src: /src/image/src/imageops/sample.rs:365,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:368,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:368,1
    - Dst: ImageResult::saturating_sub
      Src: /src/image/src/imageops/sample.rs:368,1
    - Dst: interpolate_nearest
      Src: /src/image/src/imageops/sample.rs:369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 3
    argNames:
    - img
    - u
    - v
    argTypes:
    - '&impl GenericImageView<Pixel = P>'
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 370
      start: 354
    functionDepth: 14
    functionLinenumber: 354
    functionLinenumberEnd: 370
    functionName: sample_nearest
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - min
    - iter
    - interpolate_nearest
    - Option::dimensions
    - all
    - Self::saturating_sub
    - contains
    - ImageResult::saturating_sub
    - max
    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:383,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:387,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:390,1
    - Dst: Some
      Src: /src/image/src/imageops/sample.rs:394,1
    - Dst: Option::get_pixel
      Src: /src/image/src/imageops/sample.rs:394,1
    - Dst: round
      Src: /src/image/src/imageops/sample.rs:394,1
    - Dst: Option::round
      Src: /src/image/src/imageops/sample.rs:394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 3
    argNames:
    - img
    - x
    - y
    argTypes:
    - '&impl GenericImageView<Pixel = P>'
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 395
      start: 378
    functionDepth: 12
    functionLinenumber: 378
    functionLinenumberEnd: 395
    functionName: interpolate_nearest
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - Option::dimensions
    - Option::round
    - Option::get_pixel
    - round
    - Some
    - contains
    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:406,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:410,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:413,1
    - Dst: floor
      Src: /src/image/src/imageops/sample.rs:418,1
    - Dst: Option::floor
      Src: /src/image/src/imageops/sample.rs:419,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:420,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:421,1
    - Dst: Option::get_pixel
      Src: /src/image/src/imageops/sample.rs:434,1
    - Dst: channels
      Src: /src/image/src/imageops/sample.rs:435,1
    - Dst: usize::iter
      Src: /src/image/src/imageops/sample.rs:435,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:435,1
    - Dst: Option::to_f32
      Src: /src/image/src/imageops/sample.rs:436,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/sample.rs:436,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: compute
      Src: /src/image/src/imageops/sample.rs:445,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:463,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:463,1
    - Dst: SampleLayout::channels_mut
      Src: /src/image/src/imageops/sample.rs:465,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/sample.rs:465,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:465,1
    - Dst: <P::Subpixel as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:470,1
    - Dst: DynamicImage::round
      Src: /src/image/src/imageops/sample.rs:470,1
    - Dst: Self::unwrap_or
      Src: /src/image/src/imageops/sample.rs:470,1
    - Dst: Some
      Src: /src/image/src/imageops/sample.rs:479,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 140
    argCount: 3
    argNames:
    - img
    - x
    - y
    argTypes:
    - '&impl GenericImageView<Pixel = P>'
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 480
      start: 398
    functionDepth: 12
    functionLinenumber: 398
    functionLinenumberEnd: 480
    functionName: interpolate_bilinear
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - SampleLayout::channels_mut
    - unwrap
    - f32::unwrap
    - usize::iter
    - floor
    - DynamicImage::round
    - contains
    - iter_mut
    - Option::to_f32
    - min
    - <P::Subpixel as NumCast>::from
    - Self::unwrap_or
    - Option::dimensions
    - channels
    - enumerate
    - to_f32
    - Option::floor
    - Option::get_pixel
    - compute
    - Some
    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:496,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/sample.rs:506,1
    - Dst: SampleLayout::copy_color_space_from
      Src: /src/image/src/imageops/sample.rs:507,1
    - Dst: Vec::buffer_with_dimensions
      Src: /src/image/src/imageops/sample.rs:507,1
    - Dst: Vec::new
      Src: /src/image/src/imageops/sample.rs:508,1
    - Dst: floor
      Src: /src/image/src/imageops/sample.rs:519,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:520,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:520,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:522,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:523,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:525,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:526,1
    - Dst: io::Result::clear
      Src: /src/image/src/imageops/sample.rs:531,1
    - Dst: io::Result::push
      Src: /src/image/src/imageops/sample.rs:535,1
    - Dst: io::Result::iter_mut
      Src: /src/image/src/imageops/sample.rs:538,1
    - Dst: io::Result::iter
      Src: /src/image/src/imageops/sample.rs:545,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:545,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:546,1
    - Dst: Result::channels4
      Src: /src/image/src/imageops/sample.rs:549,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: NumCast::from
      Src: /src/image/src/imageops/sample.rs:553,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:553,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:554,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:554,1
    - Dst: Pixel::from_channels
      Src: /src/image/src/imageops/sample.rs:565,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/sample.rs:567,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 121
    argCount: 3
    argNames:
    - image
    - new_height
    - filter
    argTypes:
    - '&I'
    - u32
    - '&mut Filter'
    constantsTouched: []
    func_position:
      end: 572
      start: 490
    functionDepth: 12
    functionLinenumber: 490
    functionLinenumberEnd: 572
    functionName: vertical_sample
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - Pixel::from_channels
    - io::Result::push
    - Self::unwrap
    - floor
    - SampleLayout::put_pixel
    - Vec::get_pixel
    - ImageBuffer::new
    - Result::channels4
    - ceil
    - utils::clamp
    - NumCast::from
    - io::Result::clear
    - <i64 as From<_>>::from
    - io::Result::iter_mut
    - Vec::buffer_with_dimensions
    - Vec::dimensions
    - enumerate
    - io::Result::iter
    - SampleLayout::copy_color_space_from
    - Vec::new
    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: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
    - Dst: S::Larger::zero
      Src: /src/image/src/imageops/sample.rs:582,1
    - Dst: S::Larger::zero
      Src: /src/image/src/imageops/sample.rs:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 585
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 585
    functionName: ThumbnailSum::zeroed
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 3
    functionsReached:
    - S::Larger::zero
    - ThumbnailSum
    linkageType: ''
    returnType: Self
    signature: fn zeroed() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: <S::Larger as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:588,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - S
    constantsTouched: []
    func_position:
      end: 589
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 589
    functionName: ThumbnailSum::sample_val
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - <S::Larger as NumCast>::from
    - Self::unwrap
    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: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
    - Dst: Self::sample_val
      Src: /src/image/src/imageops/sample.rs:596,1
    - Dst: Self::sample_val
      Src: /src/image/src/imageops/sample.rs:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - pixel
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 598
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 598
    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:619,1
    - Dst: Vec::buffer_with_dimensions
      Src: /src/image/src/imageops/sample.rs:620,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:633,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:633,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:634,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:634,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:640,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:640,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:641,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:641,1
    - Dst: thumbnail_sample_block
      Src: /src/image/src/imageops/sample.rs:644,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:654,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:654,1
    - Dst: thumbnail_sample_fraction_horizontal
      Src: /src/image/src/imageops/sample.rs:655,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:671,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:671,1
    - Dst: thumbnail_sample_fraction_vertical
      Src: /src/image/src/imageops/sample.rs:672,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:675,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:675,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:676,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:676,1
    - Dst: thumbnail_sample_fraction_both
      Src: /src/image/src/imageops/sample.rs:678,1
    - Dst: Pixel::from_channels
      Src: /src/image/src/imageops/sample.rs:688,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/sample.rs:689,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 101
    argCount: 3
    argNames:
    - image
    - new_width
    - new_height
    argTypes:
    - '&I'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 694
      start: 613
    functionDepth: 12
    functionLinenumber: 613
    functionLinenumberEnd: 694
    functionName: thumbnail
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 4
    functionsReached:
    - utils::clamp
    - fract
    - SampleLayout::put_pixel
    - thumbnail_sample_fraction_vertical
    - Vec::dimensions
    - thumbnail_sample_fraction_horizontal
    - thumbnail_sample_fraction_both
    - Pixel::from_channels
    - thumbnail_sample_block
    - Vec::buffer_with_dimensions
    - ceil
    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:709,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:713,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:714,1
    - Dst: <S::Larger as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:718,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:718,1
    - Dst: <S::Larger as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:719,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:719,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:719,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:719,1
    - Dst: S::clamp_from
      Src: /src/image/src/imageops/sample.rs:721,1
    - Dst: S::clamp_from
      Src: /src/image/src/imageops/sample.rs:722,1
    - Dst: S::clamp_from
      Src: /src/image/src/imageops/sample.rs:723,1
    - Dst: S::clamp_from
      Src: /src/image/src/imageops/sample.rs:724,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: 726
      start: 697
    functionDepth: 3
    functionLinenumber: 697
    functionLinenumberEnd: 726
    functionName: thumbnail_sample_block
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - <S::Larger as NumCast>::from
    - NumCast::from
    - Vec::get_pixel
    - Self::add_pixel
    - S::clamp_from
    - ThumbnailSum::zeroed
    - Self::unwrap
    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:743,1
    - Dst: ThumbnailSum::zeroed
      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: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:749,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:750,1
    - Dst: <S as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:758,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:759,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:759,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:759,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:759,1
    - Dst: Self::expect
      Src: /src/image/src/imageops/sample.rs:758,1
    - Dst: mix_left_and_right
      Src: /src/image/src/imageops/sample.rs:765,1
    - Dst: mix_left_and_right
      Src: /src/image/src/imageops/sample.rs:766,1
    - Dst: mix_left_and_right
      Src: /src/image/src/imageops/sample.rs:767,1
    - Dst: mix_left_and_right
      Src: /src/image/src/imageops/sample.rs:768,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: 770
      start: 729
    functionDepth: 3
    functionLinenumber: 729
    functionLinenumberEnd: 770
    functionName: thumbnail_sample_fraction_horizontal
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - unwrap
    - to_f32
    - Self::expect
    - Vec::get_pixel
    - Self::add_pixel
    - <S as NumCast>::from
    - mix_left_and_right
    - ThumbnailSum::zeroed
    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:787,1
    - Dst: ThumbnailSum::zeroed
      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: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:793,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:794,1
    - Dst: <S as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:802,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:802,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:802,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:802,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:802,1
    - Dst: Self::expect
      Src: /src/image/src/imageops/sample.rs:802,1
    - Dst: mix_bot_and_top
      Src: /src/image/src/imageops/sample.rs:807,1
    - Dst: mix_bot_and_top
      Src: /src/image/src/imageops/sample.rs:808,1
    - Dst: mix_bot_and_top
      Src: /src/image/src/imageops/sample.rs:809,1
    - Dst: mix_bot_and_top
      Src: /src/image/src/imageops/sample.rs:810,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: 812
      start: 773
    functionDepth: 3
    functionLinenumber: 773
    functionLinenumberEnd: 812
    functionName: thumbnail_sample_fraction_vertical
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - unwrap
    - to_f32
    - Self::expect
    - Vec::get_pixel
    - Self::add_pixel
    - <S as NumCast>::from
    - mix_bot_and_top
    - ThumbnailSum::zeroed
    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:828,1
    - Dst: Self::Pixel::channels4
      Src: /src/image/src/imageops/sample.rs:828,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:830,1
    - Dst: Self::Pixel::channels4
      Src: /src/image/src/imageops/sample.rs:830,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:832,1
    - Dst: Self::Pixel::channels4
      Src: /src/image/src/imageops/sample.rs:832,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:834,1
    - Dst: Self::Pixel::channels4
      Src: /src/image/src/imageops/sample.rs:834,1
    - Dst: <S as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:845,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:846,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/sample.rs:846,1
    - Dst: Result::to_f32
      Src: /src/image/src/imageops/sample.rs:847,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/sample.rs:847,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:848,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/sample.rs:848,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:849,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/sample.rs:849,1
    - Dst: Self::expect
      Src: /src/image/src/imageops/sample.rs:845,1
    - Dst: mix
      Src: /src/image/src/imageops/sample.rs:855,1
    - Dst: mix
      Src: /src/image/src/imageops/sample.rs:856,1
    - Dst: mix
      Src: /src/image/src/imageops/sample.rs:857,1
    - Dst: mix
      Src: /src/image/src/imageops/sample.rs:858,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: 860
      start: 815
    functionDepth: 3
    functionLinenumber: 815
    functionLinenumberEnd: 860
    functionName: thumbnail_sample_fraction_both
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - to_f32
    - Self::expect
    - Vec::get_pixel
    - <S as NumCast>::from
    - f32::unwrap
    - mix
    - Self::Pixel::channels4
    - Result::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:890,1
    - Dst: Vec::buffer_like
      Src: /src/image/src/imageops/sample.rs:891,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:894,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:894,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/sample.rs:897,1
    - Dst: fold
      Src: /src/image/src/imageops/sample.rs:897,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/sample.rs:910,1
    - Dst: zip
      Src: /src/image/src/imageops/sample.rs:910,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:910,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:915,1
    - Dst: Result::channels4
      Src: /src/image/src/imageops/sample.rs:918,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: NumCast::from
      Src: /src/image/src/imageops/sample.rs:923,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:923,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:924,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:924,1
    - Dst: Pixel::from_channels
      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: NumCast::from
      Src: /src/image/src/imageops/sample.rs:939,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:939,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:939,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:940,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:940,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:940,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/sample.rs:943,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 127
    argCount: 2
    argNames:
    - image
    - kernel
    argTypes:
    - '&I'
    - '&[f32]'
    constantsTouched: []
    func_position:
      end: 948
      start: 871
    functionDepth: 12
    functionLinenumber: 871
    functionLinenumberEnd: 948
    functionName: filter3x3
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - utils::clamp
    - SampleLayout::put_pixel
    - iter
    - Vec::dimensions
    - NumCast::from
    - Vec::get_pixel
    - Vec::buffer_like
    - fold
    - f32::iter
    - Pixel::from_channels
    - zip
    - Result::channels4
    - Self::unwrap
    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:974,1
    - Dst: Vec::buffer_with_dimensions
      Src: /src/image/src/imageops/sample.rs:979,1
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/sample.rs:983,1
    - Dst: Vec::buffer_like
      Src: /src/image/src/imageops/sample.rs:984,1
    - Dst: ImageBuffer::copy_from
      Src: /src/image/src/imageops/sample.rs:985,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:985,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:991,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:995,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:999,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:1003,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:1007,1
    - Dst: vertical_sample
      Src: /src/image/src/imageops/sample.rs:1013,1
    - Dst: horizontal_sample
      Src: /src/image/src/imageops/sample.rs:1014,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 4
    argNames:
    - image
    - nwidth
    - nheight
    - filter
    argTypes:
    - '&I'
    - u32
    - u32
    - FilterType
    constantsTouched: []
    func_position:
      end: 1015
      start: 962
    functionDepth: 12
    functionLinenumber: 962
    functionLinenumberEnd: 1015
    functionName: resize
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 14
    functionsReached:
    - Vec::dimensions
    - horizontal_sample
    - Vec::buffer_like
    - ImageResult::unwrap
    - ImageBuffer::copy_from
    - Vec::buffer_with_dimensions
    - Box::new
    - vertical_sample
    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:1035,1
    - Dst: GaussianBlurParameters::new_from_sigma
      Src: /src/image/src/imageops/sample.rs:1037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - image
    - sigma
    argTypes:
    - '&I'
    - f32
    constantsTouched: []
    func_position:
      end: 1039
      start: 1028
    functionDepth: 2
    functionLinenumber: 1028
    functionLinenumberEnd: 1039
    functionName: blur
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 11
    functionsReached:
    - gaussian_blur_indirect
    - GaussianBlurParameters::new_from_sigma
    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:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - image
    - parameters
    argTypes:
    - '&I'
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1058
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1058
    functionName: blur_advanced
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 3
    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:1063,1
    - Dst: f32::iter_mut
      Src: /src/image/src/imageops/sample.rs:1066,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:1066,1
    - Dst: f32::exp
      Src: /src/image/src/imageops/sample.rs:1067,1
    - Dst: f32::powf
      Src: /src/image/src/imageops/sample.rs:1067,1
    - Dst: mul
      Src: /src/image/src/imageops/sample.rs:1075,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 2
    argNames:
    - width
    - sigma
    argTypes:
    - usize
    - f32
    constantsTouched: []
    func_position:
      end: 1080
      start: 1060
    functionDepth: 13
    functionLinenumber: 1060
    functionLinenumberEnd: 1080
    functionName: get_gaussian_kernel_1d
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    functionsReached:
    - enumerate
    - mul
    - f32::powf
    - f32::iter_mut
    - f32::exp
    - f32::sqrt
    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:1130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - radius
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1131
      start: 1121
    functionDepth: 16
    functionLinenumber: 1121
    functionLinenumberEnd: 1131
    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:1146,1
    - Dst: GaussianBlurParameters::sigma_size
      Src: /src/image/src/imageops/sample.rs:1148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - kernel_size
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1155
      start: 1137
    functionDepth: 15
    functionLinenumber: 1137
    functionLinenumberEnd: 1155
    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:1181,1
    - Dst: GaussianBlurParameters::round_to_nearest_odd
      Src: /src/image/src/imageops/sample.rs:1183,1
    - Dst: GaussianBlurParameters::sigma_size
      Src: /src/image/src/imageops/sample.rs:1185,1
    - Dst: GaussianBlurParameters::sigma_size
      Src: /src/image/src/imageops/sample.rs:1186,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: 1193
      start: 1161
    functionDepth: 15
    functionLinenumber: 1161
    functionLinenumberEnd: 1193
    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:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sigma
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1209
      start: 1196
    functionDepth: 1
    functionLinenumber: 1196
    functionLinenumberEnd: 1209
    functionName: GaussianBlurParameters::new_from_sigma
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 5
    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:1213,1
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:1220,1
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:1221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1229
      start: 1212
    functionDepth: 14
    functionLinenumber: 1212
    functionLinenumberEnd: 1229
    functionName: GaussianBlurParameters::round_to_nearest_odd
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    functionsReached:
    - round
    - abs
    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: 1234
      start: 1231
    functionDepth: 0
    functionLinenumber: 1231
    functionLinenumberEnd: 1234
    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:1237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - sigma
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1242
      start: 1236
    functionDepth: 0
    functionLinenumber: 1236
    functionLinenumberEnd: 1242
    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:1249,1
    - Dst: get_gaussian_kernel_1d
      Src: /src/image/src/imageops/sample.rs:1254,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:1260,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:1261,1
    - Dst: imageops::filter_1d::filter_2d_sep_plane
      Src: /src/image/src/imageops/sample.rs:1267,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1268,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1267,1
    - Dst: DynamicImage::ImageLuma8
      Src: /src/image/src/imageops/sample.rs:1275,1
    - Dst: GrayImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1276,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1276,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1276,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1276,1
    - Dst: filter_2d_sep_la
      Src: /src/image/src/imageops/sample.rs:1281,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1282,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1281,1
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/src/imageops/sample.rs:1289,1
    - Dst: GrayAlphaImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1290,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1290,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1290,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1290,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgb
      Src: /src/image/src/imageops/sample.rs:1295,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1296,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1295,1
    - Dst: DynamicImage::ImageRgb8
      Src: /src/image/src/imageops/sample.rs:1303,1
    - Dst: RgbImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1304,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1304,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1304,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1304,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgba
      Src: /src/image/src/imageops/sample.rs:1309,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1310,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1309,1
    - Dst: DynamicImage::ImageRgba8
      Src: /src/image/src/imageops/sample.rs:1317,1
    - Dst: RgbaImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1318,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1318,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1318,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1318,1
    - Dst: imageops::filter_1d::filter_2d_sep_plane_u16
      Src: /src/image/src/imageops/sample.rs:1323,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1324,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1323,1
    - Dst: DynamicImage::ImageLuma16
      Src: /src/image/src/imageops/sample.rs:1331,1
    - Dst: Gray16Image::from_raw
      Src: /src/image/src/imageops/sample.rs:1332,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1332,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1332,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1332,1
    - Dst: imageops::filter_1d::filter_2d_sep_la_u16
      Src: /src/image/src/imageops/sample.rs:1337,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1338,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1337,1
    - Dst: DynamicImage::ImageLumaA16
      Src: /src/image/src/imageops/sample.rs:1345,1
    - Dst: GrayAlpha16Image::from_raw
      Src: /src/image/src/imageops/sample.rs:1346,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1346,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1346,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1346,1
    - Dst: filter_2d_sep_rgb_u16
      Src: /src/image/src/imageops/sample.rs:1351,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1352,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1351,1
    - Dst: DynamicImage::ImageRgb16
      Src: /src/image/src/imageops/sample.rs:1359,1
    - Dst: Rgb16Image::from_raw
      Src: /src/image/src/imageops/sample.rs:1360,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1360,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1360,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1360,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgba_u16
      Src: /src/image/src/imageops/sample.rs:1365,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1366,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1365,1
    - Dst: DynamicImage::ImageRgba16
      Src: /src/image/src/imageops/sample.rs:1373,1
    - Dst: Rgba16Image::from_raw
      Src: /src/image/src/imageops/sample.rs:1374,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1374,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1374,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1374,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgb_f32
      Src: /src/image/src/imageops/sample.rs:1379,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1380,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1379,1
    - Dst: DynamicImage::ImageRgb32F
      Src: /src/image/src/imageops/sample.rs:1387,1
    - Dst: Rgb32FImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1388,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1388,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1388,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1388,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgba_f32
      Src: /src/image/src/imageops/sample.rs:1393,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1394,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1393,1
    - Dst: DynamicImage::ImageRgba32F
      Src: /src/image/src/imageops/sample.rs:1401,1
    - Dst: Rgba32FImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1402,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1402,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1402,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1402,1
    - Dst: set_color_space
      Src: /src/image/src/imageops/sample.rs:1408,1
    - Dst: Vec::color_space
      Src: /src/image/src/imageops/sample.rs:1408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 190
    argCount: 2
    argNames:
    - image
    - parameters
    argTypes:
    - '&DynamicImage'
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1410
      start: 1245
    functionDepth: 14
    functionLinenumber: 1245
    functionLinenumberEnd: 1410
    functionName: gaussian_blur_dyn_image
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    functionsReached:
    - Vec::width
    - imageops::filter_1d::filter_2d_sep_rgb
    - imageops::filter_1d::filter_2d_sep_plane
    - ImageResult::unwrap
    - RgbImage::from_raw
    - imageops::filter_1d::filter_2d_sep_plane_u16
    - DynamicImage::ImageLumaA8
    - DynamicImage::ImageRgb16
    - GrayAlpha16Image::from_raw
    - GrayAlphaImage::from_raw
    - imageops::filter_1d::filter_2d_sep_rgb_f32
    - filter_2d_sep_rgb_u16
    - Result::unwrap
    - set_color_space
    - Rgb16Image::from_raw
    - Gray16Image::from_raw
    - DynamicImage::ImageLuma16
    - Rgba32FImage::from_raw
    - DynamicImage::ImageLumaA16
    - DynamicImage::ImageRgb8
    - DynamicImage::ImageRgba16
    - DynamicImage::ImageRgb32F
    - imageops::filter_1d::filter_2d_sep_rgba_f32
    - imageops::filter_1d::filter_2d_sep_rgba
    - filter_2d_sep_la
    - DynamicImage::ImageRgba32F
    - get_gaussian_kernel_1d
    - Rgb32FImage::from_raw
    - DynamicImage::ImageRgba8
    - RgbaImage::from_raw
    - imageops::filter_1d::filter_2d_sep_la_u16
    - imageops::filter_1d::filter_2d_sep_rgba_u16
    - Rgba16Image::from_raw
    - Option::height
    - GrayImage::from_raw
    - Option::as_raw
    - DynamicImage::ImageLuma8
    - Option::width
    - Vec::color_space
    - Vec::height
    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:1420,1
    - Dst: gaussian_blur_indirect_impl::<I, 2>
      Src: /src/image/src/imageops/sample.rs:1421,1
    - Dst: gaussian_blur_indirect_impl::<I, 3>
      Src: /src/image/src/imageops/sample.rs:1422,1
    - Dst: gaussian_blur_indirect_impl::<I, 4>
      Src: /src/image/src/imageops/sample.rs:1423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - image
    - parameters
    argTypes:
    - '&I'
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1426
      start: 1412
    functionDepth: 0
    functionLinenumber: 1412
    functionLinenumberEnd: 1426
    functionName: gaussian_blur_indirect
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    functionsReached:
    - gaussian_blur_indirect_impl::<I, 3>
    - gaussian_blur_indirect_impl::<I, 2>
    - gaussian_blur_indirect_impl::<I, 4>
    - gaussian_blur_indirect_impl::<I, 1>
    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:1436,1
    - Dst: Vec::zip
      Src: /src/image/src/imageops/sample.rs:1436,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/sample.rs:1436,1
    - Dst: channels
      Src: /src/image/src/imageops/sample.rs:1437,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1440,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1440,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:1444,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1444,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: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1452,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1452,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1453,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1453,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1454,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1454,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1455,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1455,1
    - Dst: get_gaussian_kernel_1d
      Src: /src/image/src/imageops/sample.rs:1463,1
    - Dst: get_gaussian_kernel_1d
      Src: /src/image/src/imageops/sample.rs:1467,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:1473,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:1474,1
    - Dst: filter_2d_sep_plane_f32
      Src: /src/image/src/imageops/sample.rs:1479,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1479,1
    - Dst: imageops::filter_1d::filter_2d_sep_la_f32
      Src: /src/image/src/imageops/sample.rs:1489,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1489,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgb_f32
      Src: /src/image/src/imageops/sample.rs:1499,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1499,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgba_f32
      Src: /src/image/src/imageops/sample.rs:1509,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1509,1
    - Dst: Vec::buffer_like
      Src: /src/image/src/imageops/sample.rs:1521,1
    - Dst: SampleLayout::pixels_mut
      Src: /src/image/src/imageops/sample.rs:1522,1
    - Dst: PixelsMutPar::zip
      Src: /src/image/src/imageops/sample.rs:1522,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/sample.rs:1522,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: Pixel::from_channels
      Src: /src/image/src/imageops/sample.rs:1527,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1531,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1531,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1531,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: Pixel::from_channels
      Src: /src/image/src/imageops/sample.rs:1534,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1538,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1538,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1538,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1539,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1539,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1539,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: Pixel::from_channels
      Src: /src/image/src/imageops/sample.rs:1542,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1546,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1546,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1546,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1547,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1547,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1547,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1548,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1548,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1548,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1549,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1549,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1549,1
    - Dst: Pixel::from_channels
      Src: /src/image/src/imageops/sample.rs:1551,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 210
    argCount: 2
    argNames:
    - image
    - parameters
    argTypes:
    - '&I'
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1559
      start: 1428
    functionDepth: 14
    functionLinenumber: 1428
    functionLinenumberEnd: 1559
    functionName: gaussian_blur_indirect_impl
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Vec::width
    - chunks_exact_mut
    - Pixel::from_channels
    - Vec::zip
    - Vec::pixels
    - Self::unwrap
    - FloatNearest
    - imageops::filter_1d::filter_2d_sep_rgb_f32
    - Vec::buffer_like
    - Result::unwrap
    - Vec::height
    - NumCast::from
    - imageops::filter_1d::filter_2d_sep_rgba_f32
    - channels
    - imageops::filter_1d::filter_2d_sep_la_f32
    - PixelsMutPar::zip
    - SampleLayout::pixels_mut
    - get_gaussian_kernel_1d
    - filter_2d_sep_plane_f32
    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:1578,1
    - Dst: GaussianBlurParameters::new_from_sigma
      Src: /src/image/src/imageops/sample.rs:1578,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1581,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1581,1
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/sample.rs:1582,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:1586,1
    - Dst: ImageBuffer::get_pixel_mut
      Src: /src/image/src/imageops/sample.rs:1587,1
    - Dst: map2
      Src: /src/image/src/imageops/sample.rs:1589,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1590,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1590,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1591,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1591,1
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:1595,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:1596,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1598,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 3
    argNames:
    - image
    - sigma
    - threshold
    argTypes:
    - '&I'
    - f32
    - i32
    constantsTouched: []
    func_position:
      end: 1609
      start: 1572
    functionDepth: 11
    functionLinenumber: 1572
    functionLinenumberEnd: 1609
    functionName: unsharpen
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - utils::clamp
    - Vec::dimensions
    - abs
    - NumCast::from
    - Vec::get_pixel
    - ImageBuffer::get_pixel_mut
    - map2
    - blur_advanced
    - GaussianBlurParameters::new_from_sigma
    - Self::unwrap
    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:1622,1
    - Dst: Path::new
      Src: /src/image/src/imageops/sample.rs:1622,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1622,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1623,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1624,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1627
      start: 1620
    functionDepth: 17
    functionLinenumber: 1620
    functionLinenumberEnd: 1627
    functionName: tests::bench_resize
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - iter
    - crate::open
    - test::black_box
    - resize
    - io::Result::unwrap
    - Path::new
    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:1633,1
    - Dst: Path::new
      Src: /src/image/src/imageops/sample.rs:1633,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1633,1
    - Dst: Option::resize
      Src: /src/image/src/imageops/sample.rs:1634,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1634,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1631
    functionDepth: 17
    functionLinenumber: 1631
    functionLinenumberEnd: 1636
    functionName: tests::test_resize_same_size
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - crate::open
    - Option::height
    - Option::width
    - io::Result::unwrap
    - Path::new
    - Option::resize
    linkageType: ''
    returnType: void
    signature: fn test_resize_same_size()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1642,1
    - Dst: Path::new
      Src: /src/image/src/imageops/sample.rs:1642,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1640
    functionDepth: 17
    functionLinenumber: 1640
    functionLinenumberEnd: 1656
    functionName: tests::test_sample_bilinear
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - crate::open
    - Path::new
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_sample_bilinear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1661,1
    - Dst: Path::new
      Src: /src/image/src/imageops/sample.rs:1661,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1659
    functionDepth: 17
    functionLinenumber: 1659
    functionLinenumberEnd: 1675
    functionName: tests::test_sample_nearest
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - crate::open
    - Path::new
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_sample_nearest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/imageops/sample.rs:1679,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1680,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1681,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1682,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1677
    functionDepth: 17
    functionLinenumber: 1677
    functionLinenumberEnd: 1708
    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:1713,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1714,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1715,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1716,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1717,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1720,1
    - Dst: sample_bilinear
      Src: /src/image/src/imageops/sample.rs:1721,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1721,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1723
      start: 1711
    functionDepth: 17
    functionLinenumber: 1711
    functionLinenumberEnd: 1723
    functionName: tests::bench_sample_bilinear
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - iter
    - test::black_box
    - Rgba
    - sample_bilinear
    - 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:1727,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1728,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1729,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1730,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1725
    functionDepth: 17
    functionLinenumber: 1725
    functionLinenumberEnd: 1745
    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:1754,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1754,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1755,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1756,1
    - Dst: Vec::resize
      Src: /src/image/src/imageops/sample.rs:1756,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:1756,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:1756,1
    - Dst: u64::from
      Src: /src/image/src/imageops/sample.rs:1758,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:1758,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:1758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1759
      start: 1749
    functionDepth: 17
    functionLinenumber: 1749
    functionLinenumberEnd: 1759
    functionName: tests::bench_resize_same_size
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - iter
    - Vec::width
    - u64::from
    - crate::open
    - test::black_box
    - io::Result::unwrap
    - Vec::resize
    - Vec::height
    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:1763,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1762
    functionDepth: 13
    functionLinenumber: 1762
    functionLinenumberEnd: 1765
    functionName: tests::test_issue_186
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - resize
    - ImageBuffer::new
    linkageType: ''
    returnType: void
    signature: fn test_issue_186()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1774,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1774,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1775,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1776,1
    - Dst: Vec::thumbnail
      Src: /src/image/src/imageops/sample.rs:1776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1779
      start: 1769
    functionDepth: 17
    functionLinenumber: 1769
    functionLinenumberEnd: 1779
    functionName: tests::bench_thumbnail
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - iter
    - crate::open
    - test::black_box
    - Vec::thumbnail
    - 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:1788,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1788,1
    - Dst: thumbnail
      Src: /src/image/src/imageops/sample.rs:1788,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1789,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1790,1
    - Dst: Vec::thumbnail
      Src: /src/image/src/imageops/sample.rs:1790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1793
      start: 1783
    functionDepth: 17
    functionLinenumber: 1783
    functionLinenumberEnd: 1793
    functionName: tests::bench_thumbnail_upsize
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - iter
    - crate::open
    - test::black_box
    - Vec::thumbnail
    - 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:1802,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1802,1
    - Dst: thumbnail
      Src: /src/image/src/imageops/sample.rs:1802,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1803,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1804,1
    - Dst: Vec::thumbnail
      Src: /src/image/src/imageops/sample.rs:1804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1807
      start: 1797
    functionDepth: 17
    functionLinenumber: 1797
    functionLinenumberEnd: 1807
    functionName: tests::bench_thumbnail_upsize_irregular
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - iter
    - crate::open
    - test::black_box
    - Vec::thumbnail
    - 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:1817,1
    - Dst: crop_imm
      Src: /src/image/src/imageops/sample.rs:1818,1
    - Dst: SubImage::to_image
      Src: /src/image/src/imageops/sample.rs:1818,1
    - Dst: pixels
      Src: /src/image/src/imageops/sample.rs:1819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - image
    - filter
    argTypes:
    - '&RgbaImage'
    - FilterType
    constantsTouched: []
    func_position:
      end: 1826
      start: 1816
    functionDepth: 13
    functionLinenumber: 1816
    functionLinenumberEnd: 1826
    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:1832,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1832,1
    - Dst: Option::as_rgba8
      Src: /src/image/src/imageops/sample.rs:1833,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/sample.rs:1833,1
    - Dst: assert_resize
      Src: /src/image/src/imageops/sample.rs:1836,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1811
    functionDepth: 17
    functionLinenumber: 1811
    functionLinenumberEnd: 1838
    functionName: tests::resize_transparent_image
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - crate::open
    - assert_resize
    - Option::unwrap
    - io::Result::unwrap
    - Option::as_rgba8
    linkageType: ''
    returnType: void
    signature: fn resize_transparent_image()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::RgbaImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1842,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1842,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1841
    functionDepth: 13
    functionLinenumber: 1841
    functionLinenumberEnd: 1845
    functionName: tests::bug_1600
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - resize
    - crate::RgbaImage::from_raw
    linkageType: ''
    returnType: void
    signature: fn bug_1600()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::GrayImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1849,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1849,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1851,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1848
    functionDepth: 13
    functionLinenumber: 1848
    functionLinenumberEnd: 1857
    functionName: tests::issue_2340
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - crate::GrayImage::from_raw
    - ImageResult::unwrap
    - resize
    linkageType: ''
    returnType: void
    signature: fn issue_2340()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::GrayImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1862,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1862,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1863,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1860
    functionDepth: 13
    functionLinenumber: 1860
    functionLinenumberEnd: 1867
    functionName: tests::issue_2340_refl
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - crate::GrayImage::from_raw
    - ImageResult::unwrap
    - resize
    linkageType: ''
    returnType: void
    signature: fn issue_2340_refl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: grayscale_with_type
      Src: /src/image/src/imageops/colorops.rs:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 18
      start: 14
    functionDepth: 13
    functionLinenumber: 14
    functionLinenumberEnd: 18
    functionName: grayscale
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 3
    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:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 13
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: grayscale_alpha
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 1
    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:34,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/colorops.rs:35,1
    - Dst: SampleLayout::copy_color_space_from
      Src: /src/image/src/imageops/colorops.rs:36,1
    - Dst: Vec::buffer_with_dimensions
      Src: /src/image/src/imageops/colorops.rs:36,1
    - Dst: Vec::pixels
      Src: /src/image/src/imageops/colorops.rs:38,1
    - Dst: u8::to_luma
      Src: /src/image/src/imageops/colorops.rs:39,1
    - Dst: ImageBuffer::into_color
      Src: /src/image/src/imageops/colorops.rs:40,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/colorops.rs:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 46
      start: 28
    functionDepth: 12
    functionLinenumber: 28
    functionLinenumberEnd: 46
    functionName: grayscale_with_type
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 2
    functionsReached:
    - SampleLayout::put_pixel
    - Vec::dimensions
    - u8::to_luma
    - ImageBuffer::into_color
    - ImageBuffer::new
    - Vec::buffer_with_dimensions
    - SampleLayout::copy_color_space_from
    - Vec::pixels
    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:55,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/colorops.rs:56,1
    - Dst: SampleLayout::copy_color_space_from
      Src: /src/image/src/imageops/colorops.rs:57,1
    - Dst: Vec::buffer_with_dimensions
      Src: /src/image/src/imageops/colorops.rs:57,1
    - Dst: Vec::pixels
      Src: /src/image/src/imageops/colorops.rs:59,1
    - Dst: u8::to_luma_alpha
      Src: /src/image/src/imageops/colorops.rs:60,1
    - Dst: ImageBuffer::into_color
      Src: /src/image/src/imageops/colorops.rs:61,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/colorops.rs:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 67
      start: 49
    functionDepth: 12
    functionLinenumber: 49
    functionLinenumberEnd: 67
    functionName: grayscale_with_type_alpha
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 2
    functionsReached:
    - SampleLayout::put_pixel
    - Vec::dimensions
    - ImageBuffer::into_color
    - ImageBuffer::new
    - Vec::buffer_with_dimensions
    - SampleLayout::copy_color_space_from
    - Vec::pixels
    - u8::to_luma_alpha
    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:73,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/colorops.rs:77,1
    - Dst: Result::invert
      Src: /src/image/src/imageops/colorops.rs:78,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/colorops.rs:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&mut I'
    constantsTouched: []
    func_position:
      end: 83
      start: 71
    functionDepth: 12
    functionLinenumber: 71
    functionLinenumberEnd: 83
    functionName: invert
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 3
    functionsReached:
    - Vec::get_pixel
    - Vec::put_pixel
    - Result::invert
    - Vec::dimensions
    linkageType: ''
    returnType: void
    signature: 'pub fn invert<I: GenericImage>(image: &mut I)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::buffer_like
      Src: /src/image/src/imageops/colorops.rs:96,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:99,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:99,1
    - Dst: powi
      Src: /src/image/src/imageops/colorops.rs:101,1
    - Dst: Vec::pixels
      Src: /src/image/src/imageops/colorops.rs:103,1
    - Dst: u8::map
      Src: /src/image/src/imageops/colorops.rs:104,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:105,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:105,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:108,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:110,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:110,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/colorops.rs:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 2
    argNames:
    - image
    - contrast
    argTypes:
    - '&I'
    - f32
    constantsTouched: []
    func_position:
      end: 116
      start: 90
    functionDepth: 13
    functionLinenumber: 90
    functionLinenumberEnd: 116
    functionName: contrast
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - utils::clamp
    - SampleLayout::put_pixel
    - powi
    - NumCast::from
    - Vec::buffer_like
    - u8::map
    - Vec::pixels
    - Self::unwrap
    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:127,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:130,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:130,1
    - Dst: powi
      Src: /src/image/src/imageops/colorops.rs:132,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/colorops.rs:137,1
    - Dst: Self::Pixel::map
      Src: /src/image/src/imageops/colorops.rs:137,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:138,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:138,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:141,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:143,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:143,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/colorops.rs:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 2
    argNames:
    - image
    - contrast
    argTypes:
    - '&mut I'
    - f32
    constantsTouched: []
    func_position:
      end: 149
      start: 123
    functionDepth: 12
    functionLinenumber: 123
    functionLinenumberEnd: 149
    functionName: contrast_in_place
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - utils::clamp
    - Vec::dimensions
    - powi
    - Vec::get_pixel
    - NumCast::from
    - Vec::put_pixel
    - Self::Pixel::map
    - 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::buffer_like
      Src: /src/image/src/imageops/colorops.rs:162,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:165,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:165,1
    - Dst: Vec::pixels
      Src: /src/image/src/imageops/colorops.rs:167,1
    - Dst: u8::map_with_alpha
      Src: /src/image/src/imageops/colorops.rs:168,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:170,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:170,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:171,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:173,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:173,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/colorops.rs:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - image
    - value
    argTypes:
    - '&I'
    - i32
    constantsTouched: []
    func_position:
      end: 181
      start: 156
    functionDepth: 13
    functionLinenumber: 156
    functionLinenumberEnd: 181
    functionName: brighten
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - utils::clamp
    - SampleLayout::put_pixel
    - NumCast::from
    - Vec::buffer_like
    - u8::map_with_alpha
    - Vec::pixels
    - Self::unwrap
    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:192,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:195,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:195,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/colorops.rs:200,1
    - Dst: Self::Pixel::map_with_alpha
      Src: /src/image/src/imageops/colorops.rs:200,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:202,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:202,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:203,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:205,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:205,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/colorops.rs:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 2
    argNames:
    - image
    - value
    argTypes:
    - '&mut I'
    - i32
    constantsTouched: []
    func_position:
      end: 213
      start: 188
    functionDepth: 12
    functionLinenumber: 188
    functionLinenumberEnd: 213
    functionName: brighten_in_place
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 1
    functionsReached:
    - utils::clamp
    - Vec::dimensions
    - NumCast::from
    - Vec::get_pixel
    - Vec::put_pixel
    - Self::Pixel::map_with_alpha
    - 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::buffer_like
      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: Result::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: 119
    argCount: 2
    argNames:
    - image
    - value
    argTypes:
    - '&I'
    - i32
    constantsTouched: []
    func_position:
      end: 278
      start: 221
    functionDepth: 13
    functionLinenumber: 221
    functionLinenumberEnd: 278
    functionName: huerotate
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - sin
    - utils::clamp
    - NumCast::from
    - Vec::get_pixel
    - Vec::buffer_like
    - to_radians
    - Pixel::from_channels
    - SampleLayout::enumerate_pixels_mut
    - cos
    - Result::channels4
    - 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: 12
    functionLinenumber: 287
    functionLinenumberEnd: 347
    functionName: huerotate_in_place
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - sin
    - utils::clamp
    - Vec::dimensions
    - NumCast::from
    - Vec::get_pixel
    - to_radians
    - Pixel::from_channels
    - u8::channels4
    - Vec::put_pixel
    - cos
    - 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: 1
    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: 12
    functionLinenumber: 416
    functionLinenumberEnd: 422
    functionName: BiLevel::lookup
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - into
    - Some
    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: Result::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: 14
    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
    - Result::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:
    - bool::channels_mut
    - color_quant::NeuQuant::map_pixel
    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: 4
    functionLinenumber: 463
    functionLinenumberEnd: 471
    functionName: diffuse_err
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 1
    functionsReached:
    - iter
    - u8::channels_mut
    - zip
    - <i16 as From<_>>::from
    - iter_mut
    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: 1
    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: 12
    functionLinenumber: 491
    functionLinenumberEnd: 526
    functionName: dither
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 1
    functionsReached:
    - diffuse_err
    - Vec::dimensions
    - Vec::get_pixel_mut
    - 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:538,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/colorops.rs:538,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/colorops.rs:538,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/imageops/colorops.rs:539,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/imageops/colorops.rs:540,1
    - Dst: Vec::pixels
      Src: /src/image/src/imageops/colorops.rs:541,1
    - Dst: Vec::zip
      Src: /src/image/src/imageops/colorops.rs:541,1
    - Dst: Option::pixels_mut
      Src: /src/image/src/imageops/colorops.rs:541,1
    - Dst: color::Luma
      Src: /src/image/src/imageops/colorops.rs:542,1
    - Dst: ImageResult::index_of
      Src: /src/image/src/imageops/colorops.rs:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 2
    argNames:
    - image
    - color_map
    argTypes:
    - '&ImageBuffer<Pix, Vec<u8>>'
    - '&Map'
    constantsTouched: []
    func_position:
      end: 545
      start: 529
    functionDepth: 3
    functionLinenumber: 529
    functionLinenumberEnd: 545
    functionName: index_colors
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Vec::width
    - Option::pixels_mut
    - Option::set_rgb_primaries
    - ImageResult::index_of
    - ImageBuffer::new
    - Vec::zip
    - Option::set_transfer_function
    - Vec::pixels
    - Vec::height
    - color::Luma
    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:586,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:586,1
    - Dst: dither
      Src: /src/image/src/imageops/colorops.rs:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 591
      start: 585
    functionDepth: 13
    functionLinenumber: 585
    functionLinenumberEnd: 591
    functionName: test::test_dither
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - dither
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_dither()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::put_pixel
      Src: /src/image/src/images/dynimage.rs:1742,1
    - Dst: Rgba
      Src: /src/image/src/images/dynimage.rs:1742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - img
    - alpha_discarded
    argTypes:
    - super::DynamicImage
    - bool
    constantsTouched: []
    func_position:
      end: 1748
      start: 1740
    functionDepth: 2
    functionLinenumber: 1740
    functionLinenumberEnd: 1748
    functionName: test::test_grayscale
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - 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:607,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:607,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:610,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:610,1
    - Dst: invert
      Src: /src/image/src/imageops/colorops.rs:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 614
      start: 605
    functionDepth: 13
    functionLinenumber: 605
    functionLinenumberEnd: 614
    functionName: test::test_invert
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - invert
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_invert()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - 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
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:621,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 624
      start: 616
    functionDepth: 3
    functionLinenumber: 616
    functionLinenumberEnd: 624
    functionName: test::test_brighten
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_brighten()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - 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: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:632,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:632,1
    - Dst: brighten_in_place
      Src: /src/image/src/imageops/colorops.rs:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 636
      start: 627
    functionDepth: 13
    functionLinenumber: 627
    functionLinenumberEnd: 636
    functionName: test::test_brighten_place
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - brighten_in_place
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_brighten_place()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::pixels
      Src: /src/image/src/imageops/affine.rs:403,1
    - Dst: Vec::zip
      Src: /src/image/src/imageops/affine.rs:403,1
    - Dst: '&J::pixels'
      Src: /src/image/src/imageops/affine.rs:404,1
    - Dst: filter
      Src: /src/image/src/imageops/affine.rs:403,1
    - Dst: "pixels()\n            .zip(right.pixels())\n            .filter(|&(p,\
        \ q)| p != q)\n            .collect::<Vec<_>>"
      Src: /src/image/src/imageops/affine.rs:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - '&I'
    - '&J'
    constantsTouched: []
    func_position:
      end: 407
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 407
    functionName: test::pixel_diffs
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - '&J::pixels'
    - "pixels()\n            .zip(right.pixels())\n            .filter(|&(p, q)| p\
      \ != q)\n            .collect::<Vec<_>>"
    - u32::pixels
    - filter
    - Vec::zip
    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: Vec::buffer_with_dimensions
      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: 6
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 18
      start: 8
    functionDepth: 12
    functionLinenumber: 8
    functionLinenumberEnd: 18
    functionName: rotate90
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - rotate90_in
    - Vec::dimensions
    - Vec::buffer_with_dimensions
    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: Vec::buffer_with_dimensions
      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: 6
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 12
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: rotate180
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Vec::dimensions
    - rotate180_in
    - Vec::buffer_with_dimensions
    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: Vec::buffer_with_dimensions
      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: 6
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 12
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: rotate270
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::dimensions
    - rotate270_in
    - Vec::buffer_with_dimensions
    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: 12
    functionLinenumber: 47
    functionLinenumberEnd: 70
    functionName: rotate90_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::dimensions
    - ImageError::Parameter
    - Vec::get_pixel
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - Err
    - Ok
    - ParameterError::from_kind
    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: 12
    functionLinenumber: 73
    functionLinenumberEnd: 96
    functionName: rotate180_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::dimensions
    - ImageError::Parameter
    - Vec::get_pixel
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - Err
    - Ok
    - ParameterError::from_kind
    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: 12
    functionLinenumber: 99
    functionLinenumberEnd: 122
    functionName: rotate270_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::dimensions
    - ImageError::Parameter
    - Vec::get_pixel
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - Err
    - Ok
    - ParameterError::from_kind
    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::buffer_like
      Src: /src/image/src/imageops/affine.rs:131,1
    - Dst: flip_horizontal_in
      Src: /src/image/src/imageops/affine.rs:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 13
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: flip_horizontal
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Vec::buffer_like
    - 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::buffer_like
      Src: /src/image/src/imageops/affine.rs:143,1
    - Dst: flip_vertical_in
      Src: /src/image/src/imageops/affine.rs:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 13
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: flip_vertical
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Vec::buffer_like
    - flip_vertical_in
    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:158,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::dimensions'
      Src: /src/image/src/imageops/affine.rs:158,1
    - Dst: Err
      Src: /src/image/src/imageops/affine.rs:160,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/imageops/affine.rs:160,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/imageops/affine.rs:160,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:167,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
      Src: /src/image/src/imageops/affine.rs:168,1
    - Dst: Ok
      Src: /src/image/src/imageops/affine.rs:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - image
    - destination
    argTypes:
    - '&I'
    - '&mut ImageBuffer<I::Pixel, Container>'
    constantsTouched: []
    func_position:
      end: 172
      start: 149
    functionDepth: 12
    functionLinenumber: 149
    functionLinenumberEnd: 172
    functionName: flip_horizontal_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::dimensions
    - ImageError::Parameter
    - Vec::get_pixel
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - Err
    - Ok
    - ParameterError::from_kind
    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:184,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::dimensions'
      Src: /src/image/src/imageops/affine.rs:184,1
    - Dst: Err
      Src: /src/image/src/imageops/affine.rs:186,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/imageops/affine.rs:186,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/imageops/affine.rs:186,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:193,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
      Src: /src/image/src/imageops/affine.rs:194,1
    - Dst: Ok
      Src: /src/image/src/imageops/affine.rs:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - image
    - destination
    argTypes:
    - '&I'
    - '&mut ImageBuffer<I::Pixel, Container>'
    constantsTouched: []
    func_position:
      end: 198
      start: 175
    functionDepth: 12
    functionLinenumber: 175
    functionLinenumberEnd: 198
    functionName: flip_vertical_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::dimensions
    - ImageError::Parameter
    - Vec::get_pixel
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - Err
    - Ok
    - ParameterError::from_kind
    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:202,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:206,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:211,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:212,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:213,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:221,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:224,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:225,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&mut I'
    constantsTouched: []
    func_position:
      end: 229
      start: 201
    functionDepth: 12
    functionLinenumber: 201
    functionLinenumberEnd: 229
    functionName: rotate180_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 2
    functionsReached:
    - Vec::get_pixel
    - Vec::put_pixel
    - Vec::dimensions
    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:233,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:238,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:239,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:240,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&mut I'
    constantsTouched: []
    func_position:
      end: 244
      start: 232
    functionDepth: 12
    functionLinenumber: 232
    functionLinenumberEnd: 244
    functionName: flip_horizontal_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::get_pixel
    - Vec::put_pixel
    - Vec::dimensions
    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:248,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:253,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:254,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:255,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&mut I'
    constantsTouched: []
    func_position:
      end: 259
      start: 247
    functionDepth: 12
    functionLinenumber: 247
    functionLinenumberEnd: 259
    functionName: flip_vertical_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::get_pixel
    - Vec::put_pixel
    - Vec::dimensions
    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:305,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:305,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:308,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 303
    functionDepth: 3
    functionLinenumber: 303
    functionLinenumberEnd: 311
    functionName: test::test_rotate90
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_rotate90()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:316,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:316,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:319,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 322
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 322
    functionName: test::test_rotate180
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_rotate180()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:327,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:327,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:330,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 333
      start: 325
    functionDepth: 3
    functionLinenumber: 325
    functionLinenumberEnd: 333
    functionName: test::test_rotate270
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_rotate270()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:338,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:338,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:341,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:341,1
    - Dst: rotate180_in_place
      Src: /src/image/src/imageops/affine.rs:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 346
      start: 336
    functionDepth: 13
    functionLinenumber: 336
    functionLinenumberEnd: 346
    functionName: test::test_rotate180_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - rotate180_in_place
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_rotate180_in_place()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:351,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:351,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:354,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 357
    functionName: test::test_flip_horizontal
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_flip_horizontal()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:362,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:362,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:365,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 368
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 368
    functionName: test::test_flip_vertical
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_flip_vertical()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:373,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:373,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:376,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:376,1
    - Dst: flip_horizontal_in_place
      Src: /src/image/src/imageops/affine.rs:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 371
    functionDepth: 13
    functionLinenumber: 371
    functionLinenumberEnd: 381
    functionName: test::test_flip_horizontal_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - flip_horizontal_in_place
    - ImageBuffer::from_raw
    - Option::unwrap
    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:386,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:386,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:389,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:389,1
    - Dst: flip_vertical_in_place
      Src: /src/image/src/imageops/affine.rs:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 384
    functionDepth: 13
    functionLinenumber: 384
    functionLinenumberEnd: 394
    functionName: test::test_flip_vertical_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - flip_vertical_in_place
    - ImageBuffer::from_raw
    - Option::unwrap
    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: 13
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: crop
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 1
    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: 13
    functionLinenumber: 56
    functionLinenumberEnd: 65
    functionName: crop_imm
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 2
    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: 12
    functionLinenumber: 67
    functionLinenumberEnd: 83
    functionName: crop_dimms
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 2
    functionsReached:
    - cmp::min
    - Vec::dimensions
    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:
    - min
    - saturating_sub
    - saturating_add
    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: 13
    functionLinenumber: 174
    functionLinenumberEnd: 220
    functionName: overlay_bounds_ext
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 2
    functionsReached:
    - saturating_mul
    - saturating_add
    - T::clamp
    - clamp
    - Option::saturating_add
    - Option::saturating_mul
    - i64::from
    - Option::clamp
    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: 12
    functionLinenumber: 223
    functionLinenumberEnd: 244
    functionName: overlay
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 5
    functionsReached:
    - Self::Pixel::blend
    - u32::get_pixel
    - u32::dimensions
    - overlay_bounds_ext
    - '&mut I::put_pixel'
    - '&mut I::dimensions'
    - '&mut I::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: 13
    functionLinenumber: 258
    functionLinenumberEnd: 268
    functionName: tile
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - '&mut I::width'
    - overlay
    - step_by
    - u32::height
    - i64::from
    - '&mut I::height'
    - u32::width
    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: 1
    functionsReached:
    - ImageResult::map2
    - Option::height
    - <S::Ratio as num_traits::NumCast>::from
    - S::lerp
    - Option::width
    - Option::put_pixel
    - Self::unwrap
    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: 1
    functionsReached:
    - ImageResult::map2
    - Option::height
    - <S::Ratio as num_traits::NumCast>::from
    - S::lerp
    - Option::width
    - Option::put_pixel
    - Self::unwrap
    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: 12
    functionLinenumber: 337
    functionLinenumberEnd: 355
    functionName: replace
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - u32::get_pixel
    - u32::dimensions
    - overlay_bounds_ext
    - '&mut I::put_pixel'
    - '&mut I::dimensions'
    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: 13
    functionLinenumber: 406
    functionLinenumberEnd: 415
    functionName: tests::test_image_in_image
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - Rgb
    - ImageBuffer::from_pixel
    - overlay
    - ImageBuffer::new
    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: 13
    functionLinenumber: 419
    functionLinenumberEnd: 426
    functionName: tests::test_image_in_image_outside_of_bounds
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - Rgb
    - ImageBuffer::from_pixel
    - overlay
    - ImageBuffer::new
    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: 13
    functionLinenumber: 431
    functionLinenumberEnd: 438
    functionName: tests::test_image_outside_image_no_wrap_around
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - Rgb
    - ImageBuffer::from_pixel
    - overlay
    - ImageBuffer::new
    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: 13
    functionLinenumber: 442
    functionLinenumberEnd: 455
    functionName: tests::test_image_coordinate_overflow
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - overlay
    - ImageBuffer::new
    - Rgb
    - ImageBuffer::from_pixel
    - i64::from
    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
    - vertical_gradient
    - ImageBuffer::new
    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: 13
    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: 13
    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: 13
    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: 13
    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: 13
    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: 13
    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: 13
    functionLinenumber: 535
    functionLinenumberEnd: 538
    functionName: tests::test_fast_blur_2_channels
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - fast_blur::fast_blur
    - GrayAlphaImage::new
    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: 13
    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: 17
    functionLinenumber: 549
    functionLinenumberEnd: 571
    functionName: tests::fast_blur_approximates_gaussian_blur_well
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - FlatSamples::as_slice
    - Vec::fast_blur
    - Vec::blur_advanced
    - f32::from
    - crate::open
    - "iter()\n            .zip(image_blurred_fast_bytes.iter())\n            .map(|(a,\
      \ b)| (f32::from(*a) - f32::from(*b)) / f32::from(*a))\n            .sum::<f32>"
    - RgbImage::as_flat_samples
    - map
    - ImageBuffer::to_rgb8
    - '&[T]::len'
    - GaussianBlurParameters::new_from_sigma
    - io::Result::unwrap
    - zip
    - '&[T]::iter'
    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:98,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:98,1
    - Dst: '&RgbaImage::copy_color_space_from'
      Src: /src/image/src/imageops/fast_blur.rs:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 78
    argCount: 2
    argNames:
    - input_buffer
    - sigma
    argTypes:
    - '&ImageBuffer<P, Vec<P::Subpixel>>'
    - f32
    constantsTouched: []
    func_position:
      end: 101
      start: 21
    functionDepth: 15
    functionLinenumber: 21
    functionLinenumberEnd: 101
    functionName: fast_blur
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 10
    functionsReached:
    - ImageBuffer::from_raw
    - Vec::iter
    - '&ImageBuffer<P, Vec<P::Subpixel>>::clone'
    - test_radius_size
    - box_blur_vertical_pass_strategy::<P, P::Subpixel>
    - '&RgbaImage::copy_color_space_from'
    - Option::unwrap
    - box_blur_horizontal_pass_strategy::<P, P::Subpixel>
    - and_then
    - '&ImageBuffer<P, Vec<P::Subpixel>>::dimensions'
    - '&ImageBuffer<P, Vec<P::Subpixel>>::as_flat_samples'
    - boxes_for_gauss
    - Vec::is_empty
    - skip
    - safe_mul
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn fast_blur<P: Pixel>(input_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:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bound
    - radius
    argTypes:
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: test_radius_size
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 3
    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:112,1
    - Dst: GaussianBlurParameters::powi
      Src: /src/image/src/imageops/fast_blur.rs:112,1
    - Dst: floor
      Src: /src/image/src/imageops/fast_blur.rs:113,1
    - Dst: GaussianBlurParameters::powi
      Src: /src/image/src/imageops/fast_blur.rs:119,1
    - Dst: recip
      Src: /src/image/src/imageops/fast_blur.rs:119,1
    - Dst: f32::round
      Src: /src/image/src/imageops/fast_blur.rs:121,1
    - Dst: map
      Src: /src/image/src/imageops/fast_blur.rs:123,1
    - Dst: map
      Src: /src/image/src/imageops/fast_blur.rs:123,1
    - Dst: ceil_to_odd
      Src: /src/image/src/imageops/fast_blur.rs:125,1
    - Dst: io::Result::saturating_sub
      Src: /src/image/src/imageops/fast_blur.rs:125,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:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 52
    argCount: 2
    argNames:
    - sigma
    - n
    argTypes:
    - f32
    - usize
    constantsTouched: []
    func_position:
      end: 127
      start: 111
    functionDepth: 14
    functionLinenumber: 111
    functionLinenumberEnd: 127
    functionName: boxes_for_gauss
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 1
    functionsReached:
    - floor
    - ".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<_>>"
    - map
    - ceil_to_odd
    - GaussianBlurParameters::powi
    - io::Result::saturating_sub
    - f32::round
    - recip
    - f32::sqrt
    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: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    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:143,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:143,1
    - Dst: T::from
      Src: /src/image/src/imageops/fast_blur.rs:144,1
    - Dst: round
      Src: /src/image/src/imageops/fast_blur.rs:145,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:145,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:147,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:147,1
    - Dst: max
      Src: /src/image/src/imageops/fast_blur.rs:145,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:148,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:148,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:144,1
    - Dst: T::from
      Src: /src/image/src/imageops/fast_blur.rs:152,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:153,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:154,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:154,1
    - Dst: max
      Src: /src/image/src/imageops/fast_blur.rs:153,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:155,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:155,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 2
    argNames:
    - v
    - w
    argTypes:
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 159
      start: 140
    functionDepth: 12
    functionLinenumber: 140
    functionLinenumberEnd: 159
    functionName: rounding_saturating_mul
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 2
    functionsReached:
    - min
    - unwrap
    - to_f32
    - round
    - T::from
    - max
    - Self::unwrap
    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:172,1
    - Dst: box_blur_horizontal_pass_impl::<P, 2>
      Src: /src/image/src/imageops/fast_blur.rs:174,1
    - Dst: box_blur_horizontal_pass_impl::<P, 3>
      Src: /src/image/src/imageops/fast_blur.rs:176,1
    - Dst: box_blur_horizontal_pass_impl::<P, 4>
      Src: /src/image/src/imageops/fast_blur.rs:178,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: 182
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 182
    functionName: box_blur_horizontal_pass_strategy
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - box_blur_horizontal_pass_impl::<P, 1>
    - box_blur_horizontal_pass_impl::<P, 2>
    - box_blur_horizontal_pass_impl::<P, 4>
    - box_blur_horizontal_pass_impl::<P, 3>
    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:194,1
    - Dst: box_blur_vertical_pass_impl::<P, 2>
      Src: /src/image/src/imageops/fast_blur.rs:198,1
    - Dst: box_blur_vertical_pass_impl::<P, 3>
      Src: /src/image/src/imageops/fast_blur.rs:202,1
    - Dst: box_blur_vertical_pass_impl::<P, 4>
      Src: /src/image/src/imageops/fast_blur.rs:206,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: 212
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 212
    functionName: box_blur_vertical_pass_strategy
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - box_blur_vertical_pass_impl::<P, 3>
    - box_blur_vertical_pass_impl::<P, 1>
    - box_blur_vertical_pass_impl::<P, 4>
    - box_blur_vertical_pass_impl::<P, 2>
    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:225,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/fast_blur.rs:241,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:241,1
    - Dst: '&[T]::chunks_exact'
      Src: /src/image/src/imageops/fast_blur.rs:243,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:252,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:252,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: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:260,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:260,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:264,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:266,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:266,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: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:274,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:274,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:278,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:279,1
    - Dst: max
      Src: /src/image/src/imageops/fast_blur.rs:280,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:283,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: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:291,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:297,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:297,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:308,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:308,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: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:316,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:316,1
    - Dst: saturating_sub
      Src: /src/image/src/imageops/fast_blur.rs:320,1
    - Dst: '&[T]::len'
      Src: /src/image/src/imageops/fast_blur.rs:321,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/fast_blur.rs:332,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:332,1
    - Dst: '&[T]::chunks_exact'
      Src: /src/image/src/imageops/fast_blur.rs:334,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:332,1
    - Dst: chunks_exact
      Src: /src/image/src/imageops/fast_blur.rs:335,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:338,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: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:346,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:349,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:349,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:360,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:360,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: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:368,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:368,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:376,1
    - Dst: max
      Src: /src/image/src/imageops/fast_blur.rs:377,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:379,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: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:387,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:393,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:393,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:404,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:404,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
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:412,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:412,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: 416
      start: 214
    functionDepth: 13
    functionLinenumber: 214
    functionLinenumberEnd: 416
    functionName: box_blur_horizontal_pass_impl
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - min
    - unwrap
    - to_f32
    - '&[T]::chunks_exact'
    - test_radius_size
    - '&[T]::len'
    - rounding_saturating_mul
    - saturating_sub
    - chunks_exact
    - zip
    - '&mut [T]::chunks_exact_mut'
    - max
    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:429,1
    - Dst: '&[T]::iter'
      Src: /src/image/src/imageops/fast_blur.rs:452,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:452,1
    - Dst: '&RgbaImage::iter_mut'
      Src: /src/image/src/imageops/fast_blur.rs:452,1
    - Dst: enumerate
      Src: /src/image/src/imageops/fast_blur.rs:452,1
    - Dst: DynamicImage::to_f32
      Src: /src/image/src/imageops/fast_blur.rs:453,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:453,1
    - Dst: Option::min
      Src: /src/image/src/imageops/fast_blur.rs:455,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:456,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:456,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/fast_blur.rs:461,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:461,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:462,1
    - Dst: max
      Src: /src/image/src/imageops/fast_blur.rs:463,1
    - Dst: iter
      Src: /src/image/src/imageops/fast_blur.rs:468,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:468,1
    - Dst: iter
      Src: /src/image/src/imageops/fast_blur.rs:470,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:468,1
    - Dst: '&RgbaImage::iter_mut'
      Src: /src/image/src/imageops/fast_blur.rs:471,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:468,1
    - Dst: '&mut [T]::iter_mut'
      Src: /src/image/src/imageops/fast_blur.rs:472,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:476,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:478,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:478,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:479,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:479,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: 484
      start: 418
    functionDepth: 13
    functionLinenumber: 418
    functionLinenumberEnd: 484
    functionName: box_blur_vertical_pass_impl
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - Option::min
    - min
    - unwrap
    - iter
    - enumerate
    - to_f32
    - test_radius_size
    - f32::unwrap
    - rounding_saturating_mul
    - '&RgbaImage::iter_mut'
    - zip
    - '&mut [T]::chunks_exact_mut'
    - '&mut [T]::iter_mut'
    - '&[T]::iter'
    - DynamicImage::to_f32
    - max
    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:517,1
    - Dst: duration_since
      Src: /src/image/src/imageops/fast_blur.rs:517,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:517,1
    - Dst: Rng::new
      Src: /src/image/src/imageops/fast_blur.rs:518,1
    - Dst: as_millis
      Src: /src/image/src/imageops/fast_blur.rs:518,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: Self::next_f32_in_range
      Src: /src/image/src/imageops/fast_blur.rs:522,1
    - Dst: Self::next_u8
      Src: /src/image/src/imageops/fast_blur.rs:523,1
    - Dst: Self::next_u8
      Src: /src/image/src/imageops/fast_blur.rs:524,1
    - Dst: DynamicImage::from
      Src: /src/image/src/imageops/fast_blur.rs:531,1
    - Dst: GrayImage::from_vec
      Src: /src/image/src/imageops/fast_blur.rs:532,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:532,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:532,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:532,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/fast_blur.rs:534,1
    - Dst: ImageBuffer::as_bytes
      Src: /src/image/src/imageops/fast_blur.rs:535,1
    - Dst: DynamicImage::from
      Src: /src/image/src/imageops/fast_blur.rs:541,1
    - Dst: GrayAlphaImage::from_vec
      Src: /src/image/src/imageops/fast_blur.rs:542,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:542,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:542,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:542,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/fast_blur.rs:544,1
    - Dst: ImageBuffer::as_bytes
      Src: /src/image/src/imageops/fast_blur.rs:545,1
    - Dst: DynamicImage::from
      Src: /src/image/src/imageops/fast_blur.rs:551,1
    - Dst: RgbImage::from_vec
      Src: /src/image/src/imageops/fast_blur.rs:552,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:552,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:552,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:552,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/fast_blur.rs:554,1
    - Dst: ImageBuffer::as_bytes
      Src: /src/image/src/imageops/fast_blur.rs:555,1
    - Dst: DynamicImage::from
      Src: /src/image/src/imageops/fast_blur.rs:561,1
    - Dst: RgbaImage::from_vec
      Src: /src/image/src/imageops/fast_blur.rs:562,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:562,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:562,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:562,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/fast_blur.rs:564,1
    - Dst: ImageBuffer::as_bytes
      Src: /src/image/src/imageops/fast_blur.rs:565,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 572
      start: 516
    functionDepth: 13
    functionLinenumber: 516
    functionLinenumberEnd: 572
    functionName: tests::test_box_blur
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - as_millis
    - RgbImage::from_vec
    - unwrap
    - Vec::fast_blur
    - Rng::new
    - DynamicImage::from
    - Self::next_f32_in_range
    - duration_since
    - u32::from
    - RgbaImage::from_vec
    - Option::unwrap
    - GrayImage::from_vec
    - ImageBuffer::as_bytes
    - SystemTime::now
    - GrayAlphaImage::from_vec
    - Self::next_u8
    linkageType: ''
    returnType: void
    signature: fn test_box_blur()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::checked_mul
      Src: /src/image/src/imageops/filter_1d.rs:21,1
    - Dst: Ok
      Src: /src/image/src/imageops/filter_1d.rs:22,1
    - Dst: Err
      Src: /src/image/src/imageops/filter_1d.rs:24,1
    - Dst: ImageError::Limits
      Src: /src/image/src/imageops/filter_1d.rs:24,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/imageops/filter_1d.rs:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: usize::safe_mul
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - Err
    - ImageError::Limits
    - LimitError::from_kind
    - usize::checked_mul
    - 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:34,1
    - Dst: Ok
      Src: /src/image/src/imageops/filter_1d.rs:35,1
    - Dst: Err
      Src: /src/image/src/imageops/filter_1d.rs:37,1
    - Dst: ImageError::Limits
      Src: /src/image/src/imageops/filter_1d.rs:37,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/imageops/filter_1d.rs:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 41
    functionName: usize::safe_add
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 1
    functionsReached:
    - usize::checked_add
    - Err
    - ImageError::Limits
    - LimitError::from_kind
    - 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:73,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/filter_1d.rs:75,1
    - Dst: safe_add
      Src: /src/image/src/imageops/filter_1d.rs:75,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/filter_1d.rs:78,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:87,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:87,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:87,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:91,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:91,1
    - Dst: saturating_sub
      Src: /src/image/src/imageops/filter_1d.rs:92,1
    - Dst: min
      Src: /src/image/src/imageops/filter_1d.rs:92,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:95,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:95,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:95,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:101,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:101,1
    - Dst: rev
      Src: /src/image/src/imageops/filter_1d.rs:101,1
    - Dst: max
      Src: /src/image/src/imageops/filter_1d.rs:103,1
    - Dst: min
      Src: /src/image/src/imageops/filter_1d.rs:103,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:106,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:106,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:106,1
    - Dst: Ok
      Src: /src/image/src/imageops/filter_1d.rs:110,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: 111
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 111
    functionName: make_arena_row
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - min
    - iter
    - rev
    - safe_add
    - saturating_sub
    - Ok
    - zip
    - '&mut [T]::chunks_exact_mut'
    - iter_mut
    - max
    - safe_mul
    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:143,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/filter_1d.rs:143,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:144,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/filter_1d.rs:144,1
    - Dst: saturating_sub
      Src: /src/image/src/imageops/filter_1d.rs:145,1
    - Dst: min
      Src: /src/image/src/imageops/filter_1d.rs:145,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:149,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:149,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:149,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/filter_1d.rs:155,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:157,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:158,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/filter_1d.rs:158,1
    - Dst: min
      Src: /src/image/src/imageops/filter_1d.rs:159,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:162,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:162,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:162,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 93
    argCount: 3
    argNames:
    - image
    - image_size
    - kernel_size
    argTypes:
    - '&[T]'
    - FilterImageSize
    - KernelShape
    constantsTouched: []
    func_position:
      end: 172
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 172
    functionName: make_columns_arenas
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - min
    - iter
    - chunks_exact_mut
    - saturating_sub
    - zip
    - iter_mut
    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:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    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: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    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:230,1
    - Dst: size_of::<T>
      Src: /src/image/src/imageops/filter_1d.rs:239,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:240,1
    - Dst: F::default
      Src: /src/image/src/imageops/filter_1d.rs:241,1
    - Dst: F::default
      Src: /src/image/src/imageops/filter_1d.rs:242,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:247,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:247,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:248,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:248,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:250,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:250,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:251,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:251,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/filter_1d.rs:254,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:254,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:254,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:263,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:263,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:263,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:264,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:264,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:264,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:264,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:267,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:267,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:267,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:268,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:268,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:268,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:268,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:274,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:274,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:274,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:275,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:280,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:280,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:280,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:281,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:287,1
    - Dst: into_remainder
      Src: /src/image/src/imageops/filter_1d.rs:287,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:290,1
    - Dst: F::default
      Src: /src/image/src/imageops/filter_1d.rs:291,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:295,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:295,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:296,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:296,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/filter_1d.rs:299,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:299,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:299,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:304,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:304,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:304,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:305,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:305,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:305,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:305,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:309,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:309,1
    - Dst: Option::iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:309,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:310,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:316,1
    - Dst: into_remainder
      Src: /src/image/src/imageops/filter_1d.rs:316,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:318,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:321,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:321,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:322,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:322,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:323,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:323,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:324,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:324,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/filter_1d.rs:326,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:326,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:326,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:330,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:330,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:330,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:330,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:331,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:331,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:331,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:331,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:332,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:332,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:332,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:332,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:333,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:333,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:333,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:333,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:336,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:337,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:338,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:339,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:343,1
    - Dst: into_remainder
      Src: /src/image/src/imageops/filter_1d.rs:343,1
    - Dst: '&mut [T]::iter_mut'
      Src: /src/image/src/imageops/filter_1d.rs:345,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:345,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:348,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:348,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/filter_1d.rs:350,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:350,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:350,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:354,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:354,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:354,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:354,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:357,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: 359
      start: 213
    functionDepth: 14
    functionLinenumber: 213
    functionLinenumberEnd: 359
    functionName: filter_symmetric_column
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - to_
    - iter
    - mul
    - f32::len
    - enumerate
    - add
    - f32::iter
    - as_
    - F::default
    - size_of::<T>
    - into_remainder
    - zip
    - '&mut [T]::chunks_exact_mut'
    - '&mut [T]::iter_mut'
    - iter_mut
    - take
    - math::multiply_accumulate
    - Option::iter_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:380,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:385,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:385,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:391,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:392,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:393,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:394,1
    - Dst: '&[F]::iter'
      Src: /src/image/src/imageops/filter_1d.rs:398,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:398,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:398,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:402,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:402,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:402,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:403,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:403,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:403,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:404,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:404,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:404,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:405,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:405,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:405,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:408,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:409,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:410,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:411,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:414,1
    - Dst: len
      Src: /src/image/src/imageops/filter_1d.rs:414,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:415,1
    - Dst: into_remainder
      Src: /src/image/src/imageops/filter_1d.rs:415,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:417,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:417,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:421,1
    - Dst: '&[F]::iter'
      Src: /src/image/src/imageops/filter_1d.rs:423,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:423,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:423,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:427,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:427,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:427,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:430,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 187
    argCount: 3
    argNames:
    - arena
    - dst_row
    - scanned_kernel
    argTypes:
    - '&[T]'
    - '&mut [T]'
    - '&[F]'
    constantsTouched: []
    func_position:
      end: 432
      start: 366
    functionDepth: 14
    functionLinenumber: 366
    functionLinenumberEnd: 432
    functionName: filter_symmetric_row
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - to_
    - '&[F]::len'
    - enumerate
    - as_
    - len
    - into_remainder
    - '&mut [T]::chunks_exact_mut'
    - '&[F]::iter'
    - iter_mut
    - take
    - math::multiply_accumulate
    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:441,1
    - Dst: max
      Src: /src/image/src/imageops/filter_1d.rs:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - input
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: u8::transform
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - min
    - max
    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: 461
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 461
    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: 455
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 455
    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:469,1
    - Dst: f32::to_vec
      Src: /src/image/src/imageops/filter_1d.rs:470,1
    - Dst: ImageResult::len
      Src: /src/image/src/imageops/filter_1d.rs:471,1
    - Dst: ImageResult::last
      Src: /src/image/src/imageops/filter_1d.rs:472,1
    - Dst: unwrap
      Src: /src/image/src/imageops/filter_1d.rs:472,1
    - Dst: eq
      Src: /src/image/src/imageops/filter_1d.rs:472,1
    - Dst: ImageResult::first
      Src: /src/image/src/imageops/filter_1d.rs:472,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/filter_1d.rs:472,1
    - Dst: eq
      Src: /src/image/src/imageops/filter_1d.rs:472,1
    - Dst: ImageResult::remove
      Src: /src/image/src/imageops/filter_1d.rs:474,1
    - Dst: ImageResult::remove
      Src: /src/image/src/imageops/filter_1d.rs:475,1
    - Dst: ImageResult::len
      Src: /src/image/src/imageops/filter_1d.rs:475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 1
    argNames:
    - kernel
    argTypes:
    - '&[I]'
    constantsTouched: []
    func_position:
      end: 479
      start: 465
    functionDepth: 14
    functionLinenumber: 465
    functionLinenumberEnd: 479
    functionName: prepare_symmetric_kernel
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 1
    functionsReached:
    - f32::to_vec
    - ImageResult::len
    - unwrap
    - ImageResult::last
    - ImageResult::first
    - ImageResult::remove
    - as_
    - Option::unwrap
    - eq
    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:554,1
    - Dst: max
      Src: /src/image/src/imageops/filter_1d.rs:554,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/filter_1d.rs:556,1
    - Dst: safe_add
      Src: /src/image/src/imageops/filter_1d.rs:556,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/filter_1d.rs:559,1
    - Dst: '&[I]::len'
      Src: /src/image/src/imageops/filter_1d.rs:567,1
    - Dst: make_arena_row::<T, N>
      Src: /src/image/src/imageops/filter_1d.rs:571,1
    - Dst: '&[I]::len'
      Src: /src/image/src/imageops/filter_1d.rs:577,1
    - Dst: filter_symmetric_row::<T, I, N>
      Src: /src/image/src/imageops/filter_1d.rs:583,1
    - Dst: '&RgbaImage::split_at_mut'
      Src: /src/image/src/imageops/filter_1d.rs:586,1
    - Dst: Option::chunks_exact_mut
      Src: /src/image/src/imageops/filter_1d.rs:587,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:587,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:588,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:588,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:588,1
    - Dst: Option::min
      Src: /src/image/src/imageops/filter_1d.rs:603,1
    - Dst: make_arena_row::<T, N>
      Src: /src/image/src/imageops/filter_1d.rs:606,1
    - Dst: '&[I]::len'
      Src: /src/image/src/imageops/filter_1d.rs:612,1
    - Dst: filter_symmetric_row::<T, I, N>
      Src: /src/image/src/imageops/filter_1d.rs:617,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:628,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:628,1
    - Dst: filter_symmetric_column::<T, I, N>
      Src: /src/image/src/imageops/filter_1d.rs:637,1
    - Dst: Ok
      Src: /src/image/src/imageops/filter_1d.rs:644,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: 645
      start: 532
    functionDepth: 14
    functionLinenumber: 532
    functionLinenumberEnd: 645
    functionName: filter_2d_separable_ring_queue
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - Option::min
    - iter
    - '&RgbaImage::split_at_mut'
    - filter_symmetric_column::<T, I, N>
    - enumerate
    - '&[I]::len'
    - take
    - safe_add
    - make_arena_row::<T, N>
    - filter_symmetric_row::<T, I, N>
    - Ok
    - zip
    - iter_mut
    - Option::chunks_exact_mut
    - max
    - safe_mul
    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:683,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/filter_1d.rs:683,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/filter_1d.rs:683,1
    - Dst: Err
      Src: /src/image/src/imageops/filter_1d.rs:684,1
    - Dst: ImageError::Limits
      Src: /src/image/src/imageops/filter_1d.rs:684,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/imageops/filter_1d.rs:684,1
    - Dst: '&mut [T]::len'
      Src: /src/image/src/imageops/filter_1d.rs:688,1
    - Dst: Vec::len
      Src: /src/image/src/imageops/filter_1d.rs:688,1
    - Dst: Err
      Src: /src/image/src/imageops/filter_1d.rs:689,1
    - Dst: ImageError::Limits
      Src: /src/image/src/imageops/filter_1d.rs:689,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/imageops/filter_1d.rs:689,1
    - Dst: '&[F]::iter'
      Src: /src/image/src/imageops/filter_1d.rs:701,1
    - Dst: map
      Src: /src/image/src/imageops/filter_1d.rs:701,1
    - Dst: T::transform
      Src: /src/image/src/imageops/filter_1d.rs:703,1
    - Dst: "iter()\n        .map(|&x| T::transform(x))\n        .collect::<Vec<I>>"
      Src: /src/image/src/imageops/filter_1d.rs:701,1
    - Dst: '&[F]::iter'
      Src: /src/image/src/imageops/filter_1d.rs:705,1
    - Dst: map
      Src: /src/image/src/imageops/filter_1d.rs:705,1
    - Dst: T::transform
      Src: /src/image/src/imageops/filter_1d.rs:707,1
    - Dst: "iter()\n        .map(|&x| T::transform(x))\n        .collect::<Vec<I>>"
      Src: /src/image/src/imageops/filter_1d.rs:705,1
    - Dst: prepare_symmetric_kernel
      Src: /src/image/src/imageops/filter_1d.rs:710,1
    - Dst: prepare_symmetric_kernel
      Src: /src/image/src/imageops/filter_1d.rs:711,1
    - Dst: is_empty
      Src: /src/image/src/imageops/filter_1d.rs:713,1
    - Dst: is_empty
      Src: /src/image/src/imageops/filter_1d.rs:713,1
    - Dst: '&mut [T]::copy_from_slice'
      Src: /src/image/src/imageops/filter_1d.rs:714,1
    - Dst: Ok
      Src: /src/image/src/imageops/filter_1d.rs:715,1
    - Dst: '&[F]::len'
      Src: /src/image/src/imageops/filter_1d.rs:718,1
    - Dst: filter_2d_separable_ring_queue::<T, I, N>
      Src: /src/image/src/imageops/filter_1d.rs:719,1
    - Dst: len
      Src: /src/image/src/imageops/filter_1d.rs:728,1
    - Dst: max
      Src: /src/image/src/imageops/filter_1d.rs:728,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/filter_1d.rs:735,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:735,1
    - Dst: make_arena_row::<T, N>
      Src: /src/image/src/imageops/filter_1d.rs:746,1
    - Dst: len
      Src: /src/image/src/imageops/filter_1d.rs:752,1
    - Dst: filter_symmetric_row::<T, I, N>
      Src: /src/image/src/imageops/filter_1d.rs:757,1
    - Dst: len
      Src: /src/image/src/imageops/filter_1d.rs:762,1
    - Dst: make_columns_arenas::<T, N>
      Src: /src/image/src/imageops/filter_1d.rs:773,1
    - Dst: as_slice
      Src: /src/image/src/imageops/filter_1d.rs:773,1
    - Dst: as_slice
      Src: /src/image/src/imageops/filter_1d.rs:775,1
    - Dst: as_slice
      Src: /src/image/src/imageops/filter_1d.rs:776,1
    - Dst: as_slice
      Src: /src/image/src/imageops/filter_1d.rs:780,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:784,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:784,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:790,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:790,1
    - Dst: as_slice
      Src: /src/image/src/imageops/filter_1d.rs:802,1
    - Dst: filter_symmetric_column::<T, I, N>
      Src: /src/image/src/imageops/filter_1d.rs:804,1
    - Dst: Ok
      Src: /src/image/src/imageops/filter_1d.rs:807,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: 808
      start: 660
    functionDepth: 14
    functionLinenumber: 660
    functionLinenumberEnd: 808
    functionName: filter_2d_separable
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - T::transform
    - filter_2d_separable_ring_queue::<T, I, N>
    - make_columns_arenas::<T, N>
    - filter_symmetric_column::<T, I, N>
    - '&mut [T]::len'
    - chunks_exact_mut
    - map
    - ImageError::Limits
    - zip
    - '&mut [T]::chunks_exact_mut'
    - '&[F]::iter'
    - "iter()\n        .map(|&x| T::transform(x))\n        .collect::<Vec<I>>"
    - Err
    - make_arena_row::<T, N>
    - LimitError::from_kind
    - iter_mut
    - max
    - is_empty
    - '&[F]::len'
    - len
    - prepare_symmetric_kernel
    - enumerate
    - as_slice
    - Vec::len
    - '&mut [T]::copy_from_slice'
    - filter_symmetric_row::<T, I, N>
    - Ok
    - safe_mul
    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:817,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: 824
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 824
    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:833,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: 840
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 840
    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:849,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: 856
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 856
    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:865,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: 872
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 872
    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:881,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: 888
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 888
    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:897,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: 904
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 904
    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:913,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: 920
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 920
    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:929,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: 936
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 936
    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:945,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: 952
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 952
    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:961,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: 968
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 968
    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:977,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: 984
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 984
    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:993,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: 1000
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 1000
    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:
    - <P as Pixel>::from_slice
    - drive_unindexed
    - map
    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: 15
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: PixelsPar::opt_len
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - PixelsPar::len
    - Some
    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:
    - <P as Pixel>::from_slice
    - drive
    - map
    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: 2
    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:
    - <P as Pixel>::from_slice
    - with_producer
    - map
    linkageType: ''
    returnType: CB::Output
    signature: 'fn with_producer<CB: ProducerCallback<Self::Item>>(self, callback:
      CB) -> CB::Output'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::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:
    - Result::debug_struct
    - finish
    - field
    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:
    - <P as Pixel>::from_slice_mut
    - drive_unindexed
    - map
    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: 15
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: PixelsMutPar::opt_len
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - PixelsMutPar::len
    - Some
    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:
    - <P as Pixel>::from_slice_mut
    - drive
    - map
    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: 2
    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:
    - <P as Pixel>::from_slice_mut
    - with_producer
    - map
    linkageType: ''
    returnType: CB::Output
    signature: 'fn with_producer<CB: ProducerCallback<Self::Item>>(self, callback:
      CB) -> CB::Output'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::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:
    - Result::debug_struct
    - finish
    - field
    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:
    - drive_unindexed
    - enumerate
    - map
    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: 15
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: EnumeratePixelsPar::opt_len
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - EnumeratePixelsPar::len
    - Some
    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:
    - drive
    - enumerate
    - map
    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:
    - with_producer
    - enumerate
    - map
    linkageType: ''
    returnType: CB::Output
    signature: 'fn with_producer<CB: ProducerCallback<Self::Item>>(self, callback:
      CB) -> CB::Output'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::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:
    - Result::debug_struct
    - finish
    - field
    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:
    - drive_unindexed
    - enumerate
    - map
    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: 15
    functionLinenumber: 260
    functionLinenumberEnd: 262
    functionName: EnumeratePixelsMutPar::opt_len
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - EnumeratePixelsMutPar::len
    - Some
    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:
    - drive
    - enumerate
    - map
    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:
    - with_producer
    - enumerate
    - map
    linkageType: ''
    returnType: CB::Output
    signature: 'fn with_producer<CB: ProducerCallback<Self::Item>>(self, callback:
      CB) -> CB::Output'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::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:
    - Result::debug_struct
    - finish
    - field
    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: 2
    functionLinenumber: 324
    functionLinenumberEnd: 330
    functionName: ImageBuffer::par_pixels
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 1
    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: 3
    functionLinenumber: 336
    functionLinenumberEnd: 341
    functionName: ImageBuffer::par_enumerate_pixels
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::par_pixels
    - ImageBuffer::width
    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: 2
    functionLinenumber: 354
    functionLinenumberEnd: 360
    functionName: ImageBuffer::par_pixels_mut
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 1
    functionsReached:
    - '&mut [P::Subpixel]::par_chunks_exact_mut'
    - ImageBuffer::inner_pixels_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: 3
    functionLinenumber: 366
    functionLinenumberEnd: 372
    functionName: ImageBuffer::par_enumerate_pixels_mut
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::par_pixels_mut
    - ImageBuffer::width
    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: std::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: 16
    functionLinenumber: 388
    functionLinenumberEnd: 398
    functionName: ImageBuffer::from_par_fn
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::par_enumerate_pixels_mut
    - f
    - EnumeratePixelsMutPar::for_each
    - ImageBuffer::new
    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:1853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1859
      start: 1852
    functionDepth: 13
    functionLinenumber: 1852
    functionLinenumberEnd: 1859
    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:1863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1869
      start: 1862
    functionDepth: 13
    functionLinenumber: 1862
    functionLinenumberEnd: 1869
    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:1873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1872
    functionDepth: 13
    functionLinenumber: 1872
    functionLinenumberEnd: 1879
    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: 17
    functionLinenumber: 431
    functionLinenumberEnd: 455
    functionName: test::iter_parity
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - Rgb
    - ImageBuffer::clone
    - RgbImage::from_fn
    - std::array::from_fn
    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: 17
    functionLinenumber: 466
    functionLinenumberEnd: 475
    functionName: benchmarks::creation
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - iter
    - test::black_box
    - RgbImage::from_fn
    - Option::as_raw
    - '&Container::len'
    - pixel_func
    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: 17
    functionLinenumber: 478
    functionLinenumberEnd: 487
    functionName: benchmarks::creation_par
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - iter
    - RgbImage::from_par_fn
    - test::black_box
    - '&Container::len'
    - Option::as_raw
    - pixel_func
    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:
    - finish
    - Rgb
    - RandomState::new
    - Self::build_hasher
    - 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: 12
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: GenericImageView::width
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 1
    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: 12
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: GenericImageView::height
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 1
    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: 12
    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: 12
    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:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - x
    - y
    - width
    - height
    argTypes:
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 90
    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: u64::from
      Src: /src/image/src/images/generic_image.rs:104,1
    - Dst: u64::from
      Src: /src/image/src/images/generic_image.rs:104,1
    - Dst: u64::from
      Src: /src/image/src/images/generic_image.rs:104,1
    - Dst: GenericImageView::width
      Src: /src/image/src/images/generic_image.rs:104,1
    - Dst: u64::from
      Src: /src/image/src/images/generic_image.rs:105,1
    - Dst: u64::from
      Src: /src/image/src/images/generic_image.rs:105,1
    - Dst: u64::from
      Src: /src/image/src/images/generic_image.rs:105,1
    - Dst: GenericImageView::height
      Src: /src/image/src/images/generic_image.rs:105,1
    - Dst: Err
      Src: /src/image/src/images/generic_image.rs:107,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/images/generic_image.rs:107,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/images/generic_image.rs:107,1
    - Dst: Ok
      Src: /src/image/src/images/generic_image.rs:111,1
    - Dst: SubImage::new
      Src: /src/image/src/images/generic_image.rs:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 4
    argNames:
    - x
    - y
    - width
    - height
    argTypes:
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 113
      start: 94
    functionDepth: 12
    functionLinenumber: 94
    functionLinenumberEnd: 113
    functionName: GenericImageView::try_view
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - u64::from
    - ImageError::Parameter
    - Err
    - SubImage::new
    - GenericImageView::height
    - Ok
    - ParameterError::from_kind
    - GenericImageView::width
    linkageType: ''
    returnType: Result
    signature: 'fn try_view(&self,x: u32,y: u32,width: u32,height: u32,) -> Result<SubImage<&Self>,
      ImageError>whereSelf: Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericImageView::dimensions
      Src: /src/image/src/images/generic_image.rs:124,1
    - Dst: GenericImageView::buffer_with_dimensions
      Src: /src/image/src/images/generic_image.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 12
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: GenericImageView::buffer_like
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - GenericImageView::buffer_with_dimensions
    - GenericImageView::dimensions
    linkageType: ''
    returnType: ImageBuffer
    signature: fn buffer_like(&self) -> ImageBuffer<Self::Pixel, Vec<<Self::Pixel
      as Pixel>::Subpixel>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/generic_image.rs:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: GenericImageView::buffer_with_dimensions
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 1
    functionsReached:
    - ImageBuffer::new
    linkageType: ''
    returnType: ImageBuffer
    signature: 'fn buffer_with_dimensions(&self,width: u32,height: u32,) -> ImageBuffer<Self::Pixel,
      Vec<<Self::Pixel as Pixel>::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/image/src/images/buffer.rs:40,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:40,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/images/buffer.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 14
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Pixels::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - <P as Pixel>::from_slice
    - next
    - map
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<&'a P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/buffer.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 74
    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:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - Self::Pixel
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 223
    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:253,1
    - Dst: '&O::width'
      Src: /src/image/src/images/generic_image.rs:253,1
    - Dst: GenericImage::height
      Src: /src/image/src/images/generic_image.rs:253,1
    - Dst: '&O::height'
      Src: /src/image/src/images/generic_image.rs:253,1
    - Dst: Err
      Src: /src/image/src/images/generic_image.rs:254,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/images/generic_image.rs:254,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/images/generic_image.rs:254,1
    - Dst: '&O::height'
      Src: /src/image/src/images/generic_image.rs:259,1
    - Dst: '&O::width'
      Src: /src/image/src/images/generic_image.rs:260,1
    - Dst: '&O::get_pixel'
      Src: /src/image/src/images/generic_image.rs:261,1
    - Dst: GenericImage::put_pixel
      Src: /src/image/src/images/generic_image.rs:262,1
    - Dst: Ok
      Src: /src/image/src/images/generic_image.rs:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 3
    argNames:
    - other
    - x
    - y
    argTypes:
    - '&O'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 266
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 266
    functionName: GenericImage::copy_from
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - '&O::get_pixel'
    - '&O::height'
    - ImageError::Parameter
    - '&O::width'
    - GenericImage::width
    - GenericImage::height
    - Err
    - GenericImage::put_pixel
    - Ok
    - ParameterError::from_kind
    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:286,1
    - Dst: u32::max
      Src: /src/image/src/images/generic_image.rs:286,1
    - Dst: GenericImage::height
      Src: /src/image/src/images/generic_image.rs:286,1
    - Dst: ImageResult::max
      Src: /src/image/src/images/generic_image.rs:286,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - source
    - x
    - y
    argTypes:
    - Rect
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 313
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 313
    functionName: GenericImage::copy_within
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - GenericImage::width
    - ImageResult::max
    - u32::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:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - x
    - y
    - width
    - height
    argTypes:
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 325
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 325
    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:340,1
    - Dst: put_pixel
      Src: /src/image/src/images/generic_image.rs:341,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:341,1
    - Dst: blend_pixel
      Src: /src/image/src/images/generic_image.rs:343,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:343,1
    - Dst: blend_pixel
      Src: /src/image/src/images/generic_image.rs:347,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:347,1
    - Dst: put_pixel
      Src: /src/image/src/images/generic_image.rs:351,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:351,1
    - Dst: blend_pixel
      Src: /src/image/src/images/generic_image.rs:352,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 354
      start: 339
    functionDepth: 16
    functionLinenumber: 339
    functionLinenumberEnd: 354
    functionName: tests::test_image_alpha_blending
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - put_pixel
    - Rgba
    - blend_pixel
    - ImageBuffer::new
    linkageType: ''
    returnType: void
    signature: fn test_image_alpha_blending()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/generic_image.rs:358,1
    - Dst: put_pixel
      Src: /src/image/src/images/generic_image.rs:359,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 369
    functionName: tests::test_in_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - put_pixel
    - Rgba
    - ImageBuffer::new
    linkageType: ''
    returnType: void
    signature: fn test_in_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/generic_image.rs:373,1
    - Dst: Option::put_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::clone
      Src: /src/image/src/images/generic_image.rs:377,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:380,1
    - Dst: SubImage::to_image
      Src: /src/image/src/images/generic_image.rs:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 383
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 383
    functionName: tests::test_can_subimage_clone_nonmut
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - SubImage::to_image
    - Rgba
    - Option::view
    - 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:387,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:387,1
    - Dst: Option::sub_image
      Src: /src/image/src/images/generic_image.rs:390,1
    - Dst: SubImage::sub_image
      Src: /src/image/src/images/generic_image.rs:391,1
    - Dst: SubImage::put_pixel
      Src: /src/image/src/images/generic_image.rs:392,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:392,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:397,1
    - Dst: SubImage::view
      Src: /src/image/src/images/generic_image.rs:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 402
      start: 386
    functionDepth: 3
    functionLinenumber: 386
    functionLinenumberEnd: 402
    functionName: tests::test_can_nest_views
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - SubImage::view
    - Option::sub_image
    - Rgba
    - Option::view
    - ImageBuffer::from_pixel
    - SubImage::sub_image
    - SubImage::put_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:407,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:407,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: tests::test_view_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_pixel
    - Option::view
    - Rgba
    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:414,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:414,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 3
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: tests::test_view_coordinates_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_pixel
    - Option::view
    - Rgba
    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:421,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:421,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 423
      start: 420
    functionDepth: 3
    functionLinenumber: 420
    functionLinenumberEnd: 423
    functionName: tests::test_view_width_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_pixel
    - Option::view
    - Rgba
    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:428,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:428,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: tests::test_view_height_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_pixel
    - Option::view
    - Rgba
    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:435,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:435,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 437
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 437
    functionName: tests::test_view_x_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_pixel
    - Option::view
    - Rgba
    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:442,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:442,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 444
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 444
    functionName: tests::test_view_y_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_pixel
    - Option::view
    - Rgba
    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:448,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:448,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:449,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:450,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 452
      start: 447
    functionDepth: 3
    functionLinenumber: 447
    functionLinenumberEnd: 452
    functionName: tests::test_view_in_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_pixel
    - Option::view
    - Rgba
    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:456,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:456,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:457,1
    - Dst: SubImage::to_image
      Src: /src/image/src/images/generic_image.rs:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 460
    functionName: tests::test_copy_sub_image
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_pixel
    - SubImage::to_image
    - Option::view
    - Rgba
    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:464,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 535
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 535
    functionName: tests::test_generic_image_copy_within_oob
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    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: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_tl
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Vec::from
    - ImageBuffer::from_raw
    - Option::unwrap
    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:559,1
    - Dst: Vec::from
      Src: /src/image/src/images/generic_image.rs:559,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 571
      start: 556
    functionDepth: 3
    functionLinenumber: 556
    functionLinenumberEnd: 571
    functionName: tests::test_generic_image_copy_within_tr
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Vec::from
    - ImageBuffer::from_raw
    - Option::unwrap
    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:577,1
    - Dst: Vec::from
      Src: /src/image/src/images/generic_image.rs:577,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 589
      start: 574
    functionDepth: 3
    functionLinenumber: 574
    functionLinenumberEnd: 589
    functionName: tests::test_generic_image_copy_within_bl
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Vec::from
    - ImageBuffer::from_raw
    - Option::unwrap
    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:595,1
    - Dst: Vec::from
      Src: /src/image/src/images/generic_image.rs:595,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 607
      start: 592
    functionDepth: 3
    functionLinenumber: 592
    functionLinenumberEnd: 607
    functionName: tests::test_generic_image_copy_within_br
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Vec::from
    - ImageBuffer::from_raw
    - Option::unwrap
    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: 134
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 134
    functionName: dynamic_map
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: DynamicImage::clone
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:143,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:144,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:145,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:146,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:147,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:148,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:149,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:150,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:151,1
    - Dst: clone_from
      Src: /src/image/src/images/dynimage.rs:152,1
    - Dst: Option::clone
      Src: /src/image/src/images/dynimage.rs:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - source
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 155
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 155
    functionName: DynamicImage::clone_from
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - clone_from
    - Option::clone
    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:167,1
    - Dst: Self::new_luma_a8
      Src: /src/image/src/images/dynimage.rs:168,1
    - Dst: Self::new_rgb8
      Src: /src/image/src/images/dynimage.rs:169,1
    - Dst: Self::new_rgba8
      Src: /src/image/src/images/dynimage.rs:170,1
    - Dst: Self::new_luma16
      Src: /src/image/src/images/dynimage.rs:171,1
    - Dst: Self::new_luma_a16
      Src: /src/image/src/images/dynimage.rs:172,1
    - Dst: Self::new_rgb16
      Src: /src/image/src/images/dynimage.rs:173,1
    - Dst: Self::new_rgba16
      Src: /src/image/src/images/dynimage.rs:174,1
    - Dst: Self::new_rgb32f
      Src: /src/image/src/images/dynimage.rs:175,1
    - Dst: Self::new_rgba32f
      Src: /src/image/src/images/dynimage.rs:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - w
    - h
    - color
    argTypes:
    - u32
    - u32
    - color::ColorType
    constantsTouched: []
    func_position:
      end: 178
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 178
    functionName: DynamicImage::new
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 15
    functionsReached:
    - Self::new_luma_a16
    - Self::new_rgb16
    - Self::new_rgb8
    - Self::new_luma16
    - Self::new_luma8
    - Self::new_rgba16
    - Self::new_rgba32f
    - Self::new_rgb32f
    - Self::new_rgba8
    - 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: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: 2
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: DynamicImage::new_luma8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 4
    functionsReached:
    - ImageBuffer::new
    - DynamicImage::ImageLuma8
    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: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: 2
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: DynamicImage::new_luma_a8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    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: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: 2
    functionLinenumber: 195
    functionLinenumberEnd: 197
    functionName: DynamicImage::new_rgb8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 2
    functionsReached:
    - DynamicImage::ImageRgb8
    - ImageBuffer::new
    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: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: 2
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: DynamicImage::new_rgba8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    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: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: 2
    functionLinenumber: 207
    functionLinenumberEnd: 209
    functionName: DynamicImage::new_luma16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 3
    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:215,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: DynamicImage::new_luma_a16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    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:221,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: DynamicImage::new_rgb16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - ImageBuffer::new
    - DynamicImage::ImageRgb16
    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:227,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: DynamicImage::new_rgba16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    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:233,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: DynamicImage::new_rgb32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 2
    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:239,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: DynamicImage::new_rgba32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    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:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - impl ImageDecoder
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 13
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: DynamicImage::from_decoder
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 7
    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: 273
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 273
    functionName: DynamicImage::to
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    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: clone
      Src: /src/image/src/images/dynimage.rs:279,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: DynamicImage::to_rgb8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: RgbImage
    signature: pub fn to_rgb8(&self) -> RgbImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:288,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: DynamicImage::to_rgb16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: Rgb16Image
    signature: pub fn to_rgb16(&self) -> Rgb16Image
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:297,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: DynamicImage::to_rgb32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: Rgb32FImage
    signature: pub fn to_rgb32f(&self) -> Rgb32FImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:306,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 309
    functionName: DynamicImage::to_rgba8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: RgbaImage
    signature: pub fn to_rgba8(&self) -> RgbaImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:315,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 318
    functionName: DynamicImage::to_rgba16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: Rgba16Image
    signature: pub fn to_rgba16(&self) -> Rgba16Image
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:324,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 327
    functionName: DynamicImage::to_rgba32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: Rgba32FImage
    signature: pub fn to_rgba32f(&self) -> Rgba32FImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:333,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 336
    functionName: DynamicImage::to_luma8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: GrayImage
    signature: pub fn to_luma8(&self) -> GrayImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:342,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 345
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 345
    functionName: DynamicImage::to_luma16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: Gray16Image
    signature: pub fn to_luma16(&self) -> Gray16Image
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: DynamicImage::to_luma32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ImageBuffer
    signature: pub fn to_luma32f(&self) -> ImageBuffer<Luma<f32>, Vec<f32>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:357,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 360
    functionName: DynamicImage::to_luma_alpha8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: GrayAlphaImage
    signature: pub fn to_luma_alpha8(&self) -> GrayAlphaImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:366,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 369
    functionName: DynamicImage::to_luma_alpha16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: GrayAlpha16Image
    signature: pub fn to_luma_alpha16(&self) -> GrayAlpha16Image
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 375
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 375
    functionName: DynamicImage::to_luma_alpha32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    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:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 387
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 387
    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:397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 399
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 399
    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:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 411
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 411
    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:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 423
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 423
    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:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 435
    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:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 442
    functionDepth: 3
    functionLinenumber: 442
    functionLinenumberEnd: 447
    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:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 459
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 459
    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:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 471
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 471
    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:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 483
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 483
    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:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 495
    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: 504
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 504
    functionName: DynamicImage::crop
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    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: 510
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 510
    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:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 519
    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:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 527
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 527
    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:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 536
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 536
    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:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 544
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 544
    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:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 553
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 553
    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:558,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 561
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 561
    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:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 570
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 570
    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:575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 578
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 578
    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:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 587
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 587
    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:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 595
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 595
    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:601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 604
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 604
    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:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 612
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 612
    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:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 621
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 621
    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:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 629
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 629
    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:635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 638
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 638
    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:643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 646
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 646
    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:652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 655
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 655
    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:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 663
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 663
    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:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 672
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 672
    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:677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 680
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 680
    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:686,1
    - Dst: Result::as_flat_samples
      Src: /src/image/src/images/dynimage.rs:686,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:687,1
    - Dst: Result::as_flat_samples
      Src: /src/image/src/images/dynimage.rs:687,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:688,1
    - Dst: Result::as_flat_samples
      Src: /src/image/src/images/dynimage.rs:688,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:689,1
    - Dst: Result::as_flat_samples
      Src: /src/image/src/images/dynimage.rs:689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 692
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 692
    functionName: DynamicImage::as_flat_samples_u8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Result::as_flat_samples
    - Some
    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:698,1
    - Dst: Result::as_flat_samples
      Src: /src/image/src/images/dynimage.rs:698,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:699,1
    - Dst: Result::as_flat_samples
      Src: /src/image/src/images/dynimage.rs:699,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:700,1
    - Dst: Result::as_flat_samples
      Src: /src/image/src/images/dynimage.rs:700,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:701,1
    - Dst: Result::as_flat_samples
      Src: /src/image/src/images/dynimage.rs:701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 704
      start: 696
    functionDepth: 3
    functionLinenumber: 696
    functionLinenumberEnd: 704
    functionName: DynamicImage::as_flat_samples_u16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Result::as_flat_samples
    - Some
    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:710,1
    - Dst: Result::as_flat_samples
      Src: /src/image/src/images/dynimage.rs:710,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:711,1
    - Dst: Result::as_flat_samples
      Src: /src/image/src/images/dynimage.rs:711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 714
      start: 708
    functionDepth: 3
    functionLinenumber: 708
    functionLinenumberEnd: 714
    functionName: DynamicImage::as_flat_samples_f32
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Result::as_flat_samples
    - Some
    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: 725
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 725
    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: 746
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 746
    functionName: DynamicImage::into_bytes
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    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: 763
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 763
    functionName: DynamicImage::color
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 3
    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: 769
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 769
    functionName: DynamicImage::width
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 5
    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: 775
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 775
    functionName: DynamicImage::height
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn height(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - color
    argTypes:
    - CicpColorPrimaries
    constantsTouched: []
    func_position:
      end: 789
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 789
    functionName: DynamicImage::set_rgb_primaries
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    linkageType: ''
    returnType: void
    signature: 'pub fn set_rgb_primaries(&mut self, color: CicpColorPrimaries)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tf
    argTypes:
    - CicpTransferCharacteristics
    constantsTouched: []
    func_position:
      end: 799
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 799
    functionName: DynamicImage::set_transfer_function
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    linkageType: ''
    returnType: void
    signature: 'pub fn set_transfer_function(&mut self, tf: CicpTransferCharacteristics)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 804
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 804
    functionName: DynamicImage::color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Cicp
    signature: pub fn color_space(&self) -> Cicp
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - cicp
    argTypes:
    - Cicp
    constantsTouched: []
    func_position:
      end: 812
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 812
    functionName: DynamicImage::set_color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn set_color_space(&mut self, cicp: Cicp) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::color
      Src: /src/image/src/images/dynimage.rs:824,1
    - Dst: color::ColorType::has_alpha
      Src: /src/image/src/images/dynimage.rs:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 825
      start: 823
    functionDepth: 1
    functionLinenumber: 823
    functionLinenumberEnd: 825
    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:833,1
    - Dst: Result::clone
      Src: /src/image/src/images/dynimage.rs:833,1
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/src/images/dynimage.rs:835,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/src/images/dynimage.rs:835,1
    - Dst: DynamicImage::ImageLuma8
      Src: /src/image/src/images/dynimage.rs:837,1
    - Dst: imageops::grayscale
      Src: /src/image/src/images/dynimage.rs:837,1
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/src/images/dynimage.rs:839,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/src/images/dynimage.rs:839,1
    - Dst: DynamicImage::ImageLuma16
      Src: /src/image/src/images/dynimage.rs:841,1
    - Dst: Result::clone
      Src: /src/image/src/images/dynimage.rs:841,1
    - Dst: DynamicImage::ImageLumaA16
      Src: /src/image/src/images/dynimage.rs:843,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/src/images/dynimage.rs:843,1
    - Dst: DynamicImage::ImageLuma16
      Src: /src/image/src/images/dynimage.rs:845,1
    - Dst: imageops::grayscale
      Src: /src/image/src/images/dynimage.rs:845,1
    - Dst: DynamicImage::ImageLumaA16
      Src: /src/image/src/images/dynimage.rs:847,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/src/images/dynimage.rs:847,1
    - Dst: DynamicImage::ImageRgb32F
      Src: /src/image/src/images/dynimage.rs:850,1
    - Dst: imageops::grayscale_with_type
      Src: /src/image/src/images/dynimage.rs:850,1
    - Dst: DynamicImage::ImageRgba32F
      Src: /src/image/src/images/dynimage.rs:853,1
    - Dst: imageops::grayscale_with_type_alpha
      Src: /src/image/src/images/dynimage.rs:853,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 856
      start: 831
    functionDepth: 14
    functionLinenumber: 831
    functionLinenumberEnd: 856
    functionName: DynamicImage::grayscale
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Result::clone
    - DynamicImage::ImageLumaA16
    - imageops::grayscale_with_type_alpha
    - DynamicImage::ImageRgb32F
    - imageops::grayscale
    - imageops::grayscale_with_type
    - DynamicImage::ImageLuma8
    - imageops::grayscale_alpha
    - DynamicImage::ImageLuma16
    - DynamicImage::ImageRgba32F
    - DynamicImage::ImageLumaA8
    linkageType: ''
    returnType: DynamicImage
    signature: pub fn grayscale(&self) -> DynamicImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 865
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 865
    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:876,1
    - Dst: DynamicImage::clone
      Src: /src/image/src/images/dynimage.rs:877,1
    - Dst: math::resize_dimensions
      Src: /src/image/src/images/dynimage.rs:880,1
    - Dst: DynamicImage::width
      Src: /src/image/src/images/dynimage.rs:880,1
    - Dst: DynamicImage::height
      Src: /src/image/src/images/dynimage.rs:880,1
    - Dst: DynamicImage::resize_exact
      Src: /src/image/src/images/dynimage.rs:882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - nwidth
    - nheight
    - filter
    argTypes:
    - u32
    - u32
    - imageops::FilterType
    constantsTouched: []
    func_position:
      end: 883
      start: 875
    functionDepth: 13
    functionLinenumber: 875
    functionLinenumberEnd: 883
    functionName: DynamicImage::resize
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::dimensions
    - math::resize_dimensions
    - DynamicImage::height
    - DynamicImage::resize_exact
    - DynamicImage::clone
    - DynamicImage::width
    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: 899
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 899
    functionName: DynamicImage::resize_exact
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 2
    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:915,1
    - Dst: DynamicImage::width
      Src: /src/image/src/images/dynimage.rs:915,1
    - Dst: DynamicImage::height
      Src: /src/image/src/images/dynimage.rs:915,1
    - Dst: DynamicImage::thumbnail_exact
      Src: /src/image/src/images/dynimage.rs:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - nwidth
    - nheight
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 917
      start: 913
    functionDepth: 13
    functionLinenumber: 913
    functionLinenumberEnd: 917
    functionName: DynamicImage::thumbnail
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::height
    - DynamicImage::thumbnail_exact
    - DynamicImage::width
    - math::resize_dimensions
    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: 931
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 931
    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:950,1
    - Dst: DynamicImage::width
      Src: /src/image/src/images/dynimage.rs:950,1
    - Dst: DynamicImage::height
      Src: /src/image/src/images/dynimage.rs:950,1
    - Dst: DynamicImage::resize_exact
      Src: /src/image/src/images/dynimage.rs:952,1
    - Dst: DynamicImage::dimensions
      Src: /src/image/src/images/dynimage.rs:953,1
    - Dst: u64::from
      Src: /src/image/src/images/dynimage.rs:954,1
    - Dst: u64::from
      Src: /src/image/src/images/dynimage.rs:954,1
    - Dst: u64::from
      Src: /src/image/src/images/dynimage.rs:955,1
    - Dst: u64::from
      Src: /src/image/src/images/dynimage.rs:955,1
    - Dst: DynamicImage::crop
      Src: /src/image/src/images/dynimage.rs:958,1
    - Dst: DynamicImage::crop
      Src: /src/image/src/images/dynimage.rs:960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 3
    argNames:
    - nwidth
    - nheight
    - filter
    argTypes:
    - u32
    - u32
    - imageops::FilterType
    constantsTouched: []
    func_position:
      end: 962
      start: 943
    functionDepth: 13
    functionLinenumber: 943
    functionLinenumberEnd: 962
    functionName: DynamicImage::resize_to_fill
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::dimensions
    - u64::from
    - math::resize_dimensions
    - DynamicImage::height
    - DynamicImage::resize_exact
    - DynamicImage::crop
    - DynamicImage::width
    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:981,1
    - Dst: GaussianBlurParameters::new_from_sigma
      Src: /src/image/src/images/dynimage.rs:983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sigma
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 985
      start: 980
    functionDepth: 15
    functionLinenumber: 980
    functionLinenumberEnd: 985
    functionName: DynamicImage::blur
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - imageops::gaussian_blur_dyn_image
    - GaussianBlurParameters::new_from_sigma
    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:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - parameters
    argTypes:
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1002
      start: 1000
    functionDepth: 15
    functionLinenumber: 1000
    functionLinenumberEnd: 1002
    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: 1018
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1018
    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: 1036
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1036
    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: 1052
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1052
    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: 1063
      start: 1061
    functionDepth: 0
    functionLinenumber: 1061
    functionLinenumberEnd: 1063
    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: 1074
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1074
    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: 1086
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1086
    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: 1094
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1094
    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: 1099
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1099
    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: 1107
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1107
    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: 1112
      start: 1110
    functionDepth: 0
    functionLinenumber: 1110
    functionLinenumberEnd: 1112
    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: 1118
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1118
    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: 1126
      start: 1124
    functionDepth: 0
    functionLinenumber: 1124
    functionLinenumberEnd: 1126
    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: 1131
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1131
    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: 1137
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1137
    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:1165,1
    - Dst: Vec::rotate180_in_place
      Src: /src/image/src/images/dynimage.rs:1166,1
    - Dst: Vec::rotate270
      Src: /src/image/src/images/dynimage.rs:1167,1
    - Dst: Vec::fliph_in_place
      Src: /src/image/src/images/dynimage.rs:1168,1
    - Dst: Vec::flipv_in_place
      Src: /src/image/src/images/dynimage.rs:1169,1
    - Dst: Vec::rotate90
      Src: /src/image/src/images/dynimage.rs:1171,1
    - Dst: ImageBuffer::fliph_in_place
      Src: /src/image/src/images/dynimage.rs:1172,1
    - Dst: Vec::rotate270
      Src: /src/image/src/images/dynimage.rs:1176,1
    - Dst: ImageBuffer::fliph_in_place
      Src: /src/image/src/images/dynimage.rs:1177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - orientation
    argTypes:
    - Orientation
    constantsTouched: []
    func_position:
      end: 1181
      start: 1161
    functionDepth: 13
    functionLinenumber: 1161
    functionLinenumberEnd: 1181
    functionName: DynamicImage::apply_orientation
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::fliph_in_place
    - Vec::flipv_in_place
    - Vec::rotate270
    - Vec::fliph_in_place
    - Vec::rotate90
    - Vec::rotate180_in_place
    linkageType: ''
    returnType: void
    signature: 'pub fn apply_orientation(&mut self, orientation: Orientation)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::color_space
      Src: /src/image/src/images/dynimage.rs:1209,1
    - Dst: '&DynamicImage::color_space'
      Src: /src/image/src/images/dynimage.rs:1209,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:1211,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1217,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1226,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1229,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1232,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1235,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1239,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1242,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1245,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1248,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1252,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1255,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1258,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1261,1
    - Dst: ConvertColorOptions::as_transform
      Src: /src/image/src/images/dynimage.rs:1271,1
    - Dst: '&DynamicImage::color_space'
      Src: /src/image/src/images/dynimage.rs:1271,1
    - Dst: DynamicImage::color_space
      Src: /src/image/src/images/dynimage.rs:1271,1
    - Dst: transform_dynamic
      Src: /src/image/src/images/dynimage.rs:1272,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 77
    argCount: 2
    argNames:
    - other
    - options
    argTypes:
    - '&DynamicImage'
    - ConvertColorOptions
    constantsTouched: []
    func_position:
      end: 1275
      start: 1203
    functionDepth: 16
    functionLinenumber: 1203
    functionLinenumberEnd: 1275
    functionName: DynamicImage::copy_from_color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::color_space
    - Option::copy_from_color_space
    - '&DynamicImage::color_space'
    - dynamic_map
    - Ok
    - ConvertColorOptions::as_transform
    - transform_dynamic
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn copy_from_color_space(&mut self,other: &DynamicImage,mut options:
      ConvertColorOptions,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::color_space
      Src: /src/image/src/images/dynimage.rs:1297,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1298,1
    - Dst: DynamicImage::clone
      Src: /src/image/src/images/dynimage.rs:1305,1
    - Dst: set_color_space
      Src: /src/image/src/images/dynimage.rs:1306,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1307,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1310,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - cicp
    - options
    argTypes:
    - Cicp
    - ConvertColorOptions
    constantsTouched: []
    func_position:
      end: 1311
      start: 1291
    functionDepth: 17
    functionLinenumber: 1291
    functionLinenumberEnd: 1311
    functionName: DynamicImage::apply_color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - DynamicImage::color_space
    - copy_from_color_space
    - set_color_space
    - Ok
    - DynamicImage::clone
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn apply_color_space(&mut self,cicp: Cicp,options: ConvertColorOptions,)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::color
      Src: /src/image/src/images/dynimage.rs:1332,1
    - Dst: DynamicImage::apply_color_space
      Src: /src/image/src/images/dynimage.rs:1333,1
    - Dst: Cicp::try_into_rgb
      Src: /src/image/src/images/dynimage.rs:1337,1
    - Dst: DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1338,1
    - Dst: DynamicImage::width
      Src: /src/image/src/images/dynimage.rs:1338,1
    - Dst: DynamicImage::height
      Src: /src/image/src/images/dynimage.rs:1338,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:1339,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1340,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 3
    argNames:
    - cicp
    - options
    - color
    argTypes:
    - Cicp
    - ConvertColorOptions
    - color::ColorType
    constantsTouched: []
    func_position:
      end: 1344
      start: 1326
    functionDepth: 18
    functionLinenumber: 1326
    functionLinenumberEnd: 1344
    functionName: DynamicImage::convert_color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - copy_from_color_space
    - DynamicImage::height
    - DynamicImage::color
    - DynamicImage::apply_color_space
    - dynamic_map
    - DynamicImage::new
    - Ok
    - Cicp::try_into_rgb
    - DynamicImage::width
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn convert_color_space(&mut self,cicp: Cicp,options: ConvertColorOptions,color:
      color::ColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::make_compatible_img
      Src: /src/image/src/images/dynimage.rs:1350,1
    - Dst: Option::as_ref
      Src: /src/image/src/images/dynimage.rs:1351,1
    - Dst: FlatSamples::unwrap_or
      Src: /src/image/src/images/dynimage.rs:1351,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/images/dynimage.rs:1353,1
    - Dst: Option::as_bytes
      Src: /src/image/src/images/dynimage.rs:1354,1
    - Dst: Option::width
      Src: /src/image/src/images/dynimage.rs:1355,1
    - Dst: Option::height
      Src: /src/image/src/images/dynimage.rs:1356,1
    - Dst: Option::color
      Src: /src/image/src/images/dynimage.rs:1357,1
    - Dst: bool::into
      Src: /src/image/src/images/dynimage.rs:1357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Box<dyn ImageEncoderBoxed + 'a>
    constantsTouched: []
    func_position:
      end: 1359
      start: 1346
    functionDepth: 12
    functionLinenumber: 1346
    functionLinenumberEnd: 1359
    functionName: DynamicImage::write_with_encoder_impl
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 3
    functionsReached:
    - Option::color
    - ImageResult::make_compatible_img
    - Option::height
    - bool::into
    - ImageResult::write_image
    - Option::as_ref
    - Option::width
    - Option::as_bytes
    - FlatSamples::unwrap_or
    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:1372,1
    - Dst: DynamicImage::write_with_encoder_impl
      Src: /src/image/src/images/dynimage.rs:1373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - w
    - format
    argTypes:
    - W
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1374
      start: 1371
    functionDepth: 13
    functionLinenumber: 1371
    functionLinenumberEnd: 1374
    functionName: DynamicImage::write_to
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::write_with_encoder_impl
    - io::free_functions::encoder_for_format
    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:1384,1
    - Dst: Box::new
      Src: /src/image/src/images/dynimage.rs:1384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - impl ImageEncoder
    constantsTouched: []
    func_position:
      end: 1385
      start: 1383
    functionDepth: 13
    functionLinenumber: 1383
    functionLinenumberEnd: 1385
    functionName: DynamicImage::write_with_encoder
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    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:1398,1
    - Dst: ImageResult::as_ref
      Src: /src/image/src/images/dynimage.rs:1398,1
    - Dst: DynamicImage::save_with_format
      Src: /src/image/src/images/dynimage.rs:1399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - Q
    constantsTouched: []
    func_position:
      end: 1400
      start: 1394
    functionDepth: 15
    functionLinenumber: 1394
    functionLinenumberEnd: 1400
    functionName: DynamicImage::save
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - ImageFormat::from_path
    - DynamicImage::save_with_format
    - ImageResult::as_ref
    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:1413,1
    - Dst: File::create
      Src: /src/image/src/images/dynimage.rs:1413,1
    - Dst: io::free_functions::encoder_for_format
      Src: /src/image/src/images/dynimage.rs:1414,1
    - Dst: DynamicImage::write_with_encoder_impl
      Src: /src/image/src/images/dynimage.rs:1415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - path
    - format
    argTypes:
    - Q
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1416
      start: 1409
    functionDepth: 13
    functionLinenumber: 1409
    functionLinenumberEnd: 1416
    functionName: DynamicImage::save_with_format
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - DynamicImage::write_with_encoder_impl
    - File::create
    - BufWriter::new
    - io::free_functions::encoder_for_format
    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:1487,1
    - Dst: Vec::convert
      Src: /src/image/src/images/dynimage.rs:1487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - image
    argTypes:
    - ImageBuffer<LumaA<f32>, Vec<f32>>
    constantsTouched: []
    func_position:
      end: 1488
      start: 1486
    functionDepth: 6
    functionLinenumber: 1486
    functionLinenumberEnd: 1488
    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: 1497
      start: 1495
    functionDepth: 0
    functionLinenumber: 1495
    functionLinenumberEnd: 1497
    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: 1501
      start: 1499
    functionDepth: 0
    functionLinenumber: 1499
    functionLinenumberEnd: 1501
    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: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1508,1
    - Dst: u8::to_luma
      Src: /src/image/src/images/dynimage.rs:1508,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1509,1
    - Dst: u8::to_luma_alpha
      Src: /src/image/src/images/dynimage.rs:1509,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1510,1
    - Dst: u8::to_rgb
      Src: /src/image/src/images/dynimage.rs:1510,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1511,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1512,1
    - Dst: u8::to_luma
      Src: /src/image/src/images/dynimage.rs:1512,1
    - Dst: T::into_color
      Src: /src/image/src/images/dynimage.rs:1512,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1514,1
    - Dst: u8::to_luma_alpha
      Src: /src/image/src/images/dynimage.rs:1514,1
    - Dst: into_color
      Src: /src/image/src/images/dynimage.rs:1514,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1516,1
    - Dst: u8::to_rgb
      Src: /src/image/src/images/dynimage.rs:1516,1
    - Dst: '[u8; 3]::into_color'
      Src: /src/image/src/images/dynimage.rs:1516,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1517,1
    - Dst: u8::into_color
      Src: /src/image/src/images/dynimage.rs:1517,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1518,1
    - Dst: u8::to_rgb
      Src: /src/image/src/images/dynimage.rs:1518,1
    - Dst: '[u8; 3]::into_color'
      Src: /src/image/src/images/dynimage.rs:1518,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1519,1
    - Dst: u8::into_color
      Src: /src/image/src/images/dynimage.rs:1519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - color::Rgba<u8>
    constantsTouched: []
    func_position:
      end: 1521
      start: 1506
    functionDepth: 15
    functionLinenumber: 1506
    functionLinenumberEnd: 1521
    functionName: DynamicImage::put_pixel
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - u8::to_luma
    - T::into_color
    - '[u8; 3]::into_color'
    - u8::to_rgb
    - Result::put_pixel
    - into_color
    - u8::into_color
    - u8::to_luma_alpha
    linkageType: ''
    returnType: void
    signature: 'fn put_pixel(&mut self, x: u32, y: u32, pixel: color::Rgba<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::blend_pixel
      Src: /src/image/src/images/dynimage.rs:1525,1
    - Dst: u8::to_luma
      Src: /src/image/src/images/dynimage.rs:1525,1
    - Dst: Result::blend_pixel
      Src: /src/image/src/images/dynimage.rs:1526,1
    - Dst: u8::to_luma_alpha
      Src: /src/image/src/images/dynimage.rs:1526,1
    - Dst: Result::blend_pixel
      Src: /src/image/src/images/dynimage.rs:1527,1
    - Dst: u8::to_rgb
      Src: /src/image/src/images/dynimage.rs:1527,1
    - Dst: Result::blend_pixel
      Src: /src/image/src/images/dynimage.rs:1528,1
    - Dst: Result::blend_pixel
      Src: /src/image/src/images/dynimage.rs:1530,1
    - Dst: u8::to_luma
      Src: /src/image/src/images/dynimage.rs:1530,1
    - Dst: T::into_color
      Src: /src/image/src/images/dynimage.rs:1530,1
    - Dst: Result::blend_pixel
      Src: /src/image/src/images/dynimage.rs:1533,1
    - Dst: u8::to_luma_alpha
      Src: /src/image/src/images/dynimage.rs:1533,1
    - Dst: into_color
      Src: /src/image/src/images/dynimage.rs:1533,1
    - Dst: Result::blend_pixel
      Src: /src/image/src/images/dynimage.rs:1535,1
    - Dst: u8::to_rgb
      Src: /src/image/src/images/dynimage.rs:1535,1
    - Dst: '[u8; 3]::into_color'
      Src: /src/image/src/images/dynimage.rs:1535,1
    - Dst: Result::blend_pixel
      Src: /src/image/src/images/dynimage.rs:1536,1
    - Dst: u8::into_color
      Src: /src/image/src/images/dynimage.rs:1536,1
    - Dst: Result::blend_pixel
      Src: /src/image/src/images/dynimage.rs:1538,1
    - Dst: u8::to_rgb
      Src: /src/image/src/images/dynimage.rs:1538,1
    - Dst: '[u8; 3]::into_color'
      Src: /src/image/src/images/dynimage.rs:1538,1
    - Dst: Result::blend_pixel
      Src: /src/image/src/images/dynimage.rs:1540,1
    - Dst: u8::into_color
      Src: /src/image/src/images/dynimage.rs:1540,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - color::Rgba<u8>
    constantsTouched: []
    func_position:
      end: 1542
      start: 1523
    functionDepth: 15
    functionLinenumber: 1523
    functionLinenumberEnd: 1542
    functionName: DynamicImage::blend_pixel
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - u8::to_luma
    - T::into_color
    - '[u8; 3]::into_color'
    - u8::to_rgb
    - Result::blend_pixel
    - into_color
    - u8::into_color
    - u8::to_luma_alpha
    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: 1547
      start: 1545
    functionDepth: 0
    functionLinenumber: 1545
    functionLinenumberEnd: 1547
    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:1552,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1551
    functionDepth: 1
    functionLinenumber: 1551
    functionLinenumberEnd: 1553
    functionName: DynamicImage::default
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - Self::ImageRgba8
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::dimensions
      Src: /src/image/src/images/dynimage.rs:1558,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/images/dynimage.rs:1559,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1563,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1564,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1564,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1568,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1569,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1569,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1573,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1574,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1574,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1578,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1579,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1579,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1583,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1584,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1584,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1588,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1589,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1589,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1593,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1594,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1594,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1598,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1599,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1599,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1603,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1604,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1604,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1608,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1609,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1609,1
    - Dst: ok_or_else
      Src: /src/image/src/images/dynimage.rs:1561,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/images/dynimage.rs:1613,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/images/dynimage.rs:1613,1
    - Dst: Vec::set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1621,1
    - Dst: Vec::set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1622,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1624,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 70
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - I
    constantsTouched: []
    func_position:
      end: 1625
      start: 1557
    functionDepth: 12
    functionLinenumber: 1557
    functionLinenumberEnd: 1625
    functionName: decoder_to_image
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - ImageResult::dimensions
    - ImageResult::color_type
    - ok_or_else
    - ImageError::Parameter
    - Vec::set_rgb_primaries
    - Option::map
    - Vec::set_transfer_function
    - Ok
    - free_functions::decoder_to_vec
    - ParameterError::from_kind
    - ImageBuffer::from_raw
    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:1636,1
    - Dst: decode
      Src: /src/image/src/images/dynimage.rs:1636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 1637
      start: 1632
    functionDepth: 17
    functionLinenumber: 1632
    functionLinenumberEnd: 1637
    functionName: open
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 35
    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:1648,1
    - Dst: into_dimensions
      Src: /src/image/src/images/dynimage.rs:1648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 1649
      start: 1644
    functionDepth: 17
    functionLinenumber: 1644
    functionLinenumberEnd: 1649
    functionName: image_dimensions
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    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:1666,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/images/dynimage.rs:1667,1
    - Dst: bool::into
      Src: /src/image/src/images/dynimage.rs:1667,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: 1668
      start: 1658
    functionDepth: 12
    functionLinenumber: 1658
    functionLinenumberEnd: 1668
    functionName: write_buffer_with_format
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - ImageResult::write_image
    - io::free_functions::encoder_for_format
    - bool::into
    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:1677,1
    - Dst: '&RgbaImage::as_ref'
      Src: /src/image/src/images/dynimage.rs:1677,1
    - Dst: load_from_memory_with_format
      Src: /src/image/src/images/dynimage.rs:1678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - impl AsRef<[u8]>
    constantsTouched: []
    func_position:
      end: 1679
      start: 1676
    functionDepth: 14
    functionLinenumber: 1676
    functionLinenumberEnd: 1679
    functionName: load_from_memory
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 3
    functionsReached:
    - load_from_memory_with_format
    - '&RgbaImage::as_ref'
    - free_functions::guess_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:1697,1
    - Dst: std::io::Result::as_ref
      Src: /src/image/src/images/dynimage.rs:1697,1
    - Dst: free_functions::load
      Src: /src/image/src/images/dynimage.rs:1698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - format
    argTypes:
    - impl AsRef<[u8]>
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1699
      start: 1690
    functionDepth: 15
    functionLinenumber: 1690
    functionLinenumberEnd: 1699
    functionName: load_from_memory_with_format
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 3
    functionsReached:
    - std::io::Result::as_ref
    - io::Cursor::new
    - 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:1706,1
    - Dst: crate::ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:1706,1
    - Dst: iter
      Src: /src/image/src/images/dynimage.rs:1707,1
    - Dst: to_luma8
      Src: /src/image/src/images/dynimage.rs:1707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1709
      start: 1705
    functionDepth: 4
    functionLinenumber: 1705
    functionLinenumberEnd: 1709
    functionName: bench::bench_conversion
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::ImageRgb8
    - iter
    - to_luma8
    - 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: 1722
      start: 1720
    functionDepth: 0
    functionLinenumber: 1720
    functionLinenumberEnd: 1722
    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:1728,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/dynimage.rs:1728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1726
    functionDepth: 18
    functionLinenumber: 1726
    functionLinenumberEnd: 1730
    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:1736,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/images/dynimage.rs:1736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1734
    functionDepth: 17
    functionLinenumber: 1734
    functionLinenumberEnd: 1738
    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:1751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - img
    argTypes:
    - super::DynamicImage
    constantsTouched: []
    func_position:
      end: 1752
      start: 1750
    functionDepth: 3
    functionLinenumber: 1750
    functionLinenumberEnd: 1752
    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:1755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - img
    argTypes:
    - super::DynamicImage
    constantsTouched: []
    func_position:
      end: 1756
      start: 1754
    functionDepth: 3
    functionLinenumber: 1754
    functionLinenumberEnd: 1756
    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:1760,1
    - Dst: super::DynamicImage::new_luma8
      Src: /src/image/src/images/dynimage.rs:1760,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1761,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1759
    functionDepth: 4
    functionLinenumber: 1759
    functionLinenumberEnd: 1762
    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:1766,1
    - Dst: super::DynamicImage::new_luma_a8
      Src: /src/image/src/images/dynimage.rs:1766,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1767,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1765
    functionDepth: 4
    functionLinenumber: 1765
    functionLinenumberEnd: 1768
    functionName: test::test_grayscale_luma_a8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new_luma_a8
    - test_grayscale_alpha_preserved
    - super::DynamicImage::new
    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:1772,1
    - Dst: super::DynamicImage::new_rgb8
      Src: /src/image/src/images/dynimage.rs:1772,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1773,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1771
    functionDepth: 4
    functionLinenumber: 1771
    functionLinenumberEnd: 1774
    functionName: test::test_grayscale_rgb8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new_rgb8
    - super::DynamicImage::new
    - 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:1778,1
    - Dst: super::DynamicImage::new_rgba8
      Src: /src/image/src/images/dynimage.rs:1778,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1779,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1777
    functionDepth: 4
    functionLinenumber: 1777
    functionLinenumberEnd: 1780
    functionName: test::test_grayscale_rgba8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - test_grayscale_alpha_preserved
    - super::DynamicImage::new_rgba8
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_rgba8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1784,1
    - Dst: super::DynamicImage::new_luma16
      Src: /src/image/src/images/dynimage.rs:1784,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1785,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1783
    functionDepth: 4
    functionLinenumber: 1783
    functionLinenumberEnd: 1786
    functionName: test::test_grayscale_luma16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - test_grayscale_alpha_discarded
    - super::DynamicImage::new_luma16
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_luma16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1790,1
    - Dst: super::DynamicImage::new_luma_a16
      Src: /src/image/src/images/dynimage.rs:1790,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1791,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1789
    functionDepth: 4
    functionLinenumber: 1789
    functionLinenumberEnd: 1792
    functionName: test::test_grayscale_luma_a16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - test_grayscale_alpha_preserved
    - super::DynamicImage::new_luma_a16
    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:1796,1
    - Dst: super::DynamicImage::new_rgb16
      Src: /src/image/src/images/dynimage.rs:1796,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1797,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1795
    functionDepth: 4
    functionLinenumber: 1795
    functionLinenumberEnd: 1798
    functionName: test::test_grayscale_rgb16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new_rgb16
    - super::DynamicImage::new
    - test_grayscale_alpha_discarded
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_rgb16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1802,1
    - Dst: super::DynamicImage::new_rgba16
      Src: /src/image/src/images/dynimage.rs:1802,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1803,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1804
      start: 1801
    functionDepth: 4
    functionLinenumber: 1801
    functionLinenumberEnd: 1804
    functionName: test::test_grayscale_rgba16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - test_grayscale_alpha_preserved
    - super::DynamicImage::new_rgba16
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_rgba16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1808,1
    - Dst: super::DynamicImage::new_rgb32f
      Src: /src/image/src/images/dynimage.rs:1808,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1809,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1807
    functionDepth: 4
    functionLinenumber: 1807
    functionLinenumberEnd: 1810
    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:1814,1
    - Dst: super::DynamicImage::new_rgba32f
      Src: /src/image/src/images/dynimage.rs:1814,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1815,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1813
    functionDepth: 4
    functionLinenumber: 1813
    functionLinenumberEnd: 1816
    functionName: test::test_grayscale_rgba32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - super::DynamicImage::new_rgba32f
    - 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: 1827
      start: 1819
    functionDepth: 0
    functionLinenumber: 1819
    functionLinenumberEnd: 1827
    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:1831,1
    - Dst: DynamicImage::into_bytes
      Src: /src/image/src/images/dynimage.rs:1831,1
    - Dst: super::DynamicImage::new_luma16
      Src: /src/image/src/images/dynimage.rs:1832,1
    - Dst: DynamicImage::into_bytes
      Src: /src/image/src/images/dynimage.rs:1832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1830
    functionDepth: 3
    functionLinenumber: 1830
    functionLinenumberEnd: 1833
    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: ImageBuffer::from_vec
      Src: /src/image/src/images/dynimage.rs:1838,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/dynimage.rs:1838,1
    - Dst: super::DynamicImage::ImageLuma16
      Src: /src/image/src/images/dynimage.rs:1840,1
    - Dst: Option::into_bytes
      Src: /src/image/src/images/dynimage.rs:1843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1836
    functionDepth: 4
    functionLinenumber: 1836
    functionLinenumberEnd: 1845
    functionName: test::issue_1705_can_turn_16bit_image_into_bytes
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_vec
    - Option::into_bytes
    - super::DynamicImage::ImageLuma16
    - Option::unwrap
    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:1850,1
    - Dst: super::DynamicImage::new_luma16
      Src: /src/image/src/images/dynimage.rs:1851,1
    - Dst: DynamicImage::to
      Src: /src/image/src/images/dynimage.rs:1855,1
    - Dst: to::<Luma<u16>>
      Src: /src/image/src/images/dynimage.rs:1859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1848
    functionDepth: 3
    functionLinenumber: 1848
    functionLinenumberEnd: 1861
    functionName: test::test_convert_to
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - to::<Luma<u16>>
    - super::DynamicImage::new_luma8
    - DynamicImage::to
    - super::DynamicImage::new_luma16
    linkageType: ''
    returnType: void
    signature: fn test_convert_to()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb8
      Src: /src/image/src/images/dynimage.rs:1865,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1866,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:1866,1
    - Dst: super::DynamicImage::ImageRgba8
      Src: /src/image/src/images/dynimage.rs:1869,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1870,1
    - Dst: Rgba
      Src: /src/image/src/images/dynimage.rs:1870,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1870,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1873,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1874,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1875,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1876,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1878,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1878,1
    - Dst: as_rgba8
      Src: /src/image/src/images/dynimage.rs:1881,1
    - Dst: expect
      Src: /src/image/src/images/dynimage.rs:1881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1883
      start: 1864
    functionDepth: 17
    functionLinenumber: 1864
    functionLinenumberEnd: 1883
    functionName: test::color_conversion_srgb_p3
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - set_rgb_primaries
    - expect
    - Option::set_rgb_primaries
    - copy_from_color_space
    - super::DynamicImage::ImageRgb8
    - Default::default
    - Rgba
    - Rgb
    - as_rgba8
    - set_transfer_function
    - ImageBuffer::from_fn
    - Option::set_transfer_function
    - super::DynamicImage::ImageRgba8
    linkageType: ''
    returnType: void
    signature: fn color_conversion_srgb_p3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb16
      Src: /src/image/src/images/dynimage.rs:1887,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1888,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:1888,1
    - Dst: super::DynamicImage::ImageRgba8
      Src: /src/image/src/images/dynimage.rs:1891,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1892,1
    - Dst: Rgba
      Src: /src/image/src/images/dynimage.rs:1892,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1892,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1895,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1896,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1897,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1898,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1900,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1900,1
    - Dst: as_rgba8
      Src: /src/image/src/images/dynimage.rs:1903,1
    - Dst: expect
      Src: /src/image/src/images/dynimage.rs:1903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1886
    functionDepth: 17
    functionLinenumber: 1886
    functionLinenumberEnd: 1905
    functionName: test::color_conversion_preserves_sample
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - set_rgb_primaries
    - expect
    - Option::set_rgb_primaries
    - copy_from_color_space
    - super::DynamicImage::ImageRgb16
    - Default::default
    - Rgba
    - Rgb
    - as_rgba8
    - set_transfer_function
    - ImageBuffer::from_fn
    - Option::set_transfer_function
    - super::DynamicImage::ImageRgba8
    linkageType: ''
    returnType: void
    signature: fn color_conversion_preserves_sample()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb16
      Src: /src/image/src/images/dynimage.rs:1909,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1910,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:1910,1
    - Dst: super::DynamicImage::ImageRgba8
      Src: /src/image/src/images/dynimage.rs:1913,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1914,1
    - Dst: Rgba
      Src: /src/image/src/images/dynimage.rs:1914,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1914,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1918,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1918,1
    - Dst: as_rgba8
      Src: /src/image/src/images/dynimage.rs:1921,1
    - Dst: expect
      Src: /src/image/src/images/dynimage.rs:1921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1908
    functionDepth: 17
    functionLinenumber: 1908
    functionLinenumberEnd: 1923
    functionName: test::color_conversion_preserves_sample_in_fastpath
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - expect
    - copy_from_color_space
    - super::DynamicImage::ImageRgb16
    - Default::default
    - Rgba
    - Rgb
    - as_rgba8
    - ImageBuffer::from_fn
    - super::DynamicImage::ImageRgba8
    linkageType: ''
    returnType: void
    signature: fn color_conversion_preserves_sample_in_fastpath()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb16
      Src: /src/image/src/images/dynimage.rs:1927,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1928,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:1928,1
    - Dst: super::DynamicImage::ImageLuma8
      Src: /src/image/src/images/dynimage.rs:1931,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1932,1
    - Dst: Luma
      Src: /src/image/src/images/dynimage.rs:1932,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1932,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1936,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1936,1
    - Dst: as_luma8
      Src: /src/image/src/images/dynimage.rs:1940,1
    - Dst: expect
      Src: /src/image/src/images/dynimage.rs:1940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1926
    functionDepth: 17
    functionLinenumber: 1926
    functionLinenumberEnd: 1941
    functionName: test::color_conversion_rgb_to_luma
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - expect
    - copy_from_color_space
    - super::DynamicImage::ImageLuma8
    - super::DynamicImage::ImageRgb16
    - Rgb
    - ImageBuffer::from_fn
    - Luma
    - as_luma8
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn color_conversion_rgb_to_luma()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CicpTransform::new
      Src: /src/image/src/images/dynimage.rs:1959,1
    - Dst: Option::expect
      Src: /src/image/src/images/dynimage.rs:1959,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1963,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1964,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1966,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1967,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1969,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1970,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1972,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:1976,1
    - Dst: ImageResult::clone
      Src: /src/image/src/images/dynimage.rs:1976,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1977,1
    - Dst: expect
      Src: /src/image/src/images/dynimage.rs:1972,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1944
    functionDepth: 15
    functionLinenumber: 1944
    functionLinenumberEnd: 1983
    functionName: test::copy_color_space_coverage
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - Option::set_rgb_primaries
    - expect
    - copy_from_color_space
    - ImageResult::clone
    - Default::default
    - Some
    - Option::expect
    - set_transfer_function
    - CicpTransform::new
    - Option::set_transfer_function
    - set_rgb_primaries
    linkageType: ''
    returnType: void
    signature: fn copy_color_space_coverage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb8
      Src: /src/image/src/images/dynimage.rs:1987,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1988,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:1988,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:1991,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:1992,1
    - Dst: '&RgbaImage::apply_color_space'
      Src: /src/image/src/images/dynimage.rs:1994,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1995,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/dynimage.rs:1994,1
    - Dst: '&RgbaImage::as_rgb8'
      Src: /src/image/src/images/dynimage.rs:1998,1
    - Dst: Option::expect
      Src: /src/image/src/images/dynimage.rs:1998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1986
    functionDepth: 17
    functionLinenumber: 1986
    functionLinenumberEnd: 2000
    functionName: test::apply_color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::ImageRgb8
    - ImageResult::unwrap
    - '&RgbaImage::set_rgb_primaries'
    - Rgb
    - '&RgbaImage::set_transfer_function'
    - Option::expect
    - ImageBuffer::from_fn
    - '&RgbaImage::apply_color_space'
    - '&RgbaImage::as_rgb8'
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn apply_color_space()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CicpTransform::new
      Src: /src/image/src/images/dynimage.rs:2018,1
    - Dst: Option::expect
      Src: /src/image/src/images/dynimage.rs:2018,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:2021,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2023,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:2024,1
    - Dst: '&RgbaImage::apply_color_space'
      Src: /src/image/src/images/dynimage.rs:2026,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:2030,1
    - Dst: ImageResult::clone
      Src: /src/image/src/images/dynimage.rs:2030,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:2031,1
    - Dst: ImageResult::expect
      Src: /src/image/src/images/dynimage.rs:2026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 2003
    functionDepth: 15
    functionLinenumber: 2003
    functionLinenumberEnd: 2036
    functionName: test::apply_color_space_coverage
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - ImageResult::clone
    - Some
    - '&RgbaImage::set_rgb_primaries'
    - Option::expect
    - '&RgbaImage::set_transfer_function'
    - CicpTransform::new
    - '&RgbaImage::apply_color_space'
    - ImageResult::expect
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn apply_color_space_coverage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb16
      Src: /src/image/src/images/dynimage.rs:2040,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:2041,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:2041,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2044,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:2045,1
    - Dst: '&RgbaImage::convert_color_space'
      Src: /src/image/src/images/dynimage.rs:2047,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:2048,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/dynimage.rs:2047,1
    - Dst: '&RgbaImage::as_rgb8'
      Src: /src/image/src/images/dynimage.rs:2051,1
    - Dst: Option::expect
      Src: /src/image/src/images/dynimage.rs:2051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 2039
    functionDepth: 17
    functionLinenumber: 2039
    functionLinenumberEnd: 2053
    functionName: test::convert_color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::ImageRgb16
    - ImageResult::unwrap
    - '&RgbaImage::set_rgb_primaries'
    - Rgb
    - '&RgbaImage::set_transfer_function'
    - '&RgbaImage::as_rgb8'
    - Option::expect
    - ImageBuffer::from_fn
    - '&RgbaImage::convert_color_space'
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn convert_color_space()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb16
      Src: /src/image/src/images/dynimage.rs:2057,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:2058,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:2058,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2061,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:2062,1
    - Dst: '&RgbaImage::clone'
      Src: /src/image/src/images/dynimage.rs:2064,1
    - Dst: Self::into_luma8
      Src: /src/image/src/images/dynimage.rs:2064,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2068,1
    - Dst: '&RgbaImage::clone'
      Src: /src/image/src/images/dynimage.rs:2070,1
    - Dst: Self::into_luma8
      Src: /src/image/src/images/dynimage.rs:2070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2056
    functionDepth: 17
    functionLinenumber: 2056
    functionLinenumberEnd: 2073
    functionName: test::into_luma_is_color_space_aware
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Self::into_luma8
    - super::DynamicImage::ImageRgb16
    - '&RgbaImage::set_rgb_primaries'
    - Rgb
    - '&RgbaImage::set_transfer_function'
    - ImageBuffer::from_fn
    - '&RgbaImage::clone'
    linkageType: ''
    returnType: void
    signature: fn into_luma_is_color_space_aware()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageLuma16
      Src: /src/image/src/images/dynimage.rs:2077,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:2078,1
    - Dst: Luma
      Src: /src/image/src/images/dynimage.rs:2078,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2081,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:2082,1
    - Dst: '&RgbaImage::clone'
      Src: /src/image/src/images/dynimage.rs:2084,1
    - Dst: Self::into_rgb8
      Src: /src/image/src/images/dynimage.rs:2084,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2088,1
    - Dst: '&RgbaImage::clone'
      Src: /src/image/src/images/dynimage.rs:2090,1
    - Dst: Self::into_rgb8
      Src: /src/image/src/images/dynimage.rs:2090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2076
    functionDepth: 17
    functionLinenumber: 2076
    functionLinenumberEnd: 2093
    functionName: test::from_luma_is_color_space_aware
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::ImageLuma16
    - Self::into_rgb8
    - '&RgbaImage::set_rgb_primaries'
    - '&RgbaImage::set_transfer_function'
    - ImageBuffer::from_fn
    - Luma
    - '&RgbaImage::clone'
    linkageType: ''
    returnType: void
    signature: fn from_luma_is_color_space_aware()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageLuma16
      Src: /src/image/src/images/dynimage.rs:2114,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:2115,1
    - Dst: Luma
      Src: /src/image/src/images/dynimage.rs:2115,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2119,1
    - Dst: '&RgbaImage::to_rgb8'
      Src: /src/image/src/images/dynimage.rs:2120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2127
      start: 2096
    functionDepth: 17
    functionLinenumber: 2096
    functionLinenumberEnd: 2127
    functionName: test::from_luma_for_all_chromaticities
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::to_rgb8'
    - super::DynamicImage::ImageLuma16
    - '&RgbaImage::set_rgb_primaries'
    - ImageBuffer::from_fn
    - Luma
    linkageType: ''
    returnType: void
    signature: fn from_luma_for_all_chromaticities()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb8
      Src: /src/image/src/images/dynimage.rs:2150,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:2151,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:2151,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2155,1
    - Dst: '&RgbaImage::as_mut_rgb8'
      Src: /src/image/src/images/dynimage.rs:2157,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/dynimage.rs:2157,1
    - Dst: pixels_mut
      Src: /src/image/src/images/dynimage.rs:2157,1
    - Dst: '&RgbaImage::to_luma8'
      Src: /src/image/src/images/dynimage.rs:2161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2164
      start: 2130
    functionDepth: 17
    functionLinenumber: 2130
    functionLinenumberEnd: 2164
    functionName: test::from_rgb_for_all_chromaticities
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::to_luma8'
    - super::DynamicImage::ImageRgb8
    - '&RgbaImage::as_mut_rgb8'
    - '&RgbaImage::set_rgb_primaries'
    - Rgb
    - Option::unwrap
    - pixels_mut
    - ImageBuffer::from_fn
    linkageType: ''
    returnType: void
    signature: fn from_rgb_for_all_chromaticities()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CicpTransform::new
      Src: /src/image/src/images/dynimage.rs:2182,1
    - Dst: Option::expect
      Src: /src/image/src/images/dynimage.rs:2182,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:2186,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2188,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:2189,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:2192,1
    - Dst: ImageResult::clone
      Src: /src/image/src/images/dynimage.rs:2192,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:2193,1
    - Dst: '&RgbaImage::convert_color_space'
      Src: /src/image/src/images/dynimage.rs:2196,1
    - Dst: ImageResult::expect
      Src: /src/image/src/images/dynimage.rs:2196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2167
    functionDepth: 15
    functionLinenumber: 2167
    functionLinenumberEnd: 2201
    functionName: test::convert_color_space_coverage
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - ImageResult::clone
    - Some
    - '&RgbaImage::set_rgb_primaries'
    - Option::expect
    - '&RgbaImage::set_transfer_function'
    - CicpTransform::new
    - ImageResult::expect
    - '&RgbaImage::convert_color_space'
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn convert_color_space_coverage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::open
      Src: /src/image/src/images/dynimage.rs:2210,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/images/dynimage.rs:2210,1
    - Dst: Vec::clone
      Src: /src/image/src/images/dynimage.rs:2211,1
    - Dst: Vec::set_color_space
      Src: /src/image/src/images/dynimage.rs:2213,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/dynimage.rs:2213,1
    - Dst: Self::set_color_space
      Src: /src/image/src/images/dynimage.rs:2214,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/dynimage.rs:2214,1
    - Dst: iter
      Src: /src/image/src/images/dynimage.rs:2236,1
    - Dst: enumerate
      Src: /src/image/src/images/dynimage.rs:2236,1
    - Dst: op
      Src: /src/image/src/images/dynimage.rs:2237,1
    - Dst: op
      Src: /src/image/src/images/dynimage.rs:2238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2245
      start: 2207
    functionDepth: 17
    functionLinenumber: 2207
    functionLinenumberEnd: 2245
    functionName: test::color_space_independent_imageops
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - op
    - iter
    - enumerate
    - ImageResult::unwrap
    - io::Result::unwrap
    - Self::set_color_space
    - Vec::set_color_space
    - Vec::clone
    - super::open
    linkageType: ''
    returnType: void
    signature: fn color_space_independent_imageops()
  - 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: 1
    functionsReached:
    - checked_mul
    - expect
    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:
    - checked_mul
    - expect
    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: 1
    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: 2
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: SampleLayout::min_length
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - SampleLayout::index
    - checked_add
    - Option::and_then
    - Some
    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: 3
    functionLinenumber: 283
    functionLinenumberEnd: 285
    functionName: SampleLayout::fits
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - SampleLayout::min_length
    - Option::is_some_and
    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: 2
    functionsReached:
    - Dim
    - sort
    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: 1
    functionsReached:
    - checked_len
    - stride
    - SampleLayout::increasing_stride_dims
    - is_none
    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:
    - len
    - SampleLayout::increasing_stride_dims
    - stride
    - SampleLayout::has_aliased_samples
    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: 1
    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::in_bounds
    - SampleLayout::index_ignoring_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:
    - io::Result::checked_mul
    - Option::checked_mul
    - Some
    - 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: 2
    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: 2
    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: 14
    functionLinenumber: 524
    functionLinenumberEnd: 534
    functionName: FlatSamples::to_vec
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - to_vec
    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: 3
    functionLinenumber: 557
    functionLinenumberEnd: 563
    functionName: FlatSamples::get_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - FlatSamples::index
    - '&Self::Output::and_then'
    - 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: 3
    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:
    - as_ref
    - fits
    - FlatSamples::len
    - Err
    - 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:
    - as_mut
    - fits
    - FlatSamples::len
    - Err
    - 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:
    - as_mut
    - fits
    - Error::NormalFormRequired
    - FlatSamples::len
    - Err
    - Error::ChannelCountMismatch
    - Ok
    - is_normal
    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:
    - as_ref
    - Some
    - FlatSamples::min_length
    - '&[T]::len'
    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
    - FlatSamples::min_length
    - '&[T]::len'
    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: 16
    functionLinenumber: 779
    functionLinenumberEnd: 806
    functionName: FlatSamples::try_into_buffer
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Error::NormalFormRequired
    - Err
    - Option::unwrap_or_else
    - Error::ChannelCountMismatch
    - len
    - deref
    - FlatSamples::fits
    - Ok
    - ImageBuffer::from_raw
    - 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: 13
    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: 4
    functionsReached:
    - FlatSamples::index
    - FlatSamples::bounds
    - FlatSamples::strides_cwh
    - panic_cwh_out_of_bounds
    - '&Self::Output::unwrap_or_else'
    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: 2
    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: 13
    functionLinenumber: 1123
    functionLinenumberEnd: 1131
    functionName: View::get_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - View::samples
    - FlatSamples::get
    - '&Buffer::as_ref'
    - in_bounds
    - in_bounds_index
    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: 13
    functionLinenumber: 1141
    functionLinenumberEnd: 1152
    functionName: View::get_mut_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - in_bounds
    - in_bounds_index
    - as_mut
    - get_mut
    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: 2
    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
    - View::min_length
    - '&Buffer::as_ref'
    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:
    - View::min_length
    - as_mut
    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: 1
    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: 2
    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: 13
    functionLinenumber: 1267
    functionLinenumberEnd: 1278
    functionName: ViewMut::get_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - FlatSamples::get
    - '&Buffer::as_ref'
    - in_bounds
    - in_bounds_index
    - ViewMut::samples
    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: 13
    functionLinenumber: 1284
    functionLinenumberEnd: 1292
    functionName: ViewMut::get_mut_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - in_bounds
    - in_bounds_index
    - as_mut
    - get_mut
    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:
    - as_ref
    - ViewMut::min_length
    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: 2
    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: 3
    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:
    - FlatSamples::index
    - FlatSamples::bounds
    - FlatSamples::strides_cwh
    - panic_cwh_out_of_bounds
    - '&Self::Output::unwrap_or_else'
    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: 6
    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: 13
    functionLinenumber: 1395
    functionLinenumberEnd: 1415
    functionName: View::get_pixel
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - enumerate
    - Zero::zero
    - View::dimensions
    - panic_pixel_out_of_bounds
    - in_bounds
    - '&RgbaImage::iter_mut'
    - P::from_slice
    - in_bounds_index
    - take
    - for_each
    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: 2
    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: 13
    functionLinenumber: 1428
    functionLinenumberEnd: 1448
    functionName: ViewMut::get_pixel
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - enumerate
    - Zero::zero
    - ViewMut::dimensions
    - panic_pixel_out_of_bounds
    - in_bounds
    - '&RgbaImage::iter_mut'
    - P::from_slice
    - in_bounds_index
    - take
    - for_each
    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: 13
    functionLinenumber: 1455
    functionLinenumberEnd: 1464
    functionName: ViewMut::get_pixel_mut
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 2
    functionsReached:
    - as_mut
    - P::from_slice_mut
    - ViewMut::dimensions
    - panic_pixel_out_of_bounds
    - in_bounds
    - in_bounds_index
    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: 14
    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: 14
    functionLinenumber: 1472
    functionLinenumberEnd: 1474
    functionName: ViewMut::blend_pixel
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::Pixel::blend'
    - ViewMut::get_pixel_mut
    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:
    - expect
    - SubImage::pixels
    - count
    - Vec::inspect
    - as_view::<Rgb<u8>>
    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: 4
    functionLinenumber: 1605
    functionLinenumberEnd: 1635
    functionName: tests::mutable_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - iter
    - LumaA
    - expect
    - enumerate
    - as_view_mut::<LumaA<u16>>
    - SubImage::get_pixel_mut
    - for_each
    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:
    - Self::into_flat_samples
    - '&RgbaImage::try_into_buffer'
    - Result::unwrap_or_else
    - GrayAlphaImage::new
    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: 7
    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: buffer_with_dimensions
      Src: /src/image/src/images/sub_image.rs:84,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: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: SubImage::to_image
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 3
    functionsReached:
    - buffer_with_dimensions
    - get_pixel
    - SampleLayout::put_pixel
    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: 2
    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: buffer_with_dimensions
      Src: /src/image/src/images/sub_image.rs:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: SubImageInner::buffer_with_dimensions
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached:
    - buffer_with_dimensions
    linkageType: ''
    returnType: ImageBuffer
    signature: 'fn buffer_with_dimensions(&self,width: u32,height: u32,) -> ImageBuffer<<I::Target
      as GenericImageView>::Pixel,Vec<<<I::Target as GenericImageView>::Pixel as Pixel>::Subpixel>,>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_pixel_mut
      Src: /src/image/src/images/sub_image.rs:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 221
    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:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - Self::Pixel
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 226
    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:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - Self::Pixel
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 16
    functionLinenumber: 229
    functionLinenumberEnd: 232
    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: RgbaImage::new
      Src: /src/image/src/images/sub_image.rs:241,1
    - Dst: crate::Rgba
      Src: /src/image/src/images/sub_image.rs:242,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/sub_image.rs:243,1
    - Dst: '&RgbaImage::view'
      Src: /src/image/src/images/sub_image.rs:245,1
    - Dst: SubImage::buffer_like
      Src: /src/image/src/images/sub_image.rs:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 249
      start: 240
    functionDepth: 13
    functionLinenumber: 240
    functionLinenumberEnd: 249
    functionName: tests::preserves_color_space
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::view'
    - RgbaImage::new
    - '&RgbaImage::set_rgb_primaries'
    - SubImage::buffer_like
    - crate::Rgba
    linkageType: ''
    returnType: void
    signature: fn preserves_color_space()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/images/sub_image.rs:253,1
    - Dst: crate::Rgba
      Src: /src/image/src/images/sub_image.rs:254,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/sub_image.rs:255,1
    - Dst: '&RgbaImage::view'
      Src: /src/image/src/images/sub_image.rs:257,1
    - Dst: SubImage::view
      Src: /src/image/src/images/sub_image.rs:258,1
    - Dst: SubImage::buffer_like
      Src: /src/image/src/images/sub_image.rs:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 252
    functionDepth: 13
    functionLinenumber: 252
    functionLinenumberEnd: 262
    functionName: tests::deep_preserves_color_space
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached:
    - SubImage::view
    - '&RgbaImage::view'
    - RgbaImage::new
    - '&RgbaImage::set_rgb_primaries'
    - SubImage::buffer_like
    - crate::Rgba
    linkageType: ''
    returnType: void
    signature: fn deep_preserves_color_space()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pixels::len
      Src: /src/image/src/images/buffer.rs:45,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 15
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: Pixels::size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Pixels::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:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 14
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Pixels::len
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 2
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next_back
      Src: /src/image/src/images/buffer.rs:65,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:65,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/images/buffer.rs:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 14
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Pixels::next_back
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - <P as Pixel>::from_slice
    - next_back
    - map
    linkageType: ''
    returnType: Option
    signature: fn next_back(&mut self) -> Option<&'a P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::debug_struct
      Src: /src/image/src/images/buffer.rs:82,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:82,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: Pixels::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Result::debug_struct
    - finish
    - field
    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:104,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:104,1
    - Dst: <P as Pixel>::from_slice_mut
      Src: /src/image/src/images/buffer.rs:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 14
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: PixelsMut::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - <P as Pixel>::from_slice_mut
    - next
    - map
    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:109,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 15
    functionLinenumber: 108
    functionLinenumberEnd: 111
    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:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 14
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: PixelsMut::len
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 2
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next_back
      Src: /src/image/src/images/buffer.rs:129,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:129,1
    - Dst: <P as Pixel>::from_slice_mut
      Src: /src/image/src/images/buffer.rs:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 15
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: PixelsMut::next_back
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - next_back
    - <P as Pixel>::from_slice_mut
    - map
    linkageType: ''
    returnType: Option
    signature: fn next_back(&mut self) -> Option<&'a mut P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::debug_struct
      Src: /src/image/src/images/buffer.rs:140,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:140,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: PixelsMut::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Result::debug_struct
    - finish
    - field
    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:162,1
    - Dst: chunks_exact
      Src: /src/image/src/images/buffer.rs:165,1
    - Dst: Vec::get
      Src: /src/image/src/images/buffer.rs:168,1
    - Dst: Option::expect
      Src: /src/image/src/images/buffer.rs:168,1
    - Dst: Vec::chunks_exact
      Src: /src/image/src/images/buffer.rs:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - pixels
    - width
    - height
    argTypes:
    - '&''a [P::Subpixel]'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 177
      start: 161
    functionDepth: 3
    functionLinenumber: 161
    functionLinenumberEnd: 177
    functionName: Rows::with_image
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - Option::expect
    - chunks_exact
    - Vec::chunks_exact
    - usize::from
    - Vec::get
    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:188,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:189,1
    - Dst: chunks_exact
      Src: /src/image/src/images/buffer.rs:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: Rows::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - next
    - chunks_exact
    - Some
    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:197,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 15
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: Rows::size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Rows::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:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 14
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: Rows::len
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 2
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next_back
      Src: /src/image/src/images/buffer.rs:217,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:218,1
    - Dst: chunks_exact
      Src: /src/image/src/images/buffer.rs:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 15
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: Rows::next_back
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - next_back
    - chunks_exact
    - Some
    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:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 230
    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: Result::debug_struct
      Src: /src/image/src/images/buffer.rs:238,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:238,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: Rows::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Result::debug_struct
    - finish
    - field
    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:260,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/images/buffer.rs:263,1
    - Dst: Vec::get_mut
      Src: /src/image/src/images/buffer.rs:266,1
    - Dst: expect
      Src: /src/image/src/images/buffer.rs:266,1
    - Dst: Vec::chunks_exact_mut
      Src: /src/image/src/images/buffer.rs:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - pixels
    - width
    - height
    argTypes:
    - '&''a mut [P::Subpixel]'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 275
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 275
    functionName: RowsMut::with_image
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - expect
    - usize::from
    - chunks_exact_mut
    - Vec::get_mut
    - Vec::chunks_exact_mut
    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:286,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:287,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/images/buffer.rs:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 291
    functionName: RowsMut::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - next
    - chunks_exact_mut
    - Some
    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:295,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 15
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: RowsMut::size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - RowsMut::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:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 14
    functionLinenumber: 304
    functionLinenumberEnd: 306
    functionName: RowsMut::len
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 2
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next_back
      Src: /src/image/src/images/buffer.rs:315,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:316,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/images/buffer.rs:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 314
    functionDepth: 15
    functionLinenumber: 314
    functionLinenumberEnd: 320
    functionName: RowsMut::next_back
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - next_back
    - chunks_exact_mut
    - Some
    linkageType: ''
    returnType: Option
    signature: fn next_back(&mut self) -> Option<PixelsMut<'a, P>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::debug_struct
      Src: /src/image/src/images/buffer.rs:328,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:328,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: RowsMut::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Result::debug_struct
    - finish
    - field
    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:359,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 352
    functionDepth: 14
    functionLinenumber: 352
    functionLinenumberEnd: 360
    functionName: EnumeratePixels::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - next
    - map
    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:364,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 15
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: EnumeratePixels::size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - EnumeratePixels::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:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 375
      start: 373
    functionDepth: 14
    functionLinenumber: 373
    functionLinenumberEnd: 375
    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:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 384
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 384
    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: Result::debug_struct
      Src: /src/image/src/images/buffer.rs:392,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:392,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:392,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:392,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:392,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 398
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 398
    functionName: EnumeratePixels::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Result::debug_struct
    - finish
    - field
    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:421,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 418
    functionDepth: 14
    functionLinenumber: 418
    functionLinenumberEnd: 432
    functionName: EnumerateRows::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - next
    - map
    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:436,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 438
      start: 435
    functionDepth: 15
    functionLinenumber: 435
    functionLinenumberEnd: 438
    functionName: EnumerateRows::size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - EnumerateRows::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:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 445
    functionDepth: 14
    functionLinenumber: 445
    functionLinenumberEnd: 447
    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:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 456
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 456
    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: Result::debug_struct
      Src: /src/image/src/images/buffer.rs:464,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:464,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:464,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:464,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 469
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 469
    functionName: EnumerateRows::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Result::debug_struct
    - finish
    - field
    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:497,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 498
      start: 490
    functionDepth: 14
    functionLinenumber: 490
    functionLinenumberEnd: 498
    functionName: EnumeratePixelsMut::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - next
    - map
    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:502,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 504
      start: 501
    functionDepth: 15
    functionLinenumber: 501
    functionLinenumberEnd: 504
    functionName: EnumeratePixelsMut::size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - EnumeratePixelsMut::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:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 513
      start: 511
    functionDepth: 14
    functionLinenumber: 511
    functionLinenumberEnd: 513
    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: Result::debug_struct
      Src: /src/image/src/images/buffer.rs:521,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:521,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:521,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:521,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:521,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 527
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 527
    functionName: EnumeratePixelsMut::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Result::debug_struct
    - finish
    - field
    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:550,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 561
      start: 547
    functionDepth: 14
    functionLinenumber: 547
    functionLinenumberEnd: 561
    functionName: EnumerateRowsMut::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - next
    - map
    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:565,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 567
      start: 564
    functionDepth: 15
    functionLinenumber: 564
    functionLinenumberEnd: 567
    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:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 576
      start: 574
    functionDepth: 14
    functionLinenumber: 574
    functionLinenumberEnd: 576
    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: Result::debug_struct
      Src: /src/image/src/images/buffer.rs:584,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:584,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:584,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:584,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 589
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 589
    functionName: EnumerateRowsMut::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Result::debug_struct
    - finish
    - field
    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:681,1
    - Dst: std::io::Result::len
      Src: /src/image/src/images/buffer.rs:681,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:682,1
    - Dst: into_rgb
      Src: /src/image/src/images/buffer.rs:686,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - width
    - height
    - buf
    argTypes:
    - u32
    - u32
    - Container
    constantsTouched: []
    func_position:
      end: 692
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 692
    functionName: ImageBuffer::from_raw
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 34
    functionsReached:
    - Self::check_image_fits
    - into_rgb
    - Some
    - std::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: 697
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 697
    functionName: ImageBuffer::into_raw
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    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: 702
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 702
    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:1234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1233
    functionDepth: 1
    functionLinenumber: 1233
    functionLinenumberEnd: 1235
    functionName: ImageBuffer::dimensions
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 3
    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: 712
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 712
    functionName: ImageBuffer::width
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 7
    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: 717
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 717
    functionName: ImageBuffer::height
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 5
    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:721,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 723
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 723
    functionName: ImageBuffer::inner_pixels
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 8
    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:729,1
    - Dst: '&[P::Subpixel]::chunks_exact'
      Src: /src/image/src/images/buffer.rs:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 733
      start: 727
    functionDepth: 2
    functionLinenumber: 727
    functionLinenumberEnd: 733
    functionName: ImageBuffer::pixels
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 2
    functionsReached:
    - ImageBuffer::inner_pixels
    - '&[P::Subpixel]::chunks_exact'
    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:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 742
      start: 740
    functionDepth: 4
    functionLinenumber: 740
    functionLinenumberEnd: 742
    functionName: ImageBuffer::rows
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    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:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 756
      start: 749
    functionDepth: 3
    functionLinenumber: 749
    functionLinenumberEnd: 756
    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:763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 767
      start: 761
    functionDepth: 5
    functionLinenumber: 761
    functionLinenumberEnd: 767
    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:1238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1239
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1239
    functionName: ImageBuffer::get_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 2
    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:794,1
    - Dst: saturating_add
      Src: /src/image/src/images/buffer.rs:794,1
    - Dst: saturating_mul
      Src: /src/image/src/images/buffer.rs:794,1
    - Dst: get
      Src: /src/image/src/images/buffer.rs:799,1
    - Dst: io::Result::checked_add
      Src: /src/image/src/images/buffer.rs:800,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:799,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/images/buffer.rs:801,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 802
      start: 789
    functionDepth: 13
    functionLinenumber: 789
    functionLinenumberEnd: 802
    functionName: ImageBuffer::get_pixel_checked
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - get
    - saturating_mul
    - map
    - <P as Pixel>::from_slice
    - saturating_add
    - 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:810,1
    - Dst: Option::is_some_and
      Src: /src/image/src/images/buffer.rs:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - width
    - height
    - len
    argTypes:
    - u32
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 812
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 812
    functionName: ImageBuffer::check_image_fits
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::is_some_and
    - Self::image_buffer_len
    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:815,1
    - Dst: and_then
      Src: /src/image/src/images/buffer.rs:815,1
    - Dst: u64::checked_mul
      Src: /src/image/src/images/buffer.rs:816,1
    - Dst: and_then
      Src: /src/image/src/images/buffer.rs:815,1
    - Dst: u64::checked_mul
      Src: /src/image/src/images/buffer.rs:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 818
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 818
    functionName: ImageBuffer::image_buffer_len
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - and_then
    - u64::checked_mul
    - Some
    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:826,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:826,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 827
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 827
    functionName: ImageBuffer::pixel_indices
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::pixel_indices_unchecked
    - Some
    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: 835
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 835
    functionName: ImageBuffer::pixel_indices_unchecked
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 4
    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:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 841
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 841
    functionName: ImageBuffer::sample_layout
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 3
    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:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 860
      start: 849
    functionDepth: 2
    functionLinenumber: 849
    functionLinenumberEnd: 860
    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:869,1
    - Dst: as_ref
      Src: /src/image/src/images/buffer.rs:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 875
      start: 865
    functionDepth: 2
    functionLinenumber: 865
    functionLinenumberEnd: 875
    functionName: ImageBuffer::as_flat_samples
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - ImageBuffer::sample_layout
    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:884,1
    - Dst: as_mut
      Src: /src/image/src/images/buffer.rs:886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 890
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 890
    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:900,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 902
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 902
    functionName: ImageBuffer::inner_pixels_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 3
    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:907,1
    - Dst: '&mut [P::Subpixel]::chunks_exact_mut'
      Src: /src/image/src/images/buffer.rs:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 911
      start: 905
    functionDepth: 2
    functionLinenumber: 905
    functionLinenumberEnd: 911
    functionName: ImageBuffer::pixels_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - '&mut [P::Subpixel]::chunks_exact_mut'
    - ImageBuffer::inner_pixels_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:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 920
      start: 918
    functionDepth: 4
    functionLinenumber: 918
    functionLinenumberEnd: 920
    functionName: ImageBuffer::rows_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    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:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 933
      start: 925
    functionDepth: 3
    functionLinenumber: 925
    functionLinenumberEnd: 933
    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:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 945
      start: 938
    functionDepth: 5
    functionLinenumber: 938
    functionLinenumberEnd: 945
    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:1261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1262
      start: 1260
    functionDepth: 1
    functionLinenumber: 1260
    functionLinenumberEnd: 1262
    functionName: ImageBuffer::get_pixel_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 5
    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:972,1
    - Dst: saturating_add
      Src: /src/image/src/images/buffer.rs:972,1
    - Dst: saturating_mul
      Src: /src/image/src/images/buffer.rs:972,1
    - Dst: get_mut
      Src: /src/image/src/images/buffer.rs:977,1
    - Dst: io::Result::checked_add
      Src: /src/image/src/images/buffer.rs:978,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:977,1
    - Dst: <P as Pixel>::from_slice_mut
      Src: /src/image/src/images/buffer.rs:979,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 980
      start: 967
    functionDepth: 13
    functionLinenumber: 967
    functionLinenumberEnd: 980
    functionName: ImageBuffer::get_pixel_mut_checked
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - <P as Pixel>::from_slice_mut
    - saturating_mul
    - map
    - saturating_add
    - io::Result::checked_add
    - get_mut
    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:1265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - P
    constantsTouched: []
    func_position:
      end: 1266
      start: 1264
    functionDepth: 2
    functionLinenumber: 1264
    functionLinenumberEnd: 1266
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - color
    argTypes:
    - CicpColorPrimaries
    constantsTouched: []
    func_position:
      end: 1009
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1009
    functionName: ImageBuffer::set_rgb_primaries
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_rgb_primaries(&mut self, color: CicpColorPrimaries)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tf
    argTypes:
    - CicpTransferCharacteristics
    constantsTouched: []
    func_position:
      end: 1021
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1021
    functionName: ImageBuffer::set_transfer_function
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_transfer_function(&mut self, tf: CicpTransferCharacteristics)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/image/src/images/buffer.rs:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1024
    functionDepth: 12
    functionLinenumber: 1024
    functionLinenumberEnd: 1026
    functionName: ImageBuffer::color_space
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 3
    functionsReached:
    - into
    linkageType: ''
    returnType: Cicp
    signature: pub fn color_space(&self) -> Cicp
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cicp::try_into_rgb
      Src: /src/image/src/images/buffer.rs:1033,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - cicp
    argTypes:
    - Cicp
    constantsTouched: []
    func_position:
      end: 1035
      start: 1032
    functionDepth: 2
    functionLinenumber: 1032
    functionLinenumberEnd: 1035
    functionName: ImageBuffer::set_color_space
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Cicp::try_into_rgb
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn set_color_space(&mut self, cicp: Cicp) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - color
    argTypes:
    - CicpRgb
    constantsTouched: []
    func_position:
      end: 1039
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1039
    functionName: ImageBuffer::set_rgb_color_space
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn set_rgb_color_space(&mut self, color: CicpRgb)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: save_buffer
      Src: /src/image/src/images/buffer.rs:1056,1
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:1058,1
    - Dst: '&[P::Subpixel]::as_bytes'
      Src: /src/image/src/images/buffer.rs:1058,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1059,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - path
    argTypes:
    - Q
    constantsTouched: []
    func_position:
      end: 1063
      start: 1051
    functionDepth: 16
    functionLinenumber: 1051
    functionLinenumberEnd: 1063
    functionName: ImageBuffer::save
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::height
    - ImageBuffer::inner_pixels
    - ImageBuffer::width
    - '&[P::Subpixel]::as_bytes'
    - 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:1083,1
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:1085,1
    - Dst: '&[P::Subpixel]::as_bytes'
      Src: /src/image/src/images/buffer.rs:1085,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1086,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - path
    - format
    argTypes:
    - Q
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1091
      start: 1077
    functionDepth: 14
    functionLinenumber: 1077
    functionLinenumberEnd: 1091
    functionName: ImageBuffer::save_with_format
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::height
    - ImageBuffer::inner_pixels
    - ImageBuffer::width
    - save_buffer_with_format
    - '&[P::Subpixel]::as_bytes'
    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:1110,1
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:1112,1
    - Dst: '&[P::Subpixel]::as_bytes'
      Src: /src/image/src/images/buffer.rs:1112,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1113,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - format
    argTypes:
    - '&mut W'
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1118
      start: 1104
    functionDepth: 13
    functionLinenumber: 1104
    functionLinenumberEnd: 1118
    functionName: ImageBuffer::write_to
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - ImageBuffer::height
    - ImageBuffer::inner_pixels
    - ImageBuffer::width
    - write_buffer_with_format
    - '&[P::Subpixel]::as_bytes'
    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:1134,1
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:1135,1
    - Dst: '&[P::Subpixel]::as_bytes'
      Src: /src/image/src/images/buffer.rs:1135,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1136,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - E
    constantsTouched: []
    func_position:
      end: 1140
      start: 1128
    functionDepth: 2
    functionLinenumber: 1128
    functionLinenumberEnd: 1140
    functionName: ImageBuffer::write_with_encoder
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::height
    - ImageBuffer::inner_pixels
    - ImageBuffer::width
    - ImageResult::write_image
    - '&[P::Subpixel]::as_bytes'
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn write_with_encoder<E>(&self, encoder: E) -> ImageResult<()>whereE:
      ImageEncoder,P: PixelWithColorType,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_rgb
      Src: /src/image/src/images/buffer.rs:1153,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:1154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1156
    functionName: ImageBuffer::default
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - into_rgb
    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: 1168
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1168
    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: 1178
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1178
    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:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames: []
    argTypes:
    - (u32, u32)
    constantsTouched: []
    func_position:
      end: 1190
      start: 1188
    functionDepth: 2
    functionLinenumber: 1188
    functionLinenumberEnd: 1190
    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:1199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames: []
    argTypes:
    - (u32, u32)
    constantsTouched: []
    func_position:
      end: 1200
      start: 1198
    functionDepth: 2
    functionLinenumber: 1198
    functionLinenumberEnd: 1200
    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:1210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1208
    functionDepth: 2
    functionLinenumber: 1208
    functionLinenumberEnd: 1216
    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:1219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - source
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 1223
      start: 1218
    functionDepth: 2
    functionLinenumber: 1218
    functionLinenumberEnd: 1223
    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:1244,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/images/buffer.rs:1245,1
    - Dst: get_unchecked
      Src: /src/image/src/images/buffer.rs:1245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1246
      start: 1243
    functionDepth: 1
    functionLinenumber: 1243
    functionLinenumberEnd: 1246
    functionName: ImageBuffer::unsafe_get_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - <P as Pixel>::from_slice
    - ImageBuffer::pixel_indices_unchecked
    - get_unchecked
    linkageType: ''
    returnType: P
    signature: 'unsafe fn unsafe_get_pixel(&self, x: u32, y: u32) -> P'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1249,1
    - Dst: '&RgbaImage::copy_color_space_from'
      Src: /src/image/src/images/buffer.rs:1250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1252
      start: 1248
    functionDepth: 2
    functionLinenumber: 1248
    functionLinenumberEnd: 1252
    functionName: ImageBuffer::buffer_with_dimensions
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::copy_color_space_from'
    - ImageBuffer::new
    linkageType: ''
    returnType: ImageBuffer
    signature: 'fn buffer_with_dimensions(&self, width: u32, height: u32) -> ImageBuffer<P,
      Vec<P::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1271,1
    - Dst: <P as Pixel>::from_slice_mut
      Src: /src/image/src/images/buffer.rs:1272,1
    - Dst: get_unchecked_mut
      Src: /src/image/src/images/buffer.rs:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - P
    constantsTouched: []
    func_position:
      end: 1274
      start: 1270
    functionDepth: 1
    functionLinenumber: 1270
    functionLinenumberEnd: 1274
    functionName: ImageBuffer::unsafe_put_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - <P as Pixel>::from_slice_mut
    - ImageBuffer::pixel_indices_unchecked
    - get_unchecked_mut
    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:1280,1
    - Dst: '&mut P::blend'
      Src: /src/image/src/images/buffer.rs:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - x
    - y
    - p
    argTypes:
    - u32
    - u32
    - P
    constantsTouched: []
    func_position:
      end: 1281
      start: 1279
    functionDepth: 4
    functionLinenumber: 1279
    functionLinenumberEnd: 1281
    functionName: ImageBuffer::blend_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::get_pixel_mut
    - '&mut P::blend'
    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:1294,1
    - Dst: u32::max
      Src: /src/image/src/images/buffer.rs:1294,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1294,1
    - Dst: ImageResult::max
      Src: /src/image/src/images/buffer.rs:1294,1
    - Dst: rev
      Src: /src/image/src/images/buffer.rs:1299,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1302,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1303,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1304,1
    - Dst: copy_within
      Src: /src/image/src/images/buffer.rs:1305,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1311,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1312,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1313,1
    - Dst: copy_within
      Src: /src/image/src/images/buffer.rs:1314,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 63
    argCount: 3
    argNames:
    - source
    - x
    - y
    argTypes:
    - Rect
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1318
      start: 1283
    functionDepth: 2
    functionLinenumber: 1283
    functionLinenumberEnd: 1318
    functionName: ImageBuffer::copy_within
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::height
    - u32::max
    - ImageBuffer::width
    - rev
    - ImageBuffer::pixel_indices_unchecked
    - copy_within
    - 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:1339,1
    - Dst: Option::expect
      Src: /src/image/src/images/buffer.rs:1339,1
    - Dst: into_rgb
      Src: /src/image/src/images/buffer.rs:1345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1348
      start: 1338
    functionDepth: 1
    functionLinenumber: 1338
    functionLinenumberEnd: 1348
    functionName: ImageBuffer::new
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 40
    functionsReached:
    - Option::expect
    - into_rgb
    - Self::image_buffer_len
    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:1356,1
    - Dst: std::io::Result::pixels_mut
      Src: /src/image/src/images/buffer.rs:1357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - width
    - height
    - pixel
    argTypes:
    - u32
    - u32
    - P
    constantsTouched: []
    func_position:
      end: 1361
      start: 1355
    functionDepth: 2
    functionLinenumber: 1355
    functionLinenumberEnd: 1361
    functionName: ImageBuffer::from_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 20
    functionsReached:
    - std::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:1374,1
    - Dst: std::io::Result::enumerate_pixels_mut
      Src: /src/image/src/images/buffer.rs:1375,1
    - Dst: f
      Src: /src/image/src/images/buffer.rs:1376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - width
    - height
    - f
    argTypes:
    - u32
    - u32
    - F
    constantsTouched: []
    func_position:
      end: 1379
      start: 1370
    functionDepth: 16
    functionLinenumber: 1370
    functionLinenumberEnd: 1379
    functionName: ImageBuffer::from_fn
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 22
    functionsReached:
    - std::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:1389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - width
    - height
    - buf
    argTypes:
    - u32
    - u32
    - Vec<P::Subpixel>
    constantsTouched: []
    func_position:
      end: 1390
      start: 1384
    functionDepth: 3
    functionLinenumber: 1384
    functionLinenumberEnd: 1390
    functionName: ImageBuffer::from_vec
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 3
    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:1396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1395
    functionDepth: 1
    functionLinenumber: 1395
    functionLinenumberEnd: 1397
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&ImageBuffer<O, C>'
    constantsTouched: []
    func_position:
      end: 1406
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1406
    functionName: ImageBuffer::copy_color_space_from
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn copy_color_space_from<O: Pixel, C>(&mut self, other:
      &ImageBuffer<O, C>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GrayImage::dimensions
      Src: /src/image/src/images/buffer.rs:1429,1
    - Dst: GrayImage::into_raw
      Src: /src/image/src/images/buffer.rs:1430,1
    - Dst: Result::len
      Src: /src/image/src/images/buffer.rs:1431,1
    - Dst: Result::resize
      Src: /src/image/src/images/buffer.rs:1432,1
    - Dst: ImageResult::checked_mul
      Src: /src/image/src/images/buffer.rs:1432,1
    - Dst: unwrap
      Src: /src/image/src/images/buffer.rs:1432,1
    - Dst: ImageBuffer::from_vec
      Src: /src/image/src/images/buffer.rs:1433,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1433,1
    - Dst: utils::expand_packed
      Src: /src/image/src/images/buffer.rs:1434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 2
    argNames:
    - palette
    - transparent_idx
    argTypes:
    - '&[(u8, u8, u8)]'
    - Option<u8>
    constantsTouched: []
    func_position:
      end: 1451
      start: 1424
    functionDepth: 12
    functionLinenumber: 1424
    functionLinenumberEnd: 1451
    functionName: GrayImage::expand_palette
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - ImageResult::checked_mul
    - utils::expand_packed
    - Option::unwrap
    - ImageBuffer::from_vec
    - Result::resize
    - GrayImage::dimensions
    - Result::len
    - GrayImage::into_raw
    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:1482,1
    - Dst: '&RgbaImage::copy_color_space_from'
      Src: /src/image/src/images/buffer.rs:1483,1
    - Dst: '&RgbaImage::pixels_mut'
      Src: /src/image/src/images/buffer.rs:1484,1
    - Dst: PixelsMutPar::zip
      Src: /src/image/src/images/buffer.rs:1484,1
    - Dst: ImageBuffer::pixels
      Src: /src/image/src/images/buffer.rs:1484,1
    - Dst: ImageResult::from_color
      Src: /src/image/src/images/buffer.rs:1485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1480
    functionDepth: 5
    functionLinenumber: 1480
    functionLinenumberEnd: 1488
    functionName: ImageBuffer::convert
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 2
    functionsReached:
    - ImageResult::from_color
    - '&RgbaImage::copy_color_space_from'
    - ImageBuffer::new
    - PixelsMutPar::zip
    - ImageBuffer::pixels
    - '&RgbaImage::pixels_mut'
    linkageType: ''
    returnType: ImageBuffer
    signature: fn convert(&self) -> ImageBuffer<ToType, Vec<ToType::Subpixel>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::check_applicable
      Src: /src/image/src/images/buffer.rs:1515,1
    - Dst: is_none
      Src: /src/image/src/images/buffer.rs:1518,1
    - Dst: CicpTransform::new
      Src: /src/image/src/images/buffer.rs:1519,1
    - Dst: as_ref
      Src: /src/image/src/images/buffer.rs:1522,1
    - Dst: ok_or_else
      Src: /src/image/src/images/buffer.rs:1522,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/images/buffer.rs:1523,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/images/buffer.rs:1523,1
    - Dst: UnsupportedErrorKind::ColorspaceCicp
      Src: /src/image/src/images/buffer.rs:1526,1
    - Dst: qualify_stability
      Src: /src/image/src/images/buffer.rs:1526,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - from_color
    - into_color
    argTypes:
    - Cicp
    - Cicp
    constantsTouched: []
    func_position:
      end: 1533
      start: 1509
    functionDepth: 15
    functionLinenumber: 1509
    functionLinenumberEnd: 1533
    functionName: ConvertColorOptions::as_transform
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 2
    functionsReached:
    - as_ref
    - ok_or_else
    - ImageError::Unsupported
    - UnsupportedErrorKind::ColorspaceCicp
    - is_none
    - CicpTransform::new
    - qualify_stability
    - Result::check_applicable
    - UnsupportedError::from_format_and_kind
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn as_transform(&mut self,from_color: Cicp,into_color:
      Cicp,) -> Result<&CicpTransform, ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1544,1
    - Dst: ConvertColorOptions::as_transform
      Src: /src/image/src/images/buffer.rs:1544,1
    - Dst: "as_transform(from_color, into_color)?\n            .supported_transform_fn::<FromType,\
        \ IntoType>"
      Src: /src/image/src/images/buffer.rs:1544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - from_color
    - into_color
    argTypes:
    - Cicp
    - Cicp
    constantsTouched: []
    func_position:
      end: 1547
      start: 1535
    functionDepth: 16
    functionLinenumber: 1535
    functionLinenumberEnd: 1547
    functionName: ConvertColorOptions::as_transform_fn
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ConvertColorOptions::as_transform
    - "as_transform(from_color, into_color)?\n            .supported_transform_fn::<FromType,\
      \ IntoType>"
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn as_transform_fn<FromType, IntoType>(&mut self,from_color:
      Cicp,into_color: Cicp,) -> Result<&''_ CicpApplicable<''_, FromType::Subpixel>,
      ImageError>whereFromType: PixelWithColorType,IntoType: PixelWithColorType,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: "color\n            .cast_pixels::<SelfPixel, IntoPixel>"
      Src: /src/image/src/images/buffer.rs:1575,1
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:1577,1
    - Dst: ImageBuffer::from_vec
      Src: /src/image/src/images/buffer.rs:1578,1
    - Dst: Option::expect
      Src: /src/image/src/images/buffer.rs:1578,1
    - Dst: '&RgbaImage::copy_color_space_from'
      Src: /src/image/src/images/buffer.rs:1580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1565
    functionDepth: 4
    functionLinenumber: 1565
    functionLinenumberEnd: 1582
    functionName: ImageBuffer::cast_in_color_space
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::inner_pixels
    - "color\n            .cast_pixels::<SelfPixel, IntoPixel>"
    - '&RgbaImage::copy_color_space_from'
    - Option::expect
    - ImageBuffer::from_vec
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub(crate) fn cast_in_color_space<IntoPixel>(&self,) -> ImageBuffer<IntoPixel,
      Vec<IntoPixel::Subpixel>>whereSelfPixel: Pixel,IntoPixel: Pixel,IntoPixel: CicpPixelCast<SelfPixel>,SelfPixel::Subpixel:
      ColorComponentForCicp,IntoPixel::Subpixel: ColorComponentForCicp + FromPrimitive<SelfPixel::Subpixel>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::dimensions
      Src: /src/image/src/images/buffer.rs:1606,1
    - Dst: Self::dimensions
      Src: /src/image/src/images/buffer.rs:1606,1
    - Dst: Err
      Src: /src/image/src/images/buffer.rs:1607,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/images/buffer.rs:1607,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/images/buffer.rs:1607,1
    - Dst: as_transform_fn::<FromType, SelfPixel>
      Src: /src/image/src/images/buffer.rs:1612,1
    - Dst: Self::color_space
      Src: /src/image/src/images/buffer.rs:1613,1
    - Dst: ImageBuffer::color_space
      Src: /src/image/src/images/buffer.rs:1613,1
    - Dst: Self::inner_pixels
      Src: /src/image/src/images/buffer.rs:1615,1
    - Dst: ImageBuffer::inner_pixels_mut
      Src: /src/image/src/images/buffer.rs:1616,1
    - Dst: transform
      Src: /src/image/src/images/buffer.rs:1624,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 2
    argNames:
    - from
    - options
    argTypes:
    - '&ImageBuffer<FromType, D>'
    - ConvertColorOptions
    constantsTouched: []
    func_position:
      end: 1627
      start: 1597
    functionDepth: 12
    functionLinenumber: 1597
    functionLinenumberEnd: 1627
    functionName: ImageBuffer::copy_from_color_space
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::color_space
    - ImageError::Parameter
    - Self::dimensions
    - Err
    - Self::inner_pixels
    - Self::color_space
    - ImageBuffer::dimensions
    - Ok
    - transform
    - ParameterError::from_kind
    - as_transform_fn::<FromType, SelfPixel>
    - ImageBuffer::inner_pixels_mut
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn copy_from_color_space<FromType, D>(&mut self,from: &ImageBuffer<FromType,
      D>,mut options: ConvertColorOptions,) -> ImageResult<()>whereFromType: Pixel<Subpixel
      = SelfPixel::Subpixel> + PixelWithColorType,D: Deref<Target = [SelfPixel::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_transform_fn::<SelfPixel, IntoType>
      Src: /src/image/src/images/buffer.rs:1645,1
    - Dst: ImageBuffer::color_space
      Src: /src/image/src/images/buffer.rs:1645,1
    - Dst: ImageBuffer::dimensions
      Src: /src/image/src/images/buffer.rs:1647,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1648,1
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:1650,1
    - Dst: inner_pixels_mut
      Src: /src/image/src/images/buffer.rs:1651,1
    - Dst: transform
      Src: /src/image/src/images/buffer.rs:1653,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - color
    - options
    argTypes:
    - Cicp
    - ConvertColorOptions
    constantsTouched: []
    func_position:
      end: 1656
      start: 1636
    functionDepth: 13
    functionLinenumber: 1636
    functionLinenumberEnd: 1656
    functionName: ImageBuffer::to_color_space
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::color_space
    - ImageBuffer::inner_pixels
    - ImageBuffer::new
    - inner_pixels_mut
    - ImageBuffer::dimensions
    - Ok
    - transform
    - as_transform_fn::<SelfPixel, IntoType>
    linkageType: ''
    returnType: Result
    signature: 'pub fn to_color_space<IntoType>(&self,color: Cicp,mut options: ConvertColorOptions,)
      -> Result<ImageBuffer<IntoType, Vec<SelfPixel::Subpixel>>, ImageError>whereIntoType:
      Pixel<Subpixel = SelfPixel::Subpixel> + PixelWithColorType,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::color_space
      Src: /src/image/src/images/buffer.rs:1664,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1665,1
    - Dst: as_transform_fn::<SelfPixel, SelfPixel>
      Src: /src/image/src/images/buffer.rs:1669,1
    - Dst: ImageBuffer::color_space
      Src: /src/image/src/images/buffer.rs:1669,1
    - Dst: len
      Src: /src/image/src/images/buffer.rs:1672,1
    - Dst: usize::from
      Src: /src/image/src/images/buffer.rs:1672,1
    - Dst: usize::from
      Src: /src/image/src/images/buffer.rs:1673,1
    - Dst: chunks_mut
      Src: /src/image/src/images/buffer.rs:1675,1
    - Dst: Option::len
      Src: /src/image/src/images/buffer.rs:1676,1
    - Dst: copy_from_slice
      Src: /src/image/src/images/buffer.rs:1677,1
    - Dst: transform
      Src: /src/image/src/images/buffer.rs:1678,1
    - Dst: bool::into_rgb
      Src: /src/image/src/images/buffer.rs:1681,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 2
    argNames:
    - color
    - options
    argTypes:
    - Cicp
    - ConvertColorOptions
    constantsTouched: []
    func_position:
      end: 1684
      start: 1659
    functionDepth: 13
    functionLinenumber: 1659
    functionLinenumberEnd: 1684
    functionName: ImageBuffer::apply_color_space
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - bool::into_rgb
    - ImageBuffer::color_space
    - len
    - chunks_mut
    - Option::len
    - Ok
    - copy_from_slice
    - transform
    - usize::from
    - as_transform_fn::<SelfPixel, SelfPixel>
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn apply_color_space(&mut self,color: Cicp,mut options: ConvertColorOptions,)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::into_rgb8
      Src: /src/image/src/images/buffer.rs:1714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1715
      start: 1713
    functionDepth: 4
    functionLinenumber: 1713
    functionLinenumberEnd: 1715
    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:1720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1721
      start: 1719
    functionDepth: 2
    functionLinenumber: 1719
    functionLinenumberEnd: 1721
    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:1726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1727
      start: 1725
    functionDepth: 4
    functionLinenumber: 1725
    functionLinenumberEnd: 1727
    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:1732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1733
      start: 1731
    functionDepth: 4
    functionLinenumber: 1731
    functionLinenumberEnd: 1733
    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:1738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1739
      start: 1737
    functionDepth: 4
    functionLinenumber: 1737
    functionLinenumberEnd: 1739
    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:1744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1745
      start: 1743
    functionDepth: 4
    functionLinenumber: 1743
    functionLinenumberEnd: 1745
    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:1750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1751
      start: 1749
    functionDepth: 4
    functionLinenumber: 1749
    functionLinenumberEnd: 1751
    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:1756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1757
      start: 1755
    functionDepth: 4
    functionLinenumber: 1755
    functionLinenumberEnd: 1757
    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:1762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1763
      start: 1761
    functionDepth: 4
    functionLinenumber: 1761
    functionLinenumberEnd: 1763
    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:1781,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1779
    functionDepth: 3
    functionLinenumber: 1779
    functionLinenumberEnd: 1783
    functionName: test::slice_buffer
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn slice_buffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1812,1
    - Dst: get_mut
      Src: /src/image/src/images/buffer.rs:1814,1
    - Dst: unwrap
      Src: /src/image/src/images/buffer.rs:1814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1811
    functionDepth: 2
    functionLinenumber: 1811
    functionLinenumberEnd: 1818
    functionName: test::get_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - get_mut
    - ImageBuffer::new
    linkageType: ''
    returnType: void
    signature: fn get_pixel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1822,1
    - Dst: get_pixel_mut_checked
      Src: /src/image/src/images/buffer.rs:1823,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1823,1
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:1834,1
    - Dst: put_pixel
      Src: /src/image/src/images/buffer.rs:1835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1839
      start: 1821
    functionDepth: 14
    functionLinenumber: 1821
    functionLinenumberEnd: 1839
    functionName: test::get_pixel_checked
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - RgbImage::new
    - Option::unwrap
    - ImageBuffer::new
    - get_pixel_mut_checked
    - put_pixel
    linkageType: ''
    returnType: void
    signature: fn get_pixel_checked()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1843,1
    - Dst: pixels_mut
      Src: /src/image/src/images/buffer.rs:1845,1
    - Dst: PixelsMutPar::next
      Src: /src/image/src/images/buffer.rs:1845,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1845,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:1846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1842
    functionDepth: 3
    functionLinenumber: 1842
    functionLinenumberEnd: 1849
    functionName: test::mut_iter
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - PixelsMutPar::next
    - Option::unwrap
    - ImageBuffer::new
    - 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:1883,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/buffer.rs:1883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1882
    functionDepth: 4
    functionLinenumber: 1882
    functionLinenumberEnd: 1892
    functionName: test::pixels_on_large_buffer
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - RgbImage::from_raw
    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:1896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1895
    functionDepth: 0
    functionLinenumber: 1895
    functionLinenumberEnd: 1898
    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:1903,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1902
    functionDepth: 3
    functionLinenumber: 1902
    functionLinenumberEnd: 1911
    functionName: test::test_image_buffer_copy_within_oob
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    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:1917,1
    - Dst: Vec::from
      Src: /src/image/src/images/buffer.rs:1917,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1929
      start: 1914
    functionDepth: 3
    functionLinenumber: 1914
    functionLinenumberEnd: 1929
    functionName: test::test_image_buffer_copy_within_tl
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Vec::from
    - ImageBuffer::from_raw
    - Option::unwrap
    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:1935,1
    - Dst: Vec::from
      Src: /src/image/src/images/buffer.rs:1935,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1932
    functionDepth: 3
    functionLinenumber: 1932
    functionLinenumberEnd: 1947
    functionName: test::test_image_buffer_copy_within_tr
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Vec::from
    - ImageBuffer::from_raw
    - Option::unwrap
    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:1953,1
    - Dst: Vec::from
      Src: /src/image/src/images/buffer.rs:1953,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1950
    functionDepth: 3
    functionLinenumber: 1950
    functionLinenumberEnd: 1965
    functionName: test::test_image_buffer_copy_within_bl
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Vec::from
    - ImageBuffer::from_raw
    - Option::unwrap
    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:1971,1
    - Dst: Vec::from
      Src: /src/image/src/images/buffer.rs:1971,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1968
    functionDepth: 3
    functionLinenumber: 1968
    functionLinenumberEnd: 1983
    functionName: test::test_image_buffer_copy_within_br
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Vec::from
    - ImageBuffer::from_raw
    - Option::unwrap
    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:1990,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1990,1
    - Dst: std::io::Cursor::new
      Src: /src/image/src/images/buffer.rs:1991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1987
    functionDepth: 3
    functionLinenumber: 1987
    functionLinenumberEnd: 1993
    functionName: test::write_to_with_large_buffer
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - std::io::Cursor::new
    - ImageBuffer::from_raw
    - Option::unwrap
    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:2003,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/buffer.rs:2003,1
    - Dst: Vec::pixels
      Src: /src/image/src/images/buffer.rs:2005,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2006,1
    - Dst: Vec::pixels_mut
      Src: /src/image/src/images/buffer.rs:2009,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2010,1
    - Dst: Vec::rows
      Src: /src/image/src/images/buffer.rs:2013,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2014,1
    - Dst: Vec::rows_mut
      Src: /src/image/src/images/buffer.rs:2017,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2018,1
    - Dst: Vec::enumerate_pixels
      Src: /src/image/src/images/buffer.rs:2021,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2022,1
    - Dst: Vec::enumerate_rows
      Src: /src/image/src/images/buffer.rs:2025,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2026,1
    - Dst: Vec::enumerate_pixels_mut
      Src: /src/image/src/images/buffer.rs:2029,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2030,1
    - Dst: Vec::enumerate_rows_mut
      Src: /src/image/src/images/buffer.rs:2033,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 1996
    functionDepth: 14
    functionLinenumber: 1996
    functionLinenumberEnd: 2036
    functionName: test::exact_size_iter_size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Vec::enumerate_pixels
    - Vec::enumerate_rows
    - Vec::enumerate_pixels_mut
    - ExactSizeIterator::len
    - Vec::rows_mut
    - ImageResult::unwrap
    - RgbImage::from_raw
    - Vec::enumerate_rows_mut
    - Vec::pixels
    - Vec::rows
    - Vec::pixels_mut
    linkageType: ''
    returnType: void
    signature: fn exact_size_iter_size_hint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2040,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2040,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2041,1
    - Dst: color::Rgba
      Src: /src/image/src/images/buffer.rs:2041,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2041,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2043,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/buffer.rs:2044,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2046,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/buffer.rs:2047,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/buffer.rs:2049,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 2039
    functionDepth: 17
    functionLinenumber: 2039
    functionLinenumberEnd: 2053
    functionName: test::color_conversion
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - set_rgb_primaries
    - Option::set_rgb_primaries
    - color::Rgba
    - copy_from_color_space
    - set_transfer_function
    - ImageBuffer::from_fn
    - Option::set_transfer_function
    - color::Rgb
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn color_conversion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2057,1
    - Dst: color::Luma
      Src: /src/image/src/images/buffer.rs:2057,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2058,1
    - Dst: color::Rgba
      Src: /src/image/src/images/buffer.rs:2058,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2058,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2060,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/buffer.rs:2061,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2063,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/buffer.rs:2064,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/buffer.rs:2066,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2056
    functionDepth: 17
    functionLinenumber: 2056
    functionLinenumberEnd: 2070
    functionName: test::gray_conversions
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - set_rgb_primaries
    - Option::set_rgb_primaries
    - color::Rgba
    - copy_from_color_space
    - set_transfer_function
    - ImageBuffer::from_fn
    - Option::set_transfer_function
    - Default::default
    - color::Luma
    linkageType: ''
    returnType: void
    signature: fn gray_conversions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2074,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2074,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2075,1
    - Dst: color::Luma
      Src: /src/image/src/images/buffer.rs:2075,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2075,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2077,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/buffer.rs:2078,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2080,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/buffer.rs:2081,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/buffer.rs:2083,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2073
    functionDepth: 17
    functionLinenumber: 2073
    functionLinenumberEnd: 2087
    functionName: test::rgb_to_gray_conversion
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - set_rgb_primaries
    - Option::set_rgb_primaries
    - copy_from_color_space
    - set_transfer_function
    - ImageBuffer::from_fn
    - Option::set_transfer_function
    - color::Rgb
    - Default::default
    - color::Luma
    linkageType: ''
    returnType: void
    signature: fn rgb_to_gray_conversion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2091,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2091,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/buffer.rs:2093,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/buffer.rs:2094,1
    - Dst: '&RgbaImage::apply_color_space'
      Src: /src/image/src/images/buffer.rs:2096,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2097,1
    - Dst: ImageResult::expect
      Src: /src/image/src/images/buffer.rs:2096,1
    - Dst: '&RgbaImage::pixels'
      Src: /src/image/src/images/buffer.rs:2100,1
    - Dst: Vec::for_each
      Src: /src/image/src/images/buffer.rs:2100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2090
    functionDepth: 17
    functionLinenumber: 2090
    functionLinenumberEnd: 2103
    functionName: test::apply_color
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_rgb_primaries'
    - '&RgbaImage::set_transfer_function'
    - Vec::for_each
    - '&RgbaImage::pixels'
    - ImageBuffer::from_fn
    - '&RgbaImage::apply_color_space'
    - ImageResult::expect
    - color::Rgb
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn apply_color()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2107,1
    - Dst: color::Rgba
      Src: /src/image/src/images/buffer.rs:2107,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2108,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/buffer.rs:2109,1
    - Dst: to_color_space::<Rgb<u8>>
      Src: /src/image/src/images/buffer.rs:2111,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2112,1
    - Dst: expect
      Src: /src/image/src/images/buffer.rs:2111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 2106
    functionDepth: 17
    functionLinenumber: 2106
    functionLinenumberEnd: 2116
    functionName: test::to_color
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - expect
    - Option::set_rgb_primaries
    - to_color_space::<Rgb<u8>>
    - color::Rgba
    - ImageBuffer::from_fn
    - Option::set_transfer_function
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn to_color()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2120,1
    - Dst: color::Luma
      Src: /src/image/src/images/buffer.rs:2120,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2121,1
    - Dst: color::Rgba
      Src: /src/image/src/images/buffer.rs:2121,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2121,1
    - Dst: Option::set_color_space
      Src: /src/image/src/images/buffer.rs:2123,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/buffer.rs:2123,1
    - Dst: set_color_space
      Src: /src/image/src/images/buffer.rs:2124,1
    - Dst: unwrap
      Src: /src/image/src/images/buffer.rs:2124,1
    - Dst: CicpTransform::new
      Src: /src/image/src/images/buffer.rs:2127,1
    - Dst: super::ConvertColorOptions::default
      Src: /src/image/src/images/buffer.rs:2128,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/buffer.rs:2131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2119
    functionDepth: 17
    functionLinenumber: 2119
    functionLinenumberEnd: 2133
    functionName: test::transformation_mismatch
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - color::Rgba
    - copy_from_color_space
    - ImageResult::unwrap
    - set_color_space
    - ImageBuffer::from_fn
    - CicpTransform::new
    - Option::set_color_space
    - super::ConvertColorOptions::default
    - Default::default
    - color::Luma
    linkageType: ''
    returnType: void
    signature: fn transformation_mismatch()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:2143,1
    - Dst: pixels_mut
      Src: /src/image/src/images/buffer.rs:2144,1
    - Dst: Result::channels_mut
      Src: /src/image/src/images/buffer.rs:2145,1
    - Dst: iter
      Src: /src/image/src/images/buffer.rs:2152,1
    - Dst: convert
      Src: /src/image/src/images/buffer.rs:2153,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:2156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 2159
      start: 2142
    functionDepth: 6
    functionLinenumber: 2142
    functionLinenumberEnd: 2159
    functionName: benchmarks::conversion
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - iter
    - test::black_box
    - convert
    - ImageBuffer::new
    - pixels_mut
    - Result::channels_mut
    linkageType: ''
    returnType: void
    signature: 'fn conversion(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:2163,1
    - Dst: pixels_mut
      Src: /src/image/src/images/buffer.rs:2164,1
    - Dst: Result::channels_mut
      Src: /src/image/src/images/buffer.rs:2165,1
    - Dst: iter
      Src: /src/image/src/images/buffer.rs:2171,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:2172,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/images/buffer.rs:2176,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2177,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2178,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2179,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:2182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 2186
      start: 2162
    functionDepth: 3
    functionLinenumber: 2162
    functionLinenumberEnd: 2186
    functionName: benchmarks::image_access_row_by_row
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - iter
    - wrapping_add
    - Vec::get_pixel
    - test::black_box
    - ImageBuffer::new
    - pixels_mut
    - Result::channels_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:2190,1
    - Dst: pixels_mut
      Src: /src/image/src/images/buffer.rs:2191,1
    - Dst: Result::channels_mut
      Src: /src/image/src/images/buffer.rs:2192,1
    - Dst: iter
      Src: /src/image/src/images/buffer.rs:2198,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:2199,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/images/buffer.rs:2203,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2204,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2205,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2206,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:2209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 2213
      start: 2189
    functionDepth: 3
    functionLinenumber: 2189
    functionLinenumberEnd: 2213
    functionName: benchmarks::image_access_col_by_col
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - iter
    - wrapping_add
    - Vec::get_pixel
    - test::black_box
    - ImageBuffer::new
    - pixels_mut
    - Result::channels_mut
    linkageType: ''
    returnType: void
    signature: 'fn image_access_col_by_col(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 111
    functionName: CicpColorPrimaries::to_moxcms
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: moxcms::CicpColorPrimaries
    signature: fn to_moxcms(self) -> moxcms::CicpColorPrimaries
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 196
    functionName: CicpTransferCharacteristics::to_moxcms
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: moxcms::TransferCharacteristics
    signature: fn to_moxcms(self) -> moxcms::TransferCharacteristics
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/metadata/cicp.rs:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 277
    functionName: CicpMatrixCoefficients::to_moxcms
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn to_moxcms(self) -> Option<moxcms::MatrixCoefficients>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::qualify_stability
      Src: /src/image/src/metadata/cicp.rs:346,1
    - Dst: Img::qualify_stability
      Src: /src/image/src/metadata/cicp.rs:346,1
    - Dst: Self::into_rgb
      Src: /src/image/src/metadata/cicp.rs:356,1
    - Dst: CicpRgb::derived_luminance
      Src: /src/image/src/metadata/cicp.rs:356,1
    - Dst: Img::into_rgb
      Src: /src/image/src/metadata/cicp.rs:357,1
    - Dst: CicpRgb::derived_luminance
      Src: /src/image/src/metadata/cicp.rs:357,1
    - Dst: Self::to_moxcms_compute_profile
      Src: /src/image/src/metadata/cicp.rs:359,1
    - Dst: Img::to_moxcms_compute_profile
      Src: /src/image/src/metadata/cicp.rs:360,1
    - Dst: moxcms::TransformOptions::default
      Src: /src/image/src/metadata/cicp.rs:362,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:365,1
    - Dst: map_layout
      Src: /src/image/src/metadata/cicp.rs:366,1
    - Dst: map_layout
      Src: /src/image/src/metadata/cicp.rs:367,1
    - Dst: Self::create_transform_f32
      Src: /src/image/src/metadata/cicp.rs:369,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:369,1
    - Dst: ok
      Src: /src/image/src/metadata/cicp.rs:369,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:374,1
    - Dst: any
      Src: /src/image/src/metadata/cicp.rs:374,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:378,1
    - Dst: Some
      Src: /src/image/src/metadata/cicp.rs:382,1
    - Dst: Self::build_transforms
      Src: /src/image/src/metadata/cicp.rs:385,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:386,1
    - Dst: map_layout
      Src: /src/image/src/metadata/cicp.rs:387,1
    - Dst: map_layout
      Src: /src/image/src/metadata/cicp.rs:388,1
    - Dst: Self::create_transform_8bit
      Src: /src/image/src/metadata/cicp.rs:390,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:390,1
    - Dst: ok
      Src: /src/image/src/metadata/cicp.rs:390,1
    - Dst: clone
      Src: /src/image/src/metadata/cicp.rs:394,1
    - Dst: Self::build_transforms
      Src: /src/image/src/metadata/cicp.rs:397,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:398,1
    - Dst: map_layout
      Src: /src/image/src/metadata/cicp.rs:399,1
    - Dst: map_layout
      Src: /src/image/src/metadata/cicp.rs:400,1
    - Dst: Self::create_transform_16bit
      Src: /src/image/src/metadata/cicp.rs:402,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:402,1
    - Dst: ok
      Src: /src/image/src/metadata/cicp.rs:402,1
    - Dst: clone
      Src: /src/image/src/metadata/cicp.rs:406,1
    - Dst: Self::build_transforms
      Src: /src/image/src/metadata/cicp.rs:409,1
    - Dst: clone
      Src: /src/image/src/metadata/cicp.rs:410,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:410,1
    - Dst: clone
      Src: /src/image/src/metadata/cicp.rs:411,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 95
    argCount: 2
    argNames:
    - from
    - into
    argTypes:
    - Cicp
    - Cicp
    constantsTouched: []
    func_position:
      end: 416
      start: 345
    functionDepth: 14
    functionLinenumber: 345
    functionLinenumberEnd: 416
    functionName: CicpTransform::new
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 5
    functionsReached:
    - Self::into_rgb
    - map
    - Self::to_moxcms_compute_profile
    - Self::create_transform_8bit
    - clone
    - Img::to_moxcms_compute_profile
    - Self::build_transforms
    - Img::into_rgb
    - Self::create_transform_16bit
    - CicpRgb::derived_luminance
    - Img::qualify_stability
    - Self::create_transform_f32
    - moxcms::TransformOptions::default
    - Self::qualify_stability
    - iter
    - ok
    - Some
    - any
    - map_layout
    linkageType: ''
    returnType: Option
    signature: 'pub fn new(from: Cicp, into: Cicp) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: double_dispatch_transform_from_sealed::<From, Into>
      Src: /src/image/src/metadata/cicp.rs:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 431
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 431
    functionName: CicpTransform::supported_transform_fn
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - double_dispatch_transform_from_sealed::<From, Into>
    linkageType: ''
    returnType: '&''_ CicpApplicable'
    signature: 'pub(crate) fn supported_transform_fn<From: PixelWithColorType, Into:
      PixelWithColorType>(&self,) -> &''_ CicpApplicable<''_, From::Subpixel>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/metadata/cicp.rs:437,1
    - Dst: Err
      Src: /src/image/src/metadata/cicp.rs:439,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/metadata/cicp.rs:439,1
    - Dst: check_expectation
      Src: /src/image/src/metadata/cicp.rs:445,1
    - Dst: map_err
      Src: /src/image/src/metadata/cicp.rs:445,1
    - Dst: check_expectation
      Src: /src/image/src/metadata/cicp.rs:446,1
    - Dst: map_err
      Src: /src/image/src/metadata/cicp.rs:446,1
    - Dst: Ok
      Src: /src/image/src/metadata/cicp.rs:448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - from
    - into
    argTypes:
    - Cicp
    - Cicp
    constantsTouched: []
    func_position:
      end: 449
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 449
    functionName: CicpTransform::check_applicable
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - map_err
    - check_expectation
    - Err
    - Ok
    - ParameterError::from_kind
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn check_applicable(&self, from: Cicp, into: Cicp) -> Result<(),
      ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[Option<Arc<dyn moxcms::TransformExecutor<P> + Send + Sync>>; 4]::iter'
      Src: /src/image/src/metadata/cicp.rs:457,1
    - Dst: any
      Src: /src/image/src/metadata/cicp.rs:457,1
    - Dst: ImageResult::map
      Src: /src/image/src/metadata/cicp.rs:461,1
    - Dst: ImageResult::clone
      Src: /src/image/src/metadata/cicp.rs:464,1
    - Dst: Self::map
      Src: /src/image/src/metadata/cicp.rs:464,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:465,1
    - Dst: Result::transform
      Src: /src/image/src/metadata/cicp.rs:466,1
    - Dst: ImageResult::expect
      Src: /src/image/src/metadata/cicp.rs:466,1
    - Dst: ImageResult::clone
      Src: /src/image/src/metadata/cicp.rs:474,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:477,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:481,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:481,1
    - Dst: chunks_mut
      Src: /src/image/src/metadata/cicp.rs:481,1
    - Dst: T::len
      Src: /src/image/src/metadata/cicp.rs:482,1
    - Dst: Self::expand_luma_rgb
      Src: /src/image/src/metadata/cicp.rs:485,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:486,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:486,1
    - Dst: Self::clamp_rgb
      Src: /src/image/src/metadata/cicp.rs:487,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:490,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:494,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:494,1
    - Dst: chunks_mut
      Src: /src/image/src/metadata/cicp.rs:494,1
    - Dst: T::len
      Src: /src/image/src/metadata/cicp.rs:495,1
    - Dst: Self::expand_luma_rgb
      Src: /src/image/src/metadata/cicp.rs:498,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:499,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:499,1
    - Dst: Self::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:500,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:503,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:507,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:507,1
    - Dst: chunks_mut
      Src: /src/image/src/metadata/cicp.rs:507,1
    - Dst: T::len
      Src: /src/image/src/metadata/cicp.rs:508,1
    - Dst: Self::expand_luma_rgba
      Src: /src/image/src/metadata/cicp.rs:511,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:512,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:512,1
    - Dst: Self::clamp_rgb
      Src: /src/image/src/metadata/cicp.rs:513,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:516,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:520,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:520,1
    - Dst: chunks_mut
      Src: /src/image/src/metadata/cicp.rs:520,1
    - Dst: T::len
      Src: /src/image/src/metadata/cicp.rs:521,1
    - Dst: Self::expand_luma_rgba
      Src: /src/image/src/metadata/cicp.rs:524,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:525,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:525,1
    - Dst: Self::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:526,1
    - Dst: ImageResult::clone
      Src: /src/image/src/metadata/cicp.rs:534,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:537,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:543,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:543,1
    - Dst: chunks_mut
      Src: /src/image/src/metadata/cicp.rs:543,1
    - Dst: len
      Src: /src/image/src/metadata/cicp.rs:544,1
    - Dst: Self::expand_rgb
      Src: /src/image/src/metadata/cicp.rs:547,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:548,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:548,1
    - Dst: Self::clamp_rgb_luma
      Src: /src/image/src/metadata/cicp.rs:549,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:552,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:558,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:558,1
    - Dst: chunks_mut
      Src: /src/image/src/metadata/cicp.rs:558,1
    - Dst: len
      Src: /src/image/src/metadata/cicp.rs:559,1
    - Dst: Self::expand_rgb
      Src: /src/image/src/metadata/cicp.rs:562,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:563,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:563,1
    - Dst: Self::clamp_rgba_luma
      Src: /src/image/src/metadata/cicp.rs:564,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:567,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:573,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:573,1
    - Dst: chunks_mut
      Src: /src/image/src/metadata/cicp.rs:573,1
    - Dst: len
      Src: /src/image/src/metadata/cicp.rs:574,1
    - Dst: Self::expand_rgba
      Src: /src/image/src/metadata/cicp.rs:577,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:578,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:578,1
    - Dst: Self::clamp_rgb_luma
      Src: /src/image/src/metadata/cicp.rs:579,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:582,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:588,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:588,1
    - Dst: chunks_mut
      Src: /src/image/src/metadata/cicp.rs:588,1
    - Dst: len
      Src: /src/image/src/metadata/cicp.rs:589,1
    - Dst: Self::expand_rgba
      Src: /src/image/src/metadata/cicp.rs:592,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:593,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:593,1
    - Dst: Self::clamp_rgba_luma
      Src: /src/image/src/metadata/cicp.rs:594,1
    - Dst: ImageResult::clone
      Src: /src/image/src/metadata/cicp.rs:602,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:605,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:610,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:610,1
    - Dst: chunks_mut
      Src: /src/image/src/metadata/cicp.rs:610,1
    - Dst: T::len
      Src: /src/image/src/metadata/cicp.rs:611,1
    - Dst: Self::expand_luma_rgb
      Src: /src/image/src/metadata/cicp.rs:614,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:615,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:615,1
    - Dst: Self::clamp_rgb_luma
      Src: /src/image/src/metadata/cicp.rs:616,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:619,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:624,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:624,1
    - Dst: chunks_mut
      Src: /src/image/src/metadata/cicp.rs:624,1
    - Dst: T::len
      Src: /src/image/src/metadata/cicp.rs:625,1
    - Dst: Self::expand_luma_rgb
      Src: /src/image/src/metadata/cicp.rs:628,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:629,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:629,1
    - Dst: Self::clamp_rgba_luma
      Src: /src/image/src/metadata/cicp.rs:630,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:633,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:638,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:638,1
    - Dst: chunks_mut
      Src: /src/image/src/metadata/cicp.rs:638,1
    - Dst: T::len
      Src: /src/image/src/metadata/cicp.rs:639,1
    - Dst: Self::expand_luma_rgba
      Src: /src/image/src/metadata/cicp.rs:642,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:643,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:643,1
    - Dst: Self::clamp_rgb_luma
      Src: /src/image/src/metadata/cicp.rs:644,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:647,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:652,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:652,1
    - Dst: chunks_mut
      Src: /src/image/src/metadata/cicp.rs:652,1
    - Dst: T::len
      Src: /src/image/src/metadata/cicp.rs:653,1
    - Dst: Self::expand_luma_rgba
      Src: /src/image/src/metadata/cicp.rs:656,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:657,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:657,1
    - Dst: Self::clamp_rgba_luma
      Src: /src/image/src/metadata/cicp.rs:658,1
    - Dst: Some
      Src: /src/image/src/metadata/cicp.rs:664,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 471
    argCount: 3
    argNames:
    - trs
    - f32
    - output_coef
    argTypes:
    - '[Option<Arc<dyn moxcms::TransformExecutor<P> + Send + Sync>>; 4]'
    - '[Arc<dyn moxcms::TransformExecutor<f32> + Send + Sync>; 4]'
    - '[f32; 3]'
    constantsTouched: []
    func_position:
      end: 670
      start: 451
    functionDepth: 14
    functionLinenumber: 451
    functionLinenumberEnd: 670
    functionName: CicpTransform::build_transforms
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - Self::clamp_rgb
    - Self::expand_luma_rgb
    - chunks
    - transform
    - zip
    - Self::expand_rgb
    - Self::expand_luma_rgba
    - Self::expand_rgba
    - ImageResult::expect
    - Self::clamp_rgb_luma
    - '[Option<Arc<dyn moxcms::TransformExecutor<P> + Send + Sync>>; 4]::iter'
    - Arc::new
    - ImageResult::map
    - expect
    - Result::transform
    - T::len
    - len
    - Self::clamp_rgba
    - ImageResult::clone
    - Self::map
    - Self::clamp_rgba_luma
    - Some
    - chunks_mut
    - any
    linkageType: ''
    returnType: Option
    signature: 'fn build_transforms<P: ColorComponentForCicp + Default + ''static>(trs:
      [Option<Arc<dyn moxcms::TransformExecutor<P> + Send + Sync>>; 4],f32: [Arc<dyn
      moxcms::TransformExecutor<f32> + Send + Sync>; 4],output_coef: [f32; 3],) ->
      Option<RgbTransforms<P>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/image/src/metadata/cicp.rs:678,1
    - Dst: '&mut DynamicImage::width'
      Src: /src/image/src/metadata/cicp.rs:678,1
    - Dst: u64::from
      Src: /src/image/src/metadata/cicp.rs:678,1
    - Dst: '&mut DynamicImage::height'
      Src: /src/image/src/metadata/cicp.rs:678,1
    - Dst: LayoutWithColor::from
      Src: /src/image/src/metadata/cicp.rs:684,1
    - Dst: '&mut DynamicImage::color'
      Src: /src/image/src/metadata/cicp.rs:684,1
    - Dst: LayoutWithColor::from
      Src: /src/image/src/metadata/cicp.rs:685,1
    - Dst: '&DynamicImage::color'
      Src: /src/image/src/metadata/cicp.rs:685,1
    - Dst: step_by
      Src: /src/image/src/metadata/cicp.rs:721,1
    - Dst: min
      Src: /src/image/src/metadata/cicp.rs:722,1
    - Dst: CicpTransform::expand_luma_rgb
      Src: /src/image/src/metadata/cicp.rs:729,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:730,1
    - Dst: CicpTransform::expand_luma_rgba
      Src: /src/image/src/metadata/cicp.rs:735,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:736,1
    - Dst: CicpTransform::expand_rgb
      Src: /src/image/src/metadata/cicp.rs:741,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:742,1
    - Dst: CicpTransform::expand_rgba
      Src: /src/image/src/metadata/cicp.rs:747,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:748,1
    - Dst: CicpTransform::expand_luma_rgb
      Src: /src/image/src/metadata/cicp.rs:753,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:754,1
    - Dst: CicpTransform::expand_luma_rgba
      Src: /src/image/src/metadata/cicp.rs:759,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:760,1
    - Dst: CicpTransform::expand_rgb
      Src: /src/image/src/metadata/cicp.rs:765,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:766,1
    - Dst: CicpTransform::expand_rgba
      Src: /src/image/src/metadata/cicp.rs:772,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:773,1
    - Dst: CicpTransform::expand_rgb
      Src: /src/image/src/metadata/cicp.rs:778,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:779,1
    - Dst: CicpTransform::expand_rgba
      Src: /src/image/src/metadata/cicp.rs:784,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:785,1
    - Dst: inner_transform
      Src: /src/image/src/metadata/cicp.rs:794,1
    - Dst: CicpTransform::clamp_rgb_luma
      Src: /src/image/src/metadata/cicp.rs:798,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:800,1
    - Dst: CicpTransform::clamp_rgba_luma
      Src: /src/image/src/metadata/cicp.rs:805,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:807,1
    - Dst: CicpTransform::clamp_rgb
      Src: /src/image/src/metadata/cicp.rs:812,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:814,1
    - Dst: CicpTransform::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:818,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:820,1
    - Dst: CicpTransform::clamp_rgb_luma
      Src: /src/image/src/metadata/cicp.rs:824,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:826,1
    - Dst: CicpTransform::clamp_rgba_luma
      Src: /src/image/src/metadata/cicp.rs:831,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:833,1
    - Dst: CicpTransform::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:838,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:840,1
    - Dst: CicpTransform::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:845,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:847,1
    - Dst: CicpTransform::clamp_rgb
      Src: /src/image/src/metadata/cicp.rs:851,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:853,1
    - Dst: CicpTransform::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:857,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:859,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 338
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - '&mut DynamicImage'
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 864
      start: 672
    functionDepth: 14
    functionLinenumber: 672
    functionLinenumberEnd: 864
    functionName: CicpTransform::transform_dynamic
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - inner_transform
    - u64::from
    - '&DynamicImage::color'
    - std::io::Result::inner_pixels
    - CicpTransform::clamp_rgba
    - LayoutWithColor::from
    - CicpTransform::clamp_rgb_luma
    - CicpTransform::expand_rgba
    - min
    - '&mut DynamicImage::height'
    - CicpTransform::expand_luma_rgb
    - CicpTransform::clamp_rgb
    - '&mut DynamicImage::width'
    - CicpTransform::expand_rgb
    - CicpTransform::expand_luma_rgba
    - CicpTransform::clamp_rgba_luma
    - step_by
    - std::io::Result::inner_pixels_mut
    - '&mut DynamicImage::color'
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn transform_dynamic(&self, lhs: &mut DynamicImage, rhs:
      &DynamicImage)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8.select_transform::<P>
      Src: /src/image/src/metadata/cicp.rs:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - into
    argTypes:
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 877
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 877
    functionName: CicpTransform::select_transform_u8
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - u8.select_transform::<P>
    linkageType: ''
    returnType: '&Arc'
    signature: 'pub(crate) fn select_transform_u8<P: SealedPixelWithColorType<TransformableSubpixel
      = u8>>(&self,into: LayoutWithColor,) -> &Arc<CicpApplicable<''static, u8>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16.select_transform::<O>
      Src: /src/image/src/metadata/cicp.rs:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - into
    argTypes:
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 884
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 884
    functionName: CicpTransform::select_transform_u16
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - u16.select_transform::<O>
    linkageType: ''
    returnType: '&Arc'
    signature: 'pub(crate) fn select_transform_u16<O: SealedPixelWithColorType<TransformableSubpixel
      = u16>>(&self,into: LayoutWithColor,) -> &Arc<CicpApplicable<''static, u16>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f32.select_transform::<O>
      Src: /src/image/src/metadata/cicp.rs:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - into
    argTypes:
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 891
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 891
    functionName: CicpTransform::select_transform_f32
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - f32.select_transform::<O>
    linkageType: ''
    returnType: '&Arc'
    signature: 'pub(crate) fn select_transform_f32<O: SealedPixelWithColorType<TransformableSubpixel
      = f32>>(&self,into: LayoutWithColor,) -> &Arc<CicpApplicable<''static, f32>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::iter
      Src: /src/image/src/metadata/cicp.rs:901,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:901,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/metadata/cicp.rs:901,1
    - Dst: expand_to_f32
      Src: /src/image/src/metadata/cicp.rs:902,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - luma
    - rgb
    argTypes:
    - '&[P]'
    - '&mut [f32]'
    constantsTouched: []
    func_position:
      end: 907
      start: 900
    functionDepth: 4
    functionLinenumber: 900
    functionLinenumberEnd: 907
    functionName: CicpTransform::expand_luma_rgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - T::iter
    - chunks_exact_mut
    - zip
    - expand_to_f32
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn expand_luma_rgb<P: ColorComponentForCicp>(luma: &[P],
      rgb: &mut [f32])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::chunks_exact
      Src: /src/image/src/metadata/cicp.rs:910,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:910,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/metadata/cicp.rs:910,1
    - Dst: expand_to_f32
      Src: /src/image/src/metadata/cicp.rs:911,1
    - Dst: expand_to_f32
      Src: /src/image/src/metadata/cicp.rs:915,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 2
    argNames:
    - luma
    - rgb
    argTypes:
    - '&[P]'
    - '&mut [f32]'
    constantsTouched: []
    func_position:
      end: 917
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 917
    functionName: CicpTransform::expand_luma_rgba
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - T::chunks_exact
    - chunks_exact_mut
    - zip
    - expand_to_f32
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn expand_luma_rgba<P: ColorComponentForCicp>(luma: &[P],
      rgb: &mut [f32])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[P]::iter'
      Src: /src/image/src/metadata/cicp.rs:920,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:920,1
    - Dst: ImageResult::expand_to_f32
      Src: /src/image/src/metadata/cicp.rs:921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - '&[P]'
    - '&mut [f32]'
    constantsTouched: []
    func_position:
      end: 923
      start: 919
    functionDepth: 4
    functionLinenumber: 919
    functionLinenumberEnd: 923
    functionName: CicpTransform::expand_rgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - '&[P]::iter'
    - ImageResult::expand_to_f32
    - zip
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn expand_rgb<P: ColorComponentForCicp>(input: &[P], output:
      &mut [f32])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[P]::iter'
      Src: /src/image/src/metadata/cicp.rs:926,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:926,1
    - Dst: ImageResult::expand_to_f32
      Src: /src/image/src/metadata/cicp.rs:927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - '&[P]'
    - '&mut [f32]'
    constantsTouched: []
    func_position:
      end: 929
      start: 925
    functionDepth: 4
    functionLinenumber: 925
    functionLinenumberEnd: 929
    functionName: CicpTransform::expand_rgba
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - '&[P]::iter'
    - ImageResult::expand_to_f32
    - zip
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn expand_rgba<P: ColorComponentForCicp>(input: &[P], output:
      &mut [f32])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[f32]::iter'
      Src: /src/image/src/metadata/cicp.rs:933,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:933,1
    - Dst: P::clamp_from_f32
      Src: /src/image/src/metadata/cicp.rs:934,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - '&[f32]'
    - '&mut [P]'
    constantsTouched: []
    func_position:
      end: 936
      start: 931
    functionDepth: 15
    functionLinenumber: 931
    functionLinenumberEnd: 936
    functionName: CicpTransform::clamp_rgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - P::clamp_from_f32
    - '&[f32]::iter'
    - zip
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn clamp_rgb<P: ColorComponentForCicp>(input: &[f32], output:
      &mut [P])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[f32]::iter'
      Src: /src/image/src/metadata/cicp.rs:939,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:939,1
    - Dst: P::clamp_from_f32
      Src: /src/image/src/metadata/cicp.rs:940,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - '&[f32]'
    - '&mut [P]'
    constantsTouched: []
    func_position:
      end: 942
      start: 938
    functionDepth: 15
    functionLinenumber: 938
    functionLinenumberEnd: 942
    functionName: CicpTransform::clamp_rgba
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - P::clamp_from_f32
    - '&[f32]::iter'
    - zip
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn clamp_rgba<P: ColorComponentForCicp>(input: &[f32],
      output: &mut [P])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[f32]::chunks_exact'
      Src: /src/image/src/metadata/cicp.rs:949,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:949,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:952,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:952,1
    - Dst: multiply_accumulate
      Src: /src/image/src/metadata/cicp.rs:953,1
    - Dst: P::clamp_from_f32
      Src: /src/image/src/metadata/cicp.rs:956,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - input
    - output
    - coef
    argTypes:
    - '&[f32]'
    - '&mut [P]'
    - '[f32; 3]'
    constantsTouched: []
    func_position:
      end: 958
      start: 944
    functionDepth: 15
    functionLinenumber: 944
    functionLinenumberEnd: 958
    functionName: CicpTransform::clamp_rgb_luma
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - iter
    - '&[f32]::chunks_exact'
    - P::clamp_from_f32
    - multiply_accumulate
    - zip
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn clamp_rgb_luma<P: ColorComponentForCicp>(input: &[f32],output:
      &mut [P],coef: [f32; 3],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[f32]::chunks_exact'
      Src: /src/image/src/metadata/cicp.rs:965,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:965,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/metadata/cicp.rs:965,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:968,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:968,1
    - Dst: multiply_accumulate
      Src: /src/image/src/metadata/cicp.rs:969,1
    - Dst: P::clamp_from_f32
      Src: /src/image/src/metadata/cicp.rs:972,1
    - Dst: P::clamp_from_f32
      Src: /src/image/src/metadata/cicp.rs:973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 3
    argNames:
    - input
    - output
    - coef
    argTypes:
    - '&[f32]'
    - '&mut [P]'
    - '[f32; 3]'
    constantsTouched: []
    func_position:
      end: 975
      start: 960
    functionDepth: 15
    functionLinenumber: 960
    functionLinenumberEnd: 975
    functionName: CicpTransform::clamp_rgba_luma
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - iter
    - '&[f32]::chunks_exact'
    - P::clamp_from_f32
    - chunks_exact_mut
    - multiply_accumulate
    - zip
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn clamp_rgba_luma<P: ColorComponentForCicp>(input: &[f32],output:
      &mut [P],coef: [f32; 3],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: <FromColor as SealedPixelWithColorType>::layout
      Src: /src/image/src/metadata/cicp.rs:997,1
    - Dst: <IntoColor as SealedPixelWithColorType>::layout
      Src: /src/image/src/metadata/cicp.rs:998,1
    - Dst: CicpRgb::cast_pixels_from_subpixels
      Src: /src/image/src/metadata/cicp.rs:1000,1
    - Dst: CicpRgb::derived_luminance
      Src: /src/image/src/metadata/cicp.rs:1006,1
    - Dst: Option::unwrap_or_else
      Src: /src/image/src/metadata/cicp.rs:1006,1
    - Dst: '&RgbaImage::len'
      Src: /src/image/src/metadata/cicp.rs:1013,1
    - Dst: SampleLayout::channels
      Src: /src/image/src/metadata/cicp.rs:1013,1
    - Dst: resize
      Src: /src/image/src/metadata/cicp.rs:1018,1
    - Dst: SampleLayout::channels
      Src: /src/image/src/metadata/cicp.rs:1019,1
    - Dst: Self::cast_pixels_by_fallback
      Src: /src/image/src/metadata/cicp.rs:1023,1
    - Dst: as_mut_slice
      Src: /src/image/src/metadata/cicp.rs:1025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - buffer
    - color_space_fallback
    argTypes:
    - '&[FromColor::Subpixel]'
    - '&dyn Fn() -> [f32; 3]'
    constantsTouched: []
    func_position:
      end: 1031
      start: 982
    functionDepth: 15
    functionLinenumber: 982
    functionLinenumberEnd: 1031
    functionName: CicpRgb::cast_pixels
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - SampleLayout::channels
    - CicpRgb::cast_pixels_from_subpixels
    - resize
    - <IntoColor as SealedPixelWithColorType>::layout
    - Option::unwrap_or_else
    - '&RgbaImage::len'
    - as_mut_slice
    - Self::cast_pixels_by_fallback
    - <FromColor as SealedPixelWithColorType>::layout
    - CicpRgb::derived_luminance
    linkageType: ''
    returnType: Vec
    signature: 'pub(crate) fn cast_pixels<FromColor, IntoColor>(&self,buffer: &[FromColor::Subpixel],//
      Since this is not performance sensitive, we can use a dyn closure here instead
      of an// impl closure just in case we call this from multiple different paths.color_space_fallback:
      &dyn Fn() -> [f32; 3],) -> Vec<IntoColor::Subpixel>whereFromColor: Pixel + SealedPixelWithColorType<TransformableSubpixel
      = FromColor::Subpixel>,IntoColor: Pixel,IntoColor: CicpPixelCast<FromColor>,FromColor::Subpixel:
      ColorComponentForCicp,IntoColor::Subpixel: ColorComponentForCicp + FromPrimitive<FromColor::Subpixel>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&RgbaImage::len'
      Src: /src/image/src/metadata/cicp.rs:1046,1
    - Dst: LayoutWithColor::channels
      Src: /src/image/src/metadata/cicp.rs:1046,1
    - Dst: step_by
      Src: /src/image/src/metadata/cicp.rs:1061,1
    - Dst: min
      Src: /src/image/src/metadata/cicp.rs:1062,1
    - Dst: CicpTransform::expand_rgb
      Src: /src/image/src/metadata/cicp.rs:1069,1
    - Dst: CicpTransform::expand_rgba
      Src: /src/image/src/metadata/cicp.rs:1072,1
    - Dst: CicpTransform::expand_luma_rgb
      Src: /src/image/src/metadata/cicp.rs:1075,1
    - Dst: CicpTransform::expand_luma_rgba
      Src: /src/image/src/metadata/cicp.rs:1078,1
    - Dst: chunks_exact
      Src: /src/image/src/metadata/cicp.rs:1087,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:1087,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/metadata/cicp.rs:1089,1
    - Dst: take
      Src: /src/image/src/metadata/cicp.rs:1087,1
    - Dst: chunks_exact
      Src: /src/image/src/metadata/cicp.rs:1101,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:1101,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/metadata/cicp.rs:1103,1
    - Dst: take
      Src: /src/image/src/metadata/cicp.rs:1101,1
    - Dst: CicpTransform::clamp_rgb
      Src: /src/image/src/metadata/cicp.rs:1121,1
    - Dst: CicpTransform::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:1124,1
    - Dst: CicpTransform::clamp_rgb_luma
      Src: /src/image/src/metadata/cicp.rs:1127,1
    - Dst: CicpTransform::clamp_rgba_luma
      Src: /src/image/src/metadata/cicp.rs:1134,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 140
    argCount: 5
    argNames:
    - buffer
    - output
    - from_layout
    - into_layout
    - color_space_coefs
    argTypes:
    - '&[From]'
    - '&mut [Into]'
    - LayoutWithColor
    - LayoutWithColor
    - '[f32; 3]'
    constantsTouched: []
    func_position:
      end: 1142
      start: 1033
    functionDepth: 14
    functionLinenumber: 1033
    functionLinenumberEnd: 1142
    functionName: CicpRgb::cast_pixels_by_fallback
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - min
    - LayoutWithColor::channels
    - CicpTransform::expand_rgb
    - CicpTransform::expand_luma_rgba
    - CicpTransform::clamp_rgba
    - chunks_exact_mut
    - CicpTransform::clamp_rgba_luma
    - step_by
    - chunks_exact
    - '&RgbaImage::len'
    - zip
    - CicpTransform::clamp_rgb_luma
    - take
    - CicpTransform::expand_luma_rgb
    - CicpTransform::clamp_rgb
    - CicpTransform::expand_rgba
    linkageType: ''
    returnType: void
    signature: 'fn cast_pixels_by_fallback<From: Primitive + ColorComponentForCicp,Into:
      ColorComponentForCicp,>(buffer: &[From],output: &mut [Into],from_layout: LayoutWithColor,into_layout:
      LayoutWithColor,color_space_coefs: [f32; 3],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&RgbaImage::len'
      Src: /src/image/src/metadata/cicp.rs:1159,1
    - Dst: LayoutWithColor::channels
      Src: /src/image/src/metadata/cicp.rs:1159,1
    - Dst: vec_try_with_capacity
      Src: /src/image/src/metadata/cicp.rs:1161,1
    - Dst: LayoutWithColor::channels
      Src: /src/image/src/metadata/cicp.rs:1161,1
    - Dst: Result::expect
      Src: /src/image/src/metadata/cicp.rs:1161,1
    - Dst: extend
      Src: /src/image/src/metadata/cicp.rs:1173,1
    - Dst: '&RgbaImage::iter'
      Src: /src/image/src/metadata/cicp.rs:1173,1
    - Dst: copied
      Src: /src/image/src/metadata/cicp.rs:1173,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:1173,1
    - Dst: extend
      Src: /src/image/src/metadata/cicp.rs:1177,1
    - Dst: '&RgbaImage::chunks_exact'
      Src: /src/image/src/metadata/cicp.rs:1177,1
    - Dst: flat_map
      Src: /src/image/src/metadata/cicp.rs:1177,1
    - Dst: try_into
      Src: /src/image/src/metadata/cicp.rs:1178,1
    - Dst: unwrap
      Src: /src/image/src/metadata/cicp.rs:1178,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:1179,1
    - Dst: extend
      Src: /src/image/src/metadata/cicp.rs:1185,1
    - Dst: '&RgbaImage::chunks_exact'
      Src: /src/image/src/metadata/cicp.rs:1185,1
    - Dst: flat_map
      Src: /src/image/src/metadata/cicp.rs:1185,1
    - Dst: try_into
      Src: /src/image/src/metadata/cicp.rs:1186,1
    - Dst: unwrap
      Src: /src/image/src/metadata/cicp.rs:1186,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:1187,1
    - Dst: extend
      Src: /src/image/src/metadata/cicp.rs:1191,1
    - Dst: '&RgbaImage::iter'
      Src: /src/image/src/metadata/cicp.rs:1191,1
    - Dst: copied
      Src: /src/image/src/metadata/cicp.rs:1191,1
    - Dst: flat_map
      Src: /src/image/src/metadata/cicp.rs:1191,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:1192,1
    - Dst: extend
      Src: /src/image/src/metadata/cicp.rs:1198,1
    - Dst: '&RgbaImage::chunks_exact'
      Src: /src/image/src/metadata/cicp.rs:1198,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:1198,1
    - Dst: try_into
      Src: /src/image/src/metadata/cicp.rs:1199,1
    - Dst: unwrap
      Src: /src/image/src/metadata/cicp.rs:1199,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:1200,1
    - Dst: Err
      Src: /src/image/src/metadata/cicp.rs:1203,1
    - Dst: Ok
      Src: /src/image/src/metadata/cicp.rs:1206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 82
    argCount: 3
    argNames:
    - buffer
    - from_layout
    - into_layout
    argTypes:
    - '&[FromSubpixel]'
    - LayoutWithColor
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 1207
      start: 1146
    functionDepth: 14
    functionLinenumber: 1146
    functionLinenumberEnd: 1207
    functionName: CicpRgb::cast_pixels_from_subpixels
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 1
    functionsReached:
    - Result::expect
    - LayoutWithColor::channels
    - unwrap
    - vec_try_with_capacity
    - '&RgbaImage::chunks_exact'
    - extend
    - copied
    - '&RgbaImage::iter'
    - Err
    - map
    - flat_map
    - map_channel
    - try_into
    - '&RgbaImage::len'
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn cast_pixels_from_subpixels<FromSubpixel, IntoSubpixel>(&self,buffer:
      &[FromSubpixel],from_layout: LayoutWithColor,into_layout: LayoutWithColor,)
      -> Result<Vec<IntoSubpixel>, Vec<IntoSubpixel>>whereFromSubpixel: ColorComponentForCicp,IntoSubpixel:
      ColorComponentForCicp + FromPrimitive<FromSubpixel> + Primitive,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1245
    functionDepth: 0
    functionLinenumber: 1245
    functionLinenumberEnd: 1248
    functionName: u8::expand_to_f32
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: f32
    signature: fn expand_to_f32(self) -> f32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/image/src/metadata/cicp.rs:1253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1254
      start: 1251
    functionDepth: 14
    functionLinenumber: 1251
    functionLinenumberEnd: 1254
    functionName: u8::clamp_from_f32
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - round
    linkageType: ''
    returnType: Self
    signature: 'fn clamp_from_f32(val: f32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1261
      start: 1258
    functionDepth: 0
    functionLinenumber: 1258
    functionLinenumberEnd: 1261
    functionName: u16::expand_to_f32
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: f32
    signature: fn expand_to_f32(self) -> f32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/image/src/metadata/cicp.rs:1266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1267
      start: 1264
    functionDepth: 14
    functionLinenumber: 1264
    functionLinenumberEnd: 1267
    functionName: u16::clamp_from_f32
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - round
    linkageType: ''
    returnType: Self
    signature: 'fn clamp_from_f32(val: f32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1271
    functionDepth: 0
    functionLinenumber: 1271
    functionLinenumberEnd: 1273
    functionName: f32::expand_to_f32
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: f32
    signature: fn expand_to_f32(self) -> f32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - val
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1277
      start: 1275
    functionDepth: 0
    functionLinenumber: 1275
    functionLinenumberEnd: 1277
    functionName: f32::clamp_from_f32
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn clamp_from_f32(val: f32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: O::layout
      Src: /src/image/src/metadata/cicp.rs:1286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 1
    argNames:
    - into
    argTypes:
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 1306
      start: 1281
    functionDepth: 2
    functionLinenumber: 1281
    functionLinenumberEnd: 1306
    functionName: RgbTransforms::select_transform
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - O::layout
    linkageType: ''
    returnType: '&Arc'
    signature: 'fn select_transform<O: SealedPixelWithColorType>(&self,into: LayoutWithColor,)
      -> &Arc<CicpApplicable<''static, P>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: moxcms::ColorProfile::new_srgb
      Src: /src/image/src/metadata/cicp.rs:1369,1
    - Dst: update_rgb_colorimetry_from_cicp
      Src: /src/image/src/metadata/cicp.rs:1371,1
    - Dst: to_moxcms
      Src: /src/image/src/metadata/cicp.rs:1372,1
    - Dst: to_moxcms
      Src: /src/image/src/metadata/cicp.rs:1373,1
    - Dst: to_moxcms
      Src: /src/image/src/metadata/cicp.rs:1374,1
    - Dst: Some
      Src: /src/image/src/metadata/cicp.rs:1381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1368
    functionDepth: 1
    functionLinenumber: 1368
    functionLinenumberEnd: 1382
    functionName: Cicp::to_moxcms_compute_profile
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - to_moxcms
    - moxcms::ColorProfile::new_srgb
    - Some
    - update_rgb_colorimetry_from_cicp
    linkageType: ''
    returnType: Option
    signature: fn to_moxcms_compute_profile(self) -> Option<ColorProfile>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1396
    functionDepth: 0
    functionLinenumber: 1396
    functionLinenumberEnd: 1427
    functionName: Cicp::qualify_stability
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub(crate) const fn qualify_stability(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1430
    functionDepth: 0
    functionLinenumber: 1430
    functionLinenumberEnd: 1442
    functionName: Cicp::into_rgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CicpRgb
    signature: pub(crate) const fn into_rgb(self) -> CicpRgb
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cicp::from
      Src: /src/image/src/metadata/cicp.rs:1445,1
    - Dst: Cicp::into_rgb
      Src: /src/image/src/metadata/cicp.rs:1445,1
    - Dst: Err
      Src: /src/image/src/metadata/cicp.rs:1446,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/metadata/cicp.rs:1446,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/metadata/cicp.rs:1446,1
    - Dst: ParameterErrorKind::RgbCicpRequired
      Src: /src/image/src/metadata/cicp.rs:1447,1
    - Dst: Ok
      Src: /src/image/src/metadata/cicp.rs:1450,1
    - Dst: Cicp::into_rgb
      Src: /src/image/src/metadata/cicp.rs:1450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1444
    functionDepth: 1
    functionLinenumber: 1444
    functionLinenumberEnd: 1452
    functionName: Cicp::try_into_rgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - ParameterErrorKind::RgbCicpRequired
    - ImageError::Parameter
    - Err
    - Ok
    - Cicp::from
    - Cicp::into_rgb
    - ParameterError::from_kind
    linkageType: ''
    returnType: Result
    signature: pub(crate) fn try_into_rgb(self) -> Result<CicpRgb, ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: moxcms::Chromaticity::new
      Src: /src/image/src/metadata/cicp.rs:1485,1
    - Dst: moxcms::Chromaticity::new
      Src: /src/image/src/metadata/cicp.rs:1486,1
    - Dst: transform_to_xyz
      Src: /src/image/src/metadata/cicp.rs:1492,1
    - Dst: Some
      Src: /src/image/src/metadata/cicp.rs:1495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1459
    functionDepth: 0
    functionLinenumber: 1459
    functionLinenumberEnd: 1496
    functionName: CicpRgb::derived_luminance
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - moxcms::Chromaticity::new
    - Some
    - transform_to_xyz
    linkageType: ''
    returnType: Option
    signature: pub(crate) fn derived_luminance(&self) -> Option<[f32; 3]>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cicp
    argTypes:
    - CicpRgb
    constantsTouched: []
    func_position:
      end: 1507
      start: 1500
    functionDepth: 0
    functionLinenumber: 1500
    functionLinenumberEnd: 1507
    functionName: Cicp::from
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(cicp: CicpRgb) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - layout
    argTypes:
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 1529
      start: 1522
    functionDepth: 0
    functionLinenumber: 1522
    functionLinenumberEnd: 1529
    functionName: ColorProfile::map_layout
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (&moxcms::ColorProfile, moxcms::Layout)
    signature: 'fn map_layout(&self, layout: LayoutWithColor) -> (&moxcms::ColorProfile,
      moxcms::Layout)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1534
    functionDepth: 0
    functionLinenumber: 1534
    functionLinenumberEnd: 1540
    functionName: moxcms
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn moxcms()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_rgb
      Src: /src/image/src/metadata/cicp.rs:1545,1
    - Dst: derived_luminance
      Src: /src/image/src/metadata/cicp.rs:1545,1
    - Dst: Option::unwrap
      Src: /src/image/src/metadata/cicp.rs:1546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1544
    functionDepth: 1
    functionLinenumber: 1544
    functionLinenumberEnd: 1550
    functionName: derived_luminance
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 3
    functionsReached:
    - derived_luminance
    - into_rgb
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn derived_luminance()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1558
    functionDepth: 0
    functionLinenumber: 1558
    functionLinenumberEnd: 1563
    functionName: tests::can_create_transforms
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn can_create_transforms()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1565
    functionDepth: 0
    functionLinenumber: 1565
    functionLinenumberEnd: 1567
    functionName: tests::no_coefficient_fallback
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '[f32; 3]'
    signature: fn no_coefficient_fallback() -> [f32; 3]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_rgb
      Src: /src/image/src/metadata/cicp.rs:1574,1
    - Dst: cast_pixels::<Rgba<u8>, Rgb<u8>>
      Src: /src/image/src/metadata/cicp.rs:1575,1
    - Dst: cast_pixels::<Rgba<u8>, Luma<u8>>
      Src: /src/image/src/metadata/cicp.rs:1577,1
    - Dst: cast_pixels::<Rgba<u8>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1570
    functionDepth: 1
    functionLinenumber: 1570
    functionLinenumberEnd: 1581
    functionName: tests::transform_pixels_srgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - cast_pixels::<Rgba<u8>, Rgb<u8>>
    - cast_pixels::<Rgba<u8>, Luma<u8>>
    - cast_pixels::<Rgba<u8>, LumaA<u8>>
    - into_rgb
    linkageType: ''
    returnType: void
    signature: fn transform_pixels_srgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_rgb
      Src: /src/image/src/metadata/cicp.rs:1588,1
    - Dst: cast_pixels::<Luma<u16>, Rgb<u8>>
      Src: /src/image/src/metadata/cicp.rs:1589,1
    - Dst: cast_pixels::<Luma<u16>, Luma<u8>>
      Src: /src/image/src/metadata/cicp.rs:1591,1
    - Dst: cast_pixels::<Luma<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1593,1
    - Dst: into_rgb
      Src: /src/image/src/metadata/cicp.rs:1597,1
    - Dst: cast_pixels::<Luma<u16>, Rgb<u8>>
      Src: /src/image/src/metadata/cicp.rs:1598,1
    - Dst: cast_pixels::<Luma<u16>, Luma<u8>>
      Src: /src/image/src/metadata/cicp.rs:1600,1
    - Dst: cast_pixels::<Luma<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1584
    functionDepth: 1
    functionLinenumber: 1584
    functionLinenumberEnd: 1604
    functionName: tests::transform_pixels_srgb_16
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - cast_pixels::<Luma<u16>, Luma<u8>>
    - cast_pixels::<Luma<u16>, Rgb<u8>>
    - cast_pixels::<Luma<u16>, LumaA<u8>>
    - into_rgb
    linkageType: ''
    returnType: void
    signature: fn transform_pixels_srgb_16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_rgb
      Src: /src/image/src/metadata/cicp.rs:1611,1
    - Dst: cast_pixels::<LumaA<u16>, Rgb<u8>>
      Src: /src/image/src/metadata/cicp.rs:1612,1
    - Dst: cast_pixels::<LumaA<u16>, Luma<u8>>
      Src: /src/image/src/metadata/cicp.rs:1614,1
    - Dst: cast_pixels::<LumaA<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1616,1
    - Dst: cast_pixels::<LumaA<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1618,1
    - Dst: into_rgb
      Src: /src/image/src/metadata/cicp.rs:1622,1
    - Dst: cast_pixels::<LumaA<u16>, Rgb<u8>>
      Src: /src/image/src/metadata/cicp.rs:1623,1
    - Dst: cast_pixels::<LumaA<u16>, Luma<u8>>
      Src: /src/image/src/metadata/cicp.rs:1625,1
    - Dst: cast_pixels::<LumaA<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1627,1
    - Dst: cast_pixels::<LumaA<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1607
    functionDepth: 1
    functionLinenumber: 1607
    functionLinenumberEnd: 1631
    functionName: tests::transform_pixels_srgb_luma_alpha
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - cast_pixels::<LumaA<u16>, Rgb<u8>>
    - cast_pixels::<LumaA<u16>, Luma<u8>>
    - into_rgb
    - cast_pixels::<LumaA<u16>, LumaA<u8>>
    linkageType: ''
    returnType: void
    signature: fn transform_pixels_srgb_luma_alpha()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - acc
    - a
    - b
    argTypes:
    - T
    - T
    - T
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: multiply_accumulate
    functionSourceFile: /src/image/src/math/utils.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: 'pub(crate) fn multiply_accumulate<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: f64::from
      Src: /src/image/src/math/utils.rs:63,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:63,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:64,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:64,1
    - Dst: f64::max
      Src: /src/image/src/math/utils.rs:67,1
    - Dst: f64::min
      Src: /src/image/src/math/utils.rs:69,1
    - Dst: std::cmp::max
      Src: /src/image/src/math/utils.rs:72,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:72,1
    - Dst: round
      Src: /src/image/src/math/utils.rs:72,1
    - Dst: std::cmp::max
      Src: /src/image/src/math/utils.rs:73,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:73,1
    - Dst: round
      Src: /src/image/src/math/utils.rs:73,1
    - Dst: u64::from
      Src: /src/image/src/math/utils.rs:75,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:76,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:76,1
    - Dst: std::cmp::max
      Src: /src/image/src/math/utils.rs:77,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:77,1
    - Dst: round
      Src: /src/image/src/math/utils.rs:77,1
    - Dst: u64::from
      Src: /src/image/src/math/utils.rs:78,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:79,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:79,1
    - Dst: std::cmp::max
      Src: /src/image/src/math/utils.rs:80,1
    - Dst: f64::from
      Src: /src/image/src/math/utils.rs:80,1
    - Dst: round
      Src: /src/image/src/math/utils.rs:80,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: 84
      start: 56
    functionDepth: 12
    functionLinenumber: 56
    functionLinenumberEnd: 84
    functionName: resize_dimensions
    functionSourceFile: /src/image/src/math/utils.rs
    functionUses: 8
    functionsReached:
    - u64::from
    - f64::min
    - std::cmp::max
    - round
    - f64::from
    - f64::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:116,1
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 13
    functionLinenumber: 115
    functionLinenumberEnd: 123
    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:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 13
    functionLinenumber: 126
    functionLinenumberEnd: 130
    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:134,1
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 13
    functionLinenumber: 133
    functionLinenumberEnd: 141
    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:146,1
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 13
    functionLinenumber: 144
    functionLinenumberEnd: 151
    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:155,1
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs:158,1
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs:161,1
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 154
    functionDepth: 13
    functionLinenumber: 154
    functionLinenumberEnd: 166
    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: std::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: std::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:
    - rev
    - func
    - map
    - flat_map
    - step_by
    - zip
    - std::io::Result::len
    - skip
    - std::iter::repeat
    - io::Result::zip
    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: Result::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:
    - Result::push
    - Vec::new
    - 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:
    - bytemuck::cast_slice
    - to_owned
    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: 6
    functionsReached:
    - io::Result::try_reserve_exact
    - Vec::new
    - Ok
    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_webp.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_webp.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::dimensions
    - ImageResult::read_image
    - Err
    - Some
    - '&RgbaImage::as_mut_slice'
    - ImageResult::total_bytes
    - usize::try_from
    - image::error::LimitError::from_kind
    - Limits::default
    - Ok
    - image::ImageError::Limits
    - ImageResult::set_limits
    - OpenExrDecoder::with_alpha_preference
    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: Result::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:
    - Result::as_slice
    - Self::write_image
    - OpenExrEncoder::new
    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
    - write_rgba_image
    - read_as_rgba_byte_image
    - Ok
    - '&[u8]::len'
    - Cursor::new
    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: 13
    functionLinenumber: 9
    functionLinenumberEnd: 18
    functionName: decode
    functionSourceFile: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs
    functionUses: 10
    functionsReached:
    - std::io::Cursor::new
    - ImageResult::read_image
    - ImageResult::total_bytes
    - image::codecs::tga::TgaDecoder::new
    - 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:
    - height
    - iter
    - ImageResult::sum
    - width
    - ImageResult::unwrap
    - map
    - ImageBuffer::copy_from
    - ImageResult::max
    - Option::width
    - unwrap_or
    - image::ImageBuffer::new
    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: 17
    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: std::io::Result::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:
    - std::iter
    - iter::once
    - chain
    - clone
    - std::io::Result::unwrap
    - ImageResult::unwrap
    - image::load_from_memory_with_format
    - collect
    - bench_function
    - to_owned
    - fs::read
    - Option::benchmark_group
    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
    - iter
    - image::Rgb
    - Option::bench_function
    - DynamicImage::ImageRgb8
    - ImageBuffer::from_pixel
    - GaussianBlurParameters::new_from_sigma
    - image::imageops::blur_advanced
    - 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:
    - criterion::black_box
    - iter
    - Option::bench_function
    - image::Rgba
    - ImageBuffer::from_pixel
    - ImageBuffer::copy_from
    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: 15
    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: 1
    functionsReached:
    - '&dyn Encoder::encode_bufvec'
    - iter
    - unwrap
    - BenchmarkId::new
    - File::create
    - '&dyn Encoder::encode_raw'
    - '&mut BenchGroup::bench_with_input'
    - '&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:
    - '&mut Criterion::benchmark_group'
    - encode_zeroed
    - bool::into
    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:
    - BufWriter::new
    - T::encode
    - Img::clear
    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: std::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:
    - BufWriter::new
    - T::encode
    - ::std::io::Result::seek
    - std::io::Result::unwrap
    - SeekFrom::Start
    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:
    - encode
    - BmpEncoder::new
    - ImageResult::unwrap
    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_webp.rs
Fuzzing method: fuzz_target
report: name
sources:
- function_names:
  - test_read_xmp_png
  - test_read_xmp_webp
  - test_read_xmp_tiff
  source_file: /src/image/tests/metadata.rs
- 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
  source_file: /src/image/tests/truncate_images.rs
- function_names:
  - process_images
  - check_regressions
  - check_webp_frames_regressions
  - bad_bmps
  - bmp_bitfields
  - 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
  - private::dispatch_transform_from_sealed
  - private::double_dispatch_transform_from_sealed
  - Pixel::map_without_alpha
  - Pixel::apply_without_alpha
  source_file: /src/image/src/traits.rs
- function_names:
  - GenericReader::read
  - GenericReader::read_vectored
  - GenericReader::read_to_end
  - GenericReader::read_to_string
  - GenericReader::read_exact
  - GenericReader::fill_buf
  - GenericReader::consume
  - GenericReader::read_until
  - GenericReader::read_line
  - GenericReader::seek
  - GenericReader::rewind
  - GenericReader::stream_position
  - register_decoding_hook
  - decoding_hook_registered
  - register_format_detection_hook
  source_file: /src/image/src/hooks.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::color_type
  - ExtendedColorType::buffer_size
  - ExtendedColorType::from
  - ColorType::try_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
  - TryFromExtendedColorError::fmt
  - TryFromExtendedColorError::fmt
  - ImageError::from
  - 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
  - gcd
  - 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::set_exif_metadata
  - 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::xmp_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::xmp_metadata
  - Box::orientation
  - 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:
  - 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::xmp_metadata
  - 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::exif_metadata
  - PngDecoder::xmp_metadata
  - 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
  - PngEncoder::set_exif_metadata
  - ImageError::from_png
  - 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
  - written_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
  - tests::regression_issue_2604
  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
  - pbm_allows_black
  - pbm_allows_white
  - pbm_verifies_pixels
  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::header
  - 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_blackandwhite_alpha
  - tests::pam_grayscale
  - tests::pam_grayscale_alpha
  - tests::pam_rgb
  - tests::pam_rgb_alpha
  - 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::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::set_exif_metadata
  - 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
  - sub_image_encoder_regression_1412
  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::set_exif_metadata
  - 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::xmp_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:
  - 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
  - GenericImageView::try_view
  - GenericImageView::buffer_like
  - GenericImageView::buffer_with_dimensions
  - 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::set_rgb_primaries
  - DynamicImage::set_transfer_function
  - DynamicImage::color_space
  - DynamicImage::set_color_space
  - 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::copy_from_color_space
  - DynamicImage::apply_color_space
  - DynamicImage::convert_color_space
  - 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
  - test::color_conversion_srgb_p3
  - test::color_conversion_preserves_sample
  - test::color_conversion_preserves_sample_in_fastpath
  - test::color_conversion_rgb_to_luma
  - test::copy_color_space_coverage
  - test::apply_color_space
  - test::apply_color_space_coverage
  - test::convert_color_space
  - test::into_luma_is_color_space_aware
  - test::from_luma_is_color_space_aware
  - test::from_luma_for_all_chromaticities
  - test::from_rgb_for_all_chromaticities
  - test::convert_color_space_coverage
  - test::color_space_independent_imageops
  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::buffer_with_dimensions
  - SubImageInner::get_pixel_mut
  - SubImageInner::put_pixel
  - SubImageInner::blend_pixel
  - tests::preserves_color_space
  - tests::deep_preserves_color_space
  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::set_rgb_primaries
  - ImageBuffer::set_transfer_function
  - ImageBuffer::color_space
  - ImageBuffer::set_color_space
  - ImageBuffer::set_rgb_color_space
  - 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::buffer_with_dimensions
  - 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
  - ImageBuffer::copy_color_space_from
  - GrayImage::expand_palette
  - ImageBuffer::convert
  - ConvertColorOptions::as_transform
  - ConvertColorOptions::as_transform_fn
  - ImageBuffer::cast_in_color_space
  - ImageBuffer::copy_from_color_space
  - ImageBuffer::to_color_space
  - ImageBuffer::apply_color_space
  - 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
  - test::color_conversion
  - test::gray_conversions
  - test::rgb_to_gray_conversion
  - test::apply_color
  - test::to_color
  - test::transformation_mismatch
  - benchmarks::conversion
  - benchmarks::image_access_row_by_row
  - benchmarks::image_access_col_by_col
  source_file: /src/image/src/images/buffer.rs
- function_names:
  - CicpColorPrimaries::to_moxcms
  - CicpTransferCharacteristics::to_moxcms
  - CicpMatrixCoefficients::to_moxcms
  - CicpTransform::new
  - CicpTransform::supported_transform_fn
  - CicpTransform::check_applicable
  - CicpTransform::build_transforms
  - CicpTransform::transform_dynamic
  - CicpTransform::select_transform_u8
  - CicpTransform::select_transform_u16
  - CicpTransform::select_transform_f32
  - CicpTransform::expand_luma_rgb
  - CicpTransform::expand_luma_rgba
  - CicpTransform::expand_rgb
  - CicpTransform::expand_rgba
  - CicpTransform::clamp_rgb
  - CicpTransform::clamp_rgba
  - CicpTransform::clamp_rgb_luma
  - CicpTransform::clamp_rgba_luma
  - CicpRgb::cast_pixels
  - CicpRgb::cast_pixels_by_fallback
  - CicpRgb::cast_pixels_from_subpixels
  - u8::expand_to_f32
  - u8::clamp_from_f32
  - u16::expand_to_f32
  - u16::clamp_from_f32
  - f32::expand_to_f32
  - f32::clamp_from_f32
  - RgbTransforms::select_transform
  - Cicp::to_moxcms_compute_profile
  - Cicp::qualify_stability
  - Cicp::into_rgb
  - Cicp::try_into_rgb
  - CicpRgb::derived_luminance
  - Cicp::from
  - ColorProfile::map_layout
  - moxcms
  - derived_luminance
  - tests::can_create_transforms
  - tests::no_coefficient_fallback
  - tests::transform_pixels_srgb
  - tests::transform_pixels_srgb_16
  - tests::transform_pixels_srgb_luma_alpha
  source_file: /src/image/src/metadata/cicp.rs
- function_names:
  - multiply_accumulate
  - multiply_accumulate
  - 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
