All functions:
  Elements:
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from_str
      Src: /src/image/tests/metadata.rs:27,1
    - Dst: Result::unwrap
      Src: /src/image/tests/metadata.rs:27,1
    - Dst: fs::read
      Src: /src/image/tests/metadata.rs:29,1
    - Dst: PngDecoder::new
      Src: /src/image/tests/metadata.rs:30,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/metadata.rs:30,1
    - Dst: xmp_metadata
      Src: /src/image/tests/metadata.rs:31,1
    - Dst: Ok
      Src: /src/image/tests/metadata.rs:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 23
    functionDepth: 15
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: test_read_xmp_png
    functionSourceFile: /src/image/tests/metadata.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Ok
    - PathBuf::from_str
    - PngDecoder::new
    - fs::read
    - xmp_metadata
    - std::io::Cursor::new
    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:43,1
    - Dst: Result::unwrap
      Src: /src/image/tests/metadata.rs:43,1
    - Dst: fs::read
      Src: /src/image/tests/metadata.rs:45,1
    - Dst: WebPDecoder::new
      Src: /src/image/tests/metadata.rs:46,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/metadata.rs:46,1
    - Dst: xmp_metadata
      Src: /src/image/tests/metadata.rs:47,1
    - Dst: Ok
      Src: /src/image/tests/metadata.rs:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 40
    functionDepth: 15
    functionLinenumber: 40
    functionLinenumberEnd: 53
    functionName: test_read_xmp_webp
    functionSourceFile: /src/image/tests/metadata.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Ok
    - WebPDecoder::new
    - PathBuf::from_str
    - fs::read
    - xmp_metadata
    - std::io::Cursor::new
    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:60,1
    - Dst: Result::unwrap
      Src: /src/image/tests/metadata.rs:60,1
    - Dst: fs::read
      Src: /src/image/tests/metadata.rs:62,1
    - Dst: TiffDecoder::new
      Src: /src/image/tests/metadata.rs:63,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/metadata.rs:63,1
    - Dst: xmp_metadata
      Src: /src/image/tests/metadata.rs:64,1
    - Dst: Ok
      Src: /src/image/tests/metadata.rs:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 57
    functionDepth: 15
    functionLinenumber: 57
    functionLinenumberEnd: 69
    functionName: test_read_xmp_tiff
    functionSourceFile: /src/image/tests/metadata.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Ok
    - PathBuf::from_str
    - fs::read
    - xmp_metadata
    - TiffDecoder::new
    - std::io::Cursor::new
    linkageType: ''
    returnType: Result
    signature: fn test_read_xmp_tiff() -> Result<(), image::ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from_str
      Src: /src/image/tests/metadata.rs:82,1
    - Dst: Result::unwrap
      Src: /src/image/tests/metadata.rs:82,1
    - Dst: fs::read
      Src: /src/image/tests/metadata.rs:84,1
    - Dst: JpegDecoder::new
      Src: /src/image/tests/metadata.rs:85,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/metadata.rs:85,1
    - Dst: iptc_metadata
      Src: /src/image/tests/metadata.rs:86,1
    - Dst: Ok
      Src: /src/image/tests/metadata.rs:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 73
    functionDepth: 15
    functionLinenumber: 73
    functionLinenumberEnd: 91
    functionName: test_read_iptc_jpeg
    functionSourceFile: /src/image/tests/metadata.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - JpegDecoder::new
    - iptc_metadata
    - PathBuf::from_str
    - fs::read
    - Ok
    - std::io::Cursor::new
    linkageType: ''
    returnType: Result
    signature: fn test_read_iptc_jpeg() -> Result<(), image::ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from_str
      Src: /src/image/tests/metadata.rs:110,1
    - Dst: Result::unwrap
      Src: /src/image/tests/metadata.rs:110,1
    - Dst: fs::read
      Src: /src/image/tests/metadata.rs:112,1
    - Dst: PngDecoder::new
      Src: /src/image/tests/metadata.rs:113,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/metadata.rs:113,1
    - Dst: iptc_metadata
      Src: /src/image/tests/metadata.rs:114,1
    - Dst: Ok
      Src: /src/image/tests/metadata.rs:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 95
    functionDepth: 15
    functionLinenumber: 95
    functionLinenumberEnd: 119
    functionName: test_read_iptc_png
    functionSourceFile: /src/image/tests/metadata.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - iptc_metadata
    - PathBuf::from_str
    - PngDecoder::new
    - fs::read
    - Ok
    - std::io::Cursor::new
    linkageType: ''
    returnType: Result
    signature: fn test_read_iptc_png() -> Result<(), image::ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from_str
      Src: /src/image/tests/metadata.rs:126,1
    - Dst: Result::unwrap
      Src: /src/image/tests/metadata.rs:126,1
    - Dst: fs::read
      Src: /src/image/tests/metadata.rs:128,1
    - Dst: JpegDecoder::new
      Src: /src/image/tests/metadata.rs:129,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/metadata.rs:129,1
    - Dst: xmp_metadata
      Src: /src/image/tests/metadata.rs:130,1
    - Dst: Ok
      Src: /src/image/tests/metadata.rs:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 123
    functionDepth: 15
    functionLinenumber: 123
    functionLinenumberEnd: 135
    functionName: test_read_xmp_jpeg
    functionSourceFile: /src/image/tests/metadata.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Ok
    - JpegDecoder::new
    - PathBuf::from_str
    - fs::read
    - xmp_metadata
    - std::io::Cursor::new
    linkageType: ''
    returnType: Result
    signature: fn test_read_xmp_jpeg() -> Result<(), image::ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageRgb8
      Src: /src/image/tests/metadata.rs:147,1
    - Dst: RgbImage::from_pixel
      Src: /src/image/tests/metadata.rs:147,1
    - Dst: image::Rgb
      Src: /src/image/tests/metadata.rs:147,1
    - Dst: Vec::new
      Src: /src/image/tests/metadata.rs:148,1
    - Dst: Vec::write_to
      Src: /src/image/tests/metadata.rs:149,1
    - Dst: Cursor::new
      Src: /src/image/tests/metadata.rs:149,1
    - Dst: copy_from_slice
      Src: /src/image/tests/metadata.rs:154,1
    - Dst: AvifDecoder::new
      Src: /src/image/tests/metadata.rs:157,1
    - Dst: Cursor::new
      Src: /src/image/tests/metadata.rs:157,1
    - Dst: Ok
      Src: /src/image/tests/metadata.rs:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 139
    functionDepth: 16
    functionLinenumber: 139
    functionLinenumberEnd: 161
    functionName: test_read_avif_compatible_brands
    functionSourceFile: /src/image/tests/metadata.rs
    functionUses: 0
    functionsReached:
    - AvifDecoder::new
    - image::Rgb
    - Cursor::new
    - copy_from_slice
    - Vec::new
    - RgbImage::from_pixel
    - Vec::write_to
    - Ok
    - DynamicImage::ImageRgb8
    linkageType: ''
    returnType: Result
    signature: fn test_read_avif_compatible_brands() -> Result<(), image::ImageError>
  - 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: Option::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: 45
    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:
    - ImageResult::unwrap
    - io::Result::unwrap
    - ImageBuffer::write_to
    - File::create
    - Option::thumbnail
    - unwrap
    - Instant::now
    - Option::write_to
    - image::open
    - Option::resize
    linkageType: ''
    returnType: void
    signature: fn main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::split'
      Src: /src/image/tests/reference_images.rs:218,1
    - Dst: collect
      Src: /src/image/tests/reference_images.rs:218,1
    - Dst: pop
      Src: /src/image/tests/reference_images.rs:221,1
    - Dst: last
      Src: /src/image/tests/reference_images.rs:225,1
    - Dst: ok_or
      Src: /src/image/tests/reference_images.rs:225,1
    - Dst: split
      Src: /src/image/tests/reference_images.rs:226,1
    - Dst: split('_').collect::<Vec<_>>
      Src: /src/image/tests/reference_images.rs:226,1
    - Dst: len
      Src: /src/image/tests/reference_images.rs:227,1
    - Dst: parse
      Src: /src/image/tests/reference_images.rs:228,1
    - Dst: map_err
      Src: /src/image/tests/reference_images.rs:228,1
    - Dst: FrameInfo::checked_sub
      Src: /src/image/tests/reference_images.rs:230,1
    - Dst: ok_or
      Src: /src/image/tests/reference_images.rs:230,1
    - Dst: pop
      Src: /src/image/tests/reference_images.rs:232,1
    - Dst: join
      Src: /src/image/tests/reference_images.rs:236,1
    - Dst: Ok
      Src: /src/image/tests/reference_images.rs:238,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 47
    argCount: 1
    argNames:
    - filename
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 242
      start: 217
    functionDepth: 14
    functionLinenumber: 217
    functionLinenumberEnd: 242
    functionName: ReferenceTestCase::from_str
    functionSourceFile: /src/image/tests/reference_images.rs
    functionUses: 0
    functionsReached:
    - last
    - split
    - collect
    - map_err
    - parse
    - pop
    - '&str::split'
    - split('_').collect::<Vec<_>>
    - ok_or
    - len
    - FrameInfo::checked_sub
    - Ok
    - join
    linkageType: ''
    returnType: Result
    signature: 'fn from_str(filename: &str) -> Result<Self, Self::Err>'
  - 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: 4
    functionLinenumber: 12
    functionLinenumberEnd: 37
    functionName: process_images
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 2
    functionsReached:
    - clone
    - func
    - collect
    - ImageResult::push
    - '&str::to_string'
    - glob::glob
    - unwrap
    - iter
    - filter_map
    linkageType: ''
    returnType: void
    signature: 'fn process_images<F>(dir: &str, input_decoder: Option<&str>, func:
      F)whereF: Fn(PathBuf),'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: process_images
      Src: /src/image/tests/truncate_images.rs:36,1
    - Dst: fs::File::open
      Src: /src/image/tests/truncate_images.rs:38,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/truncate_images.rs:38,1
    - Dst: Vec::with_capacity
      Src: /src/image/tests/truncate_images.rs:41,1
    - Dst: take
      Src: /src/image/tests/truncate_images.rs:42,1
    - Dst: read_to_end
      Src: /src/image/tests/truncate_images.rs:42,1
    - Dst: unwrap
      Src: /src/image/tests/truncate_images.rs:42,1
    - Dst: std::io::Result::len
      Src: /src/image/tests/truncate_images.rs:43,1
    - Dst: step_by
      Src: /src/image/tests/truncate_images.rs:43,1
    - Dst: image::load_from_memory
      Src: /src/image/tests/truncate_images.rs:44,1
    - Dst: ImageResult::ok
      Src: /src/image/tests/truncate_images.rs:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 1
    argNames:
    - format
    argTypes:
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 47
      start: 35
    functionDepth: 18
    functionLinenumber: 35
    functionLinenumberEnd: 47
    functionName: truncate_images
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 14
    functionsReached:
    - take
    - read_to_end
    - ImageResult::ok
    - std::io::Result::len
    - fs::File::open
    - step_by
    - Vec::with_capacity
    - process_images
    - unwrap
    - image::load_from_memory
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn truncate_images(format: ImageFormat)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: truncate_images
      Src: /src/image/tests/truncate_images.rs:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 19
    functionLinenumber: 50
    functionLinenumberEnd: 52
    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:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 19
    functionLinenumber: 55
    functionLinenumberEnd: 57
    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:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 19
    functionLinenumber: 60
    functionLinenumberEnd: 62
    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:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 19
    functionLinenumber: 65
    functionLinenumberEnd: 67
    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:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 19
    functionLinenumber: 70
    functionLinenumberEnd: 72
    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:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 19
    functionLinenumber: 75
    functionLinenumberEnd: 77
    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:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 19
    functionLinenumber: 80
    functionLinenumberEnd: 82
    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:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 19
    functionLinenumber: 85
    functionLinenumberEnd: 87
    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:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 19
    functionLinenumber: 90
    functionLinenumberEnd: 92
    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:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 19
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: truncate_exr
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 0
    functionsReached:
    - truncate_images
    linkageType: ''
    returnType: void
    signature: fn truncate_exr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: truncate_images
      Src: /src/image/tests/truncate_images.rs:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 19
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: truncate_webp
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 0
    functionsReached:
    - truncate_images
    linkageType: ''
    returnType: void
    signature: fn truncate_webp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: truncate_images
      Src: /src/image/tests/truncate_images.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 19
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: truncate_qoi
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 0
    functionsReached:
    - truncate_images
    linkageType: ''
    returnType: void
    signature: fn truncate_qoi()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: truncate_images
      Src: /src/image/tests/truncate_images.rs:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 19
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: truncate_pnm
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 0
    functionsReached:
    - truncate_images
    linkageType: ''
    returnType: void
    signature: fn truncate_pnm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: truncate_images
      Src: /src/image/tests/truncate_images.rs:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 19
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: truncate_avif
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 0
    functionsReached:
    - truncate_images
    linkageType: ''
    returnType: void
    signature: fn truncate_avif()
  - 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: 17
    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:50,1
    - Dst: "iter()\n        .collect::<PathBuf>"
      Src: /src/image/tests/regression.rs:50,1
    - Dst: join
      Src: /src/image/tests/regression.rs:50,1
    - Dst: join
      Src: /src/image/tests/regression.rs:50,1
    - Dst: join
      Src: /src/image/tests/regression.rs:50,1
    - Dst: glob::glob
      Src: /src/image/tests/regression.rs:57,1
    - Dst: unwrap
      Src: /src/image/tests/regression.rs:57,1
    - Dst: filter_map
      Src: /src/image/tests/regression.rs:57,1
    - Dst: fs::read
      Src: /src/image/tests/regression.rs:58,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/tests/regression.rs:58,1
    - Dst: Cursor::new
      Src: /src/image/tests/regression.rs:59,1
    - Dst: image_webp::WebPDecoder::new
      Src: /src/image/tests/regression.rs:60,1
    - Dst: Self::clone
      Src: /src/image/tests/regression.rs:60,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/regression.rs:60,1
    - Dst: num_frames
      Src: /src/image/tests/regression.rs:60,1
    - Dst: WebPDecoder::new
      Src: /src/image/tests/regression.rs:63,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/regression.rs:63,1
    - Dst: ImageResult::into_frames
      Src: /src/image/tests/regression.rs:67,1
    - Dst: animation::Frames::take
      Src: /src/image/tests/regression.rs:67,1
    - Dst: enumerate
      Src: /src/image/tests/regression.rs:67,1
    - Dst: inspect
      Src: /src/image/tests/regression.rs:67,1
    - Dst: count
      Src: /src/image/tests/regression.rs:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 49
    functionDepth: 14
    functionLinenumber: 49
    functionLinenumberEnd: 79
    functionName: check_webp_frames_regressions
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - ImageResult::into_frames
    - num_frames
    - image_webp::WebPDecoder::new
    - unwrap
    - join
    - count
    - glob::glob
    - Cursor::new
    - enumerate
    - "iter()\n        .collect::<PathBuf>"
    - Self::clone
    - animation::Frames::take
    - inspect
    - fs::read
    - std::io::Result::unwrap
    - ImageResult::unwrap
    - WebPDecoder::new
    - iter
    - filter_map
    linkageType: ''
    returnType: void
    signature: fn check_webp_frames_regressions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/tests/regression.rs:88,1
    - Dst: "iter()\n        .collect::<PathBuf>"
      Src: /src/image/tests/regression.rs:88,1
    - Dst: join
      Src: /src/image/tests/regression.rs:88,1
    - Dst: join
      Src: /src/image/tests/regression.rs:88,1
    - Dst: join
      Src: /src/image/tests/regression.rs:88,1
    - Dst: image::open
      Src: /src/image/tests/regression.rs:96,1
    - Dst: io::Result::expect
      Src: /src/image/tests/regression.rs:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 87
    functionDepth: 17
    functionLinenumber: 87
    functionLinenumberEnd: 101
    functionName: ico_bmp_v5_with_icc_profile
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - "iter()\n        .collect::<PathBuf>"
    - io::Result::expect
    - iter
    - image::open
    - join
    linkageType: ''
    returnType: void
    signature: fn ico_bmp_v5_with_icc_profile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/tests/regression.rs:112,1
    - Dst: "iter()\n        .collect::<PathBuf>"
      Src: /src/image/tests/regression.rs:112,1
    - Dst: join
      Src: /src/image/tests/regression.rs:112,1
    - Dst: BufReader::new
      Src: /src/image/tests/regression.rs:116,1
    - Dst: File::open
      Src: /src/image/tests/regression.rs:116,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/regression.rs:116,1
    - Dst: image::codecs::bmp::BmpDecoder::new_without_file_header
      Src: /src/image/tests/regression.rs:117,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/regression.rs:117,1
    - Dst: image::DynamicImage::from_decoder
      Src: /src/image/tests/regression.rs:119,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/regression.rs:119,1
    - Dst: into_rgba8
      Src: /src/image/tests/regression.rs:119,1
    - Dst: into_raw
      Src: /src/image/tests/regression.rs:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 111
    functionDepth: 17
    functionLinenumber: 111
    functionLinenumberEnd: 131
    functionName: bmp_bitfields
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - image::DynamicImage::from_decoder
    - into_raw
    - ImageResult::unwrap
    - "iter()\n        .collect::<PathBuf>"
    - into_rgba8
    - BufReader::new
    - image::codecs::bmp::BmpDecoder::new_without_file_header
    - File::open
    - iter
    - join
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn bmp_bitfields()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: image::load_from_memory
      Src: /src/image/tests/regression.rs:145,1
    - Dst: ImageResult::unwrap_err
      Src: /src/image/tests/regression.rs:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 134
    functionDepth: 18
    functionLinenumber: 134
    functionLinenumberEnd: 151
    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: iter
      Src: /src/image/tests/regression.rs:159,1
    - Dst: collect
      Src: /src/image/tests/regression.rs:159,1
    - Dst: image::ImageReader::open
      Src: /src/image/tests/regression.rs:161,1
    - Dst: join
      Src: /src/image/tests/regression.rs:161,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/regression.rs:161,1
    - Dst: decode
      Src: /src/image/tests/regression.rs:161,1
    - Dst: unwrap
      Src: /src/image/tests/regression.rs:161,1
    - Dst: Vec::dimensions
      Src: /src/image/tests/regression.rs:166,1
    - Dst: Vec::clone
      Src: /src/image/tests/regression.rs:167,1
    - Dst: Self::resize_exact
      Src: /src/image/tests/regression.rs:168,1
    - Dst: Self::resize_exact
      Src: /src/image/tests/regression.rs:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 155
    functionDepth: 17
    functionLinenumber: 155
    functionLinenumberEnd: 172
    functionName: resizing_with_alpha
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - decode
    - collect
    - image::ImageReader::open
    - Vec::dimensions
    - Vec::clone
    - Self::resize_exact
    - unwrap
    - iter
    - join
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn resizing_with_alpha()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/tests/regression.rs:192,1
    - Dst: collect
      Src: /src/image/tests/regression.rs:192,1
    - Dst: image::ImageReader::open
      Src: /src/image/tests/regression.rs:194,1
    - Dst: join
      Src: /src/image/tests/regression.rs:194,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/regression.rs:194,1
    - Dst: decode
      Src: /src/image/tests/regression.rs:194,1
    - Dst: unwrap
      Src: /src/image/tests/regression.rs:194,1
    - Dst: image::ImageReader::open
      Src: /src/image/tests/regression.rs:199,1
    - Dst: join
      Src: /src/image/tests/regression.rs:200,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/regression.rs:199,1
    - Dst: decode
      Src: /src/image/tests/regression.rs:199,1
    - Dst: unwrap
      Src: /src/image/tests/regression.rs:199,1
    - Dst: Vec::dimensions
      Src: /src/image/tests/regression.rs:206,1
    - Dst: Self::div_ceil
      Src: /src/image/tests/regression.rs:207,1
    - Dst: ImageResult::div_ceil
      Src: /src/image/tests/regression.rs:207,1
    - Dst: Vec::clone
      Src: /src/image/tests/regression.rs:208,1
    - Dst: Self::resize_exact
      Src: /src/image/tests/regression.rs:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 188
    functionDepth: 17
    functionLinenumber: 188
    functionLinenumberEnd: 211
    functionName: resizing_with_catmul
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - decode
    - Self::div_ceil
    - collect
    - image::ImageReader::open
    - Vec::dimensions
    - Vec::clone
    - Self::resize_exact
    - unwrap
    - iter
    - ImageResult::div_ceil
    - join
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn resizing_with_catmul()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/tests/regression.rs:219,1
    - Dst: collect
      Src: /src/image/tests/regression.rs:219,1
    - Dst: join
      Src: /src/image/tests/regression.rs:220,1
    - Dst: BufReader::new
      Src: /src/image/tests/regression.rs:221,1
    - Dst: File::open
      Src: /src/image/tests/regression.rs:221,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/regression.rs:221,1
    - Dst: GifDecoder::new
      Src: /src/image/tests/regression.rs:223,1
    - Dst: ImageResult::expect
      Src: /src/image/tests/regression.rs:223,1
    - Dst: ImageResult::loop_count
      Src: /src/image/tests/regression.rs:225,1
    - Dst: ImageResult::into_frames
      Src: /src/image/tests/regression.rs:226,1
    - Dst: ImageResult::next
      Src: /src/image/tests/regression.rs:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 215
    functionDepth: 17
    functionLinenumber: 215
    functionLinenumberEnd: 229
    functionName: gif_regressions
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - ImageResult::into_frames
    - collect
    - ImageResult::loop_count
    - BufReader::new
    - ImageResult::next
    - ImageResult::expect
    - GifDecoder::new
    - File::open
    - iter
    - join
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn gif_regressions()
  - 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: 2
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: test_image
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 7
    functionsReached:
    - ImageResult::unwrap
    - Cursor::new
    - RgbImage::new
    - Vec::new
    - Vec::write_to
    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:
    - Limits::no_limits
    - Some
    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
    - Limits::no_limits
    - Some
    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
    - Limits::no_limits
    - Some
    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: 14
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: load_through_reader
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 1
    functionsReached:
    - Result::limits
    - Result::set_format
    - Cursor::new
    - ImageReader::new
    - Result::decode
    linkageType: ''
    returnType: Result
    signature: 'fn load_through_reader(input: &[u8],format: ImageFormat,limits: Limits,)
      -> Result<image::DynamicImage, image::ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:74,1
    - Dst: GifDecoder::new
      Src: /src/image/tests/limits.rs:84,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:84,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 94
    functionName: gif
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 2
    functionsReached:
    - GifDecoder::new
    - Cursor::new
    - ImageResult::unwrap
    - test_image
    linkageType: ''
    returnType: void
    signature: fn gif()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:101,1
    - Dst: PngDecoder::new
      Src: /src/image/tests/limits.rs:111,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:111,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 98
    functionDepth: 15
    functionLinenumber: 98
    functionLinenumberEnd: 121
    functionName: png
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 2
    functionsReached:
    - PngDecoder::new
    - Cursor::new
    - ImageResult::unwrap
    - test_image
    linkageType: ''
    returnType: void
    signature: fn png()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:128,1
    - Dst: JpegDecoder::new
      Src: /src/image/tests/limits.rs:138,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:138,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 13
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: jpeg
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 2
    functionsReached:
    - Cursor::new
    - ImageResult::unwrap
    - JpegDecoder::new
    - test_image
    linkageType: ''
    returnType: void
    signature: fn jpeg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:148,1
    - Dst: WebPDecoder::new
      Src: /src/image/tests/limits.rs:158,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:158,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 161
    functionName: webp
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - ImageResult::unwrap
    - WebPDecoder::new
    - test_image
    linkageType: ''
    returnType: void
    signature: fn webp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:168,1
    - Dst: permissive_limits
      Src: /src/image/tests/limits.rs:176,1
    - Dst: Some
      Src: /src/image/tests/limits.rs:177,1
    - Dst: into
      Src: /src/image/tests/limits.rs:177,1
    - Dst: load_through_reader
      Src: /src/image/tests/limits.rs:178,1
    - Dst: Result::unwrap
      Src: /src/image/tests/limits.rs:178,1
    - Dst: TiffDecoder::new
      Src: /src/image/tests/limits.rs:185,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:185,1
    - Dst: Result::unwrap
      Src: /src/image/tests/limits.rs:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 165
    functionDepth: 13
    functionLinenumber: 165
    functionLinenumberEnd: 188
    functionName: tiff
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Cursor::new
    - Some
    - test_image
    - permissive_limits
    - into
    - load_through_reader
    - TiffDecoder::new
    linkageType: ''
    returnType: void
    signature: fn tiff()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:195,1
    - Dst: AvifDecoder::new
      Src: /src/image/tests/limits.rs:205,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:205,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 192
    functionDepth: 16
    functionLinenumber: 192
    functionLinenumberEnd: 208
    functionName: avif
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 2
    functionsReached:
    - AvifDecoder::new
    - Cursor::new
    - ImageResult::unwrap
    - test_image
    linkageType: ''
    returnType: void
    signature: fn avif()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:215,1
    - Dst: BmpDecoder::new
      Src: /src/image/tests/limits.rs:225,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:225,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 212
    functionDepth: 18
    functionLinenumber: 212
    functionLinenumberEnd: 228
    functionName: bmp
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - BmpDecoder::new
    - ImageResult::unwrap
    - test_image
    linkageType: ''
    returnType: void
    signature: fn bmp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/tests/conversions.rs:17,1
    - Dst: image::Rgb::<u16>
      Src: /src/image/tests/conversions.rs:17,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/tests/conversions.rs:21,1
    - Dst: image::Rgb::<u8>
      Src: /src/image/tests/conversions.rs:21,1
    - Dst: ImageBuffer::convert
      Src: /src/image/tests/conversions.rs:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 14
    functionDepth: 6
    functionLinenumber: 14
    functionLinenumberEnd: 25
    functionName: test_rgbu8_to_rgbu16
    functionSourceFile: /src/image/tests/conversions.rs
    functionUses: 0
    functionsReached:
    - image::Rgb::<u8>
    - ImageBuffer::from_pixel
    - image::Rgb::<u16>
    - ImageBuffer::convert
    linkageType: ''
    returnType: void
    signature: fn test_rgbu8_to_rgbu16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/tests/conversions.rs:29,1
    - Dst: image::Rgba::<u16>
      Src: /src/image/tests/conversions.rs:32,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/tests/conversions.rs:35,1
    - Dst: image::Rgba::<u8>
      Src: /src/image/tests/conversions.rs:38,1
    - Dst: ImageBuffer::convert
      Src: /src/image/tests/conversions.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 28
    functionDepth: 6
    functionLinenumber: 28
    functionLinenumberEnd: 43
    functionName: test_rgbau8_to_rgbau16
    functionSourceFile: /src/image/tests/conversions.rs
    functionUses: 0
    functionsReached:
    - image::Rgba::<u16>
    - ImageBuffer::from_pixel
    - image::Rgba::<u8>
    - ImageBuffer::convert
    linkageType: ''
    returnType: void
    signature: fn test_rgbau8_to_rgbau16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from_str
      Src: /src/image/tests/conversions.rs:49,1
    - Dst: Result::unwrap
      Src: /src/image/tests/conversions.rs:49,1
    - Dst: fs::read
      Src: /src/image/tests/conversions.rs:51,1
    - Dst: TiffDecoder::new
      Src: /src/image/tests/conversions.rs:52,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/conversions.rs:52,1
    - Dst: dimensions
      Src: /src/image/tests/conversions.rs:54,1
    - Dst: original_color_type
      Src: /src/image/tests/conversions.rs:55,1
    - Dst: color_type
      Src: /src/image/tests/conversions.rs:56,1
    - Dst: total_bytes
      Src: /src/image/tests/conversions.rs:57,1
    - Dst: read_image
      Src: /src/image/tests/conversions.rs:63,1
    - Dst: Ok
      Src: /src/image/tests/conversions.rs:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 47
    functionDepth: 15
    functionLinenumber: 47
    functionLinenumberEnd: 69
    functionName: test_decode_8bit_jpeg_ycbcr
    functionSourceFile: /src/image/tests/conversions.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - original_color_type
    - read_image
    - Ok
    - dimensions
    - PathBuf::from_str
    - color_type
    - fs::read
    - total_bytes
    - TiffDecoder::new
    - std::io::Cursor::new
    linkageType: ''
    returnType: Result
    signature: fn test_decode_8bit_jpeg_ycbcr() -> Result<(), image::ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from_str
      Src: /src/image/tests/conversions.rs:75,1
    - Dst: Result::unwrap
      Src: /src/image/tests/conversions.rs:75,1
    - Dst: fs::read
      Src: /src/image/tests/conversions.rs:77,1
    - Dst: TiffDecoder::new
      Src: /src/image/tests/conversions.rs:78,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/conversions.rs:78,1
    - Dst: dimensions
      Src: /src/image/tests/conversions.rs:80,1
    - Dst: read_image
      Src: /src/image/tests/conversions.rs:89,1
    - Dst: Ok
      Src: /src/image/tests/conversions.rs:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 73
    functionDepth: 15
    functionLinenumber: 73
    functionLinenumberEnd: 95
    functionName: test_decode_8bit_ycbcr_lzw_bt709
    functionSourceFile: /src/image/tests/conversions.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - read_image
    - dimensions
    - PathBuf::from_str
    - fs::read
    - Ok
    - TiffDecoder::new
    - std::io::Cursor::new
    linkageType: ''
    returnType: Result
    signature: fn test_decode_8bit_ycbcr_lzw_bt709() -> Result<(), image::ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from
      Src: /src/image/tests/conversions.rs:100,1
    - Dst: fs::read
      Src: /src/image/tests/conversions.rs:101,1
    - Dst: std::io::Result::expect
      Src: /src/image/tests/conversions.rs:101,1
    - Dst: TiffDecoder::new
      Src: /src/image/tests/conversions.rs:103,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/conversions.rs:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 16
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: test_decode_8bit_ycbcr_lzw_invalid_coefficients
    functionSourceFile: /src/image/tests/conversions.rs
    functionUses: 0
    functionsReached:
    - PathBuf::from
    - std::io::Result::expect
    - fs::read
    - TiffDecoder::new
    - std::io::Cursor::new
    linkageType: ''
    returnType: void
    signature: fn test_decode_8bit_ycbcr_lzw_invalid_coefficients()
  - 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::unwrap
    - ImageResult::into_frames
    - ImageResult::set_limits
    - Cursor::new
    - GifDecoder::new
    - Ok
    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::io::Result::unwrap
    - std::fs::read
    - ImageResult::expect
    - Some
    - assert_limit_error
    - Limits::default
    - 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::io::Result::unwrap
    - std::fs::read
    - ImageResult::expect
    - Some
    - assert_limit_error
    - Limits::default
    - 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:
    - Option::as_luma16
    - fs::create_dir_all
    - io::Result::expect
    - ImageResult::expect
    - Option::unwrap
    - expect
    - image::open
    - Option::save
    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:
    - Option::as_rgb16
    - fs::create_dir_all
    - io::Result::expect
    - ImageResult::expect
    - Option::unwrap
    - expect
    - image::open
    - Option::save
    linkageType: ''
    returnType: void
    signature: fn save_16bit_to_ppm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::path::absolute
      Src: /src/image/tests/bad_images.rs:8,1
    - Dst: unwrap
      Src: /src/image/tests/bad_images.rs:8,1
    - Dst: image_paths_in
      Src: /src/image/tests/bad_images.rs:9,1
    - Dst: Vec::strip_prefix
      Src: /src/image/tests/bad_images.rs:12,1
    - Dst: unwrap
      Src: /src/image/tests/bad_images.rs:12,1
    - Dst: image::open
      Src: /src/image/tests/bad_images.rs:13,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 7
    functionDepth: 17
    functionLinenumber: 7
    functionLinenumberEnd: 22
    functionName: bad_images
    functionSourceFile: /src/image/tests/bad_images.rs
    functionUses: 0
    functionsReached:
    - std::path::absolute
    - image::open
    - Vec::strip_prefix
    - unwrap
    - image_paths_in
    linkageType: ''
    returnType: void
    signature: fn bad_images()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WalkDir::new
      Src: /src/image/tests/bad_images.rs:25,1
    - Dst: Self::into_iter
      Src: /src/image/tests/bad_images.rs:25,1
    - Dst: filter_map
      Src: /src/image/tests/bad_images.rs:25,1
    - Dst: ok
      Src: /src/image/tests/bad_images.rs:27,1
    - Dst: filter
      Src: /src/image/tests/bad_images.rs:25,1
    - Dst: file_type
      Src: /src/image/tests/bad_images.rs:28,1
    - Dst: is_file
      Src: /src/image/tests/bad_images.rs:28,1
    - Dst: map
      Src: /src/image/tests/bad_images.rs:25,1
    - Dst: into_path
      Src: /src/image/tests/bad_images.rs:29,1
    - Dst: filter
      Src: /src/image/tests/bad_images.rs:25,1
    - Dst: Result::extension
      Src: /src/image/tests/bad_images.rs:30,1
    - Dst: Option::is_some_and
      Src: /src/image/tests/bad_images.rs:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - dir
    argTypes:
    - '&Path'
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 16
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: image_paths_in
    functionSourceFile: /src/image/tests/bad_images.rs
    functionUses: 1
    functionsReached:
    - map
    - ok
    - into_path
    - Option::is_some_and
    - file_type
    - Self::into_iter
    - is_file
    - WalkDir::new
    - Result::extension
    - filter
    - filter_map
    linkageType: ''
    returnType: impl Iterator
    signature: 'fn image_paths_in(dir: &Path) -> impl Iterator<Item = PathBuf>'
  - 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:
    - ImageResult::unwrap
    - JpegEncoder::new_with_quality
    - JpegEncoder::new
    - Option::write_with_encoder
    - image::open
    - 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: 12
    functionLinenumber: 11
    functionLinenumberEnd: 20
    functionName: webp_decode
    functionSourceFile: /src/image/fuzz-afl/reproducers/reproduce_webp.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::from_decoder
    - Cursor::new
    - Err
    - ImageError::Limits
    - LimitError::from_kind
    - ImageResult::dimensions
    - u32::saturating_mul
    - image::codecs::webp::WebPDecoder::new
    linkageType: ''
    returnType: ImageResult
    signature: 'fn webp_decode(data: &[u8]) -> ImageResult<DynamicImage>'
  - 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:
    - DynamicImage::from_decoder
    - Err
    - ImageError::Limits
    - LimitError::from_kind
    - ImageResult::dimensions
    - u32::saturating_mul
    - 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::fs::read
    - std::process::exit
    - Vec::collect
    - std::env::args
    - std::io::Result::expect
    - Vec::len
    linkageType: ''
    returnType: Vec
    signature: pub fn read_file_from_args() -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - 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
    - Dst: Some
      Src: /src/image/src/metadata.rs:53,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:54,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - exif_orientation
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 58
    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: 73
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 73
    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:85,1
    - Dst: Option::map
      Src: /src/image/src/metadata.rs:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 15
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: Orientation::from_exif_chunk
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 4
    functionsReached:
    - Option::map
    - Self::from_exif_chunk_inner
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_exif_chunk(chunk: &[u8]) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_exif_chunk_inner
      Src: /src/image/src/metadata.rs:97,1
    - Dst: Cursor::new
      Src: /src/image/src/metadata.rs:98,1
    - Dst: Self::set_position
      Src: /src/image/src/metadata.rs:99,1
    - Dst: to_exif
      Src: /src/image/src/metadata.rs:100,1
    - Dst: into
      Src: /src/image/src/metadata.rs:100,1
    - Dst: write_u16::<BigEndian>
      Src: /src/image/src/metadata.rs:102,1
    - Dst: unwrap
      Src: /src/image/src/metadata.rs:102,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/metadata.rs:103,1
    - Dst: unwrap
      Src: /src/image/src/metadata.rs:103,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 15
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: Orientation::remove_from_exif_chunk
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 1
    functionsReached:
    - to_exif
    - write_u16::<BigEndian>
    - Cursor::new
    - Some
    - Self::from_exif_chunk_inner
    - unwrap
    - into
    - write_u16::<LittleEndian>
    - Self::set_position
    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:114,1
    - Dst: Result::read_exact
      Src: /src/image/src/metadata.rs:117,1
    - Dst: std::io::Result::ok
      Src: /src/image/src/metadata.rs:117,1
    - Dst: Self::locate_orientation_entry::<LittleEndian>
      Src: /src/image/src/metadata.rs:121,1
    - Dst: map
      Src: /src/image/src/metadata.rs:121,1
    - Dst: Self::locate_orientation_entry::<BigEndian>
      Src: /src/image/src/metadata.rs:125,1
    - Dst: map
      Src: /src/image/src/metadata.rs:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 131
      start: 113
    functionDepth: 14
    functionLinenumber: 113
    functionLinenumberEnd: 131
    functionName: Orientation::from_exif_chunk_inner
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 0
    functionsReached:
    - Result::read_exact
    - map
    - Cursor::new
    - Self::locate_orientation_entry::<BigEndian>
    - std::io::Result::ok
    - Self::locate_orientation_entry::<LittleEndian>
    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:138,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:138,1
    - Dst: Result::set_position
      Src: /src/image/src/metadata.rs:139,1
    - Dst: u64::from
      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_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: read_u32::<B>
      Src: /src/image/src/metadata.rs:144,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:144,1
    - Dst: read_u16::<B>
      Src: /src/image/src/metadata.rs:145,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:145,1
    - Dst: read_u16::<B>
      Src: /src/image/src/metadata.rs:146,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:146,1
    - Dst: Result::position
      Src: /src/image/src/metadata.rs:148,1
    - Dst: Self::from_exif
      Src: /src/image/src/metadata.rs:149,1
    - Dst: ImageResult::min
      Src: /src/image/src/metadata.rs:149,1
    - Dst: ImageResult::map
      Src: /src/image/src/metadata.rs:150,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 62
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Cursor<&[u8]>'
    constantsTouched: []
    func_position:
      end: 155
      start: 134
    functionDepth: 14
    functionLinenumber: 134
    functionLinenumberEnd: 155
    functionName: Orientation::locate_orientation_entry
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 0
    functionsReached:
    - Self::from_exif
    - ok
    - Result::set_position
    - read_u32::<B>
    - ImageResult::min
    - u64::from
    - Result::position
    - read_u16::<B>
    - ImageResult::map
    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:185,1
    - Dst: JpegDecoder::new
      Src: /src/image/src/metadata.rs:186,1
    - Dst: ImageResult::expect
      Src: /src/image/src/metadata.rs:186,1
    - Dst: ImageResult::exif_metadata
      Src: /src/image/src/metadata.rs:187,1
    - Dst: Result::expect
      Src: /src/image/src/metadata.rs:187,1
    - Dst: expect
      Src: /src/image/src/metadata.rs:187,1
    - Dst: Orientation::from_exif_chunk
      Src: /src/image/src/metadata.rs:192,1
    - Dst: Option::expect
      Src: /src/image/src/metadata.rs:192,1
    - Dst: Orientation::remove_from_exif_chunk
      Src: /src/image/src/metadata.rs:196,1
    - Dst: Option::expect
      Src: /src/image/src/metadata.rs:196,1
    - Dst: Orientation::from_exif_chunk
      Src: /src/image/src/metadata.rs:200,1
    - Dst: Option::expect
      Src: /src/image/src/metadata.rs:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 184
    functionDepth: 13
    functionLinenumber: 184
    functionLinenumberEnd: 203
    functionName: tests::test_extraction_and_clearing
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - Option::expect
    - ImageResult::expect
    - JpegDecoder::new
    - Orientation::remove_from_exif_chunk
    - expect
    - ImageResult::exif_metadata
    - Result::expect
    - Orientation::from_exif_chunk
    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: 1
    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: 74
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 74
    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:96,1
    - Dst: to_larger
      Src: /src/image/src/traits.rs:96,1
    - Dst: Self::max_value
      Src: /src/image/src/traits.rs:97,1
    - Dst: Self::min_value
      Src: /src/image/src/traits.rs:98,1
    - Dst: to_larger
      Src: /src/image/src/traits.rs:98,1
    - Dst: Self::min_value
      Src: /src/image/src/traits.rs:99,1
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:101,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - n
    argTypes:
    - Self::Larger
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: Enlargeable::clamp_from
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - NumCast::from
    - Self::unwrap
    - Self::max_value
    - to_larger
    - Self::min_value
    linkageType: ''
    returnType: Self
    signature: 'fn clamp_from(n: Self::Larger) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:106,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 107
    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:154,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:154,1
    - Dst: <Self::Ratio as NumCast>::from
      Src: /src/image/src/traits.rs:155,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:155,1
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:159,1
    - Dst: Self::max_value
      Src: /src/image/src/traits.rs:159,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:159,1
    - Dst: Self::max_value
      Src: /src/image/src/traits.rs:160,1
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:161,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:161,1
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:162,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:162,1
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:164,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 3
    argNames:
    - a
    - b
    - ratio
    argTypes:
    - Self
    - Self
    - Self::Ratio
    constantsTouched: []
    func_position:
      end: 166
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 166
    functionName: Lerp::lerp
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - NumCast::from
    - <Self::Ratio as NumCast>::from
    - Self::max_value
    - Self::unwrap
    linkageType: ''
    returnType: Self
    signature: 'fn lerp(a: Self, b: Self, ratio: Self::Ratio) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - ratio
    argTypes:
    - Self
    - Self
    - Self::Ratio
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    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:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - transform
    - into
    argTypes:
    - '&cicp::CicpTransform'
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 395
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 395
    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:403,1
    - Dst: Into::layout
      Src: /src/image/src/traits.rs:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - transform
    argTypes:
    - '&cicp::CicpTransform'
    constantsTouched: []
    func_position:
      end: 404
      start: 397
    functionDepth: 2
    functionLinenumber: 397
    functionLinenumberEnd: 404
    functionName: private::double_dispatch_transform_from_sealed
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - Into::layout
    - dispatch_transform_from_sealed::<P>
    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: Pixel::to_luma_alpha
      Src: /src/image/src/traits.rs:475,1
    - Dst: channels
      Src: /src/image/src/traits.rs:475,1
    - Dst: usize::last
      Src: /src/image/src/traits.rs:475,1
    - Dst: unwrap
      Src: /src/image/src/traits.rs:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 479
      start: 473
    functionDepth: 5
    functionLinenumber: 473
    functionLinenumberEnd: 479
    functionName: Pixel::alpha
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - channels
    - usize::last
    - Pixel::to_luma_alpha
    - unwrap
    linkageType: ''
    returnType: Self::Subpixel
    signature: fn alpha(&self) -> Self::Subpixel
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: apply_with_alpha
      Src: /src/image/src/traits.rs:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 540
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 540
    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:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 549
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 549
    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: Self
      Src: /src/image/src/hooks.rs:27,1
    - Dst: BufReader::new
      Src: /src/image/src/hooks.rs:27,1
    - Dst: Box::new
      Src: /src/image/src/hooks.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: GenericReader::new
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 1
    functionsReached:
    - Self
    - Box::new
    - BufReader::new
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn new<R: Read + Seek + ''a>(reader: R) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/image/src/hooks.rs:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    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:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bufs
    argTypes:
    - '&mut [std::io::IoSliceMut<''_>]'
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 36
    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:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 39
    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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut String'
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 42
    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:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    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:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 50
    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:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - amt
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    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:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - byte
    - buf
    argTypes:
    - u8
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    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:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut String'
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 59
    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:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pos
    argTypes:
    - std::io::SeekFrom
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    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:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 67
    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:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    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: seek_relative
      Src: /src/image/src/hooks.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - offset
    argTypes:
    - i64
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: GenericReader::seek_relative
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - seek_relative
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn seek_relative(&mut self, offset: i64) -> std::io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::make_ascii_lowercase
      Src: /src/image/src/hooks.rs:83,1
    - Dst: write
      Src: /src/image/src/hooks.rs:84,1
    - Dst: unwrap
      Src: /src/image/src/hooks.rs:84,1
    - Dst: is_none
      Src: /src/image/src/hooks.rs:85,1
    - Dst: Some
      Src: /src/image/src/hooks.rs:86,1
    - Dst: HashMap::new
      Src: /src/image/src/hooks.rs:86,1
    - Dst: as_mut
      Src: /src/image/src/hooks.rs:88,1
    - Dst: unwrap
      Src: /src/image/src/hooks.rs:88,1
    - Dst: entry
      Src: /src/image/src/hooks.rs:88,1
    - Dst: Option::insert
      Src: /src/image/src/hooks.rs:90,1
    - Dst: Arc::new
      Src: /src/image/src/hooks.rs:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 2
    argNames:
    - extension
    - hook
    argTypes:
    - OsString
    - DecodingHook
    constantsTouched: []
    func_position:
      end: 95
      start: 82
    functionDepth: 15
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: register_decoding_hook
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 2
    functionsReached:
    - write
    - Option::insert
    - Arc::new
    - entry
    - is_none
    - Some
    - HashMap::new
    - as_mut
    - unwrap
    - Option::make_ascii_lowercase
    linkageType: ''
    returnType: bool
    signature: 'pub fn register_decoding_hook(mut extension: OsString, hook: DecodingHook)
      -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::to_ascii_lowercase
      Src: /src/image/src/hooks.rs:99,1
    - Dst: read
      Src: /src/image/src/hooks.rs:100,1
    - Dst: unwrap
      Src: /src/image/src/hooks.rs:100,1
    - Dst: as_ref
      Src: /src/image/src/hooks.rs:100,1
    - Dst: map
      Src: /src/image/src/hooks.rs:100,1
    - Dst: contains_key
      Src: /src/image/src/hooks.rs:104,1
    - Dst: unwrap_or
      Src: /src/image/src/hooks.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - extension
    argTypes:
    - '&OsStr'
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 14
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: decoding_hook_registered
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - map
    - read
    - contains_key
    - unwrap
    - Option::to_ascii_lowercase
    - unwrap_or
    linkageType: ''
    returnType: bool
    signature: 'pub fn decoding_hook_registered(extension: &OsStr) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::to_ascii_lowercase
      Src: /src/image/src/hooks.rs:110,1
    - Dst: read
      Src: /src/image/src/hooks.rs:111,1
    - Dst: unwrap
      Src: /src/image/src/hooks.rs:111,1
    - Dst: as_ref
      Src: /src/image/src/hooks.rs:112,1
    - Dst: get
      Src: /src/image/src/hooks.rs:113,1
    - Dst: Some
      Src: /src/image/src/hooks.rs:114,1
    - Dst: bool::clone
      Src: /src/image/src/hooks.rs:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - extension
    argTypes:
    - '&OsStr'
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: get_decoding_hook
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - read
    - Some
    - bool::clone
    - unwrap
    - Option::to_ascii_lowercase
    - get
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn get_decoding_hook(extension: &OsStr) -> Option<Arc<DecodingHookFn>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::make_ascii_lowercase
      Src: /src/image/src/hooks.rs:157,1
    - Dst: write
      Src: /src/image/src/hooks.rs:158,1
    - Dst: unwrap
      Src: /src/image/src/hooks.rs:158,1
    - Dst: push
      Src: /src/image/src/hooks.rs:158,1
    - Dst: ImageResult::unwrap_or
      Src: /src/image/src/hooks.rs:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - extension
    - signature
    - mask
    argTypes:
    - OsString
    - '&''static [u8]'
    - Option<&'static [u8]>
    constantsTouched: []
    func_position:
      end: 162
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 162
    functionName: register_format_detection_hook
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 1
    functionsReached:
    - write
    - push
    - unwrap
    - Option::make_ascii_lowercase
    - ImageResult::unwrap_or
    linkageType: ''
    returnType: void
    signature: 'pub fn register_format_detection_hook(mut extension: OsString,signature:
      &''static [u8],mask: Option<&''static [u8]>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/image/src/hooks.rs:166,1
    - Dst: unwrap
      Src: /src/image/src/hooks.rs:166,1
    - Dst: ImageResult::is_empty
      Src: /src/image/src/hooks.rs:168,1
    - Dst: ImageResult::starts_with
      Src: /src/image/src/hooks.rs:169,1
    - Dst: Some
      Src: /src/image/src/hooks.rs:170,1
    - Dst: Option::clone
      Src: /src/image/src/hooks.rs:170,1
    - Dst: ImageResult::len
      Src: /src/image/src/hooks.rs:172,1
    - Dst: len
      Src: /src/image/src/hooks.rs:172,1
    - Dst: ImageResult::iter
      Src: /src/image/src/hooks.rs:173,1
    - Dst: zip
      Src: /src/image/src/hooks.rs:173,1
    - Dst: iter
      Src: /src/image/src/hooks.rs:175,1
    - Dst: zip
      Src: /src/image/src/hooks.rs:173,1
    - Dst: ImageResult::iter
      Src: /src/image/src/hooks.rs:176,1
    - Dst: chain
      Src: /src/image/src/hooks.rs:176,1
    - Dst: std::iter::repeat
      Src: /src/image/src/hooks.rs:176,1
    - Dst: all
      Src: /src/image/src/hooks.rs:173,1
    - Dst: Some
      Src: /src/image/src/hooks.rs:179,1
    - Dst: Option::clone
      Src: /src/image/src/hooks.rs:179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 52
    argCount: 1
    argNames:
    - start
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 183
      start: 165
    functionDepth: 14
    functionLinenumber: 165
    functionLinenumberEnd: 183
    functionName: guess_format_extension
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 1
    functionsReached:
    - ImageResult::iter
    - chain
    - Option::clone
    - std::iter::repeat
    - Some
    - read
    - ImageResult::is_empty
    - ImageResult::len
    - all
    - ImageResult::starts_with
    - unwrap
    - len
    - iter
    - zip
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn guess_format_extension(start: &[u8]) -> Option<OsString>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::as_rgb8
      Src: /src/image/src/hooks.rs:211,1
    - Dst: Option::unwrap
      Src: /src/image/src/hooks.rs:211,1
    - Dst: as_raw
      Src: /src/image/src/hooks.rs:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - image
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: tests::is_mock_decoder_output
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - Vec::as_rgb8
    - as_raw
    - Option::unwrap
    linkageType: ''
    returnType: bool
    signature: 'fn is_mock_decoder_output(image: DynamicImage) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_decoding_hook
      Src: /src/image/src/hooks.rs:216,1
    - Dst: into
      Src: /src/image/src/hooks.rs:217,1
    - Dst: Box::new
      Src: /src/image/src/hooks.rs:218,1
    - Dst: Ok
      Src: /src/image/src/hooks.rs:218,1
    - Dst: Box::new
      Src: /src/image/src/hooks.rs:218,1
    - Dst: ImageReader::open
      Src: /src/image/src/hooks.rs:224,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/hooks.rs:224,1
    - Dst: decode
      Src: /src/image/src/hooks.rs:224,1
    - Dst: unwrap
      Src: /src/image/src/hooks.rs:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 215
    functionDepth: 16
    functionLinenumber: 215
    functionLinenumberEnd: 230
    functionName: tests::decoding_hook
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - decode
    - ImageReader::open
    - register_decoding_hook
    - unwrap
    - into
    - Ok
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn decoding_hook()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: register_decoding_hook
      Src: /src/image/src/hooks.rs:234,1
    - Dst: into
      Src: /src/image/src/hooks.rs:235,1
    - Dst: Box::new
      Src: /src/image/src/hooks.rs:236,1
    - Dst: Ok
      Src: /src/image/src/hooks.rs:236,1
    - Dst: Box::new
      Src: /src/image/src/hooks.rs:236,1
    - Dst: register_format_detection_hook
      Src: /src/image/src/hooks.rs:239,1
    - Dst: into
      Src: /src/image/src/hooks.rs:240,1
    - Dst: Some
      Src: /src/image/src/hooks.rs:242,1
    - Dst: ImageReader::new
      Src: /src/image/src/hooks.rs:254,1
    - Dst: Cursor::new
      Src: /src/image/src/hooks.rs:254,1
    - Dst: Self::with_guessed_format
      Src: /src/image/src/hooks.rs:254,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/hooks.rs:254,1
    - Dst: decode
      Src: /src/image/src/hooks.rs:254,1
    - Dst: unwrap
      Src: /src/image/src/hooks.rs:254,1
    - Dst: load_from_memory
      Src: /src/image/src/hooks.rs:262,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/hooks.rs:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 233
    functionDepth: 16
    functionLinenumber: 233
    functionLinenumberEnd: 264
    functionName: tests::detection_hook
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - decode
    - ImageResult::unwrap
    - register_format_detection_hook
    - ImageReader::new
    - Cursor::new
    - Some
    - register_decoding_hook
    - load_from_memory
    - unwrap
    - Self::with_guessed_format
    - into
    - Ok
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn detection_hook()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    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: 64
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 64
    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: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    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:80,1
    - Dst: ColorType::bytes_per_pixel
      Src: /src/image/src/color.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: ColorType::bits_per_pixel
    functionSourceFile: /src/image/src/color.rs
    functionUses: 1
    functionsReached:
    - ColorType::bytes_per_pixel
    - <u16 as From<u8>>::from
    linkageType: ''
    returnType: u16
    signature: pub fn bits_per_pixel(self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ColorType::into
      Src: /src/image/src/color.rs:86,1
    - Dst: channel_count
      Src: /src/image/src/color.rs:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 12
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: ColorType::channel_count
    functionSourceFile: /src/image/src/color.rs
    functionUses: 2
    functionsReached:
    - channel_count
    - ColorType::into
    linkageType: ''
    returnType: u8
    signature: pub fn channel_count(self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 217
    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: 256
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 256
    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:283,1
    - Dst: Some
      Src: /src/image/src/color.rs:284,1
    - Dst: Some
      Src: /src/image/src/color.rs:285,1
    - Dst: Some
      Src: /src/image/src/color.rs:286,1
    - Dst: Some
      Src: /src/image/src/color.rs:287,1
    - Dst: Some
      Src: /src/image/src/color.rs:288,1
    - Dst: Some
      Src: /src/image/src/color.rs:289,1
    - Dst: Some
      Src: /src/image/src/color.rs:290,1
    - Dst: Some
      Src: /src/image/src/color.rs:291,1
    - Dst: Some
      Src: /src/image/src/color.rs:292,1
    - Dst: Some
      Src: /src/image/src/color.rs:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 296
    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:300,1
    - Dst: div_ceil
      Src: /src/image/src/color.rs:301,1
    - Dst: saturating_mul
      Src: /src/image/src/color.rs:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 15
    functionLinenumber: 299
    functionLinenumberEnd: 303
    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: 320
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 320
    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:327,1
    - Dst: Option::ok_or
      Src: /src/image/src/color.rs:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 330
    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: define_colors::channels
      Src: /src/image/src/color.rs:34,1
    - Dst: usize::last
      Src: /src/image/src/color.rs:34,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:34,1
    - Dst: '&[T]::as_ptr'
      Src: /src/image/src/color.rs:43,1
    - Dst: '&[T]::as_mut_ptr'
      Src: /src/image/src/color.rs:49,1
    - Dst: Rgb
      Src: /src/image/src/color.rs:57,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:57,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:57,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:57,1
    - Dst: from_color
      Src: /src/image/src/color.rs:58,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:63,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:63,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:63,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:63,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:63,1
    - Dst: from_color
      Src: /src/image/src/color.rs:64,1
    - Dst: Luma
      Src: /src/image/src/color.rs:69,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:69,1
    - Dst: from_color
      Src: /src/image/src/color.rs:70,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:75,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:75,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:75,1
    - Dst: from_color
      Src: /src/image/src/color.rs:76,1
    - Dst: clone
      Src: /src/image/src/color.rs:81,1
    - Dst: apply
      Src: /src/image/src/color.rs:82,1
    - Dst: f
      Src: /src/image/src/color.rs:88,1
    - Dst: clone
      Src: /src/image/src/color.rs:93,1
    - Dst: apply_with_alpha
      Src: /src/image/src/color.rs:94,1
    - Dst: iter_mut
      Src: /src/image/src/color.rs:100,1
    - Dst: f
      Src: /src/image/src/color.rs:101,1
    - Dst: get_mut
      Src: /src/image/src/color.rs:105,1
    - Dst: g
      Src: /src/image/src/color.rs:106,1
    - Dst: clone
      Src: /src/image/src/color.rs:111,1
    - Dst: apply2
      Src: /src/image/src/color.rs:112,1
    - Dst: iter_mut
      Src: /src/image/src/color.rs:117,1
    - Dst: zip
      Src: /src/image/src/color.rs:117,1
    - Dst: iter
      Src: /src/image/src/color.rs:117,1
    - Dst: f
      Src: /src/image/src/color.rs:118,1
    - Dst: Invert::invert
      Src: /src/image/src/color.rs:123,1
    - Dst: Self
      Src: /src/image/src/color.rs:148,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 144
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 492
      start: 333
    functionDepth: 19
    functionLinenumber: 333
    functionLinenumberEnd: 492
    functionName: define_colors
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - define_colors::channels
    - get_mut
    - iter_mut
    - Invert::invert
    - unwrap
    - '&[T]::as_mut_ptr'
    - LumaA
    - usize::last
    - clone
    - Rgba
    - g
    - f
    - apply_with_alpha
    - apply
    - from_color
    - Rgb
    - Luma
    - '&[T]::as_ptr'
    - Self
    - iter
    - Zero::zero
    - zip
    - apply2
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - sample
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 517
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 517
    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::min
      Src: /src/image/src/color.rs:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - float
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 539
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 539
    functionName: handle_nan_before_conversion
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - f32::min
    linkageType: ''
    returnType: f32
    signature: 'fn handle_nan_before_conversion(float: f32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::into
      Src: /src/image/src/color.rs:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - c16
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 566
      start: 558
    functionDepth: 12
    functionLinenumber: 558
    functionLinenumberEnd: 566
    functionName: u8::from_primitive
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - u16::into
    linkageType: ''
    returnType: Self
    signature: 'fn from_primitive(c16: u16) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::into
      Src: /src/image/src/color.rs:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - c8
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 590
      start: 584
    functionDepth: 12
    functionLinenumber: 584
    functionLinenumberEnd: 590
    functionName: u16::from_primitive
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - u8::into
    linkageType: ''
    returnType: Self
    signature: 'fn from_primitive(c8: u8) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - int
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 580
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 580
    functionName: f32::from_primitive
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from_primitive(int: u8) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: O::broadcast
      Src: /src/image/src/color.rs:615,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:615,1
    - Dst: from_color
      Src: /src/image/src/color.rs:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 618
      start: 614
    functionDepth: 19
    functionLinenumber: 614
    functionLinenumberEnd: 618
    functionName: S::into_color
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - from_color
    - Zero::zero
    - O::broadcast
    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:627,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:627,1
    - Dst: to_larger
      Src: /src/image/src/color.rs:627,1
    - Dst: <T::Larger as NumCast>::from
      Src: /src/image/src/color.rs:628,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:628,1
    - Dst: to_larger
      Src: /src/image/src/color.rs:628,1
    - Dst: <T::Larger as NumCast>::from
      Src: /src/image/src/color.rs:629,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:629,1
    - Dst: to_larger
      Src: /src/image/src/color.rs:629,1
    - Dst: T::clamp_from
      Src: /src/image/src/color.rs:630,1
    - Dst: <T::Larger as NumCast>::from
      Src: /src/image/src/color.rs:630,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 1
    argNames:
    - rgb
    argTypes:
    - '&[T]'
    constantsTouched: []
    func_position:
      end: 631
      start: 626
    functionDepth: 3
    functionLinenumber: 626
    functionLinenumberEnd: 631
    functionName: rgb_to_luma
    functionSourceFile: /src/image/src/color.rs
    functionUses: 1
    functionsReached:
    - Self::unwrap
    - <T::Larger as NumCast>::from
    - T::clamp_from
    - to_larger
    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:670,1
    - Dst: '&Rgba<S>::channels'
      Src: /src/image/src/color.rs:671,1
    - Dst: rgb_to_luma
      Src: /src/image/src/color.rs:672,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Rgba<S>'
    constantsTouched: []
    func_position:
      end: 674
      start: 669
    functionDepth: 4
    functionLinenumber: 669
    functionLinenumberEnd: 674
    functionName: Luma::from_color
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - rgb_to_luma
    - Luma::channels_mut
    - '&Rgba<S>::channels'
    - 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:720,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:721,1
    - Dst: '&Luma<S>::channels'
      Src: /src/image/src/color.rs:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Luma<S>'
    constantsTouched: []
    func_position:
      end: 723
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 723
    functionName: LumaA::from_color
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - LumaA::channels_mut
    - '&Luma<S>::channels'
    - T::from_primitive
    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:777,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:778,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - gray
    argTypes:
    - '&Luma<S>'
    constantsTouched: []
    func_position:
      end: 781
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 781
    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:832,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:833,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Luma<S>'
    constantsTouched: []
    func_position:
      end: 835
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 835
    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: NumCast::from
      Src: /src/image/src/color.rs:852,1
    - Dst: is_integer::<T>
      Src: /src/image/src/color.rs:852,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 853
      start: 848
    functionDepth: 3
    functionLinenumber: 848
    functionLinenumberEnd: 853
    functionName: from_f32_rounded
    functionSourceFile: /src/image/src/color.rs
    functionUses: 2
    functionsReached:
    - is_integer::<T>
    - NumCast::from
    - Self::unwrap
    linkageType: ''
    returnType: T
    signature: 'fn from_f32_rounded<T: Primitive>(x: f32) -> T'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_f32
      Src: /src/image/src/color.rs:858,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:858,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:864,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:864,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: LumaA
      Src: /src/image/src/color.rs:881,1
    - Dst: from_f32_rounded
      Src: /src/image/src/color.rs:882,1
    - Dst: from_f32_rounded
      Src: /src/image/src/color.rs:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 60
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&LumaA<T>'
    constantsTouched: []
    func_position:
      end: 885
      start: 856
    functionDepth: 4
    functionLinenumber: 856
    functionLinenumberEnd: 885
    functionName: LumaA::blend
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - from_f32_rounded
    - to_f32
    - unwrap
    - LumaA
    linkageType: ''
    returnType: void
    signature: 'fn blend(&mut self, other: &LumaA<T>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Luma<T>'
    constantsTouched: []
    func_position:
      end: 891
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 891
    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:898,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:908,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:908,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:912,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:912,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:913,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:913,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:914,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:914,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:915,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:915,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:918,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:918,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:919,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:919,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:920,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:920,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:921,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:921,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:949,1
    - Dst: from_f32_rounded
      Src: /src/image/src/color.rs:950,1
    - Dst: from_f32_rounded
      Src: /src/image/src/color.rs:951,1
    - Dst: from_f32_rounded
      Src: /src/image/src/color.rs:952,1
    - Dst: from_f32_rounded
      Src: /src/image/src/color.rs:953,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 129
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Rgba<T>'
    constantsTouched: []
    func_position:
      end: 955
      start: 895
    functionDepth: 4
    functionLinenumber: 895
    functionLinenumberEnd: 955
    functionName: Rgba::blend
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - is_zero
    - to_f32
    - unwrap
    - from_f32_rounded
    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: 961
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 961
    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:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 976
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 976
    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:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 987
      start: 980
    functionDepth: 0
    functionLinenumber: 980
    functionLinenumberEnd: 987
    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:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 997
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 997
    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:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1011
    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:1020,1
    - Dst: apply_with_alpha
      Src: /src/image/src/color.rs:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1023
    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:1027,1
    - Dst: apply_with_alpha
      Src: /src/image/src/color.rs:1028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1030
    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:1034,1
    - Dst: map_with_alpha
      Src: /src/image/src/color.rs:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1033
    functionDepth: 0
    functionLinenumber: 1033
    functionLinenumberEnd: 1036
    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:1040,1
    - Dst: map_with_alpha
      Src: /src/image/src/color.rs:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1039
    functionDepth: 0
    functionLinenumber: 1039
    functionLinenumberEnd: 1042
    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:1046,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:1047,1
    - Dst: blend
      Src: /src/image/src/color.rs:1048,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:1052,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:1053,1
    - Dst: blend
      Src: /src/image/src/color.rs:1054,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:1058,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:1059,1
    - Dst: blend
      Src: /src/image/src/color.rs:1060,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:1064,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:1065,1
    - Dst: blend
      Src: /src/image/src/color.rs:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1045
    functionDepth: 5
    functionLinenumber: 1045
    functionLinenumberEnd: 1069
    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:1073,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1074,1
    - Dst: blend
      Src: /src/image/src/color.rs:1075,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1078,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1079,1
    - Dst: blend
      Src: /src/image/src/color.rs:1080,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1083,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1084,1
    - Dst: blend
      Src: /src/image/src/color.rs:1085,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1088,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1089,1
    - Dst: blend
      Src: /src/image/src/color.rs:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1072
    functionDepth: 5
    functionLinenumber: 1072
    functionLinenumberEnd: 1092
    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:1096,1
    - Dst: apply_without_alpha
      Src: /src/image/src/color.rs:1097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1099
    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:1103,1
    - Dst: apply_without_alpha
      Src: /src/image/src/color.rs:1104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1102
    functionDepth: 1
    functionLinenumber: 1102
    functionLinenumberEnd: 1106
    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:1110,1
    - Dst: map_without_alpha
      Src: /src/image/src/color.rs:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1109
    functionDepth: 1
    functionLinenumber: 1109
    functionLinenumberEnd: 1112
    functionName: tests::test_map_without_alpha_rgba
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - map_without_alpha
    linkageType: ''
    returnType: void
    signature: fn test_map_without_alpha_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgb
      Src: /src/image/src/color.rs:1116,1
    - Dst: map_without_alpha
      Src: /src/image/src/color.rs:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1118
    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: 1140
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1140
    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:1145,1
    - Dst: u8::to_luma
      Src: /src/image/src/color.rs:1146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1143
    functionDepth: 3
    functionLinenumber: 1143
    functionLinenumberEnd: 1148
    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:23,1
    - Dst: io::Result::try_reserve
      Src: /src/image/src/io.rs:24,1
    - Dst: R::take
      Src: /src/image/src/io.rs:25,1
    - Dst: read_to_end
      Src: /src/image/src/io.rs:25,1
    - Dst: Ok
      Src: /src/image/src/io.rs:26,1
    - Dst: io::Result::truncate
      Src: /src/image/src/io.rs:28,1
    - Dst: Err
      Src: /src/image/src/io.rs:29,1
    - Dst: err
      Src: /src/image/src/io.rs:29,1
    - Dst: unwrap_or
      Src: /src/image/src/io.rs:29,1
    - Dst: into
      Src: /src/image/src/io.rs:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - vec
    - len
    argTypes:
    - '&mut Vec<u8>'
    - usize
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 14
    functionLinenumber: 22
    functionLinenumberEnd: 32
    functionName: R::read_exact_vec
    functionSourceFile: /src/image/src/io.rs
    functionUses: 0
    functionsReached:
    - read_to_end
    - io::Result::len
    - unwrap_or
    - Err
    - into
    - io::Result::try_reserve
    - R::take
    - err
    - io::Result::truncate
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn read_exact_vec(&mut self, vec: &mut Vec<u8>, len: usize) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - format
    - kind
    argTypes:
    - ImageFormatHint
    - UnsupportedErrorKind
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: UnsupportedError::from_format_and_kind
    functionSourceFile: /src/image/src/error.rs
    functionUses: 49
    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: 22
    functionsReached:
    - ImageError::into
    - Some
    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: 8
    functionsReached:
    - ImageError::into
    - Some
    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: 24
    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:1523,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/images/flat.rs:1523,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/images/flat.rs:1526,1
    - Dst: DecodingError::new
      Src: /src/image/src/images/flat.rs:1526,1
    - Dst: NormalFormRequiredError
      Src: /src/image/src/images/flat.rs:1528,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/images/flat.rs:1530,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/images/flat.rs:1531,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/images/flat.rs:1534,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/images/flat.rs:1534,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/images/flat.rs:1536,1
    - Dst: bool::into
      Src: /src/image/src/images/flat.rs:1536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - error
    argTypes:
    - Error
    constantsTouched: []
    func_position:
      end: 1540
      start: 1512
    functionDepth: 13
    functionLinenumber: 1512
    functionLinenumberEnd: 1540
    functionName: ImageError::from
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - UnsupportedErrorKind::Color
    - bool::into
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - NormalFormRequiredError
    - ImageError::Decoding
    - ImageError::Parameter
    - ParameterError::from_kind
    - DecodingError::new
    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:
    - UnsupportedErrorKind::Format
    - ImageFormatHint::clone
    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: 297
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 297
    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: 0
    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:
    - Self::as_nanos
    - Self::as_millis
    - Self::from_numer_denom_ms
    - min
    - Self::closest_bounded_fraction
    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:
    - max
    - min
    linkageType: ''
    returnType: u64
    signature: 'fn abs_diff_nom((an, ad): (u64, u64), (bn, bd): (u64, u64)) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/image/src/animation.rs: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:
    - cmp
    - u64::from
    - abs_diff_nom
    - compare_fraction
    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:
    - Duration::from_nanos
    - Self::into
    - u64::from
    - Delay::into_ratio
    - Self::to_integer
    - Duration::from_millis
    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:
    - cmp
    - u64::from
    linkageType: ''
    returnType: Ordering
    signature: 'fn cmp(&self, other: &Self) -> Ordering'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Delay::from_numer_denom_ms
      Src: /src/image/src/animation.rs: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:
    - Delay::from_saturating_duration
    - Duration::from_secs
    linkageType: ''
    returnType: void
    signature: fn duration_outlier()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Duration::from_millis
      Src: /src/image/src/animation.rs: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:
    - Delay::from_saturating_duration
    - Duration::from_nanos
    - Duration::from_secs
    linkageType: ''
    returnType: void
    signature: fn precise()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Delay::from_numer_denom_ms
      Src: /src/image/src/animation.rs: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:
    - Duration::from
    - Delay::from_numer_denom_ms
    - Delay::from_saturating_duration
    linkageType: ''
    returnType: void
    signature: fn small()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::default
      Src: /src/image/src/io/image_reader_type.rs:105,1
    - Dst: SpecCompliance::default
      Src: /src/image/src/io/image_reader_type.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buffered_reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: ImageReader::new
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 4
    functionsReached:
    - SpecCompliance::default
    - 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:117,1
    - Dst: Format::BuiltIn
      Src: /src/image/src/io/image_reader_type.rs:117,1
    - Dst: Limits::default
      Src: /src/image/src/io/image_reader_type.rs:118,1
    - Dst: SpecCompliance::default
      Src: /src/image/src/io/image_reader_type.rs:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buffered_reader
    - format
    argTypes:
    - R
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: ImageReader::with_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - SpecCompliance::default
    - 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:126,1
    - Dst: ImageFormat::from_extension
      Src: /src/image/src/io/image_reader_type.rs:127,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 16
    functionLinenumber: 124
    functionLinenumberEnd: 130
    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:134,1
    - Dst: Format::BuiltIn
      Src: /src/image/src/io/image_reader_type.rs:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    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: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    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:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 148
    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: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    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: 3
    argCount: 1
    argNames:
    - spec
    argTypes:
    - SpecCompliance
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: ImageReader::set_spec_compliance
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_spec_compliance(&mut self, spec: SpecCompliance)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    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: hooks::get_decoding_hook
      Src: /src/image/src/io/image_reader_type.rs:182,1
    - Dst: hook
      Src: /src/image/src/io/image_reader_type.rs:183,1
    - Dst: hooks::GenericReader::new
      Src: /src/image/src/io/image_reader_type.rs:183,1
    - Dst: ImageFormat::from_extension
      Src: /src/image/src/io/image_reader_type.rs:186,1
    - Dst: Option::ok_or
      Src: /src/image/src/io/image_reader_type.rs:186,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/image_reader_type.rs:186,1
    - Dst: ImageFormatHint::PathExtension
      Src: /src/image/src/io/image_reader_type.rs:187,1
    - Dst: Option::into
      Src: /src/image/src/io/image_reader_type.rs:187,1
    - Dst: into
      Src: /src/image/src/io/image_reader_type.rs:187,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:194,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:196,1
    - Dst: avif::AvifDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:196,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:198,1
    - Dst: png::PngDecoder::with_limits
      Src: /src/image/src/io/image_reader_type.rs:198,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:200,1
    - Dst: gif::GifDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:200,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:202,1
    - Dst: jpeg::JpegDecoder::new_with_spec_compliance
      Src: /src/image/src/io/image_reader_type.rs:202,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:207,1
    - Dst: webp::WebPDecoder::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: tiff::TiffDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:209,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:211,1
    - Dst: tga::TgaDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:211,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:213,1
    - Dst: bmp::BmpDecoder::new_with_spec_compliance
      Src: /src/image/src/io/image_reader_type.rs:213,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:218,1
    - Dst: ico::IcoDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:218,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:220,1
    - Dst: hdr::HdrDecoder::new_with_spec_compliance
      Src: /src/image/src/io/image_reader_type.rs:220,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:225,1
    - Dst: openexr::OpenExrDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:225,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:227,1
    - Dst: pnm::PnmDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:227,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:229,1
    - Dst: farbfeld::FarbfeldDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:229,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:231,1
    - Dst: qoi::QoiDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:231,1
    - Dst: Err
      Src: /src/image/src/io/image_reader_type.rs:233,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/image_reader_type.rs:233,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/io/image_reader_type.rs:234,1
    - Dst: into
      Src: /src/image/src/io/image_reader_type.rs:234,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 71
    argCount: 4
    argNames:
    - format
    - reader
    - limits_for_png
    - spec_compliance
    argTypes:
    - Format
    - R
    - Limits
    - SpecCompliance
    constantsTouched: []
    func_position:
      end: 238
      start: 170
    functionDepth: 10
    functionLinenumber: 170
    functionLinenumberEnd: 238
    functionName: ImageReader::make_decoder
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - openexr::OpenExrDecoder::new
    - qoi::QoiDecoder::new
    - Option::into
    - gif::GifDecoder::new
    - hooks::GenericReader::new
    - png::PngDecoder::with_limits
    - Option::ok_or
    - farbfeld::FarbfeldDecoder::new
    - ImageFormatHint::PathExtension
    - ImageFormatHint::Exact
    - ImageFormat::from_extension
    - jpeg::JpegDecoder::new_with_spec_compliance
    - avif::AvifDecoder::new
    - tga::TgaDecoder::new
    - hooks::get_decoding_hook
    - hook
    - webp::WebPDecoder::new
    - Box::new
    - into
    - Ok
    - hdr::HdrDecoder::new_with_spec_compliance
    - ImageError::Unsupported
    - ico::IcoDecoder::new
    - Err
    - tiff::TiffDecoder::new
    - bmp::BmpDecoder::new_with_spec_compliance
    - pnm::PnmDecoder::new
    linkageType: ''
    returnType: ImageResult
    signature: 'fn make_decoder(format: Format,reader: R,limits_for_png: Limits,spec_compliance:
      SpecCompliance,) -> ImageResult<Box<dyn ImageDecoder + ''a>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::make_decoder
      Src: /src/image/src/io/image_reader_type.rs:242,1
    - Dst: ImageReader::require_format
      Src: /src/image/src/io/image_reader_type.rs:243,1
    - Dst: clone
      Src: /src/image/src/io/image_reader_type.rs:245,1
    - Dst: ImageResult::set_limits
      Src: /src/image/src/io/image_reader_type.rs:248,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 10
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: ImageReader::into_decoder
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 1
    functionsReached:
    - clone
    - ImageResult::set_limits
    - ImageReader::require_format
    - Self::make_decoder
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: pub fn into_decoder(mut self) -> ImageResult<impl ImageDecoder + 'a>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReader::guess_format
      Src: /src/image/src/io/image_reader_type.rs:281,1
    - Dst: Self::or
      Src: /src/image/src/io/image_reader_type.rs:283,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 285
      start: 280
    functionDepth: 16
    functionLinenumber: 280
    functionLinenumberEnd: 285
    functionName: ImageReader::with_guessed_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Self::or
    - Ok
    - ImageReader::guess_format
    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:291,1
    - Dst: io::copy
      Src: /src/image/src/io/image_reader_type.rs:292,1
    - Dst: by_ref
      Src: /src/image/src/io/image_reader_type.rs:294,1
    - Dst: take
      Src: /src/image/src/io/image_reader_type.rs:294,1
    - Dst: Cursor::new
      Src: /src/image/src/io/image_reader_type.rs:295,1
    - Dst: seek
      Src: /src/image/src/io/image_reader_type.rs:297,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/io/image_reader_type.rs:297,1
    - Dst: hooks::guess_format_extension
      Src: /src/image/src/io/image_reader_type.rs:300,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:301,1
    - Dst: Some
      Src: /src/image/src/io/image_reader_type.rs:301,1
    - Dst: Format::Extension
      Src: /src/image/src/io/image_reader_type.rs:301,1
    - Dst: free_functions::guess_format_impl
      Src: /src/image/src/io/image_reader_type.rs:304,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:305,1
    - Dst: Some
      Src: /src/image/src/io/image_reader_type.rs:305,1
    - Dst: Format::BuiltIn
      Src: /src/image/src/io/image_reader_type.rs:305,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:308,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 287
    functionDepth: 15
    functionLinenumber: 287
    functionLinenumberEnd: 309
    functionName: ImageReader::guess_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 1
    functionsReached:
    - take
    - stream_position
    - Format::BuiltIn
    - hooks::guess_format_extension
    - Cursor::new
    - Format::Extension
    - free_functions::guess_format_impl
    - SeekFrom::Start
    - Some
    - seek
    - io::copy
    - 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:317,1
    - Dst: ImageResult::map
      Src: /src/image/src/io/image_reader_type.rs:317,1
    - Dst: dimensions
      Src: /src/image/src/io/image_reader_type.rs:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 316
    functionDepth: 11
    functionLinenumber: 316
    functionLinenumberEnd: 318
    functionName: ImageReader::into_dimensions
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - ImageReader::into_decoder
    - dimensions
    - 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:326,1
    - Dst: Self::make_decoder
      Src: /src/image/src/io/image_reader_type.rs:330,1
    - Dst: Limits::clone
      Src: /src/image/src/io/image_reader_type.rs:330,1
    - Dst: Limits::reserve
      Src: /src/image/src/io/image_reader_type.rs:334,1
    - Dst: ImageResult::total_bytes
      Src: /src/image/src/io/image_reader_type.rs:334,1
    - Dst: ImageResult::set_limits
      Src: /src/image/src/io/image_reader_type.rs:335,1
    - Dst: DynamicImage::from_decoder
      Src: /src/image/src/io/image_reader_type.rs:337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 338
      start: 325
    functionDepth: 11
    functionLinenumber: 325
    functionLinenumberEnd: 338
    functionName: ImageReader::decode
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - ImageResult::set_limits
    - DynamicImage::from_decoder
    - ImageReader::require_format
    - Limits::clone
    - Limits::reserve
    - Self::make_decoder
    - ImageResult::total_bytes
    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:341,1
    - Dst: ok_or_else
      Src: /src/image/src/io/image_reader_type.rs:341,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/image_reader_type.rs:342,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/io/image_reader_type.rs:342,1
    - Dst: UnsupportedErrorKind::Format
      Src: /src/image/src/io/image_reader_type.rs:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 347
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 347
    functionName: ImageReader::require_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 2
    functionsReached:
    - clone
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - UnsupportedErrorKind::Format
    - ok_or_else
    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:363,1
    - Dst: ImageResult::as_ref
      Src: /src/image/src/io/image_reader_type.rs:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 364
      start: 359
    functionDepth: 16
    functionLinenumber: 359
    functionLinenumberEnd: 364
    functionName: ImageReader::open
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 5
    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:367,1
    - Dst: Option::filter
      Src: /src/image/src/io/image_reader_type.rs:367,1
    - Dst: Option::is_empty
      Src: /src/image/src/io/image_reader_type.rs:369,1
    - Dst: map
      Src: /src/image/src/io/image_reader_type.rs:367,1
    - Dst: Format::Extension
      Src: /src/image/src/io/image_reader_type.rs:370,1
    - Dst: Option::to_owned
      Src: /src/image/src/io/image_reader_type.rs:370,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:372,1
    - Dst: BufReader::new
      Src: /src/image/src/io/image_reader_type.rs:373,1
    - Dst: File::open
      Src: /src/image/src/io/image_reader_type.rs:373,1
    - Dst: Limits::default
      Src: /src/image/src/io/image_reader_type.rs:375,1
    - Dst: SpecCompliance::default
      Src: /src/image/src/io/image_reader_type.rs:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&Path'
    constantsTouched: []
    func_position:
      end: 378
      start: 366
    functionDepth: 15
    functionLinenumber: 366
    functionLinenumberEnd: 378
    functionName: ImageReader::open_impl
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - map
    - BufReader::new
    - Format::Extension
    - ImageResult::extension
    - Limits::default
    - Option::filter
    - SpecCompliance::default
    - File::open
    - Option::to_owned
    - Ok
    - 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
    - UnsupportedError::from_format_and_kind
    - UnsupportedErrorKind::GenericFeature
    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
    - UnsupportedError::from_format_and_kind
    - UnsupportedErrorKind::GenericFeature
    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: 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:
    - Result::into
    - GrayImage::into
    - Option::to_luma8
    - Option::to_rgb8
    - Option::to_luma_alpha8
    - GrayAlphaImage::into
    - Some
    - Option::color
    - Option::to_rgba8
    - into
    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: 7
    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: 8
    functionsReached:
    - Err
    - Ok
    - error::LimitError::from_kind
    - ImageError::Limits
    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: 4
    functionsReached:
    - error::LimitError::from_kind
    - Err
    - ImageError::Limits
    - as_mut
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn reserve(&mut self, amount: u64) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::try_from
      Src: /src/image/src/io/limits.rs: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:
    - error::LimitError::from_kind
    - u64::try_from
    - Err
    - Limits::reserve
    - ImageError::Limits
    - 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: 15
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: Limits::reserve_buffer
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 1
    functionsReached:
    - Self::saturating_mul
    - u64::from
    - Option::bytes_per_pixel
    - Limits::reserve
    - Limits::check_dimensions
    - u8::into
    - T::saturating_mul
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn reserve_buffer(&mut self,width: u32,height: u32,color_type:
      ColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image/src/io/limits.rs: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:
    - as_mut
    - saturating_add
    linkageType: ''
    returnType: void
    signature: 'pub fn free(&mut self, amount: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::try_from
      Src: /src/image/src/io/limits.rs: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:
    - is_some
    - Limits::free
    - 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:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: ImageDecoder::iptc_metadata
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn iptc_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/io/decoder.rs:54,1
    - Dst: ImageDecoder::exif_metadata
      Src: /src/image/src/io/decoder.rs:54,1
    - Dst: and_then
      Src: /src/image/src/io/decoder.rs:54,1
    - Dst: Orientation::from_exif_chunk
      Src: /src/image/src/io/decoder.rs:56,1
    - Dst: unwrap_or
      Src: /src/image/src/io/decoder.rs:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 16
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: ImageDecoder::orientation
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - unwrap_or
    - ImageDecoder::exif_metadata
    - Orientation::from_exif_chunk
    - Ok
    - 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:67,1
    - Dst: u64::from
      Src: /src/image/src/io/decoder.rs:68,1
    - Dst: u64::from
      Src: /src/image/src/io/decoder.rs:68,1
    - Dst: u64::from
      Src: /src/image/src/io/decoder.rs:69,1
    - Dst: ImageDecoder::color_type
      Src: /src/image/src/io/decoder.rs:69,1
    - Dst: Option::bytes_per_pixel
      Src: /src/image/src/io/decoder.rs:69,1
    - Dst: saturating_mul
      Src: /src/image/src/io/decoder.rs:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 12
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: ImageDecoder::total_bytes
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageDecoder::color_type
    - ImageDecoder::dimensions
    - u64::from
    - Option::bytes_per_pixel
    - saturating_mul
    linkageType: ''
    returnType: u64
    signature: fn total_bytes(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_support
      Src: /src/image/src/io/decoder.rs:116,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/io/decoder.rs:116,1
    - Dst: ImageDecoder::dimensions
      Src: /src/image/src/io/decoder.rs:117,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/io/decoder.rs:118,1
    - Dst: Ok
      Src: /src/image/src/io/decoder.rs:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - limits
    argTypes:
    - crate::Limits
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 12
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: ImageDecoder::set_limits
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - crate::LimitSupport::default
    - ImageDecoder::dimensions
    - Limits::check_support
    - Limits::check_dimensions
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: crate::Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dimensions
      Src: /src/image/src/io/decoder.rs:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 12
    functionLinenumber: 137
    functionLinenumberEnd: 139
    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:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: 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:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 13
    functionLinenumber: 143
    functionLinenumberEnd: 145
    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:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 18
    functionLinenumber: 146
    functionLinenumberEnd: 148
    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:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 13
    functionLinenumber: 149
    functionLinenumberEnd: 151
    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:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 154
    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: iptc_metadata
      Src: /src/image/src/io/decoder.rs:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: Box::iptc_metadata
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - iptc_metadata
    linkageType: ''
    returnType: ImageResult
    signature: fn iptc_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: orientation
      Src: /src/image/src/io/decoder.rs:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 17
    functionLinenumber: 158
    functionLinenumberEnd: 160
    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:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 13
    functionLinenumber: 161
    functionLinenumberEnd: 163
    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:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 169
    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:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 172
    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:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - limits
    argTypes:
    - crate::Limits
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 13
    functionLinenumber: 173
    functionLinenumberEnd: 175
    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:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 211
    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: 2
    functionsReached:
    - ImageReader::new
    - Result::decode
    - Result::set_format
    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: 16
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: save_buffer
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 1
    functionsReached:
    - ImageResult::as_ref
    - save_buffer_with_format
    - ImageFormat::from_path
    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: 12
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: save_buffer_with_format
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 2
    functionsReached:
    - ImageResult::write_image
    - bool::into
    - encoder_for_format
    - BufWriter::new
    - File::create
    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:95,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/free_functions.rs:95,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/io/free_functions.rs:96,1
    - Dst: UnsupportedErrorKind::Format
      Src: /src/image/src/io/free_functions.rs:98,1
    - Dst: ImageFormatHint::Name
      Src: /src/image/src/io/free_functions.rs:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 2
    argNames:
    - format
    - buffered_write
    argTypes:
    - ImageFormat
    - '&''a mut W'
    constantsTouched: []
    func_position:
      end: 103
      start: 60
    functionDepth: 5
    functionLinenumber: 60
    functionLinenumberEnd: 103
    functionName: encoder_for_format
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 4
    functionsReached:
    - tiff::TiffEncoder::new
    - pnm::PnmEncoder::new
    - gif::GifEncoder::new
    - UnsupportedErrorKind::Format
    - bmp::BmpEncoder::new
    - avif::AvifEncoder::new
    - ImageFormatHint::Name
    - png::PngEncoder::new
    - hdr::HdrEncoder::new
    - ico::IcoEncoder::new
    - farbfeld::FarbfeldEncoder::new
    - Box::new
    - jpeg::JpegEncoder::new
    - tga::TgaEncoder::new
    - openexr::OpenExrEncoder::new
    - Ok
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Err
    - qoi::QoiEncoder::new
    - webp::WebPEncoder::new_lossless
    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: 1
    functionsReached:
    - ImageError::Unsupported
    - guess_format_impl
    - Err
    - into
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn guess_format(buffer: &[u8]) -> ImageResult<ImageFormat>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::is_empty
      Src: /src/image/src/io/free_functions.rs: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: 3
    functionsReached:
    - iter::repeat
    - ImageResult::iter
    - chain
    - '&RgbaImage::starts_with'
    - '&RgbaImage::len'
    - Some
    - ImageResult::is_empty
    - '&RgbaImage::iter'
    - all
    - len
    - std::iter
    - zip
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn guess_format_impl(buffer: &[u8]) -> Option<ImageFormat>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::try_from
      Src: /src/image/src/io/free_functions.rs:173,1
    - Dst: ImageResult::total_bytes
      Src: /src/image/src/io/free_functions.rs:173,1
    - Dst: u64::is_err
      Src: /src/image/src/io/free_functions.rs:174,1
    - Dst: u64::unwrap
      Src: /src/image/src/io/free_functions.rs:174,1
    - Dst: Err
      Src: /src/image/src/io/free_functions.rs:175,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/free_functions.rs:175,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/io/free_functions.rs:175,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/io/free_functions.rs:181,1
    - Dst: bytemuck::cast_slice_mut
      Src: /src/image/src/io/free_functions.rs:181,1
    - Dst: std::io::Result::as_mut_slice
      Src: /src/image/src/io/free_functions.rs:181,1
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - impl ImageDecoder
    constantsTouched: []
    func_position:
      end: 183
      start: 169
    functionDepth: 13
    functionLinenumber: 169
    functionLinenumberEnd: 183
    functionName: decoder_to_vec
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 5
    functionsReached:
    - usize::try_from
    - u64::is_err
    - u64::unwrap
    - std::io::Result::as_mut_slice
    - Err
    - bytemuck::cast_slice_mut
    - ImageError::Limits
    - LimitError::from_kind
    - ImageResult::read_image
    - Ok
    - ImageResult::total_bytes
    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: std::iter
      Src: /src/image/src/io/free_functions.rs:207,1
    - Dst: any
      Src: /src/image/src/io/free_functions.rs:207,1
    - Dst: ImageResult::display
      Src: /src/image/src/io/free_functions.rs:209,1
    - Dst: ImageFormat::from_path
      Src: /src/image/src/io/free_functions.rs:210,1
    - Dst: ImageResult::as_path
      Src: /src/image/src/io/free_functions.rs:210,1
    - Dst: is_supported
      Src: /src/image/src/io/free_functions.rs:211,1
    - Dst: std::fs::read
      Src: /src/image/src/io/free_functions.rs:212,1
    - Dst: ImageResult::as_path
      Src: /src/image/src/io/free_functions.rs:212,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/src/io/free_functions.rs:212,1
    - Dst: guess_format_impl
      Src: /src/image/src/io/free_functions.rs:213,1
    - Dst: Some
      Src: /src/image/src/io/free_functions.rs:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::path::PathBuf
    constantsTouched: []
    func_position:
      end: 226
      start: 206
    functionDepth: 16
    functionLinenumber: 206
    functionLinenumberEnd: 226
    functionName: t::e::s::t::_::g::u::e::s::s::_::f::o::r::m::a::t::_::a::g::r::e::e::s::_::w::i::t::h::_::e::x::t::e::n::s::i::o::n::test_file
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::unwrap
    - ImageResult::as_path
    - std::fs::read
    - Some
    - ImageResult::display
    - any
    - std::iter
    - is_supported
    - guess_format_impl
    - ImageFormat::from_path
    linkageType: ''
    returnType: Option
    signature: 'fn test_file(path: std::path::PathBuf) -> Option<ImageFormat>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: glob::glob
      Src: /src/image/src/io/free_functions.rs:187,1
    - Dst: unwrap
      Src: /src/image/src/io/free_functions.rs:187,1
    - Dst: filter_map
      Src: /src/image/src/io/free_functions.rs:187,1
    - Dst: test_file
      Src: /src/image/src/io/free_functions.rs:189,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/io/free_functions.rs:189,1
    - Dst: "*\")\n        .unwrap()\n        .filter_map(|path| test_file(path.unwrap()))\n\
        \        .collect::<std::collections::HashSet<_>>"
      Src: /src/image/src/io/free_functions.rs:187,1
    - Dst: ImageFormat::all
      Src: /src/image/src/io/free_functions.rs:193,1
    - Dst: contains
      Src: /src/image/src/io/free_functions.rs:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 227
      start: 186
    functionDepth: 17
    functionLinenumber: 186
    functionLinenumberEnd: 227
    functionName: test_guess_format_agrees_with_extension
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - test_file
    - "*\")\n        .unwrap()\n        .filter_map(|path| test_file(path.unwrap()))\n\
      \        .collect::<std::collections::HashSet<_>>"
    - contains
    - glob::glob
    - ImageFormat::all
    - unwrap
    - filter_map
    linkageType: ''
    returnType: void
    signature: fn test_guess_format_agrees_with_extension()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::to_str
      Src: /src/image/src/io/format.rs:73,1
    - Dst: to_ascii_lowercase
      Src: /src/image/src/io/format.rs:73,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:75,1
    - Dst: Option::as_str
      Src: /src/image/src/io/format.rs:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ext
    argTypes:
    - '&OsStr'
    constantsTouched: []
    func_position:
      end: 92
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 92
    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:94,1
    - Dst: Option::as_ref
      Src: /src/image/src/io/format.rs:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ext
    argTypes:
    - S
    constantsTouched: []
    func_position:
      end: 95
      start: 67
    functionDepth: 15
    functionLinenumber: 67
    functionLinenumberEnd: 95
    functionName: ImageFormat::from_extension
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 2
    functionsReached:
    - Option::as_ref
    - inner
    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:116,1
    - Dst: Option::and_then
      Src: /src/image/src/io/format.rs:117,1
    - Dst: ok_or_else
      Src: /src/image/src/io/format.rs:117,1
    - Dst: ImageFormatHint::PathExtension
      Src: /src/image/src/io/format.rs:122,1
    - Dst: into
      Src: /src/image/src/io/format.rs:122,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/format.rs:124,1
    - Dst: ImageFormatHint::into
      Src: /src/image/src/io/format.rs:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&Path'
    constantsTouched: []
    func_position:
      end: 126
      start: 115
    functionDepth: 15
    functionLinenumber: 115
    functionLinenumberEnd: 126
    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:
    - ImageError::Unsupported
    - Option::and_then
    - ImageFormatHint::PathExtension
    - ImageResult::extension
    - ImageFormatHint::into
    - into
    - ok_or_else
    linkageType: ''
    returnType: ImageResult
    signature: 'fn inner(path: &Path) -> ImageResult<ImageFormat>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/image/src/io/format.rs:128,1
    - Dst: ImageResult::as_ref
      Src: /src/image/src/io/format.rs:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - path
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 129
      start: 110
    functionDepth: 15
    functionLinenumber: 110
    functionLinenumberEnd: 129
    functionName: ImageFormat::from_path
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 5
    functionsReached:
    - ImageResult::as_ref
    - inner
    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:145,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:146,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:147,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:148,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:149,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:150,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:151,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:152,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:153,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:154,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:155,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:156,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:160,1
    - Dst: Some
      Src: /src/image/src/io/format.rs:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - mime_type
    argTypes:
    - M
    constantsTouched: []
    func_position:
      end: 166
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 166
    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: 211
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 211
    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: 234
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 234
    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: 257
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 257
    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: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 288
    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: 313
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 313
    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: 338
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 338
    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:342,1
    - Dst: copied
      Src: /src/image/src/io/format.rs:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 341
    functionDepth: 4
    functionLinenumber: 341
    functionLinenumberEnd: 360
    functionName: ImageFormat::all
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 2
    functionsReached:
    - iter
    - copied
    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:373,1
    - Dst: Path::new
      Src: /src/image/src/io/format.rs:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 374
      start: 372
    functionDepth: 16
    functionLinenumber: 372
    functionLinenumberEnd: 374
    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:
    - Path::new
    - ImageFormat::from_path
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_path(s: &str) -> ImageResult<ImageFormat>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 395
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 395
    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:404,1
    - Dst: Self::to_owned
      Src: /src/image/src/io/format.rs:404,1
    - Dst: Self::extensions_str
      Src: /src/image/src/io/format.rs:405,1
    - Dst: ImageFormat::from_path
      Src: /src/image/src/io/format.rs:407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 398
    functionDepth: 16
    functionLinenumber: 398
    functionLinenumberEnd: 413
    functionName: tests::image_formats_are_recognized
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached:
    - Self::extensions_str
    - Path::new
    - ImageFormat::from_path
    - Self::to_owned
    linkageType: ''
    returnType: void
    signature: fn image_formats_are_recognized()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageFormat::all
      Src: /src/image/src/io/format.rs:417,1
    - Dst: impl Iterator::collect
      Src: /src/image/src/io/format.rs:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 423
      start: 416
    functionDepth: 5
    functionLinenumber: 416
    functionLinenumberEnd: 423
    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: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 432
    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: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 441
    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: Result::read_exact
      Src: /src/image/src/codecs/farbfeld.rs:30,1
    - Dst: Err
      Src: /src/image/src/codecs/farbfeld.rs:34,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/farbfeld.rs:34,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/farbfeld.rs:34,1
    - Dst: into
      Src: /src/image/src/codecs/farbfeld.rs:35,1
    - Dst: u32::from_be_bytes
      Src: /src/image/src/codecs/farbfeld.rs:40,1
    - Dst: try_into
      Src: /src/image/src/codecs/farbfeld.rs:40,1
    - Dst: unwrap
      Src: /src/image/src/codecs/farbfeld.rs:40,1
    - Dst: u32::from_be_bytes
      Src: /src/image/src/codecs/farbfeld.rs:41,1
    - Dst: try_into
      Src: /src/image/src/codecs/farbfeld.rs:41,1
    - Dst: unwrap
      Src: /src/image/src/codecs/farbfeld.rs:41,1
    - Dst: crate::utils::check_dimension_overflow
      Src: /src/image/src/codecs/farbfeld.rs:43,1
    - Dst: Err
      Src: /src/image/src/codecs/farbfeld.rs:46,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/farbfeld.rs:46,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/farbfeld.rs:47,1
    - Dst: into
      Src: /src/image/src/codecs/farbfeld.rs:48,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/farbfeld.rs:49,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut dyn Read'
    constantsTouched: []
    func_position:
      end: 57
      start: 28
    functionDepth: 13
    functionLinenumber: 28
    functionLinenumberEnd: 57
    functionName: parse_header
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 1
    functionsReached:
    - Result::read_exact
    - UnsupportedError::from_format_and_kind
    - try_into
    - ImageError::Unsupported
    - Err
    - u32::from_be_bytes
    - crate::utils::check_dimension_overflow
    - UnsupportedErrorKind::GenericFeature
    - unwrap
    - DecodingError::new
    - into
    - ImageError::Decoding
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn parse_header(r: &mut dyn Read) -> ImageResult<(u32, u32)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_chunks_mut::<2>
      Src: /src/image/src/codecs/farbfeld.rs:62,1
    - Dst: std::mem::swap
      Src: /src/image/src/codecs/farbfeld.rs:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: u16_be_to_ne
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 1
    functionsReached:
    - std::mem::swap
    - as_chunks_mut::<2>
    linkageType: ''
    returnType: void
    signature: 'fn u16_be_to_ne(data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_header
      Src: /src/image/src/codecs/farbfeld.rs:78,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 14
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: FarbfeldDecoder::new
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 1
    functionsReached:
    - Ok
    - parse_header
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(mut r: R) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    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: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    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:99,1
    - Dst: u16_be_to_ne
      Src: /src/image/src/codecs/farbfeld.rs:100,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: FarbfeldDecoder::read_image
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - read_exact
    - Ok
    - u16_be_to_ne
    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:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 106
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - buffered_writer
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    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:127,1
    - Dst: u64::from
      Src: /src/image/src/codecs/farbfeld.rs:127,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/farbfeld.rs:127,1
    - Dst: FarbfeldEncoder::encode_impl
      Src: /src/image/src/codecs/farbfeld.rs:134,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - data
    - width
    - height
    argTypes:
    - '&[u8]'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 136
      start: 126
    functionDepth: 15
    functionLinenumber: 126
    functionLinenumberEnd: 136
    functionName: FarbfeldEncoder::encode
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 1
    functionsReached:
    - FarbfeldEncoder::encode_impl
    - saturating_mul
    - u64::from
    - Ok
    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:139,1
    - Dst: write_all
      Src: /src/image/src/codecs/farbfeld.rs:141,1
    - Dst: u32::to_be_bytes
      Src: /src/image/src/codecs/farbfeld.rs:141,1
    - Dst: write_all
      Src: /src/image/src/codecs/farbfeld.rs:142,1
    - Dst: u32::to_be_bytes
      Src: /src/image/src/codecs/farbfeld.rs:142,1
    - Dst: as_chunks::<2>
      Src: /src/image/src/codecs/farbfeld.rs:144,1
    - Dst: write_all
      Src: /src/image/src/codecs/farbfeld.rs:145,1
    - Dst: u16::from_ne_bytes
      Src: /src/image/src/codecs/farbfeld.rs:146,1
    - Dst: to_be_bytes
      Src: /src/image/src/codecs/farbfeld.rs:146,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 3
    argNames:
    - data
    - width
    - height
    argTypes:
    - '&[u8]'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: FarbfeldEncoder::encode_impl
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 1
    functionsReached:
    - write_all
    - u16::from_ne_bytes
    - to_be_bytes
    - as_chunks::<2>
    - Ok
    - u32::to_be_bytes
    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:163,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/farbfeld.rs:163,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/farbfeld.rs:164,1
    - Dst: into
      Src: /src/image/src/codecs/farbfeld.rs:165,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/farbfeld.rs:166,1
    - Dst: FarbfeldEncoder::encode
      Src: /src/image/src/codecs/farbfeld.rs:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 172
      start: 155
    functionDepth: 12
    functionLinenumber: 155
    functionLinenumberEnd: 172
    functionName: FarbfeldEncoder::write_image
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - UnsupportedErrorKind::Color
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Err
    - FarbfeldEncoder::encode
    - into
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1465
    functionDepth: 0
    functionLinenumber: 1465
    functionLinenumberEnd: 1477
    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: 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:
    - gif::DecodeOptions::new
    - map_err
    - ImageResult::read_info
    - Limits::no_limits
    - ImageResult::set_color_output
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(r: R) -> ImageResult<GifDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/image/src/codecs/gif.rs:71,1
    - Dst: width
      Src: /src/image/src/codecs/gif.rs:71,1
    - Dst: u32::from
      Src: /src/image/src/codecs/gif.rs:72,1
    - Dst: height
      Src: /src/image/src/codecs/gif.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 74
    functionName: GifDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 2
    functionsReached:
    - u32::from
    - width
    - height
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    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:81,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/gif.rs:81,1
    - Dst: GifDecoder::dimensions
      Src: /src/image/src/codecs/gif.rs:83,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/codecs/gif.rs:84,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - limits
    argTypes:
    - Limits
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 4
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: GifDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - crate::LimitSupport::default
    - GifDecoder::dimensions
    - Limits::check_support
    - Limits::check_dimensions
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next_frame_info
      Src: /src/image/src/codecs/gif.rs:94,1
    - Dst: map_err
      Src: /src/image/src/codecs/gif.rs:94,1
    - Dst: FrameInfo::new_from_frame
      Src: /src/image/src/codecs/gif.rs:99,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:101,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/gif.rs:101,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/gif.rs:101,1
    - Dst: GifDecoder::dimensions
      Src: /src/image/src/codecs/gif.rs:107,1
    - Dst: u64::from
      Src: /src/image/src/codecs/gif.rs:111,1
    - Dst: u64::from
      Src: /src/image/src/codecs/gif.rs:111,1
    - Dst: u64::from
      Src: /src/image/src/codecs/gif.rs:111,1
    - Dst: usize::try_from
      Src: /src/image/src/codecs/gif.rs:116,1
    - Dst: Result::unwrap
      Src: /src/image/src/codecs/gif.rs:116,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/gif.rs:116,1
    - Dst: GifDecoder::color_type
      Src: /src/image/src/codecs/gif.rs:118,1
    - Dst: ColorType::bytes_per_pixel
      Src: /src/image/src/codecs/gif.rs:118,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:116,1
    - Dst: std::io::Result::split_at_mut
      Src: /src/image/src/codecs/gif.rs:124,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/gif.rs:124,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:124,1
    - Dst: Option::split_at_mut
      Src: /src/image/src/codecs/gif.rs:126,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/gif.rs:126,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:126,1
    - Dst: read_into_buffer
      Src: /src/image/src/codecs/gif.rs:135,1
    - Dst: map_err
      Src: /src/image/src/codecs/gif.rs:135,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/gif.rs:145,1
    - Dst: and_then
      Src: /src/image/src/codecs/gif.rs:145,1
    - Dst: Result::checked_mul
      Src: /src/image/src/codecs/gif.rs:147,1
    - Dst: ok_or
      Src: /src/image/src/codecs/gif.rs:145,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/gif.rs:148,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/gif.rs:148,1
    - Dst: reserve_usize
      Src: /src/image/src/codecs/gif.rs:152,1
    - Dst: free_usize
      Src: /src/image/src/codecs/gif.rs:154,1
    - Dst: read_into_buffer
      Src: /src/image/src/codecs/gif.rs:156,1
    - Dst: map_err
      Src: /src/image/src/codecs/gif.rs:156,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/gif.rs:160,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/gif.rs:161,1
    - Dst: Option::is_none
      Src: /src/image/src/codecs/gif.rs:166,1
    - Dst: Option::is_none
      Src: /src/image/src/codecs/gif.rs:166,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:167,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/gif.rs:167,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/gif.rs:168,1
    - Dst: into
      Src: /src/image/src/codecs/gif.rs:169,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/gif.rs:170,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/gif.rs:178,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/gif.rs:179,1
    - Dst: Option::enumerate_pixels_mut
      Src: /src/image/src/codecs/gif.rs:181,1
    - Dst: wrapping_sub
      Src: /src/image/src/codecs/gif.rs:182,1
    - Dst: Option::wrapping_sub
      Src: /src/image/src/codecs/gif.rs:183,1
    - Dst: Option::get_pixel
      Src: /src/image/src/codecs/gif.rs:186,1
    - Dst: color::Rgba
      Src: /src/image/src/codecs/gif.rs:189,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:194,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 166
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 195
      start: 91
    functionDepth: 12
    functionLinenumber: 91
    functionLinenumberEnd: 195
    functionName: GifDecoder::read_image
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - usize::try_from
    - Option::wrapping_sub
    - next_frame_info
    - ColorType::bytes_per_pixel
    - Option::enumerate_pixels_mut
    - LimitError::from_kind
    - unwrap
    - ImageError::Parameter
    - ParameterError::from_kind
    - GifDecoder::color_type
    - reserve_usize
    - Option::is_none
    - FrameInfo::new_from_frame
    - ImageBuffer::from_raw
    - UnsupportedErrorKind::GenericFeature
    - GifDecoder::dimensions
    - wrapping_sub
    - read_into_buffer
    - Option::get_pixel
    - ImageError::Limits
    - Option::unwrap
    - checked_mul
    - color::Rgba
    - std::io::Result::split_at_mut
    - into
    - Option::split_at_mut
    - Ok
    - and_then
    - Result::unwrap
    - ImageError::Unsupported
    - UnsupportedError::from_format_and_kind
    - map_err
    - Err
    - u64::from
    - ok_or
    - free_usize
    - Result::checked_mul
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:199,1
    - Dst: icc_profile
      Src: /src/image/src/codecs/gif.rs:199,1
    - Dst: map
      Src: /src/image/src/codecs/gif.rs:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 197
    functionDepth: 18
    functionLinenumber: 197
    functionLinenumberEnd: 200
    functionName: GifDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - icc_profile
    - 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/gif.rs:204,1
    - Dst: xmp_metadata
      Src: /src/image/src/codecs/gif.rs:204,1
    - Dst: map
      Src: /src/image/src/codecs/gif.rs:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 14
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: GifDecoder::xmp_metadata
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - map
    - Ok
    - xmp_metadata
    linkageType: ''
    returnType: ImageResult
    signature: fn xmp_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/gif.rs:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 209
    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:227,1
    - Dst: clone
      Src: /src/image/src/codecs/gif.rs:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - GifDecoder<R>
    constantsTouched: []
    func_position:
      end: 240
      start: 226
    functionDepth: 12
    functionLinenumber: 226
    functionLinenumberEnd: 240
    functionName: GifFrameIterator::new
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 1
    functionsReached:
    - clone
    - ImageResult::dimensions
    linkageType: ''
    returnType: GifFrameIterator
    signature: 'fn new(decoder: GifDecoder<R>) -> GifFrameIterator<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Rgba<u8>::channels'
      Src: /src/image/src/codecs/gif.rs:338,1
    - Dst: color::Rgba
      Src: /src/image/src/codecs/gif.rs:354,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: 361
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 361
    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:
    - '&mut Rgba<u8>::channels'
    - color::Rgba
    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:257,1
    - Dst: reserve_buffer
      Src: /src/image/src/codecs/gif.rs:258,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:262,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:262,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:264,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/codecs/gif.rs:264,1
    - Dst: color::Rgba
      Src: /src/image/src/codecs/gif.rs:267,1
    - Dst: as_mut
      Src: /src/image/src/codecs/gif.rs:271,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:271,1
    - Dst: next_frame_info
      Src: /src/image/src/codecs/gif.rs:275,1
    - Dst: FrameInfo::new_from_frame
      Src: /src/image/src/codecs/gif.rs:278,1
    - Dst: kind
      Src: /src/image/src/codecs/gif.rs:286,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:290,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:290,1
    - Dst: ImageError::from_decoding
      Src: /src/image/src/codecs/gif.rs:290,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:293,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:293,1
    - Dst: ImageError::from_decoding
      Src: /src/image/src/codecs/gif.rs:293,1
    - Dst: clone
      Src: /src/image/src/codecs/gif.rs:302,1
    - Dst: reserve_buffer
      Src: /src/image/src/codecs/gif.rs:305,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:306,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:306,1
    - Dst: read_into_buffer
      Src: /src/image/src/codecs/gif.rs:310,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:311,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:311,1
    - Dst: ImageError::from_decoding
      Src: /src/image/src/codecs/gif.rs:311,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/gif.rs:319,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:320,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:320,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/gif.rs:320,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/gif.rs:321,1
    - Dst: into
      Src: /src/image/src/codecs/gif.rs:322,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/gif.rs:323,1
    - Dst: dimensions
      Src: /src/image/src/codecs/gif.rs:367,1
    - Dst: enumerate_pixels_mut
      Src: /src/image/src/codecs/gif.rs:369,1
    - Dst: get_pixel_mut
      Src: /src/image/src/codecs/gif.rs:370,1
    - Dst: blend_and_dispose_pixel
      Src: /src/image/src/codecs/gif.rs:371,1
    - Dst: reserve_buffer
      Src: /src/image/src/codecs/gif.rs:376,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:377,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:377,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/codecs/gif.rs:379,1
    - Dst: wrapping_sub
      Src: /src/image/src/codecs/gif.rs:380,1
    - Dst: Option::wrapping_sub
      Src: /src/image/src/codecs/gif.rs:381,1
    - Dst: get_pixel_mut
      Src: /src/image/src/codecs/gif.rs:382,1
    - Dst: width
      Src: /src/image/src/codecs/gif.rs:384,1
    - Dst: height
      Src: /src/image/src/codecs/gif.rs:384,1
    - Dst: get_pixel
      Src: /src/image/src/codecs/gif.rs:385,1
    - Dst: blend_and_dispose_pixel
      Src: /src/image/src/codecs/gif.rs:386,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:395,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:395,1
    - Dst: animation::Frame::from_parts
      Src: /src/image/src/codecs/gif.rs:395,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 185
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 246
    functionDepth: 16
    functionLinenumber: 246
    functionLinenumberEnd: 401
    functionName: GifFrameIterator::next
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - blend_and_dispose_pixel
    - ImageBuffer::from_pixel
    - Option::wrapping_sub
    - next_frame_info
    - is_none
    - Some
    - unwrap
    - clone
    - get_pixel_mut
    - FrameInfo::new_from_frame
    - ImageBuffer::from_raw
    - UnsupportedErrorKind::GenericFeature
    - wrapping_sub
    - read_into_buffer
    - kind
    - ImageError::from_decoding
    - reserve_buffer
    - as_mut
    - color::Rgba
    - dimensions
    - enumerate_pixels_mut
    - into
    - animation::Frame::from_parts
    - ImageBuffer::from_fn
    - Ok
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - get_pixel
    - Err
    - width
    - height
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<ImageResult<animation::Frame>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: repeat
      Src: /src/image/src/codecs/gif.rs:406,1
    - Dst: LoopCount::Finite
      Src: /src/image/src/codecs/gif.rs:408,1
    - Dst: NonZeroU32::new
      Src: /src/image/src/codecs/gif.rs:408,1
    - Dst: into
      Src: /src/image/src/codecs/gif.rs:408,1
    - Dst: Self::expect
      Src: /src/image/src/codecs/gif.rs:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 412
      start: 405
    functionDepth: 12
    functionLinenumber: 405
    functionLinenumberEnd: 412
    functionName: GifDecoder::loop_count
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - LoopCount::Finite
    - repeat
    - Self::expect
    - into
    - NonZeroU32::new
    linkageType: ''
    returnType: LoopCount
    signature: fn loop_count(&self) -> LoopCount
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: animation::Frames::new
      Src: /src/image/src/codecs/gif.rs:415,1
    - Dst: Box::new
      Src: /src/image/src/codecs/gif.rs:415,1
    - Dst: GifFrameIterator::new
      Src: /src/image/src/codecs/gif.rs:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 416
      start: 414
    functionDepth: 13
    functionLinenumber: 414
    functionLinenumberEnd: 416
    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:431,1
    - 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: animation::Delay::from_ratio
      Src: /src/image/src/codecs/gif.rs:437,1
    - Dst: Ratio::new
      Src: /src/image/src/codecs/gif.rs:437,1
    - Dst: u32::from
      Src: /src/image/src/codecs/gif.rs:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - frame
    argTypes:
    - '&Frame'
    constantsTouched: []
    func_position:
      end: 439
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 439
    functionName: FrameInfo::new_from_frame
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 2
    functionsReached:
    - animation::Delay::from_ratio
    - Ratio::new
    - u32::from
    linkageType: ''
    returnType: FrameInfo
    signature: 'fn new_from_frame(frame: &Frame) -> FrameInfo'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gif::Repeat::Finite
      Src: /src/image/src/codecs/gif.rs:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 457
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 457
    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:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 472
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 472
    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:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - w
    - speed
    argTypes:
    - W
    - i32
    constantsTouched: []
    func_position:
      end: 488
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 488
    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:493,1
    - Dst: ImageResult::to_gif_enum
      Src: /src/image/src/codecs/gif.rs:494,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/gif.rs:493,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:497,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - repeat
    argTypes:
    - Repeat
    constantsTouched: []
    func_position:
      end: 499
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 499
    functionName: GifEncoder::set_repeat
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - ImageResult::set_repeat
    - Some
    - ImageResult::to_gif_enum
    - ImageResult::map_err
    - 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:509,1
    - Dst: GifEncoder::encode_gif
      Src: /src/image/src/codecs/gif.rs:512,1
    - Dst: Frame::from_rgb_speed
      Src: /src/image/src/codecs/gif.rs:512,1
    - Dst: GifEncoder::encode_gif
      Src: /src/image/src/codecs/gif.rs:514,1
    - Dst: Frame::from_rgba_speed
      Src: /src/image/src/codecs/gif.rs:514,1
    - Dst: Result::to_owned
      Src: /src/image/src/codecs/gif.rs:517,1
    - Dst: flat_map
      Src: /src/image/src/codecs/gif.rs:521,1
    - Dst: collect
      Src: /src/image/src/codecs/gif.rs:521,1
    - Dst: GifEncoder::encode_gif
      Src: /src/image/src/codecs/gif.rs:523,1
    - Dst: Frame::from_palette_pixels
      Src: /src/image/src/codecs/gif.rs:523,1
    - Dst: GifEncoder::encode_gif
      Src: /src/image/src/codecs/gif.rs:528,1
    - Dst: Frame::from_grayscale_with_alpha
      Src: /src/image/src/codecs/gif.rs:528,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:530,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/gif.rs:530,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/gif.rs:531,1
    - Dst: into
      Src: /src/image/src/codecs/gif.rs:532,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/gif.rs:533,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 4
    argNames:
    - data
    - width
    - height
    - color
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 537
      start: 502
    functionDepth: 18
    functionLinenumber: 502
    functionLinenumberEnd: 537
    functionName: GifEncoder::encode
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 1
    functionsReached:
    - Frame::from_rgba_speed
    - UnsupportedErrorKind::Color
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - collect
    - GifEncoder::gif_dimensions
    - Frame::from_grayscale_with_alpha
    - Result::to_owned
    - Err
    - GifEncoder::encode_gif
    - into
    - Frame::from_rgb_speed
    - flat_map
    - Frame::from_palette_pixels
    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:541,1
    - Dst: GifEncoder::encode_gif
      Src: /src/image/src/codecs/gif.rs:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - img_frame
    argTypes:
    - animation::Frame
    constantsTouched: []
    func_position:
      end: 543
      start: 540
    functionDepth: 19
    functionLinenumber: 540
    functionLinenumberEnd: 543
    functionName: GifEncoder::encode_frame
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 2
    functionsReached:
    - GifEncoder::encode_gif
    - GifEncoder::convert_frame
    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:552,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - frames
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 555
      start: 547
    functionDepth: 20
    functionLinenumber: 547
    functionLinenumberEnd: 555
    functionName: GifEncoder::encode_frames
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - Ok
    - GifEncoder::encode_frame
    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:565,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - frames
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 568
      start: 560
    functionDepth: 20
    functionLinenumber: 560
    functionLinenumberEnd: 568
    functionName: GifEncoder::try_encode_frames
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - Ok
    - GifEncoder::encode_frame
    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:575,1
    - Dst: Delay::into_ratio
      Src: /src/image/src/codecs/gif.rs:575,1
    - Dst: Ratio::to_integer
      Src: /src/image/src/codecs/gif.rs:575,1
    - Dst: animation::Frame::into_buffer
      Src: /src/image/src/codecs/gif.rs:577,1
    - Dst: GifEncoder::gif_dimensions
      Src: /src/image/src/codecs/gif.rs:578,1
    - Dst: RgbaImage::width
      Src: /src/image/src/codecs/gif.rs:578,1
    - Dst: RgbaImage::height
      Src: /src/image/src/codecs/gif.rs:578,1
    - Dst: Frame::from_rgba_speed
      Src: /src/image/src/codecs/gif.rs:581,1
    - Dst: try_into
      Src: /src/image/src/codecs/gif.rs:586,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/gif.rs:586,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - img_frame
    argTypes:
    - animation::Frame
    constantsTouched: []
    func_position:
      end: 589
      start: 570
    functionDepth: 18
    functionLinenumber: 570
    functionLinenumberEnd: 589
    functionName: GifEncoder::convert_frame
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 1
    functionsReached:
    - Frame::from_rgba_speed
    - animation::Frame::delay
    - Ok
    - try_into
    - GifEncoder::gif_dimensions
    - Ratio::to_integer
    - Delay::into_ratio
    - RgbaImage::height
    - RgbaImage::width
    - animation::Frame::into_buffer
    - unwrap_or
    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:593,1
    - Dst: Result::ok
      Src: /src/image/src/codecs/gif.rs:593,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/gif.rs:594,1
    - Dst: Result::ok
      Src: /src/image/src/codecs/gif.rs:594,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 596
      start: 592
    functionDepth: 16
    functionLinenumber: 592
    functionLinenumberEnd: 596
    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:599,1
    - Dst: Option::ok_or_else
      Src: /src/image/src/codecs/gif.rs:599,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/gif.rs:600,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/gif.rs:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 604
      start: 591
    functionDepth: 17
    functionLinenumber: 591
    functionLinenumberEnd: 604
    functionName: GifEncoder::gif_dimensions
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 2
    functionsReached:
    - inner_dimensions
    - Option::ok_or_else
    - ImageError::Parameter
    - ParameterError::from_kind
    linkageType: ''
    returnType: ImageResult
    signature: 'fn gif_dimensions(&self, width: u32, height: u32) -> ImageResult<(u16,
      u16)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/image/src/codecs/gif.rs:611,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:611,1
    - Dst: gif::Encoder::new
      Src: /src/image/src/codecs/gif.rs:612,1
    - Dst: FarbfeldEncoder::map_err
      Src: /src/image/src/codecs/gif.rs:612,1
    - Dst: ImageResult::set_repeat
      Src: /src/image/src/codecs/gif.rs:615,1
    - Dst: ImageResult::to_gif_enum
      Src: /src/image/src/codecs/gif.rs:616,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/gif.rs:615,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:619,1
    - Dst: as_mut
      Src: /src/image/src/codecs/gif.rs:620,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:620,1
    - Dst: write_frame
      Src: /src/image/src/codecs/gif.rs:625,1
    - Dst: map_err
      Src: /src/image/src/codecs/gif.rs:625,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 1
    argNames:
    - frame
    argTypes:
    - Frame
    constantsTouched: []
    func_position:
      end: 628
      start: 606
    functionDepth: 2
    functionLinenumber: 606
    functionLinenumberEnd: 628
    functionName: GifEncoder::encode_gif
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 2
    functionsReached:
    - take
    - ImageResult::set_repeat
    - write_frame
    - FarbfeldEncoder::map_err
    - map_err
    - gif::Encoder::new
    - Some
    - as_mut
    - unwrap
    - ImageResult::to_gif_enum
    - ImageResult::map_err
    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:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 639
      start: 631
    functionDepth: 19
    functionLinenumber: 631
    functionLinenumberEnd: 639
    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::IoError
      Src: /src/image/src/codecs/gif.rs:646,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/gif.rs:647,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/gif.rs:647,1
    - Dst: into
      Src: /src/image/src/codecs/gif.rs:647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - err
    argTypes:
    - gif::DecodingError
    constantsTouched: []
    func_position:
      end: 649
      start: 643
    functionDepth: 13
    functionLinenumber: 643
    functionLinenumberEnd: 649
    functionName: ImageError::from_decoding
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 1
    functionsReached:
    - DecodingError::new
    - into
    - ImageError::Decoding
    - ImageError::IoError
    linkageType: ''
    returnType: ImageError
    signature: 'fn from_decoding(err: gif::DecodingError) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/gif.rs:654,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/gif.rs:655,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/gif.rs:655,1
    - Dst: into
      Src: /src/image/src/codecs/gif.rs:655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - err
    argTypes:
    - gif::EncodingError
    constantsTouched: []
    func_position:
      end: 657
      start: 651
    functionDepth: 13
    functionLinenumber: 651
    functionLinenumberEnd: 657
    functionName: ImageError::from_encoding
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - into
    - ImageError::Encoding
    - ImageError::IoError
    - EncodingError::new
    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:676,1
    - Dst: io::Cursor::new
      Src: /src/image/src/codecs/gif.rs:676,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/gif.rs:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 680
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 680
    functionName: test::frames_exceeding_logical_screen_size
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - GifDecoder::new
    - ImageResult::unwrap
    - io::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:47,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/tiff.rs:47,1
    - Dst: Option::dimensions
      Src: /src/image/src/codecs/tiff.rs:49,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/tiff.rs:49,1
    - Dst: Option::colortype
      Src: /src/image/src/codecs/tiff.rs:50,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:50,1
    - Dst: find_tag_unsigned_vec::<u16>
      Src: /src/image/src/codecs/tiff.rs:52,1
    - Dst: check_sample_format
      Src: /src/image/src/codecs/tiff.rs:55,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:59,1
    - Dst: ImageError::from_tiff_decode
      Src: /src/image/src/codecs/tiff.rs:59,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:79,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:79,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:81,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:81,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:81,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:82,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:82,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:82,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:83,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:83,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:83,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:85,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:85,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:85,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:92,1
    - Dst: min
      Src: /src/image/src/codecs/tiff.rs:92,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: Option::into
      Src: /src/image/src/codecs/tiff.rs:103,1
    - Dst: check_ycbcr_subsampling
      Src: /src/image/src/codecs/tiff.rs:108,1
    - Dst: read_ycbcr_coefficients
      Src: /src/image/src/codecs/tiff.rs:109,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:112,1
    - Dst: Some
      Src: /src/image/src/codecs/tiff.rs:117,1
    - Dst: DecodingResult::U8
      Src: /src/image/src/codecs/tiff.rs:118,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 80
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 120
      start: 46
    functionDepth: 15
    functionLinenumber: 46
    functionLinenumberEnd: 120
    functionName: TiffDecoder::new
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 6
    functionsReached:
    - err_unknown_color_type
    - Ok
    - Option::colortype
    - DecodingResult::U8
    - map_err
    - read_ycbcr_coefficients
    - Err
    - find_tag_unsigned_vec::<u16>
    - Some
    - Option::into
    - saturating_mul
    - min
    - ImageError::from_tiff_decode
    - check_sample_format
    - Option::dimensions
    - Decoder::new
    - ImageResult::map_err
    - check_ycbcr_subsampling
    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:130,1
    - Dst: TiffDecoder::color_type
      Src: /src/image/src/codecs/tiff.rs:130,1
    - Dst: ColorType::bytes_per_pixel
      Src: /src/image/src/codecs/tiff.rs:130,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 15
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: TiffDecoder::total_bytes_buffer
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - ColorType::bytes_per_pixel
    - u64::from
    - TiffDecoder::dimensions
    - saturating_mul
    - TiffDecoder::color_type
    linkageType: ''
    returnType: u64
    signature: fn total_bytes_buffer(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:141,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:142,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:142,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:143,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:144,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:145,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/tiff.rs:146,1
    - Dst: map_or
      Src: /src/image/src/codecs/tiff.rs:169,1
    - Dst: get
      Src: /src/image/src/codecs/tiff.rs:169,1
    - Dst: as_buffer
      Src: /src/image/src/codecs/tiff.rs:170,1
    - Dst: '&[u8]::as_bytes'
      Src: /src/image/src/codecs/tiff.rs:172,1
    - Dst: '&[u8]::chunks_exact'
      Src: /src/image/src/codecs/tiff.rs:172,1
    - Dst: "as_bytes()\n            .chunks_exact(plane_stride)\n            .collect::<Vec<_>>"
      Src: /src/image/src/codecs/tiff.rs:172,1
    - Dst: ImageResult::len
      Src: /src/image/src/codecs/tiff.rs:179,1
    - Dst: usize::from
      Src: /src/image/src/codecs/tiff.rs:179,1
    - Dst: channel_count
      Src: /src/image/src/codecs/tiff.rs:179,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:180,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tiff.rs:180,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tiff.rs:180,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:181,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/tiff.rs:182,1
    - Dst: utils::interleave_planes
      Src: /src/image/src/codecs/tiff.rs:186,1
    - Dst: usize::from
      Src: /src/image/src/codecs/tiff.rs:189,1
    - Dst: channel_count
      Src: /src/image/src/codecs/tiff.rs:189,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 62
    argCount: 2
    argNames:
    - layout
    - output
    argTypes:
    - tiff::decoder::BufferLayoutPreference
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 193
      start: 136
    functionDepth: 12
    functionLinenumber: 136
    functionLinenumberEnd: 193
    functionName: TiffDecoder::interleave_planes
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - as_buffer
    - '&[u8]::chunks_exact'
    - ImageError::Decoding
    - UnsupportedErrorKind::GenericFeature
    - '&[u8]::as_bytes'
    - map_or
    - get
    - into
    - DecodingError::new
    - Ok
    - utils::interleave_planes
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - usize::from
    - '&str::to_string'
    - channel_count
    - Err
    - ImageResult::len
    - "as_bytes()\n            .chunks_exact(plane_stride)\n            .collect::<Vec<_>>"
    linkageType: ''
    returnType: ImageResult
    signature: 'fn interleave_planes(&mut self,layout: tiff::decoder::BufferLayoutPreference,output:
      &mut [u8],) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::find_tag
      Src: /src/image/src/codecs/tiff.rs:197,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:197,1
    - Dst: and_then
      Src: /src/image/src/codecs/tiff.rs:197,1
    - Dst: DynamicImage::into_u16
      Src: /src/image/src/codecs/tiff.rs:200,1
    - Dst: ok
      Src: /src/image/src/codecs/tiff.rs:200,1
    - Dst: Some
      Src: /src/image/src/codecs/tiff.rs:203,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:204,1
    - Dst: ImageResult::find_tag
      Src: /src/image/src/codecs/tiff.rs:207,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:207,1
    - Dst: map
      Src: /src/image/src/codecs/tiff.rs:207,1
    - Dst: ImageResult::into_u16_vec
      Src: /src/image/src/codecs/tiff.rs:210,1
    - Dst: transpose
      Src: /src/image/src/codecs/tiff.rs:207,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:207,1
    - Dst: ImageResult::as_deref
      Src: /src/image/src/codecs/tiff.rs:214,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/tiff.rs:214,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:217,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:217,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:218,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:219,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:220,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:228,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 55
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - '&mut Decoder<R>'
    constantsTouched: []
    func_position:
      end: 229
      start: 196
    functionDepth: 16
    functionLinenumber: 196
    functionLinenumberEnd: 229
    functionName: check_ycbcr_subsampling
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - map
    - ImageResult::into_u16_vec
    - ok
    - ImageError::Unsupported
    - map_err
    - ImageResult::find_tag
    - unwrap_or
    - Err
    - ImageResult::as_deref
    - UnsupportedError::from_format_and_kind
    - Some
    - UnsupportedErrorKind::GenericFeature
    - into
    - DynamicImage::into_u16
    - transpose
    - Ok
    - and_then
    linkageType: ''
    returnType: ImageResult
    signature: 'fn check_ycbcr_subsampling<R: BufRead + Seek>(decoder: &mut Decoder<R>)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::find_tag
      Src: /src/image/src/codecs/tiff.rs:232,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:232,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:238,1
    - Dst: len
      Src: /src/image/src/codecs/tiff.rs:242,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:244,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tiff.rs:244,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tiff.rs:244,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:245,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/tiff.rs:246,1
    - Dst: iter
      Src: /src/image/src/codecs/tiff.rs:252,1
    - Dst: enumerate
      Src: /src/image/src/codecs/tiff.rs:252,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:258,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tiff.rs:258,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tiff.rs:258,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:259,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/tiff.rs:260,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - '&mut Decoder<R>'
    constantsTouched: []
    func_position:
      end: 267
      start: 231
    functionDepth: 14
    functionLinenumber: 231
    functionLinenumberEnd: 267
    functionName: read_ycbcr_coefficients
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - map_err
    - ImageResult::find_tag
    - '&str::to_string'
    - Err
    - iter
    - len
    - DecodingError::new
    - enumerate
    - into
    - ImageError::Decoding
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_ycbcr_coefficients<R: BufRead + Seek>(decoder: &mut Decoder<R>)
      -> ImageResult<[f32; 3]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:279,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:279,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:280,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:281,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:282,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:289,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:289,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:290,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:291,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:292,1
    - Dst: SampleFormat::from_u16
      Src: /src/image/src/codecs/tiff.rs:300,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:301,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:302,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:303,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:303,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:304,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:305,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - sample_format
    - color_type
    argTypes:
    - u16
    - tiff::ColorType
    constantsTouched: []
    func_position:
      end: 312
      start: 269
    functionDepth: 12
    functionLinenumber: 269
    functionLinenumberEnd: 312
    functionName: check_sample_format
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Err
    - UnsupportedErrorKind::GenericFeature
    - into
    - Ok
    - SampleFormat::from_u16
    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:315,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:315,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:316,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/tiff.rs:317,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/tiff.rs:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 12
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: err_unknown_color_type
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - UnsupportedErrorKind::Color
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - ExtendedColorType::Unknown
    - into
    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:324,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tiff.rs:328,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tiff.rs:328,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:328,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:331,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:331,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:332,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:333,1
    - Dst: to_string
      Src: /src/image/src/codecs/tiff.rs:333,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/tiff.rs:337,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/tiff.rs:337,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - err
    argTypes:
    - tiff::TiffError
    constantsTouched: []
    func_position:
      end: 340
      start: 322
    functionDepth: 13
    functionLinenumber: 322
    functionLinenumberEnd: 340
    functionName: ImageError::from_tiff_decode
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 2
    functionsReached:
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - UnsupportedErrorKind::GenericFeature
    - ImageError::Limits
    - ImageError::Decoding
    - LimitError::from_kind
    - to_string
    - into
    - DecodingError::new
    - ImageError::IoError
    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:344,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/tiff.rs:348,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/tiff.rs:348,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:348,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:351,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:351,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:352,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:353,1
    - Dst: to_string
      Src: /src/image/src/codecs/tiff.rs:353,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/tiff.rs:357,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/tiff.rs:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - err
    argTypes:
    - tiff::TiffError
    constantsTouched: []
    func_position:
      end: 360
      start: 342
    functionDepth: 13
    functionLinenumber: 342
    functionLinenumberEnd: 360
    functionName: ImageError::from_tiff_encode
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - EncodingError::new
    - ImageError::Encoding
    - UnsupportedErrorKind::GenericFeature
    - ImageError::Limits
    - LimitError::from_kind
    - to_string
    - into
    - ImageError::IoError
    linkageType: ''
    returnType: ImageError
    signature: 'fn from_tiff_encode(err: tiff::TiffError) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 366
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 366
    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: 370
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 370
    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: 374
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 374
    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:378,1
    - Dst: ImageResult::get_tag_u8_vec
      Src: /src/image/src/codecs/tiff.rs:378,1
    - Dst: ok
      Src: /src/image/src/codecs/tiff.rs:378,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 382
      start: 376
    functionDepth: 16
    functionLinenumber: 376
    functionLinenumberEnd: 382
    functionName: TiffDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - ImageResult::get_tag_u8_vec
    - Ok
    - 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/tiff.rs:386,1
    - Dst: ImageResult::get_tag
      Src: /src/image/src/codecs/tiff.rs:389,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:392,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:394,1
    - Dst: ImageError::from_tiff_decode
      Src: /src/image/src/codecs/tiff.rs:394,1
    - Dst: ImageResult::into_u8_vec
      Src: /src/image/src/codecs/tiff.rs:396,1
    - Dst: map
      Src: /src/image/src/codecs/tiff.rs:396,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 400
      start: 384
    functionDepth: 14
    functionLinenumber: 384
    functionLinenumberEnd: 400
    functionName: TiffDecoder::xmp_metadata
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - map
    - map_err
    - Err
    - ImageResult::into_u8_vec
    - ImageResult::get_tag
    - ImageError::from_tiff_decode
    - 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:404,1
    - Dst: ImageResult::find_tag
      Src: /src/image/src/codecs/tiff.rs:404,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:404,1
    - Dst: and_then
      Src: /src/image/src/codecs/tiff.rs:404,1
    - Dst: Orientation::from_exif
      Src: /src/image/src/codecs/tiff.rs:407,1
    - Dst: DynamicImage::into_u16
      Src: /src/image/src/codecs/tiff.rs:407,1
    - Dst: ok
      Src: /src/image/src/codecs/tiff.rs:407,1
    - Dst: min
      Src: /src/image/src/codecs/tiff.rs:407,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/tiff.rs:404,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 412
      start: 402
    functionDepth: 16
    functionLinenumber: 402
    functionLinenumberEnd: 412
    functionName: TiffDecoder::orientation
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - ok
    - map_err
    - ImageResult::find_tag
    - unwrap_or
    - Orientation::from_exif
    - min
    - DynamicImage::into_u16
    - Ok
    - 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:415,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/tiff.rs:415,1
    - Dst: TiffDecoder::dimensions
      Src: /src/image/src/codecs/tiff.rs:417,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/codecs/tiff.rs:418,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/tiff.rs:420,1
    - Dst: saturating_sub
      Src: /src/image/src/codecs/tiff.rs:421,1
    - Dst: TiffDecoder::total_bytes_buffer
      Src: /src/image/src/codecs/tiff.rs:421,1
    - Dst: Default::default
      Src: /src/image/src/codecs/tiff.rs:423,1
    - Dst: usize::try_from
      Src: /src/image/src/codecs/tiff.rs:425,1
    - Dst: Result::unwrap_or
      Src: /src/image/src/codecs/tiff.rs:425,1
    - Dst: usize::try_from
      Src: /src/image/src/codecs/tiff.rs:427,1
    - Dst: Result::unwrap_or
      Src: /src/image/src/codecs/tiff.rs:427,1
    - Dst: Some
      Src: /src/image/src/codecs/tiff.rs:429,1
    - Dst: take
      Src: /src/image/src/codecs/tiff.rs:429,1
    - Dst: unwrap
      Src: /src/image/src/codecs/tiff.rs:429,1
    - Dst: with_limits
      Src: /src/image/src/codecs/tiff.rs:429,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:431,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 1
    argNames:
    - limits
    argTypes:
    - crate::Limits
    constantsTouched: []
    func_position:
      end: 432
      start: 414
    functionDepth: 16
    functionLinenumber: 414
    functionLinenumberEnd: 432
    functionName: TiffDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - crate::LimitSupport::default
    - TiffDecoder::total_bytes_buffer
    - usize::try_from
    - take
    - Ok
    - Default::default
    - Some
    - TiffDecoder::dimensions
    - with_limits
    - Limits::check_support
    - Result::unwrap_or
    - unwrap
    - Limits::check_dimensions
    - saturating_sub
    - unwrap_or
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: crate::Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_mut
      Src: /src/image/src/codecs/tiff.rs:437,1
    - Dst: unwrap
      Src: /src/image/src/codecs/tiff.rs:437,1
    - Dst: read_image_to_buffer
      Src: /src/image/src/codecs/tiff.rs:437,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:437,1
    - Dst: as_buffer
      Src: /src/image/src/codecs/tiff.rs:445,1
    - Dst: as_bytes
      Src: /src/image/src/codecs/tiff.rs:445,1
    - Dst: len
      Src: /src/image/src/codecs/tiff.rs:445,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:446,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/tiff.rs:446,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/tiff.rs:446,1
    - Dst: TiffDecoder::interleave_planes
      Src: /src/image/src/codecs/tiff.rs:454,1
    - Dst: as_chunks_mut::<3>
      Src: /src/image/src/codecs/tiff.rs:459,1
    - Dst: as_chunks::<4>
      Src: /src/image/src/codecs/tiff.rs:460,1
    - Dst: iter
      Src: /src/image/src/codecs/tiff.rs:460,1
    - Dst: zip
      Src: /src/image/src/codecs/tiff.rs:460,1
    - Dst: cmyk_to_rgb
      Src: /src/image/src/codecs/tiff.rs:461,1
    - Dst: as_chunks_mut::<6>
      Src: /src/image/src/codecs/tiff.rs:465,1
    - Dst: as_chunks::<4>
      Src: /src/image/src/codecs/tiff.rs:466,1
    - Dst: iter
      Src: /src/image/src/codecs/tiff.rs:466,1
    - Dst: zip
      Src: /src/image/src/codecs/tiff.rs:466,1
    - Dst: bytemuck::cast
      Src: /src/image/src/codecs/tiff.rs:467,1
    - Dst: cmyk_to_rgb16
      Src: /src/image/src/codecs/tiff.rs:467,1
    - Dst: u32::div_ceil
      Src: /src/image/src/codecs/tiff.rs:472,1
    - Dst: DynamicImage::chunks_exact
      Src: /src/image/src/codecs/tiff.rs:474,1
    - Dst: zip
      Src: /src/image/src/codecs/tiff.rs:474,1
    - Dst: std::io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/tiff.rs:476,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:478,1
    - Dst: utils::expand_bits
      Src: /src/image/src/codecs/tiff.rs:478,1
    - Dst: as_chunks::<3>
      Src: /src/image/src/codecs/tiff.rs:483,1
    - Dst: as_chunks_mut::<3>
      Src: /src/image/src/codecs/tiff.rs:484,1
    - Dst: ycbcr_to_rgb8
      Src: /src/image/src/codecs/tiff.rs:486,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:489,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:492,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:492,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:495,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:495,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:498,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:498,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:501,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:501,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:504,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:504,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:507,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:507,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:510,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:510,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:513,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:513,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:516,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:516,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:521,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 160
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 522
      start: 434
    functionDepth: 14
    functionLinenumber: 434
    functionLinenumberEnd: 522
    functionName: TiffDecoder::read_image
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - bytemuck::cast_slice
    - LimitError::from_kind
    - as_buffer
    - read_image_to_buffer
    - unwrap
    - ycbcr_to_rgb8
    - as_chunks_mut::<6>
    - DynamicImage::chunks_exact
    - as_chunks_mut::<3>
    - u32::div_ceil
    - as_chunks::<3>
    - bytemuck::cast
    - utils::expand_bits
    - cmyk_to_rgb
    - ImageError::Limits
    - cmyk_to_rgb16
    - as_mut
    - len
    - as_bytes
    - Ok
    - map_err
    - Err
    - copy_from_slice
    - std::io::Result::chunks_exact_mut
    - std::io::Result::copy_from_slice
    - TiffDecoder::interleave_planes
    - as_chunks::<4>
    - iter
    - zip
    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/tiff.rs:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 526
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 526
    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: Result::iter
      Src: /src/image/src/codecs/tiff.rs:540,1
    - Dst: zip
      Src: /src/image/src/codecs/tiff.rs:540,1
    - Dst: SampleLayout::iter_mut
      Src: /src/image/src/codecs/tiff.rs:540,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:541,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:542,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 51
    argCount: 5
    argNames:
    - ycbcr
    - lr
    - lg
    - lb
    - out
    argTypes:
    - '&[[u8; 3]]'
    - f32
    - f32
    - f32
    - '&mut [[u8; 3]]'
    constantsTouched: []
    func_position:
      end: 553
      start: 535
    functionDepth: 4
    functionLinenumber: 535
    functionLinenumberEnd: 553
    functionName: ycbcr_to_rgb8
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - Result::iter
    - zip
    - f32::from
    - SampleLayout::iter_mut
    linkageType: ''
    returnType: void
    signature: 'fn ycbcr_to_rgb8(ycbcr: &[[u8; 3]], lr: f32, lg: f32, lb: f32, out:
      &mut [[u8; 3]])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:556,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:557,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:558,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - cmyk
    argTypes:
    - '&[u8; 4]'
    constantsTouched: []
    func_position:
      end: 565
      start: 555
    functionDepth: 3
    functionLinenumber: 555
    functionLinenumberEnd: 565
    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; 4]) -> [u8; 3]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:568,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:569,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:570,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - cmyk
    argTypes:
    - '&[u16; 4]'
    constantsTouched: []
    func_position:
      end: 577
      start: 567
    functionDepth: 3
    functionLinenumber: 567
    functionLinenumberEnd: 577
    functionName: cmyk_to_rgb16
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - f32::from
    linkageType: ''
    returnType: '[u16; 3]'
    signature: 'fn cmyk_to_rgb16(cmyk: &[u16; 4]) -> [u16; 3]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytemuck::try_cast_slice
      Src: /src/image/src/codecs/tiff.rs:581,1
    - Dst: map
      Src: /src/image/src/codecs/tiff.rs:581,1
    - Dst: or_else
      Src: /src/image/src/codecs/tiff.rs:581,1
    - Dst: bytemuck::allocation::pod_collect_to_vec
      Src: /src/image/src/codecs/tiff.rs:589,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:590,1
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/tiff.rs:590,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:597,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/tiff.rs:597,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/tiff.rs:597,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/tiff.rs:598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 605
      start: 580
    functionDepth: 14
    functionLinenumber: 580
    functionLinenumberEnd: 605
    functionName: u8_slice_as_pod
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - map
    - std::borrow::Cow::Owned
    - Err
    - ParameterErrorKind::Generic
    - bytemuck::allocation::pod_collect_to_vec
    - ImageError::Parameter
    - ParameterError::from_kind
    - Ok
    - bytemuck::try_cast_slice
    - or_else
    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: 611
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 611
    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: tiff::encoder::TiffEncoder::new
      Src: /src/image/src/codecs/tiff.rs:624,1
    - Dst: TiffEncoder::map_err
      Src: /src/image/src/codecs/tiff.rs:624,1
    - Dst: u8_slice_as_pod::<C::Inner>
      Src: /src/image/src/codecs/tiff.rs:625,1
    - Dst: new_image::<C>
      Src: /src/image/src/codecs/tiff.rs:626,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:626,1
    - Dst: encoder
      Src: /src/image/src/codecs/tiff.rs:635,1
    - Dst: write_tag
      Src: /src/image/src/codecs/tiff.rs:636,1
    - Dst: as_slice
      Src: /src/image/src/codecs/tiff.rs:637,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:636,1
    - Dst: write_data
      Src: /src/image/src/codecs/tiff.rs:640,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:640,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - width
    - height
    - data
    argTypes:
    - u32
    - u32
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 643
      start: 614
    functionDepth: 14
    functionLinenumber: 614
    functionLinenumberEnd: 643
    functionName: TiffEncoder::write_tiff
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - map_err
    - as_slice
    - tiff::encoder::TiffEncoder::new
    - write_data
    - new_image::<C>
    - u8_slice_as_pod::<C::Inner>
    - TiffEncoder::map_err
    - write_tag
    - encoder
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_tiff<C: tiff::encoder::colortype::ColorType<Inner: bytemuck::Pod>>(self,width:
      u32,height: u32,data: &[u8],) -> ImageResult<()>where[C::Inner]: tiff::encoder::TiffValue,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::buffer_size
      Src: /src/image/src/codecs/tiff.rs:665,1
    - Dst: write_tiff::<Gray8>
      Src: /src/image/src/codecs/tiff.rs:673,1
    - Dst: write_tiff::<RGB8>
      Src: /src/image/src/codecs/tiff.rs:674,1
    - Dst: write_tiff::<RGBA8>
      Src: /src/image/src/codecs/tiff.rs:675,1
    - Dst: write_tiff::<Gray16>
      Src: /src/image/src/codecs/tiff.rs:676,1
    - Dst: write_tiff::<RGB16>
      Src: /src/image/src/codecs/tiff.rs:677,1
    - Dst: write_tiff::<RGBA16>
      Src: /src/image/src/codecs/tiff.rs:678,1
    - Dst: write_tiff::<RGB32Float>
      Src: /src/image/src/codecs/tiff.rs:679,1
    - Dst: write_tiff::<RGBA32Float>
      Src: /src/image/src/codecs/tiff.rs:680,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:681,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:681,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:682,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:683,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/tiff.rs:684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 688
      start: 655
    functionDepth: 16
    functionLinenumber: 655
    functionLinenumberEnd: 688
    functionName: TiffEncoder::write_image
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - write_tiff::<Gray16>
    - UnsupportedErrorKind::Color
    - write_tiff::<RGBA8>
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Option::buffer_size
    - write_tiff::<RGB8>
    - write_tiff::<Gray8>
    - Err
    - write_tiff::<RGB16>
    - write_tiff::<RGB32Float>
    - write_tiff::<RGBA16>
    - into
    - write_tiff::<RGBA32Float>
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/codecs/tiff.rs:691,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - icc_profile
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 693
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 693
    functionName: TiffEncoder::set_icc_profile
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Some
    linkageType: ''
    returnType: Result
    signature: 'fn set_icc_profile(&mut self, icc_profile: Vec<u8>) -> Result<(),
      UnsupportedError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_limits
      Src: /src/image/src/codecs/png.rs:44,1
    - Dst: Limits::no_limits
      Src: /src/image/src/codecs/png.rs:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 14
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: PngDecoder::new
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 5
    functionsReached:
    - Limits::no_limits
    - Self::with_limits
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(r: R) -> ImageResult<PngDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_support
      Src: /src/image/src/codecs/png.rs:49,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/png.rs:49,1
    - Dst: usize::try_from
      Src: /src/image/src/codecs/png.rs:51,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/png.rs:51,1
    - Dst: Result::unwrap_or
      Src: /src/image/src/codecs/png.rs:51,1
    - Dst: png::Decoder::new_with_limits
      Src: /src/image/src/codecs/png.rs:52,1
    - Dst: ImageResult::set_ignore_text_chunk
      Src: /src/image/src/codecs/png.rs:53,1
    - Dst: ImageResult::read_header_info
      Src: /src/image/src/codecs/png.rs:55,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:55,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/codecs/png.rs:56,1
    - Dst: ImageResult::set_transformations
      Src: /src/image/src/codecs/png.rs:61,1
    - Dst: ImageResult::read_info
      Src: /src/image/src/codecs/png.rs:62,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:62,1
    - Dst: Result::output_color_type
      Src: /src/image/src/codecs/png.rs:63,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:75,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:75,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:78,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:78,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:81,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:81,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:88,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:88,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:91,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:91,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:94,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:94,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:101,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:101,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:104,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:104,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:107,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:107,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: Err
      Src: /src/image/src/codecs/png.rs:114,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:114,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/png.rs:114,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 83
    argCount: 2
    argNames:
    - r
    - limits
    argTypes:
    - R
    - Limits
    constantsTouched: []
    func_position:
      end: 123
      start: 48
    functionDepth: 13
    functionLinenumber: 48
    functionLinenumberEnd: 123
    functionName: PngDecoder::with_limits
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 2
    functionsReached:
    - crate::LimitSupport::default
    - png::Decoder::new_with_limits
    - usize::try_from
    - ImageResult::read_header_info
    - unsupported_color
    - ExtendedColorType::Unknown
    - Ok
    - map_err
    - ImageResult::read_info
    - ImageResult::set_transformations
    - Err
    - ImageResult::set_ignore_text_chunk
    - Limits::check_support
    - Result::output_color_type
    - Limits::check_dimensions
    - Result::unwrap_or
    - unwrap_or
    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:134,1
    - Dst: info
      Src: /src/image/src/codecs/png.rs:134,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:134,1
    - Dst: f64::from
      Src: /src/image/src/codecs/png.rs:138,1
    - Dst: into_scaled
      Src: /src/image/src/codecs/png.rs:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 16
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: PngDecoder::gamma_value
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - into_scaled
    - f64::from
    - map
    - info
    - 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:152,1
    - Dst: ApngDecoder::new
      Src: /src/image/src/codecs/png.rs:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 17
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: PngDecoder::apng
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - ApngDecoder::new
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: pub fn apng(self) -> ImageResult<ApngDecoder<R>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:162,1
    - Dst: info
      Src: /src/image/src/codecs/png.rs:162,1
    - Dst: is_some
      Src: /src/image/src/codecs/png.rs:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 163
      start: 161
    functionDepth: 16
    functionLinenumber: 161
    functionLinenumberEnd: 163
    functionName: PngDecoder::is_apng
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - is_some
    - Ok
    - info
    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:167,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/png.rs:167,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:168,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/png.rs:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ect
    argTypes:
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 12
    functionLinenumber: 166
    functionLinenumberEnd: 171
    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:175,1
    - Dst: size
      Src: /src/image/src/codecs/png.rs:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 16
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: PngDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - size
    - info
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    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: info
      Src: /src/image/src/codecs/png.rs:183,1
    - Dst: info
      Src: /src/image/src/codecs/png.rs:183,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/png.rs:204,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/png.rs:205,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/png.rs:206,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/png.rs:207,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/png.rs:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 182
    functionDepth: 16
    functionLinenumber: 182
    functionLinenumberEnd: 210
    functionName: PngDecoder::original_color_type
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - ExtendedColorType::Unknown
    - info
    linkageType: ''
    returnType: ExtendedColorType
    signature: fn original_color_type(&self) -> ExtendedColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:213,1
    - Dst: info
      Src: /src/image/src/codecs/png.rs:213,1
    - Dst: as_ref
      Src: /src/image/src/codecs/png.rs:213,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:213,1
    - Dst: to_vec
      Src: /src/image/src/codecs/png.rs:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 16
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: PngDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - map
    - to_vec
    - info
    - 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:217,1
    - Dst: info
      Src: /src/image/src/codecs/png.rs:217,1
    - Dst: as_ref
      Src: /src/image/src/codecs/png.rs:217,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:217,1
    - Dst: to_vec
      Src: /src/image/src/codecs/png.rs:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 216
    functionDepth: 16
    functionLinenumber: 216
    functionLinenumberEnd: 223
    functionName: PngDecoder::exif_metadata
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - map
    - to_vec
    - info
    - 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:226,1
    - Dst: iter
      Src: /src/image/src/codecs/png.rs:226,1
    - Dst: find
      Src: /src/image/src/codecs/png.rs:226,1
    - Dst: contains
      Src: /src/image/src/codecs/png.rs:231,1
    - Dst: cloned
      Src: /src/image/src/codecs/png.rs:226,1
    - Dst: decompress_text
      Src: /src/image/src/codecs/png.rs:234,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:234,1
    - Dst: get_text
      Src: /src/image/src/codecs/png.rs:235,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:235,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:237,1
    - Dst: as_bytes
      Src: /src/image/src/codecs/png.rs:237,1
    - Dst: to_vec
      Src: /src/image/src/codecs/png.rs:237,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:235,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 225
    functionDepth: 16
    functionLinenumber: 225
    functionLinenumberEnd: 241
    functionName: PngDecoder::xmp_metadata
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - map
    - map_err
    - contains
    - decompress_text
    - get_text
    - cloned
    - Some
    - find
    - to_vec
    - as_bytes
    - info
    - iter
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn xmp_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: info
      Src: /src/image/src/codecs/png.rs:244,1
    - Dst: iter
      Src: /src/image/src/codecs/png.rs:244,1
    - Dst: find
      Src: /src/image/src/codecs/png.rs:244,1
    - Dst: iter
      Src: /src/image/src/codecs/png.rs:249,1
    - Dst: any
      Src: /src/image/src/codecs/png.rs:249,1
    - Dst: contains
      Src: /src/image/src/codecs/png.rs:249,1
    - Dst: cloned
      Src: /src/image/src/codecs/png.rs:244,1
    - Dst: decompress_text
      Src: /src/image/src/codecs/png.rs:252,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:252,1
    - Dst: get_text
      Src: /src/image/src/codecs/png.rs:253,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:253,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:255,1
    - Dst: as_bytes
      Src: /src/image/src/codecs/png.rs:255,1
    - Dst: to_vec
      Src: /src/image/src/codecs/png.rs:255,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:253,1
    - Dst: info
      Src: /src/image/src/codecs/png.rs:259,1
    - Dst: iter
      Src: /src/image/src/codecs/png.rs:259,1
    - Dst: find
      Src: /src/image/src/codecs/png.rs:259,1
    - Dst: iter
      Src: /src/image/src/codecs/png.rs:264,1
    - Dst: any
      Src: /src/image/src/codecs/png.rs:264,1
    - Dst: contains
      Src: /src/image/src/codecs/png.rs:264,1
    - Dst: cloned
      Src: /src/image/src/codecs/png.rs:259,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:267,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:267,1
    - Dst: into_bytes
      Src: /src/image/src/codecs/png.rs:267,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 243
    functionDepth: 16
    functionLinenumber: 243
    functionLinenumberEnd: 270
    functionName: PngDecoder::iptc_metadata
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - map
    - into_bytes
    - map_err
    - contains
    - decompress_text
    - get_text
    - cloned
    - Some
    - find
    - to_vec
    - any
    - as_bytes
    - info
    - iter
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn iptc_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next_frame
      Src: /src/image/src/codecs/png.rs:274,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:274,1
    - Dst: PngDecoder::color_type
      Src: /src/image/src/codecs/png.rs:279,1
    - Dst: ColorType::bytes_per_pixel
      Src: /src/image/src/codecs/png.rs:279,1
    - Dst: PngDecoder::color_type
      Src: /src/image/src/codecs/png.rs:279,1
    - Dst: ColorType::channel_count
      Src: /src/image/src/codecs/png.rs:279,1
    - Dst: as_chunks_mut::<2>
      Src: /src/image/src/codecs/png.rs:283,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/png.rs:283,1
    - Dst: for_each
      Src: /src/image/src/codecs/png.rs:283,1
    - Dst: u16::from_be_bytes
      Src: /src/image/src/codecs/png.rs:284,1
    - Dst: to_ne_bytes
      Src: /src/image/src/codecs/png.rs:284,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:288,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 289
      start: 272
    functionDepth: 13
    functionLinenumber: 272
    functionLinenumberEnd: 289
    functionName: PngDecoder::read_image
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - as_chunks_mut::<2>
    - Ok
    - to_ne_bytes
    - ColorType::channel_count
    - map_err
    - ColorType::bytes_per_pixel
    - iter_mut
    - u16::from_be_bytes
    - PngDecoder::color_type
    - next_frame
    - for_each
    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:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 293
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 293
    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:296,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/png.rs:296,1
    - Dst: info
      Src: /src/image/src/codecs/png.rs:297,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/codecs/png.rs:298,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - limits
    argTypes:
    - Limits
    constantsTouched: []
    func_position:
      end: 303
      start: 295
    functionDepth: 16
    functionLinenumber: 295
    functionLinenumberEnd: 303
    functionName: PngDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - crate::LimitSupport::default
    - Limits::check_support
    - info
    - Limits::check_dimensions
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: info
      Src: /src/image/src/codecs/png.rs:332,1
    - Dst: ImageResult::animation_control
      Src: /src/image/src/codecs/png.rs:333,1
    - Dst: is_none
      Src: /src/image/src/codecs/png.rs:340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - inner
    argTypes:
    - PngDecoder<R>
    constantsTouched: []
    func_position:
      end: 350
      start: 331
    functionDepth: 16
    functionLinenumber: 331
    functionLinenumberEnd: 350
    functionName: ApngDecoder::new
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - ImageResult::animation_control
    - is_none
    - info
    linkageType: ''
    returnType: Self
    signature: 'fn new(inner: PngDecoder<R>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dimensions
      Src: /src/image/src/codecs/png.rs:360,1
    - Dst: is_none
      Src: /src/image/src/codecs/png.rs:363,1
    - Dst: Limits::reserve_buffer
      Src: /src/image/src/codecs/png.rs:364,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:365,1
    - Dst: RgbaImage::new
      Src: /src/image/src/codecs/png.rs:365,1
    - Dst: is_none
      Src: /src/image/src/codecs/png.rs:368,1
    - Dst: Limits::reserve_buffer
      Src: /src/image/src/codecs/png.rs:369,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:370,1
    - Dst: RgbaImage::new
      Src: /src/image/src/codecs/png.rs:370,1
    - Dst: checked_sub
      Src: /src/image/src/codecs/png.rs:375,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:376,1
    - Dst: clone
      Src: /src/image/src/codecs/png.rs:387,1
    - Dst: output_buffer_size
      Src: /src/image/src/codecs/png.rs:389,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/png.rs:389,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/png.rs:390,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/png.rs:390,1
    - Dst: Limits::reserve_usize
      Src: /src/image/src/codecs/png.rs:393,1
    - Dst: next_frame
      Src: /src/image/src/codecs/png.rs:397,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:397,1
    - Dst: ApngDecoder::animatable_color_type
      Src: /src/image/src/codecs/png.rs:404,1
    - Dst: as_mut
      Src: /src/image/src/codecs/png.rs:407,1
    - Dst: unwrap
      Src: /src/image/src/codecs/png.rs:407,1
    - Dst: as_mut
      Src: /src/image/src/codecs/png.rs:408,1
    - Dst: unwrap
      Src: /src/image/src/codecs/png.rs:408,1
    - Dst: clone_from
      Src: /src/image/src/codecs/png.rs:414,1
    - Dst: clone_from
      Src: /src/image/src/codecs/png.rs:417,1
    - Dst: sub_image
      Src: /src/image/src/codecs/png.rs:419,1
    - Dst: pixels
      Src: /src/image/src/codecs/png.rs:422,1
    - Dst: collect
      Src: /src/image/src/codecs/png.rs:422,1
    - Dst: put_pixel
      Src: /src/image/src/codecs/png.rs:425,1
    - Dst: Rgba::from
      Src: /src/image/src/codecs/png.rs:425,1
    - Dst: pixels_mut
      Src: /src/image/src/codecs/png.rs:429,1
    - Dst: for_each
      Src: /src/image/src/codecs/png.rs:429,1
    - Dst: Rgba::from
      Src: /src/image/src/codecs/png.rs:430,1
    - Dst: expect
      Src: /src/image/src/codecs/png.rs:435,1
    - Dst: sub_image
      Src: /src/image/src/codecs/png.rs:438,1
    - Dst: copy_from
      Src: /src/image/src/codecs/png.rs:439,1
    - Dst: to_image
      Src: /src/image/src/codecs/png.rs:440,1
    - Dst: unwrap
      Src: /src/image/src/codecs/png.rs:439,1
    - Dst: clone
      Src: /src/image/src/codecs/png.rs:448,1
    - Dst: output_buffer_size
      Src: /src/image/src/codecs/png.rs:451,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/png.rs:451,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/png.rs:452,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/png.rs:452,1
    - Dst: Limits::reserve_usize
      Src: /src/image/src/codecs/png.rs:455,1
    - Dst: next_frame
      Src: /src/image/src/codecs/png.rs:459,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:459,1
    - Dst: info
      Src: /src/image/src/codecs/png.rs:463,1
    - Dst: ImageResult::frame_control
      Src: /src/image/src/codecs/png.rs:467,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:485,1
    - Dst: Limits::reserve_buffer
      Src: /src/image/src/codecs/png.rs:493,1
    - Dst: ImageBuffer::<Luma<_>, _>::from_raw
      Src: /src/image/src/codecs/png.rs:496,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/png.rs:496,1
    - Dst: DynamicImage::ImageLuma8
      Src: /src/image/src/codecs/png.rs:497,1
    - Dst: into_rgba8
      Src: /src/image/src/codecs/png.rs:497,1
    - Dst: ImageBuffer::<LumaA<_>, _>::from_raw
      Src: /src/image/src/codecs/png.rs:500,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/png.rs:500,1
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/src/codecs/png.rs:501,1
    - Dst: into_rgba8
      Src: /src/image/src/codecs/png.rs:501,1
    - Dst: ImageBuffer::<Rgb<_>, _>::from_raw
      Src: /src/image/src/codecs/png.rs:504,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/png.rs:504,1
    - Dst: DynamicImage::ImageRgb8
      Src: /src/image/src/codecs/png.rs:505,1
    - Dst: into_rgba8
      Src: /src/image/src/codecs/png.rs:505,1
    - Dst: ImageBuffer::<Rgba<_>, _>::from_raw
      Src: /src/image/src/codecs/png.rs:507,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/png.rs:507,1
    - Dst: Limits::free_usize
      Src: /src/image/src/codecs/png.rs:515,1
    - Dst: copy_from
      Src: /src/image/src/codecs/png.rs:519,1
    - Dst: expect
      Src: /src/image/src/codecs/png.rs:519,1
    - Dst: Option::enumerate_pixels
      Src: /src/image/src/codecs/png.rs:525,1
    - Dst: get_pixel_mut
      Src: /src/image/src/codecs/png.rs:526,1
    - Dst: blend
      Src: /src/image/src/codecs/png.rs:526,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:535,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:535,1
    - Dst: as_ref
      Src: /src/image/src/codecs/png.rs:535,1
    - Dst: unwrap
      Src: /src/image/src/codecs/png.rs:535,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 280
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 536
      start: 355
    functionDepth: 12
    functionLinenumber: 355
    functionLinenumberEnd: 536
    functionName: ApngDecoder::mix_next_frame
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::<LumaA<_>, _>::from_raw
    - to_image
    - collect
    - is_none
    - Some
    - Limits::reserve_buffer
    - checked_sub
    - LimitError::from_kind
    - expect
    - unwrap
    - info
    - RgbaImage::new
    - ok_or_else
    - clone
    - put_pixel
    - get_pixel_mut
    - Rgba::from
    - clone_from
    - output_buffer_size
    - copy_from
    - ImageResult::frame_control
    - ImageBuffer::<Luma<_>, _>::from_raw
    - ImageBuffer::<Rgba<_>, _>::from_raw
    - next_frame
    - blend
    - for_each
    - as_ref
    - Limits::free_usize
    - Limits::reserve_usize
    - ImageError::Limits
    - DynamicImage::ImageLuma8
    - pixels
    - as_mut
    - dimensions
    - ApngDecoder::animatable_color_type
    - ImageBuffer::<Rgb<_>, _>::from_raw
    - Ok
    - sub_image
    - ImageResult::unwrap
    - Option::enumerate_pixels
    - into_rgba8
    - map_err
    - pixels_mut
    - DynamicImage::ImageLumaA8
    - DynamicImage::ImageRgb8
    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:540,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:543,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:543,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 547
      start: 538
    functionDepth: 13
    functionLinenumber: 538
    functionLinenumberEnd: 547
    functionName: ApngDecoder::animatable_color_type
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - unsupported_color
    - into
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: fn animatable_color_type(&self) -> Result<(), ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: info
      Src: /src/image/src/codecs/png.rs:552,1
    - Dst: animation_control
      Src: /src/image/src/codecs/png.rs:552,1
    - Dst: NonZeroU32::new
      Src: /src/image/src/codecs/png.rs:554,1
    - Dst: LoopCount::Finite
      Src: /src/image/src/codecs/png.rs:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 551
    functionDepth: 16
    functionLinenumber: 551
    functionLinenumberEnd: 559
    functionName: ApngDecoder::loop_count
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - animation_control
    - LoopCount::Finite
    - NonZeroU32::new
    - info
    linkageType: ''
    returnType: LoopCount
    signature: fn loop_count(&self) -> LoopCount
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Frames::new
      Src: /src/image/src/codecs/png.rs:588,1
    - Dst: Box::new
      Src: /src/image/src/codecs/png.rs:588,1
    - Dst: FrameIterator
      Src: /src/image/src/codecs/png.rs:588,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 589
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 589
    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:648,1
    - Dst: FilterType::default
      Src: /src/image/src/codecs/png.rs:649,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/png.rs:650,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/png.rs:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 653
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 653
    functionName: PngEncoder::new
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 2
    functionsReached:
    - FilterType::default
    - CompressionType::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:676,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/png.rs:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - w
    - compression
    - filter
    argTypes:
    - W
    - CompressionType
    - FilterType
    constantsTouched: []
    func_position:
      end: 679
      start: 667
    functionDepth: 2
    functionLinenumber: 667
    functionLinenumberEnd: 679
    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:698,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/png.rs:698,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/png.rs:699,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:700,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/png.rs:701,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:719,1
    - Dst: DeflateCompression::Level
      Src: /src/image/src/codecs/png.rs:719,1
    - Dst: png::Info::with_size
      Src: /src/image/src/codecs/png.rs:732,1
    - Dst: is_empty
      Src: /src/image/src/codecs/png.rs:734,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:735,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/png.rs:735,1
    - Dst: is_empty
      Src: /src/image/src/codecs/png.rs:737,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:738,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/png.rs:738,1
    - Dst: png::Encoder::with_info
      Src: /src/image/src/codecs/png.rs:742,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:742,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/png.rs:742,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:742,1
    - Dst: ImageResult::set_color
      Src: /src/image/src/codecs/png.rs:744,1
    - Dst: ImageResult::set_depth
      Src: /src/image/src/codecs/png.rs:745,1
    - Dst: ImageResult::set_compression
      Src: /src/image/src/codecs/png.rs:746,1
    - Dst: ImageResult::set_deflate_compression
      Src: /src/image/src/codecs/png.rs:748,1
    - Dst: ImageResult::set_filter
      Src: /src/image/src/codecs/png.rs:750,1
    - Dst: ImageResult::write_header
      Src: /src/image/src/codecs/png.rs:751,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/png.rs:751,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/png.rs:753,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:753,1
    - Dst: write_image_data
      Src: /src/image/src/codecs/png.rs:754,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:754,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/png.rs:756,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:756,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 94
    argCount: 4
    argNames:
    - data
    - width
    - height
    - color
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 757
      start: 681
    functionDepth: 12
    functionLinenumber: 681
    functionLinenumberEnd: 757
    functionName: PngEncoder::encode_inner
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - Cow::Borrowed
    - ImageResult::set_compression
    - write_image_data
    - Some
    - DeflateCompression::Level
    - is_empty
    - ImageResult::set_filter
    - png::Encoder::with_info
    - ImageResult::write_header
    - ImageResult::set_color
    - ImageResult::map_err
    - ImageResult::set_deflate_compression
    - UnsupportedErrorKind::Color
    - into
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - map_err
    - Err
    - png::Info::with_size
    - ImageResult::set_depth
    - ImageError::IoError
    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:776,1
    - Dst: PngEncoder::encode_inner
      Src: /src/image/src/codecs/png.rs:791,1
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/codecs/png.rs:799,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/png.rs:799,1
    - Dst: extend
      Src: /src/image/src/codecs/png.rs:800,1
    - Dst: as_chunks::<2>
      Src: /src/image/src/codecs/png.rs:800,1
    - Dst: iter
      Src: /src/image/src/codecs/png.rs:800,1
    - Dst: flat_map
      Src: /src/image/src/codecs/png.rs:800,1
    - Dst: PngEncoder::encode_inner
      Src: /src/image/src/codecs/png.rs:805,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:807,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/png.rs:807,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/png.rs:808,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:809,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/png.rs:810,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 814
      start: 767
    functionDepth: 16
    functionLinenumber: 767
    functionLinenumberEnd: 814
    functionName: PngEncoder::write_image
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - UnsupportedErrorKind::Color
    - PngEncoder::encode_inner
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Option::buffer_size
    - Err
    - std::io::Result::len
    - iter
    - extend
    - into
    - as_chunks::<2>
    - utils::vec_try_with_capacity
    - flat_map
    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:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - icc_profile
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 819
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 819
    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:823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - exif
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 824
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 824
    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:831,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/png.rs:834,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/png.rs:834,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:834,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/png.rs:840,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/png.rs:840,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/png.rs:841,1
    - Dst: ImageError::to_string
      Src: /src/image/src/codecs/png.rs:841,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/png.rs:844,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/png.rs:844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - err
    argTypes:
    - png::DecodingError
    constantsTouched: []
    func_position:
      end: 847
      start: 828
    functionDepth: 13
    functionLinenumber: 828
    functionLinenumberEnd: 847
    functionName: ImageError::from_png
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - ImageError::to_string
    - ParameterErrorKind::Generic
    - ImageError::Limits
    - ImageError::Decoding
    - LimitError::from_kind
    - ImageError::Parameter
    - ParameterError::from_kind
    - into
    - DecodingError::new
    - ImageError::IoError
    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:858,1
    - Dst: BufReader::new
      Src: /src/image/src/codecs/png.rs:858,1
    - Dst: std::fs::File::open
      Src: /src/image/src/codecs/png.rs:859,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/png.rs:859,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/png.rs:858,1
    - Dst: decoder_to_vec
      Src: /src/image/src/codecs/png.rs:872,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/png.rs:872,1
    - Dst: bytes
      Src: /src/image/src/codecs/png.rs:872,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:872,1
    - Dst: expect
      Src: /src/image/src/codecs/png.rs:875,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:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 879
      start: 857
    functionDepth: 15
    functionLinenumber: 857
    functionLinenumberEnd: 879
    functionName: tests::ensure_no_decoder_off_by_one
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - map
    - BufReader::new
    - bytes
    - ImageResult::expect
    - decoder_to_vec
    - expect
    - PngDecoder::new
    - "expect(\"Unable to read file\")\n            .bytes()\n            .map(|x|\
      \ x.expect(\"Unable to read byte\"))\n            .collect::<Vec<u8>>"
    - std::fs::File::open
    - io::Result::unwrap
    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:886,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/src/codecs/png.rs:886,1
    - Dst: PngDecoder::new
      Src: /src/image/src/codecs/png.rs:890,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/png.rs:890,1
    - Dst: ImageResult::err
      Src: /src/image/src/codecs/png.rs:890,1
    - Dst: ImageError::unwrap
      Src: /src/image/src/codecs/png.rs:890,1
    - Dst: source
      Src: /src/image/src/codecs/png.rs:891,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/png.rs:891,1
    - Dst: "source()\n            .unwrap()\n            .downcast_ref::<png::DecodingError>"
      Src: /src/image/src/codecs/png.rs:891,1
    - Dst: expect
      Src: /src/image/src/codecs/png.rs:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 896
      start: 882
    functionDepth: 15
    functionLinenumber: 882
    functionLinenumberEnd: 896
    functionName: tests::underlying_error
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::unwrap
    - std::fs::read
    - Cursor::new
    - ImageError::unwrap
    - "source()\n            .unwrap()\n            .downcast_ref::<png::DecodingError>"
    - Option::unwrap
    - expect
    - source
    - PngDecoder::new
    - ImageResult::err
    linkageType: ''
    returnType: void
    signature: fn underlying_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::new_rgb32f
      Src: /src/image/src/codecs/png.rs:901,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/png.rs:902,1
    - Dst: Vec::write_to
      Src: /src/image/src/codecs/png.rs:903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 904
      start: 899
    functionDepth: 3
    functionLinenumber: 899
    functionLinenumberEnd: 904
    functionName: tests::encode_bad_color_type
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - DynamicImage::new_rgb32f
    - Vec::write_to
    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:
    - std::io::Result::map_err
    - find_index_of_channel
    - position
    - headers
    - Text::from
    - all
    - is_some
    - ImageFormatHint::Exact
    - DecodingError::new
    - exr::block::read
    - iter
    - ImageError::Decoding
    - Ok
    - ok_or_else
    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::width
    - OpenExrDecoder::selected_exr_header
    - u64::height
    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:
    - rgba_channels
    - to_i32
    - all_attributes
    - from_chunks
    - bytemuck::cast_slice
    - ColorType::bytes_per_pixel
    - y
    - read
    - '&mut [u8]::copy_from_slice'
    - unwrap
    - OpenExrDecoder::selected_exr_header
    - OpenExrDecoder::dimensions
    - x
    - as_slice
    - u64::checked_mul
    - largest_resolution_level
    - std::io::Result::no_deep_data
    - ColorType::channel_count
    - checked_mul
    - '&mut [u8]::len'
    - first_valid_layer
    - unwrap_or
    - Ok
    - and_then
    - map
    - to_usize
    - map_err
    - copy_from_slice
    - width
    - flat_index_for_size
    - OpenExrDecoder::color_type
    - height
    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:
    - UnsupportedErrorKind::Color
    - Option::bits_per_pixel
    - write
    - SpecificChannels::rgba
    - ImageError::Unsupported
    - UnsupportedError::from_format_and_kind
    - map_err
    - Err
    - u8::flat_index_for_size
    - SpecificChannels::rgb
    - to_buffered
    - "Image // TODO compression method zip??\n                ::from_channels"
    - bytemuck::pod_read_unaligned
    - into
    - Ok
    - Vec2
    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: 16
    functionLinenumber: 309
    functionLinenumberEnd: 325
    functionName: OpenExrEncoder::write_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - write_buffer
    - Option::buffer_size
    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
    - ImageFormatHint::Exact
    - DecodingError::new
    - Error::to_string
    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::as_raw
    - bytemuck::cast_slice
    - Vec::height
    - write_buffer
    - '&Container::as_slice'
    - Vec::width
    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::as_raw
    - bytemuck::cast_slice
    - Vec::height
    - write_buffer
    - '&Container::as_slice'
    - Vec::width
    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:
    - read_as_rgba_image
    - File::open
    - 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:
    - read_as_rgb_image
    - File::open
    - BufReader::new
    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:
    - OpenExrDecoder::with_alpha_preference
    - Some
    - ImageBuffer::from_raw
    - decoder_to_vec
    - ImageError::Limits
    - LimitError::from_kind
    - ImageResult::dimensions
    - Option::ok_or_else
    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:
    - OpenExrDecoder::with_alpha_preference
    - Some
    - ImageBuffer::from_raw
    - decoder_to_vec
    - ImageError::Limits
    - LimitError::from_kind
    - ImageResult::dimensions
    - Option::ok_or_else
    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: ImageResult::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:
    - read_as_rgb_image_from_file
    - ImageResult::unwrap
    - BufReader::new
    - DynamicImage::from_decoder
    - pixels
    - ImageResult::zip
    - File::open
    - iter
    - HdrDecoder::new
    - iter().collect::<PathBuf>
    - zip
    - join
    - io::Result::unwrap
    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:
    - ImageResult::unwrap
    - into_iter
    - Rgba
    - write_rgba_image
    - Cursor::new
    - cycle
    - next_random
    - next
    - unwrap
    - read_as_rgba_image
    - ImageBuffer::from_fn
    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:
    - read_as_rgb_image
    - ImageResult::unwrap
    - into_iter
    - Cursor::new
    - cycle
    - next_random
    - next
    - unwrap
    - Rgb
    - ImageBuffer::from_fn
    - write_rgb_image
    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: ImageResult::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:
    - read_as_rgb_image_from_file
    - read_as_rgba_image_from_file
    - ImageResult::unwrap
    - "iter()\n            .collect::<PathBuf>"
    - pixels
    - ImageResult::zip
    - iter
    - join
    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:
    - read_as_rgba_image_from_file
    - ImageResult::unwrap
    - read_first_flat_layer_from_file
    - unwrap
    - iter
    - iter().collect::<PathBuf>
    - join
    linkageType: ''
    returnType: void
    signature: fn compare_cropped()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: qoi::Decoder::from_stream
      Src: /src/image/src/codecs/qoi.rs:20,1
    - Dst: map_err
      Src: /src/image/src/codecs/qoi.rs:20,1
    - Dst: Ok
      Src: /src/image/src/codecs/qoi.rs:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 22
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 22
    functionName: QoiDecoder::new
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 2
    functionsReached:
    - Ok
    - qoi::Decoder::from_stream
    - map_err
    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: 14
    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: 14
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: QoiDecoder::color_type
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - header
    linkageType: ''
    returnType: ColorType
    signature: fn color_type(&self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: decode_to_buf
      Src: /src/image/src/codecs/qoi.rs:38,1
    - Dst: map_err
      Src: /src/image/src/codecs/qoi.rs:38,1
    - Dst: Ok
      Src: /src/image/src/codecs/qoi.rs:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: QoiDecoder::read_image
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Ok
    - decode_to_buf
    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:
    - into
    - ImageError::Decoding
    - 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:
    - into
    - ImageError::Encoding
    - EncodingError::new
    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:
    - UnsupportedErrorKind::Color
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Option::buffer_size
    - map_err
    - Err
    - write_all
    - flush
    - qoi::encode_to_vec
    - into
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(mut self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QoiDecoder::new
      Src: /src/image/src/codecs/qoi.rs: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
    - ImageResult::expect
    - QoiDecoder::new
    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:
    - UnsupportedErrorKind::Color
    - Option::bits_per_pixel
    - map
    - ImageError::Unsupported
    - UnsupportedError::from_format_and_kind
    - Err
    - HdrEncoder::encode_pixels
    - '&[u8]::chunks_exact'
    - Rgb::<f32>
    - bytemuck::pod_read_unaligned
    - into
    - to_rgbe8
    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:
    - iter
    - to_rgbe8
    - 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:
    - Self::write_all
    - Ok
    - write_rgbe8
    - contains
    - rle_compress
    - iter_mut
    - as_bytes
    - codecs::hdr::rgbe8
    - zip
    - clear
    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:
    - take
    - self::RunOrNot::Run
    - self::RunOrNot::Norun
    - Some
    - len
    - take_while
    - iter
    - count
    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:
    - take
    - self::RunOrNot::Run
    - cmp
    - self::RunOrNot::Norun
    - Some
    - next
    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::push
    - ImageResult::clear
    - ImageResult::extend_from_slice
    - NorunCombineIterator::new
    - 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:
    - f32::max
    - f32::trunc
    - floor
    - f32::powi
    - iter_mut
    - log2
    - Rgb<f32>::iter
    - zip
    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:
    - f32::max
    - chain
    - abs
    - iter
    - zip
    - fold
    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:
    - Rgbe8Pixel::to_hdr
    - codecs::hdr::rgbe8
    - relative_dist
    - to_rgbe8
    - 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: 20
    functionLinenumber: 418
    functionLinenumberEnd: 480
    functionName: noruncombine_test
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - take
    - std::iter::repeat
    - collect
    - ImageResult::flat_map
    - a
    - NorunCombineIterator::new
    linkageType: ''
    returnType: void
    signature: fn noruncombine_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:48,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:50,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:52,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:56,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:58,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:60,1
    - Dst: Result::write_fmt
      Src: /src/image/src/codecs/ico/decoder.rs:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 70
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 70
    functionName: DecoderError::fmt
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - Result::write_fmt
    - Result::write_str
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 170
    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:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 123
    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: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    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: f32::from_bits
      Src: /src/image/src/codecs/hdr/decoder.rs:172,1
    - Dst: Rgb
      Src: /src/image/src/codecs/hdr/decoder.rs:178,1
    - Dst: <f32 as From<_>>::from
      Src: /src/image/src/codecs/hdr/decoder.rs:179,1
    - Dst: <f32 as From<_>>::from
      Src: /src/image/src/codecs/hdr/decoder.rs:180,1
    - Dst: <f32 as From<_>>::from
      Src: /src/image/src/codecs/hdr/decoder.rs:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 183
    functionName: Rgbe8Pixel::to_hdr
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - Rgb
    - f32::from_bits
    - <f32 as From<_>>::from
    linkageType: ''
    returnType: Rgb
    signature: pub(crate) fn to_hdr(self) -> Rgb<f32>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HdrDecoder::with_strictness
      Src: /src/image/src/codecs/hdr/decoder.rs:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 13
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: HdrDecoder::new
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    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:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 13
    functionLinenumber: 196
    functionLinenumberEnd: 198
    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: Self::with_strictness
      Src: /src/image/src/codecs/hdr/decoder.rs:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - reader
    - spec
    argTypes:
    - R
    - SpecCompliance
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 13
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: HdrDecoder::new_with_spec_compliance
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - Self::with_strictness
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn new_with_spec_compliance(reader: R, spec: SpecCompliance)
      -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HdrMetadata::new
      Src: /src/image/src/codecs/hdr/decoder.rs:213,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/hdr/decoder.rs:227,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:229,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:229,1
    - Dst: read_line_u8
      Src: /src/image/src/codecs/hdr/decoder.rs:232,1
    - Dst: read_line_u8
      Src: /src/image/src/codecs/hdr/decoder.rs:239,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:242,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:242,1
    - Dst: MAX_HEADER_LENGTH::saturating_sub
      Src: /src/image/src/codecs/hdr/decoder.rs:245,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/hdr/decoder.rs:245,1
    - Dst: std::io::Result::is_empty
      Src: /src/image/src/codecs/hdr/decoder.rs:247,1
    - Dst: String::from_utf8_lossy
      Src: /src/image/src/codecs/hdr/decoder.rs:256,1
    - Dst: HdrMetadata::update_header_info
      Src: /src/image/src/codecs/hdr/decoder.rs:257,1
    - Dst: read_line_u8
      Src: /src/image/src/codecs/hdr/decoder.rs:263,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:266,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:266,1
    - Dst: String::from_utf8_lossy
      Src: /src/image/src/codecs/hdr/decoder.rs:269,1
    - Dst: parse_dimensions_line
      Src: /src/image/src/codecs/hdr/decoder.rs:270,1
    - Dst: crate::utils::check_dimension_overflow
      Src: /src/image/src/codecs/hdr/decoder.rs:275,1
    - Dst: bytes_per_pixel
      Src: /src/image/src/codecs/hdr/decoder.rs:275,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:277,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/hdr/decoder.rs:277,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/hdr/decoder.rs:278,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:279,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/hdr/decoder.rs:280,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:287,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 92
    argCount: 2
    argNames:
    - reader
    - strict
    argTypes:
    - R
    - bool
    constantsTouched: []
    func_position:
      end: 296
      start: 212
    functionDepth: 12
    functionLinenumber: 212
    functionLinenumberEnd: 296
    functionName: HdrDecoder::with_strictness
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::read_exact
    - MAX_HEADER_LENGTH::saturating_sub
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Ok
    - parse_dimensions_line
    - HdrMetadata::update_header_info
    - bytes_per_pixel
    - Err
    - std::io::Result::is_empty
    - String::from_utf8_lossy
    - std::io::Result::len
    - crate::utils::check_dimension_overflow
    - UnsupportedErrorKind::GenericFeature
    - read_line_u8
    - into
    - HdrMetadata::new
    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:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 301
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 301
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    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: 311
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 311
    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: Limits::check_support
      Src: /src/image/src/codecs/hdr/decoder.rs:314,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/hdr/decoder.rs:314,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/codecs/hdr/decoder.rs:315,1
    - Dst: size_of::<Rgbe8Pixel>
      Src: /src/image/src/codecs/hdr/decoder.rs:317,1
    - Dst: Limits::reserve
      Src: /src/image/src/codecs/hdr/decoder.rs:318,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - limits
    argTypes:
    - Limits
    constantsTouched: []
    func_position:
      end: 320
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 320
    functionName: HdrDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - crate::LimitSupport::default
    - Limits::reserve
    - Limits::check_support
    - Limits::check_dimensions
    - size_of::<Rgbe8Pixel>
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, mut limits: Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:327,1
    - Dst: std::io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/hdr/decoder.rs:335,1
    - Dst: read_scanline
      Src: /src/image/src/codecs/hdr/decoder.rs:339,1
    - Dst: as_chunks_mut::<PIXEL_SIZE>
      Src: /src/image/src/codecs/hdr/decoder.rs:340,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/hdr/decoder.rs:340,1
    - Dst: zip
      Src: /src/image/src/codecs/hdr/decoder.rs:341,1
    - Dst: ImageResult::iter
      Src: /src/image/src/codecs/hdr/decoder.rs:341,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/hdr/decoder.rs:342,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/hdr/decoder.rs:342,1
    - Dst: to_hdr
      Src: /src/image/src/codecs/hdr/decoder.rs:342,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:346,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 52
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 347
      start: 322
    functionDepth: 14
    functionLinenumber: 322
    functionLinenumberEnd: 347
    functionName: HdrDecoder::read_image
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - as_chunks_mut::<PIXEL_SIZE>
    - ImageResult::iter
    - bytemuck::cast_slice
    - read_scanline
    - zip
    - copy_from_slice
    - to_hdr
    - std::io::Result::chunks_exact_mut
    - iter_mut
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/hdr/decoder.rs:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 351
    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:357,1
    - Dst: read_rgbe
      Src: /src/image/src/codecs/hdr/decoder.rs:359,1
    - Dst: decode_component
      Src: /src/image/src/codecs/hdr/decoder.rs:364,1
    - Dst: decode_component
      Src: /src/image/src/codecs/hdr/decoder.rs:365,1
    - Dst: decode_component
      Src: /src/image/src/codecs/hdr/decoder.rs:366,1
    - Dst: decode_component
      Src: /src/image/src/codecs/hdr/decoder.rs:367,1
    - Dst: decode_old_rle
      Src: /src/image/src/codecs/hdr/decoder.rs:370,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:372,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 2
    argNames:
    - r
    - buf
    argTypes:
    - '&mut R'
    - '&mut [Rgbe8Pixel]'
    constantsTouched: []
    func_position:
      end: 373
      start: 355
    functionDepth: 13
    functionLinenumber: 355
    functionLinenumberEnd: 373
    functionName: read_scanline
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - decode_component
    - std::io::Result::len
    - read_rgbe
    - Ok
    - decode_old_rle
    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:378,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut R'
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: read_byte
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 2
    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:394,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:398,1
    - Dst: DecoderError::WrongScanlineLength
      Src: /src/image/src/codecs/hdr/decoder.rs:398,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:398,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/hdr/decoder.rs:401,1
    - Dst: iter
      Src: /src/image/src/codecs/hdr/decoder.rs:402,1
    - Dst: enumerate
      Src: /src/image/src/codecs/hdr/decoder.rs:402,1
    - Dst: set_component
      Src: /src/image/src/codecs/hdr/decoder.rs:403,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:411,1
    - Dst: DecoderError::WrongScanlineLength
      Src: /src/image/src/codecs/hdr/decoder.rs:411,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:411,1
    - Dst: read_byte
      Src: /src/image/src/codecs/hdr/decoder.rs:414,1
    - Dst: set_component
      Src: /src/image/src/codecs/hdr/decoder.rs:416,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:423,1
    - Dst: DecoderError::WrongScanlineLength
      Src: /src/image/src/codecs/hdr/decoder.rs:423,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:423,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:425,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 79
    argCount: 3
    argNames:
    - r
    - width
    - set_component
    argTypes:
    - '&mut R'
    - usize
    - S
    constantsTouched: []
    func_position:
      end: 426
      start: 384
    functionDepth: 12
    functionLinenumber: 384
    functionLinenumberEnd: 426
    functionName: decode_component
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::read_exact
    - Ok
    - Err
    - iter
    - DecoderError::WrongScanlineLength
    - enumerate
    - into
    - set_component
    - read_byte
    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:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pix
    argTypes:
    - Rgbe8Pixel
    constantsTouched: []
    func_position:
      end: 443
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 443
    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:433,1
    - Dst: rl_marker
      Src: /src/image/src/codecs/hdr/decoder.rs:446,1
    - Dst: Option::is_some
      Src: /src/image/src/codecs/hdr/decoder.rs:446,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:447,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:447,1
    - Dst: read_rgbe
      Src: /src/image/src/codecs/hdr/decoder.rs:455,1
    - Dst: rl_marker
      Src: /src/image/src/codecs/hdr/decoder.rs:458,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:462,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:462,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:476,1
    - Dst: DecoderError::WrongScanlineLength
      Src: /src/image/src/codecs/hdr/decoder.rs:476,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:476,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:489,1
    - Dst: DecoderError::WrongScanlineLength
      Src: /src/image/src/codecs/hdr/decoder.rs:489,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:489,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:491,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 84
    argCount: 3
    argNames:
    - r
    - fb
    - buf
    argTypes:
    - '&mut R'
    - Rgbe8Pixel
    - '&mut [Rgbe8Pixel]'
    constantsTouched: []
    func_position:
      end: 492
      start: 431
    functionDepth: 12
    functionLinenumber: 431
    functionLinenumberEnd: 492
    functionName: decode_old_rle
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - rl_marker
    - std::io::Result::len
    - DecoderError::WrongScanlineLength
    - Option::is_some
    - read_rgbe
    - into
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn decode_old_rle<R: Read>(r: &mut R, fb: Rgbe8Pixel, buf: &mut [Rgbe8Pixel])
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/hdr/decoder.rs:496,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut R'
    constantsTouched: []
    func_position:
      end: 501
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 501
    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: 544
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 544
    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:551,1
    - Dst: Option::map
      Src: /src/image/src/codecs/hdr/decoder.rs:551,1
    - Dst: trim
      Src: /src/image/src/codecs/hdr/decoder.rs:551,1
    - Dst: push
      Src: /src/image/src/codecs/hdr/decoder.rs:554,1
    - Dst: to_owned
      Src: /src/image/src/codecs/hdr/decoder.rs:556,1
    - Dst: S::Larger::to_owned
      Src: /src/image/src/codecs/hdr/decoder.rs:556,1
    - Dst: push
      Src: /src/image/src/codecs/hdr/decoder.rs:557,1
    - Dst: String::new
      Src: /src/image/src/codecs/hdr/decoder.rs:559,1
    - Dst: std::io::Result::to_owned
      Src: /src/image/src/codecs/hdr/decoder.rs:559,1
    - Dst: S::Larger::trim
      Src: /src/image/src/codecs/hdr/decoder.rs:565,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:567,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/hdr/decoder.rs:567,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/hdr/decoder.rs:568,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:569,1
    - Dst: UnsupportedErrorKind::Format
      Src: /src/image/src/codecs/hdr/decoder.rs:570,1
    - Dst: ImageFormatHint::Name
      Src: /src/image/src/codecs/hdr/decoder.rs:570,1
    - Dst: limit_string_len
      Src: /src/image/src/codecs/hdr/decoder.rs:570,1
    - Dst: S::Larger::trim
      Src: /src/image/src/codecs/hdr/decoder.rs:578,1
    - Dst: trim().parse::<f32>
      Src: /src/image/src/codecs/hdr/decoder.rs:578,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/decoder.rs:580,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/hdr/decoder.rs:580,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:584,1
    - Dst: DecoderError::UnparsableF32
      Src: /src/image/src/codecs/hdr/decoder.rs:584,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:584,1
    - Dst: S::Larger::trim
      Src: /src/image/src/codecs/hdr/decoder.rs:594,1
    - Dst: trim().parse::<f32>
      Src: /src/image/src/codecs/hdr/decoder.rs:594,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/decoder.rs:596,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/hdr/decoder.rs:596,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:601,1
    - Dst: DecoderError::UnparsableF32
      Src: /src/image/src/codecs/hdr/decoder.rs:601,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:601,1
    - Dst: parse_space_separated_f32
      Src: /src/image/src/codecs/hdr/decoder.rs:612,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:615,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:615,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/hdr/decoder.rs:617,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/decoder.rs:619,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:623,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:636,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 120
    argCount: 2
    argNames:
    - line
    - strict
    argTypes:
    - '&str'
    - bool
    constantsTouched: []
    func_position:
      end: 637
      start: 548
    functionDepth: 15
    functionLinenumber: 548
    functionLinenumberEnd: 637
    functionName: HdrMetadata::update_header_info
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - Some
    - to_owned
    - parse_space_separated_f32
    - UnsupportedErrorKind::Format
    - push
    - limit_string_len
    - S::Larger::to_owned
    - DecoderError::UnparsableF32
    - S::Larger::trim
    - ImageFormatHint::Name
    - trim().parse::<f32>
    - String::new
    - into
    - std::io::Result::to_owned
    - trim
    - unwrap_or
    - Ok
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Err
    - Option::map
    - split_at_first
    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:641,1
    - Dst: '&mut [f32]::iter_mut'
      Src: /src/image/src/codecs/hdr/decoder.rs:642,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:643,1
    - Dst: parse::<f32>
      Src: /src/image/src/codecs/hdr/decoder.rs:644,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:646,1
    - Dst: DecoderError::UnparsableF32
      Src: /src/image/src/codecs/hdr/decoder.rs:646,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:646,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:650,1
    - Dst: DecoderError::LineTooShort
      Src: /src/image/src/codecs/hdr/decoder.rs:650,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:650,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:653,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:653,1
    - Dst: is_some
      Src: /src/image/src/codecs/hdr/decoder.rs:653,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 3
    argNames:
    - line
    - vals
    - line_tp
    argTypes:
    - '&str'
    - '&mut [f32]'
    - LineType
    constantsTouched: []
    func_position:
      end: 654
      start: 640
    functionDepth: 12
    functionLinenumber: 640
    functionLinenumberEnd: 654
    functionName: parse_space_separated_f32
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - '&mut [f32]::iter_mut'
    - std::io::Result::split_whitespace
    - DecoderError::LineTooShort
    - Err
    - is_some
    - next
    - into
    - DecoderError::UnparsableF32
    - Ok
    - parse::<f32>
    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:661,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:662,1
    - Dst: ok_or
      Src: /src/image/src/codecs/hdr/decoder.rs:662,1
    - Dst: DecoderError::DimensionsLineTooShort
      Src: /src/image/src/codecs/hdr/decoder.rs:664,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:665,1
    - Dst: ok_or
      Src: /src/image/src/codecs/hdr/decoder.rs:665,1
    - Dst: DecoderError::DimensionsLineTooShort
      Src: /src/image/src/codecs/hdr/decoder.rs:667,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:668,1
    - Dst: ok_or
      Src: /src/image/src/codecs/hdr/decoder.rs:668,1
    - Dst: DecoderError::DimensionsLineTooShort
      Src: /src/image/src/codecs/hdr/decoder.rs:670,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:671,1
    - Dst: ok_or
      Src: /src/image/src/codecs/hdr/decoder.rs:671,1
    - Dst: DecoderError::DimensionsLineTooShort
      Src: /src/image/src/codecs/hdr/decoder.rs:673,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:674,1
    - Dst: is_some
      Src: /src/image/src/codecs/hdr/decoder.rs:674,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:676,1
    - Dst: DecoderError::DimensionsLineTooLong
      Src: /src/image/src/codecs/hdr/decoder.rs:676,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:676,1
    - Dst: parse::<u32>
      Src: /src/image/src/codecs/hdr/decoder.rs:684,1
    - Dst: map_err
      Src: /src/image/src/codecs/hdr/decoder.rs:684,1
    - Dst: DecoderError::UnparsableU32
      Src: /src/image/src/codecs/hdr/decoder.rs:686,1
    - Dst: parse::<u32>
      Src: /src/image/src/codecs/hdr/decoder.rs:687,1
    - Dst: map_err
      Src: /src/image/src/codecs/hdr/decoder.rs:687,1
    - Dst: DecoderError::UnparsableU32
      Src: /src/image/src/codecs/hdr/decoder.rs:689,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:690,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:692,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/hdr/decoder.rs:692,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/hdr/decoder.rs:693,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:694,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/hdr/decoder.rs:695,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 64
    argCount: 2
    argNames:
    - line
    - strict
    argTypes:
    - '&str'
    - bool
    constantsTouched: []
    func_position:
      end: 703
      start: 658
    functionDepth: 12
    functionLinenumber: 658
    functionLinenumberEnd: 703
    functionName: parse_dimensions_line
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - DecoderError::UnparsableU32
    - UnsupportedError::from_format_and_kind
    - std::io::Result::split_whitespace
    - DecoderError::DimensionsLineTooLong
    - ImageError::Unsupported
    - map_err
    - Err
    - UnsupportedErrorKind::GenericFeature
    - ok_or
    - is_some
    - next
    - DecoderError::DimensionsLineTooShort
    - into
    - Ok
    - parse::<u32>
    linkageType: ''
    returnType: ImageResult
    signature: 'fn parse_dimensions_line(line: &str, strict: bool) -> ImageResult<(u32,
      u32)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::chars
      Src: /src/image/src/codecs/hdr/decoder.rs:707,1
    - Dst: count
      Src: /src/image/src/codecs/hdr/decoder.rs:707,1
    - Dst: Result::chars
      Src: /src/image/src/codecs/hdr/decoder.rs:709,1
    - Dst: take
      Src: /src/image/src/codecs/hdr/decoder.rs:709,1
    - Dst: chain
      Src: /src/image/src/codecs/hdr/decoder.rs:709,1
    - Dst: '&str::chars'
      Src: /src/image/src/codecs/hdr/decoder.rs:709,1
    - Dst: collect
      Src: /src/image/src/codecs/hdr/decoder.rs:709,1
    - Dst: Result::into
      Src: /src/image/src/codecs/hdr/decoder.rs:711,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - '&str'
    - usize
    constantsTouched: []
    func_position:
      end: 713
      start: 706
    functionDepth: 13
    functionLinenumber: 706
    functionLinenumberEnd: 713
    functionName: limit_string_len
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - take
    - Result::into
    - '&str::chars'
    - chain
    - collect
    - Result::chars
    - count
    linkageType: ''
    returnType: String
    signature: 'fn limit_string_len(s: &str, len: usize) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::find
      Src: /src/image/src/codecs/hdr/decoder.rs:718,1
    - Dst: Result::len
      Src: /src/image/src/codecs/hdr/decoder.rs:720,1
    - Dst: '&str::len'
      Src: /src/image/src/codecs/hdr/decoder.rs:720,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/decoder.rs:721,1
    - Dst: '&str::len'
      Src: /src/image/src/codecs/hdr/decoder.rs:721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - s
    - separator
    argTypes:
    - '&''a str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 723
      start: 717
    functionDepth: 14
    functionLinenumber: 717
    functionLinenumberEnd: 723
    functionName: split_at_first
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - Some
    - Result::len
    - '&str::len'
    - Result::find
    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:732,1
    - Dst: Result::read
      Src: /src/image/src/codecs/hdr/decoder.rs:735,1
    - Dst: Result::is_empty
      Src: /src/image/src/codecs/hdr/decoder.rs:736,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:737,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:739,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/decoder.rs:739,1
    - Dst: Result::len
      Src: /src/image/src/codecs/hdr/decoder.rs:742,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:743,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:743,1
    - Dst: Result::push
      Src: /src/image/src/codecs/hdr/decoder.rs:745,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 2
    argNames:
    - r
    - max_len
    argTypes:
    - '&mut R'
    - usize
    constantsTouched: []
    func_position:
      end: 747
      start: 729
    functionDepth: 14
    functionLinenumber: 729
    functionLinenumberEnd: 747
    functionName: read_line_u8
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 2
    functionsReached:
    - Result::push
    - Err
    - Some
    - Result::read
    - Result::len
    - Vec::with_capacity
    - into
    - Ok
    - Result::is_empty
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_line_u8<R: Read>(r: &mut R, max_len: usize) -> ImageResult<Option<Vec<u8>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 777
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 777
    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:781,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/hdr/decoder.rs:782,1
    - Dst: read_line_u8
      Src: /src/image/src/codecs/hdr/decoder.rs:784,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/hdr/decoder.rs:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 794
      start: 780
    functionDepth: 12
    functionLinenumber: 780
    functionLinenumberEnd: 794
    functionName: tests::read_line_u8_test
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - read_line_u8
    - into
    - Cursor::new
    - ImageResult::unwrap
    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: 17
    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: 16
    functionLinenumber: 48
    functionLinenumberEnd: 186
    functionName: BmpEncoder::encode_with_palette
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached:
    - BITMAPFILEHEADER_SIZE::checked_add
    - write_u8
    - ImageError::Encoding
    - Some
    - DynamicImage::checked_mul
    - ImageError::Parameter
    - ParameterError::from_kind
    - BmpEncoder::encode_rgb
    - ok_or_else
    - DynamicImage::checked_add
    - EncodingError::new
    - writer.write_i32::<LittleEndian>
    - ImageFormatHint::Exact
    - DynamicImage::checked_next_multiple_of
    - ImageResult::is_some
    - written_pixel_info
    - "writer\n            .write_u16::<LittleEndian>"
    - UnsupportedErrorKind::Color
    - BmpEncoder::encode_rgba
    - ParameterErrorKind::Generic
    - writer.write_u16::<LittleEndian>
    - checked_mul
    - u32::checked_mul
    - into
    - Ok
    - and_then
    - writer.write_u32::<LittleEndian>
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Option::buffer_size
    - '&str::to_string'
    - Err
    - BmpEncoder::encode_gray
    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:
    - chunks_exact
    - write_all
    - BmpEncoder::write_row_pad
    - rev
    - Ok
    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:
    - chunks_exact
    - write_all
    - BmpEncoder::write_row_pad
    - rev
    - Ok
    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_u8
    - write_all
    - BmpEncoder::write_row_pad
    - rev
    - Ok
    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:
    - Ok
    - write_u8
    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: 18
    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:
    - Result::ok
    - UnsupportedErrorKind::Color
    - UnsupportedError::from_format_and_kind
    - u32::try_from
    - ImageError::Unsupported
    - ok_or_else
    - EncodingError::new
    - Err
    - ImageError::Encoding
    - ImageResult::unwrap_or
    - Some
    - Result::len
    - ImageFormatHint::Exact
    - into
    - Ok
    - ImageResult::map
    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: 16
    functionLinenumber: 468
    functionLinenumberEnd: 487
    functionName: tests::round_trip_image
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - ImageResult::expect
    - Vec::new
    - TgaDecoder::new
    - TgaEncoder::disable_rle
    - ImageResult::encode
    - ImageResult::read_image
    - TgaEncoder::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: 17
    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: 16
    functionLinenumber: 398
    functionLinenumberEnd: 404
    functionName: tests::huge_files_return_error
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - BmpEncoder::new
    - ImageResult::encode
    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: 17
    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: 17
    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: 17
    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: 17
    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: 16
    functionLinenumber: 454
    functionLinenumberEnd: 460
    functionName: tests::regression_issue_2604
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - BmpEncoder::new
    - ImageResult::unwrap_err
    - ImageResult::encode
    linkageType: ''
    returnType: void
    signature: fn regression_issue_2604()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: RowsDecoded::rows
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn rows(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i32::from
      Src: /src/image/src/codecs/bmp/decoder.rs:124,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:124,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:124,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:124,1
    - Dst: i32::from
      Src: /src/image/src/codecs/bmp/decoder.rs:125,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:125,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:125,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:125,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:127,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:127,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:127,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:129,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:129,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:132,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:132,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:132,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:137,1
    - Dst: DecoderError::InvalidChannelWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:138,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:138,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 2
    argNames:
    - buffer
    - spec_strictness
    argTypes:
    - '&[u8; 8]'
    - SpecCompliance
    constantsTouched: []
    func_position:
      end: 149
      start: 123
    functionDepth: 12
    functionLinenumber: 123
    functionLinenumberEnd: 149
    functionName: ParsedCoreHeader::parse
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - try_into
    - u16::from_le_bytes
    - Err
    - DecoderError::InvalidChannelWidth
    - unwrap
    - into
    - Ok
    - i32::from
    linkageType: ''
    returnType: ImageResult
    signature: 'fn parse(buffer: &[u8; 8], spec_strictness: SpecCompliance) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:165,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:165,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:165,1
    - Dst: i32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:166,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:166,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:166,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:170,1
    - Dst: DecoderError::NegativeWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:170,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:170,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:172,1
    - Dst: DecoderError::ImageTooLarge
      Src: /src/image/src/codecs/bmp/decoder.rs:172,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:172,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:176,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:176,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:187,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:187,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:187,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:189,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:189,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:192,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:192,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:192,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:193,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:193,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:193,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:203,1
    - Dst: DecoderError::ImageTypeInvalidForTopDown
      Src: /src/image/src/codecs/bmp/decoder.rs:203,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:203,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:207,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:207,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:207,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:209,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 102
    argCount: 2
    argNames:
    - buffer
    - spec_strictness
    argTypes:
    - '&[u8; 36]'
    - SpecCompliance
    constantsTouched: []
    func_position:
      end: 217
      start: 164
    functionDepth: 12
    functionLinenumber: 164
    functionLinenumberEnd: 217
    functionName: ParsedInfoHeader::parse
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 2
    functionsReached:
    - DecoderError::ImageTypeInvalidForTopDown
    - i32::from_le_bytes
    - try_into
    - u16::from_le_bytes
    - DecoderError::NegativeWidth
    - Err
    - DecoderError::ImageTooLarge
    - u32::from_le_bytes
    - unwrap
    - into
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn parse(buffer: &[u8; 36], spec_strictness: SpecCompliance) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:234,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:234,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:234,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:235,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:235,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:235,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:236,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:236,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:236,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:238,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:238,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 2
    argNames:
    - buffer
    - has_alpha
    argTypes:
    - '&[u8]'
    - bool
    constantsTouched: []
    func_position:
      end: 249
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 249
    functionName: ParsedBitfields::parse
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - u32::from_le_bytes
    - try_into
    - unwrap
    linkageType: ''
    returnType: Self
    signature: 'fn parse(buffer: &[u8], has_alpha: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:267,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:267,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:267,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:275,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:275,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:275,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:278,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:278,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:278,1
    - Dst: u64::from
      Src: /src/image/src/codecs/bmp/decoder.rs:285,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 2
    argNames:
    - buffer
    - bmp_header_offset
    argTypes:
    - '&[u8]'
    - u64
    constantsTouched: []
    func_position:
      end: 291
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 291
    functionName: ParsedIccProfile::parse
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - try_into
    - u32::from_le_bytes
    - u64::from
    - Some
    - unwrap
    linkageType: ''
    returnType: Option
    signature: 'fn parse(buffer: &[u8], bmp_header_offset: u64) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MetadataProgress::default
      Src: /src/image/src/codecs/bmp/decoder.rs:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 381
    functionName: DecoderState::default
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - MetadataProgress::default
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:427,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: RowIterator::next
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - 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:551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 558
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 558
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bytes_per_row
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 565
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 565
    functionName: calculate_row_padding
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: 'fn calculate_row_padding(bytes_per_row: usize) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/codecs/bmp/decoder.rs:569,1
    - Dst: Result::map_err
      Src: /src/image/src/codecs/bmp/decoder.rs:569,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/decoder.rs:570,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/decoder.rs:570,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:571,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/bmp/decoder.rs:572,1
    - Dst: '&RgbaImage::resize'
      Src: /src/image/src/codecs/bmp/decoder.rs:578,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - size
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 580
      start: 568
    functionDepth: 12
    functionLinenumber: 568
    functionLinenumberEnd: 580
    functionName: allocate_row_buffer
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 3
    functionsReached:
    - '&RgbaImage::resize'
    - utils::vec_try_with_capacity
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - UnsupportedErrorKind::GenericFeature
    - into
    - Result::map_err
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn allocate_row_buffer(size: usize) -> ImageResult<Vec<u8>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: num_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:585,1
    - Dst: Option::map
      Src: /src/image/src/codecs/bmp/decoder.rs:585,1
    - Dst: ImageResult::ok_or_else
      Src: /src/image/src/codecs/bmp/decoder.rs:585,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/decoder.rs:588,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/decoder.rs:588,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:589,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/bmp/decoder.rs:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - width
    - length
    - channels
    argTypes:
    - i32
    - i32
    - usize
    constantsTouched: []
    func_position:
      end: 595
      start: 584
    functionDepth: 14
    functionLinenumber: 584
    functionLinenumberEnd: 595
    functionName: check_for_overflow
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 3
    functionsReached:
    - ImageResult::ok_or_else
    - ImageError::Unsupported
    - UnsupportedError::from_format_and_kind
    - UnsupportedErrorKind::GenericFeature
    - Option::map
    - into
    - num_bytes
    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:603,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/bmp/decoder.rs:604,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - width
    - length
    - channels
    argTypes:
    - i32
    - i32
    - usize
    constantsTouched: []
    func_position:
      end: 608
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 608
    functionName: num_bytes
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - usize::checked_mul
    - checked_mul
    linkageType: ''
    returnType: Option
    signature: 'fn num_bytes(width: i32, length: i32, channels: usize) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - file_row
    - height
    - top_down
    argTypes:
    - u32
    - u32
    - bool
    constantsTouched: []
    func_position:
      end: 644
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 644
    functionName: w::i::t::h::_::r::o::w::s::_::r::e::s::u::m::a::b::l::e::output_row_index
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: 'fn output_row_index(file_row: u32, height: u32, top_down: bool) ->
      usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - row_index
    - row_stride
    argTypes:
    - '&mut [u8]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 651
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 651
    functionName: w::i::t::h::_::r::o::w::s::_::r::e::s::u::m::a::b::l::e::get_row_mut
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut [u8]'
    signature: 'fn get_row_mut(buf: &mut [u8], row_index: usize, row_stride: usize)
      -> &mut [u8]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::checked_mul
      Src: /src/image/src/codecs/bmp/decoder.rs:631,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:631,1
    - Dst: output_row_index
      Src: /src/image/src/codecs/bmp/decoder.rs:654,1
    - Dst: get_row_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:655,1
    - Dst: func
      Src: /src/image/src/codecs/bmp/decoder.rs:657,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:658,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:661,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 7
    argNames:
    - buffer
    - width
    - height
    - channels
    - top_down
    - start_row
    - func
    argTypes:
    - '&mut [u8]'
    - i32
    - i32
    - usize
    - bool
    - u32
    - F
    constantsTouched: []
    func_position:
      end: 662
      start: 617
    functionDepth: 3
    functionLinenumber: 617
    functionLinenumberEnd: 662
    functionName: with_rows_resumable
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 4
    functionsReached:
    - func
    - output_row_index
    - Err
    - unwrap
    - usize::checked_mul
    - Ok
    - get_row_mut
    linkageType: ''
    returnType: Result
    signature: 'fn with_rows_resumable<F>(buffer: &mut [u8],width: i32,height: i32,channels:
      usize,top_down: bool,start_row: u32,mut func: F,) -> Result<u32, (u32, io::Error)>whereF:
      FnMut(&mut [u8]) -> io::Result<()>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::take
      Src: /src/image/src/codecs/bmp/decoder.rs:670,1
    - Dst: '&mut ChunksExactMut<u8>::next'
      Src: /src/image/src/codecs/bmp/decoder.rs:671,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: 681
      start: 664
    functionDepth: 2
    functionLinenumber: 664
    functionLinenumberEnd: 681
    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: 710
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 710
    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: 742
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 742
    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:752,1
    - Dst: usize::from
      Src: /src/image/src/codecs/bmp/decoder.rs:753,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: 767
      start: 744
    functionDepth: 3
    functionLinenumber: 744
    functionLinenumberEnd: 767
    functionName: set_1bit_pixel_run
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - '&mut ChunksExactMut<u8>::next'
    - usize::from
    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:778,1
    - Dst: ImageResult::trailing_zeros
      Src: /src/image/src/codecs/bmp/decoder.rs:780,1
    - Dst: trailing_zeros
      Src: /src/image/src/codecs/bmp/decoder.rs:781,1
    - Dst: ImageResult::count_ones
      Src: /src/image/src/codecs/bmp/decoder.rs:782,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:783,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:783,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:786,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:786,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:792,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 2
    argNames:
    - mask
    - max_len
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 793
      start: 776
    functionDepth: 12
    functionLinenumber: 776
    functionLinenumberEnd: 793
    functionName: Bitfield::from_mask
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - ImageResult::count_ones
    - Ok
    - Err
    - into
    - trailing_zeros
    - ImageResult::trailing_zeros
    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: 809
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 809
    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:830,1
    - Dst: Bitfield::from_mask
      Src: /src/image/src/codecs/bmp/decoder.rs:831,1
    - Dst: Bitfield::from_mask
      Src: /src/image/src/codecs/bmp/decoder.rs:832,1
    - Dst: Bitfield::from_mask
      Src: /src/image/src/codecs/bmp/decoder.rs:833,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:840,1
    - Dst: DecoderError::BitfieldMaskMissing
      Src: /src/image/src/codecs/bmp/decoder.rs:840,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:840,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:842,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 6
    argNames:
    - r_mask
    - g_mask
    - b_mask
    - a_mask
    - max_len
    - spec_strictness
    argTypes:
    - u32
    - u32
    - u32
    - u32
    - u32
    - SpecCompliance
    constantsTouched: []
    func_position:
      end: 843
      start: 821
    functionDepth: 13
    functionLinenumber: 821
    functionLinenumberEnd: 843
    functionName: Bitfields::from_mask
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Bitfield::from_mask
    - Err
    - DecoderError::BitfieldMaskMissing
    - into
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_mask(r_mask: u32,g_mask: u32,b_mask: u32,a_mask: u32,max_len:
      u32,spec_strictness: SpecCompliance,) -> ImageResult<Bitfields>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&''a mut R'
    constantsTouched: []
    func_position:
      end: 859
      start: 854
    functionDepth: 0
    functionLinenumber: 854
    functionLinenumberEnd: 859
    functionName: RleReader::new
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn new(reader: &''a mut R) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 864
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 864
    functionName: RleReader::bytes_read
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn bytes_read(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fill_buf
      Src: /src/image/src/codecs/bmp/decoder.rs:867,1
    - Dst: std::io::Result::is_empty
      Src: /src/image/src/codecs/bmp/decoder.rs:868,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:869,1
    - Dst: io::Error::new
      Src: /src/image/src/codecs/bmp/decoder.rs:869,1
    - Dst: consume
      Src: /src/image/src/codecs/bmp/decoder.rs:875,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:877,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 878
      start: 866
    functionDepth: 13
    functionLinenumber: 866
    functionLinenumberEnd: 878
    functionName: RleReader::read_byte
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - consume
    - io::Error::new
    - std::io::Result::is_empty
    - Err
    - fill_buf
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: fn read_byte(&mut self) -> io::Result<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/bmp/decoder.rs:881,1
    - Dst: fill_buf
      Src: /src/image/src/codecs/bmp/decoder.rs:885,1
    - Dst: is_empty
      Src: /src/image/src/codecs/bmp/decoder.rs:886,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:887,1
    - Dst: io::Error::new
      Src: /src/image/src/codecs/bmp/decoder.rs:887,1
    - Dst: String::min
      Src: /src/image/src/codecs/bmp/decoder.rs:893,1
    - Dst: len
      Src: /src/image/src/codecs/bmp/decoder.rs:893,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/bmp/decoder.rs:894,1
    - Dst: consume
      Src: /src/image/src/codecs/bmp/decoder.rs:895,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:901,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 902
      start: 880
    functionDepth: 13
    functionLinenumber: 880
    functionLinenumberEnd: 902
    functionName: RleReader::read_exact
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - consume
    - io::Error::new
    - Err
    - copy_from_slice
    - std::io::Result::len
    - len
    - String::min
    - fill_buf
    - Ok
    - is_empty
    linkageType: ''
    returnType: io::Result
    signature: 'fn read_exact(&mut self, buf: &mut [u8]) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SpecCompliance::default
      Src: /src/image/src/codecs/bmp/decoder.rs:952,1
    - Dst: DecoderState::default
      Src: /src/image/src/codecs/bmp/decoder.rs:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 955
      start: 932
    functionDepth: 2
    functionLinenumber: 932
    functionLinenumberEnd: 955
    functionName: BmpDecoder::new_decoder
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - SpecCompliance::default
    - DecoderState::default
    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:959,1
    - Dst: ImageResult::read_metadata
      Src: /src/image/src/codecs/bmp/decoder.rs:960,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 962
      start: 958
    functionDepth: 17
    functionLinenumber: 958
    functionLinenumberEnd: 962
    functionName: BmpDecoder::new
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 5
    functionsReached:
    - Self::new_decoder
    - Ok
    - ImageResult::read_metadata
    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:969,1
    - Dst: ImageResult::read_metadata
      Src: /src/image/src/codecs/bmp/decoder.rs:971,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:972,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - reader
    - spec
    argTypes:
    - R
    - SpecCompliance
    constantsTouched: []
    func_position:
      end: 973
      start: 965
    functionDepth: 17
    functionLinenumber: 965
    functionLinenumberEnd: 973
    functionName: BmpDecoder::new_with_spec_compliance
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Self::new_decoder
    - Ok
    - ImageResult::read_metadata
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn new_with_spec_compliance(reader: R,spec: SpecCompliance,)
      -> ImageResult<BmpDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_decoder
      Src: /src/image/src/codecs/bmp/decoder.rs:1026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 1027
      start: 1025
    functionDepth: 3
    functionLinenumber: 1025
    functionLinenumberEnd: 1027
    functionName: BmpDecoder::new_resumable
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Self::new_decoder
    linkageType: ''
    returnType: BmpDecoder
    signature: 'pub fn new_resumable(reader: R) -> BmpDecoder<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_decoder
      Src: /src/image/src/codecs/bmp/decoder.rs:1033,1
    - Dst: ImageResult::read_metadata
      Src: /src/image/src/codecs/bmp/decoder.rs:1035,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1036,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 1037
      start: 1032
    functionDepth: 17
    functionLinenumber: 1032
    functionLinenumberEnd: 1037
    functionName: BmpDecoder::new_without_file_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 2
    functionsReached:
    - Self::new_decoder
    - Ok
    - ImageResult::read_metadata
    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:1041,1
    - Dst: ImageResult::read_metadata_in_ico_format
      Src: /src/image/src/codecs/bmp/decoder.rs:1042,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 1044
      start: 1040
    functionDepth: 18
    functionLinenumber: 1040
    functionLinenumberEnd: 1044
    functionName: BmpDecoder::new_with_ico_format
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Self::new_decoder
    - ImageResult::read_metadata_in_ico_format
    - Ok
    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: 1050
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1050
    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: 1055
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1055
    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:1059,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1065,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1069,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1069,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:1074,1
    - Dst: u64::from
      Src: /src/image/src/codecs/bmp/decoder.rs:1075,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1077,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1057
    functionDepth: 12
    functionLinenumber: 1057
    functionLinenumberEnd: 1078
    functionName: BmpDecoder::read_file_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - read_exact
    - u32::from_le_bytes
    - Err
    - u64::from
    - into
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn read_file_header(&mut self) -> ImageResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1089,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1090,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1091,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1092,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1093,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1095,1
    - Dst: DecoderError::InvalidChannelWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:1095,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1095,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1099,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1100,1
    - Dst: DecoderError::InvalidChannelWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:1101,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1101,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1105,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1106,1
    - Dst: DecoderError::InvalidChannelWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:1107,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1107,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1111,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1112,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1113,1
    - Dst: DecoderError::InvalidChannelWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:1113,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1113,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1120,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1123,1
    - Dst: DecoderError::InvalidChannelWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:1123,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1123,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1125,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/decoder.rs:1125,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/decoder.rs:1126,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1127,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/bmp/decoder.rs:1128,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/bmp/decoder.rs:1128,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1131,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/decoder.rs:1131,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/decoder.rs:1132,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1133,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/bmp/decoder.rs:1134,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/bmp/decoder.rs:1134,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1137,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/decoder.rs:1137,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/decoder.rs:1138,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1139,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/bmp/decoder.rs:1140,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/bmp/decoder.rs:1140,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1143,1
    - Dst: DecoderError::ImageTypeUnknown
      Src: /src/image/src/codecs/bmp/decoder.rs:1143,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 70
    argCount: 4
    argNames:
    - compression
    - bit_count
    - add_alpha_channel
    - header_type
    argTypes:
    - u32
    - u16
    - bool
    - '&BMPHeaderType'
    constantsTouched: []
    func_position:
      end: 1145
      start: 1081
    functionDepth: 12
    functionLinenumber: 1081
    functionLinenumberEnd: 1145
    functionName: BmpDecoder::image_type_from_compression
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Err
    - DecoderError::InvalidChannelWidth
    - UnsupportedErrorKind::GenericFeature
    - '&str::to_owned'
    - into
    - DecoderError::ImageTypeUnknown
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn image_type_from_compression(compression: u32,bit_count: u16,add_alpha_channel:
      bool,header_type: &BMPHeaderType,) -> ImageResult<ImageType>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1153,1
    - Dst: ParsedCoreHeader::parse
      Src: /src/image/src/codecs/bmp/decoder.rs:1155,1
    - Dst: check_for_overflow
      Src: /src/image/src/codecs/bmp/decoder.rs:1162,1
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:1162,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1150
    functionDepth: 13
    functionLinenumber: 1150
    functionLinenumberEnd: 1165
    functionName: BmpDecoder::read_bitmap_core_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - read_exact
    - ParsedCoreHeader::parse
    - check_for_overflow
    - BmpDecoder::num_channels
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn read_bitmap_core_header(&mut self) -> ImageResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::min
      Src: /src/image/src/codecs/bmp/decoder.rs:1174,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1175,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1181,1
    - Dst: ParsedInfoHeader::parse
      Src: /src/image/src/codecs/bmp/decoder.rs:1184,1
    - Dst: Self::image_type_from_compression
      Src: /src/image/src/codecs/bmp/decoder.rs:1191,1
    - Dst: check_for_overflow
      Src: /src/image/src/codecs/bmp/decoder.rs:1198,1
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:1198,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 70
    argCount: 1
    argNames:
    - header_size
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 1201
      start: 1169
    functionDepth: 13
    functionLinenumber: 1169
    functionLinenumberEnd: 1201
    functionName: BmpDecoder::read_bitmap_os2v2_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - read_exact
    - ParsedInfoHeader::parse
    - usize::min
    - check_for_overflow
    - BmpDecoder::num_channels
    - Self::image_type_from_compression
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_bitmap_os2v2_header(&mut self, header_size: u32) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1210,1
    - Dst: ParsedInfoHeader::parse
      Src: /src/image/src/codecs/bmp/decoder.rs:1212,1
    - Dst: Self::image_type_from_compression
      Src: /src/image/src/codecs/bmp/decoder.rs:1219,1
    - Dst: check_for_overflow
      Src: /src/image/src/codecs/bmp/decoder.rs:1226,1
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:1226,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1232,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1207
    functionDepth: 13
    functionLinenumber: 1207
    functionLinenumberEnd: 1233
    functionName: BmpDecoder::read_bitmap_info_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - read_exact
    - ParsedInfoHeader::parse
    - check_for_overflow
    - BmpDecoder::num_channels
    - Self::image_type_from_compression
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn read_bitmap_info_header(&mut self) -> ImageResult<BitfieldCompression>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1247,1
    - Dst: ParsedBitfields::parse
      Src: /src/image/src/codecs/bmp/decoder.rs:1250,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:1260,1
    - Dst: Bitfields::from_mask
      Src: /src/image/src/codecs/bmp/decoder.rs:1260,1
    - Dst: is_some
      Src: /src/image/src/codecs/bmp/decoder.rs:1272,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1276,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 1
    argNames:
    - compression
    argTypes:
    - BitfieldCompression
    constantsTouched: []
    func_position:
      end: 1277
      start: 1235
    functionDepth: 14
    functionLinenumber: 1235
    functionLinenumberEnd: 1277
    functionName: BmpDecoder::read_bitmasks
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - read_exact
    - Some
    - is_some
    - Bitfields::from_mask
    - ParsedBitfields::parse
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_bitmasks(&mut self, compression: BitfieldCompression) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1281,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1281,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1283,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:1284,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - icc
    argTypes:
    - '&ParsedIccProfile'
    constantsTouched: []
    func_position:
      end: 1286
      start: 1280
    functionDepth: 2
    functionLinenumber: 1280
    functionLinenumberEnd: 1286
    functionName: BmpDecoder::read_icc_profile
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - read_exact
    - SeekFrom::Start
    - Some
    - seek
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_icc_profile(&mut self, icc: &ParsedIccProfile) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1302,1
    - Dst: BmpDecoder::read_metadata_impl
      Src: /src/image/src/codecs/bmp/decoder.rs:1305,1
    - Dst: BmpDecoder::is_rle
      Src: /src/image/src/codecs/bmp/decoder.rs:1308,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1315,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1299
    functionDepth: 16
    functionLinenumber: 1299
    functionLinenumberEnd: 1319
    functionName: BmpDecoder::read_metadata
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - BmpDecoder::read_metadata_impl
    - Err
    - Ok
    - BmpDecoder::is_rle
    linkageType: ''
    returnType: ImageResult
    signature: pub fn read_metadata(&mut self) -> ImageResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stream_position
      Src: /src/image/src/codecs/bmp/decoder.rs:1332,1
    - Dst: BmpDecoder::read_metadata_impl
      Src: /src/image/src/codecs/bmp/decoder.rs:1335,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1339,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1339,1
    - Dst: BmpDecoder::read_headers
      Src: /src/image/src/codecs/bmp/decoder.rs:1342,1
    - Dst: BmpDecoder::read_metadata_impl
      Src: /src/image/src/codecs/bmp/decoder.rs:1347,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1352,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1352,1
    - Dst: BmpDecoder::read_palette
      Src: /src/image/src/codecs/bmp/decoder.rs:1359,1
    - Dst: stream_position
      Src: /src/image/src/codecs/bmp/decoder.rs:1365,1
    - Dst: BmpDecoder::read_metadata_impl
      Src: /src/image/src/codecs/bmp/decoder.rs:1371,1
    - Dst: BmpDecoder::read_icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:1376,1
    - Dst: BmpDecoder::read_metadata_impl
      Src: /src/image/src/codecs/bmp/decoder.rs:1383,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1385,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 74
    argCount: 1
    argNames:
    - progress
    argTypes:
    - MetadataProgress
    constantsTouched: []
    func_position:
      end: 1387
      start: 1328
    functionDepth: 15
    functionLinenumber: 1328
    functionLinenumberEnd: 1387
    functionName: BmpDecoder::read_metadata_impl
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 2
    functionsReached:
    - BmpDecoder::read_metadata_impl
    - stream_position
    - BmpDecoder::read_palette
    - BmpDecoder::read_headers
    - SeekFrom::Start
    - BmpDecoder::read_icc_profile
    - seek
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_metadata_impl(&mut self, progress: MetadataProgress) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::read_file_header
      Src: /src/image/src/codecs/bmp/decoder.rs:1392,1
    - Dst: stream_position
      Src: /src/image/src/codecs/bmp/decoder.rs:1393,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1397,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:1398,1
    - Dst: u64::from
      Src: /src/image/src/codecs/bmp/decoder.rs:1400,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1411,1
    - Dst: DecoderError::HeaderTooSmall
      Src: /src/image/src/codecs/bmp/decoder.rs:1411,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1411,1
    - Dst: contains
      Src: /src/image/src/codecs/bmp/decoder.rs:1418,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1424,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/decoder.rs:1424,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/decoder.rs:1425,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1426,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/bmp/decoder.rs:1427,1
    - Dst: BmpDecoder::read_bitmap_core_header
      Src: /src/image/src/codecs/bmp/decoder.rs:1437,1
    - Dst: BmpDecoder::read_bitmap_os2v2_header
      Src: /src/image/src/codecs/bmp/decoder.rs:1441,1
    - Dst: BmpDecoder::read_bitmap_info_header
      Src: /src/image/src/codecs/bmp/decoder.rs:1448,1
    - Dst: BmpDecoder::read_bitmasks
      Src: /src/image/src/codecs/bmp/decoder.rs:1456,1
    - Dst: stream_position
      Src: /src/image/src/codecs/bmp/decoder.rs:1482,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1483,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1483,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1484,1
    - Dst: ParsedIccProfile::parse
      Src: /src/image/src/codecs/bmp/decoder.rs:1487,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1490,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1490,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1496,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1391
    functionDepth: 13
    functionLinenumber: 1391
    functionLinenumberEnd: 1500
    functionName: BmpDecoder::read_headers
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - stream_position
    - ParsedIccProfile::parse
    - contains
    - u32::from_le_bytes
    - BmpDecoder::read_bitmap_core_header
    - UnsupportedErrorKind::GenericFeature
    - BmpDecoder::read_bitmap_info_header
    - read_exact
    - BmpDecoder::read_bitmasks
    - DecoderError::HeaderTooSmall
    - SeekFrom::Start
    - seek
    - BmpDecoder::read_bitmap_os2v2_header
    - into
    - Ok
    - BmpDecoder::read_file_header
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Err
    - u64::from
    linkageType: ''
    returnType: ImageResult
    signature: fn read_headers(&mut self) -> ImageResult<HeaderOffsets>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::read_metadata
      Src: /src/image/src/codecs/bmp/decoder.rs:1507,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1504
    functionDepth: 17
    functionLinenumber: 1504
    functionLinenumberEnd: 1513
    functionName: BmpDecoder::read_metadata_in_ico_format
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - BmpDecoder::read_metadata
    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:1517,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1522,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1522,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1530,1
    - Dst: min
      Src: /src/image/src/codecs/bmp/decoder.rs:1530,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1515
    functionDepth: 12
    functionLinenumber: 1515
    functionLinenumberEnd: 1533
    functionName: BmpDecoder::get_palette_size
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - into
    - Err
    - Ok
    - min
    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: 1540
      start: 1535
    functionDepth: 0
    functionLinenumber: 1535
    functionLinenumberEnd: 1540
    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:1545,1
    - Dst: BmpDecoder::get_palette_size
      Src: /src/image/src/codecs/bmp/decoder.rs:1546,1
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/codecs/bmp/decoder.rs:1550,1
    - Dst: std::io::Result::resize
      Src: /src/image/src/codecs/bmp/decoder.rs:1555,1
    - Dst: cmp::min
      Src: /src/image/src/codecs/bmp/decoder.rs:1555,1
    - Dst: by_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:1556,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1556,1
    - Dst: Option::cmp
      Src: /src/image/src/codecs/bmp/decoder.rs:1560,1
    - Dst: seek_relative
      Src: /src/image/src/codecs/bmp/decoder.rs:1561,1
    - Dst: std::io::Result::resize
      Src: /src/image/src/codecs/bmp/decoder.rs:1562,1
    - Dst: map
      Src: /src/image/src/codecs/bmp/decoder.rs:1566,1
    - Dst: collect
      Src: /src/image/src/codecs/bmp/decoder.rs:1566,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:1575,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1577,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1542
    functionDepth: 14
    functionLinenumber: 1542
    functionLinenumberEnd: 1578
    functionName: BmpDecoder::read_palette
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - BmpDecoder::get_palette_size
    - read_exact
    - map
    - collect
    - seek_relative
    - std::io::Result::resize
    - Some
    - cmp::min
    - BmpDecoder::bytes_per_color
    - Option::cmp
    - utils::vec_try_with_capacity
    - by_ref
    - Ok
    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:1582,1
    - Dst: map
      Src: /src/image/src/codecs/bmp/decoder.rs:1582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1581
    functionDepth: 14
    functionLinenumber: 1581
    functionLinenumberEnd: 1583
    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: 1593
      start: 1585
    functionDepth: 0
    functionLinenumber: 1585
    functionLinenumberEnd: 1593
    functionName: BmpDecoder::num_channels
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 9
    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:1596,1
    - Dst: Chunker::FromTop
      Src: /src/image/src/codecs/bmp/decoder.rs:1599,1
    - Dst: ImageResult::chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1599,1
    - Dst: Chunker::FromBottom
      Src: /src/image/src/codecs/bmp/decoder.rs:1603,1
    - Dst: ImageResult::chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1603,1
    - Dst: rev
      Src: /src/image/src/codecs/bmp/decoder.rs:1603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - pixel_data
    argTypes:
    - '&''a mut [u8]'
    constantsTouched: []
    func_position:
      end: 1606
      start: 1595
    functionDepth: 1
    functionLinenumber: 1595
    functionLinenumberEnd: 1606
    functionName: BmpDecoder::rows
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - BmpDecoder::num_channels
    - Chunker::FromTop
    - Chunker::FromBottom
    - rev
    - ImageResult::chunks_exact_mut
    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:1609,1
    - Dst: i32::from
      Src: /src/image/src/codecs/bmp/decoder.rs:1610,1
    - Dst: as_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:1612,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1612,1
    - Dst: BmpDecoder::rows_decoded
      Src: /src/image/src/codecs/bmp/decoder.rs:1617,1
    - Dst: RowsDecoded::rows
      Src: /src/image/src/codecs/bmp/decoder.rs:1618,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1622,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1622,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/codecs/bmp/decoder.rs:1626,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1626,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:1626,1
    - Dst: with_rows_resumable
      Src: /src/image/src/codecs/bmp/decoder.rs:1633,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1641,1
    - Dst: Result::clone_from_slice
      Src: /src/image/src/codecs/bmp/decoder.rs:1643,1
    - Dst: Result::chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1645,1
    - Dst: set_1bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1648,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1648,1
    - Dst: set_2bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1651,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1651,1
    - Dst: set_4bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1654,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1654,1
    - Dst: set_8bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1657,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1657,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1662,1
    - Dst: BmpDecoder::finish_row_decode
      Src: /src/image/src/codecs/bmp/decoder.rs:1666,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 100
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1667
      start: 1608
    functionDepth: 4
    functionLinenumber: 1608
    functionLinenumberEnd: 1667
    functionName: BmpDecoder::read_palettized_pixel_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - BmpDecoder::finish_row_decode
    - iter_mut
    - Result::clone_from_slice
    - unwrap
    - as_chunks_mut::<4>
    - set_4bit_pixel_run
    - i32::from
    - for_each
    - as_ref
    - Result::chunks_exact_mut
    - Option::iter
    - SeekFrom::Start
    - seek
    - Ok
    - RowsDecoded::rows
    - Result::read_exact
    - BmpDecoder::rows_decoded
    - BmpDecoder::num_channels
    - set_2bit_pixel_run
    - set_1bit_pixel_run
    - with_rows_resumable
    - set_8bit_pixel_run
    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:1674,1
    - Dst: as_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:1677,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1677,1
    - Dst: calculate_row_padding
      Src: /src/image/src/codecs/bmp/decoder.rs:1681,1
    - Dst: BmpDecoder::rows_decoded
      Src: /src/image/src/codecs/bmp/decoder.rs:1684,1
    - Dst: RowsDecoded::rows
      Src: /src/image/src/codecs/bmp/decoder.rs:1685,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1691,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1691,1
    - Dst: allocate_row_buffer
      Src: /src/image/src/codecs/bmp/decoder.rs:1693,1
    - Dst: with_rows_resumable
      Src: /src/image/src/codecs/bmp/decoder.rs:1696,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1704,1
    - Dst: as_chunks::<2>
      Src: /src/image/src/codecs/bmp/decoder.rs:1705,1
    - Dst: iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1705,1
    - Dst: zip
      Src: /src/image/src/codecs/bmp/decoder.rs:1706,1
    - Dst: Result::chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1706,1
    - Dst: u32::from
      Src: /src/image/src/codecs/bmp/decoder.rs:1708,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:1708,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1709,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1710,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1711,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1714,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1720,1
    - Dst: BmpDecoder::finish_row_decode
      Src: /src/image/src/codecs/bmp/decoder.rs:1724,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 90
    argCount: 2
    argNames:
    - buf
    - bitfields
    argTypes:
    - '&mut [u8]'
    - Option<&Bitfields>
    constantsTouched: []
    func_position:
      end: 1725
      start: 1669
    functionDepth: 13
    functionLinenumber: 1669
    functionLinenumberEnd: 1725
    functionName: BmpDecoder::read_16_bit_pixel_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - u16::from_le_bytes
    - BmpDecoder::finish_row_decode
    - read
    - unwrap
    - u32::from
    - as_chunks::<2>
    - as_ref
    - Result::chunks_exact_mut
    - SeekFrom::Start
    - seek
    - Ok
    - RowsDecoded::rows
    - Result::read_exact
    - allocate_row_buffer
    - BmpDecoder::rows_decoded
    - BmpDecoder::num_channels
    - with_rows_resumable
    - iter
    - zip
    - calculate_row_padding
    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:1729,1
    - Dst: as_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:1730,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1730,1
    - Dst: BmpDecoder::rows_decoded
      Src: /src/image/src/codecs/bmp/decoder.rs:1734,1
    - Dst: RowsDecoded::rows
      Src: /src/image/src/codecs/bmp/decoder.rs:1735,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1741,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1741,1
    - Dst: allocate_row_buffer
      Src: /src/image/src/codecs/bmp/decoder.rs:1743,1
    - Dst: with_rows_resumable
      Src: /src/image/src/codecs/bmp/decoder.rs:1746,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1754,1
    - Dst: as_chunks::<4>
      Src: /src/image/src/codecs/bmp/decoder.rs:1755,1
    - Dst: iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1755,1
    - Dst: zip
      Src: /src/image/src/codecs/bmp/decoder.rs:1756,1
    - Dst: Result::chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1756,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:1758,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1759,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1760,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1761,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1764,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1770,1
    - Dst: BmpDecoder::finish_row_decode
      Src: /src/image/src/codecs/bmp/decoder.rs:1774,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 86
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1775
      start: 1728
    functionDepth: 13
    functionLinenumber: 1728
    functionLinenumberEnd: 1775
    functionName: BmpDecoder::read_32_bit_pixel_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - RowsDecoded::rows
    - as_ref
    - Result::read_exact
    - Result::chunks_exact_mut
    - allocate_row_buffer
    - BmpDecoder::rows_decoded
    - Ok
    - BmpDecoder::finish_row_decode
    - u32::from_le_bytes
    - BmpDecoder::num_channels
    - SeekFrom::Start
    - read
    - seek
    - unwrap
    - with_rows_resumable
    - as_chunks::<4>
    - iter
    - zip
    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:1783,1
    - Dst: calculate_row_padding
      Src: /src/image/src/codecs/bmp/decoder.rs:1790,1
    - Dst: BmpDecoder::rows_decoded
      Src: /src/image/src/codecs/bmp/decoder.rs:1795,1
    - Dst: RowsDecoded::rows
      Src: /src/image/src/codecs/bmp/decoder.rs:1796,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1802,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1802,1
    - Dst: allocate_row_buffer
      Src: /src/image/src/codecs/bmp/decoder.rs:1804,1
    - Dst: with_rows_resumable
      Src: /src/image/src/codecs/bmp/decoder.rs:1807,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1815,1
    - Dst: Result::chunks_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1817,1
    - Dst: enumerate
      Src: /src/image/src/codecs/bmp/decoder.rs:1817,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/bmp/decoder.rs:1829,1
    - Dst: reverse
      Src: /src/image/src/codecs/bmp/decoder.rs:1830,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1839,1
    - Dst: BmpDecoder::finish_row_decode
      Src: /src/image/src/codecs/bmp/decoder.rs:1843,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 91
    argCount: 2
    argNames:
    - buf
    - format
    argTypes:
    - '&mut [u8]'
    - '&FormatFullBytes'
    constantsTouched: []
    func_position:
      end: 1844
      start: 1778
    functionDepth: 13
    functionLinenumber: 1778
    functionLinenumberEnd: 1844
    functionName: BmpDecoder::read_full_byte_pixel_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - RowsDecoded::rows
    - Result::read_exact
    - reverse
    - allocate_row_buffer
    - BmpDecoder::rows_decoded
    - enumerate
    - BmpDecoder::finish_row_decode
    - BmpDecoder::num_channels
    - copy_from_slice
    - SeekFrom::Start
    - seek
    - with_rows_resumable
    - Result::chunks_mut
    - Ok
    - calculate_row_padding
    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:1857,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1857,1
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:1859,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:1861,1
    - Dst: as_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:1861,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1861,1
    - Dst: BmpDecoder::rows
      Src: /src/image/src/codecs/bmp/decoder.rs:1866,1
    - Dst: RowIterator::skip
      Src: /src/image/src/codecs/bmp/decoder.rs:1866,1
    - Dst: RleReader::new
      Src: /src/image/src/codecs/bmp/decoder.rs:1874,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:1876,1
    - Dst: Result::chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1877,1
    - Dst: nth
      Src: /src/image/src/codecs/bmp/decoder.rs:1881,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:1889,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:1893,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:1896,1
    - Dst: Result::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1896,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:1902,1
    - Dst: Result::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1902,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:1903,1
    - Dst: Result::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1903,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1904,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:1907,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:1908,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:1913,1
    - Dst: Result::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1913,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:1917,1
    - Dst: Option::ok_or
      Src: /src/image/src/codecs/bmp/decoder.rs:1917,1
    - Dst: Result::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1918,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:1923,1
    - Dst: Option::ok_or
      Src: /src/image/src/codecs/bmp/decoder.rs:1923,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1923,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:1929,1
    - Dst: ok_or
      Src: /src/image/src/codecs/bmp/decoder.rs:1929,1
    - Dst: fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1929,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:1938,1
    - Dst: ok_or
      Src: /src/image/src/codecs/bmp/decoder.rs:1938,1
    - Dst: u8::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:1939,1
    - Dst: Self::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1950,1
    - Dst: set_8bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1951,1
    - Dst: Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1953,1
    - Dst: iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1954,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1957,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1957,1
    - Dst: u8::div_ceil
      Src: /src/image/src/codecs/bmp/decoder.rs:1961,1
    - Dst: Self::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1963,1
    - Dst: set_4bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1964,1
    - Dst: Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1966,1
    - Dst: iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1967,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1970,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1970,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:1975,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:1976,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:1977,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:1978,1
    - Dst: is_multiple_of
      Src: /src/image/src/codecs/bmp/decoder.rs:1985,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:1986,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2002,1
    - Dst: Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2003,1
    - Dst: take
      Src: /src/image/src/codecs/bmp/decoder.rs:2004,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:2004,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2011,1
    - Dst: set_4bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:2012,1
    - Dst: Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2014,1
    - Dst: std::iter::repeat
      Src: /src/image/src/codecs/bmp/decoder.rs:2015,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:2018,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:2018,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2022,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2023,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2024,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:2026,1
    - Dst: Self::bytes_read
      Src: /src/image/src/codecs/bmp/decoder.rs:2045,1
    - Dst: Self::bytes_read
      Src: /src/image/src/codecs/bmp/decoder.rs:2055,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:2060,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 331
    argCount: 2
    argNames:
    - buf
    - image_type
    argTypes:
    - '&mut [u8]'
    - ImageType
    constantsTouched: []
    func_position:
      end: 2061
      start: 1846
    functionDepth: 15
    functionLinenumber: 1846
    functionLinenumberEnd: 2061
    functionName: BmpDecoder::read_rle_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::fill
    - std::iter::repeat
    - BmpDecoder::rows
    - Some
    - Self::read_exact
    - nth
    - unwrap
    - Option::ok_or
    - chunks_exact_mut
    - set_4bit_pixel_run
    - iter
    - for_each
    - take
    - as_ref
    - Result::chunks_exact_mut
    - Self::bytes_read
    - is_multiple_of
    - SeekFrom::Start
    - seek
    - next
    - RleReader::new
    - into
    - u8::div_ceil
    - Ok
    - Result::unwrap
    - RowIterator::skip
    - Self::read_byte
    - BmpDecoder::num_channels
    - Err
    - ok_or
    - fill
    - set_8bit_pixel_run
    - u8::fill
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_rle_data(&mut self, buf: &mut [u8], image_type: ImageType)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2064
    functionDepth: 0
    functionLinenumber: 2064
    functionLinenumberEnd: 2069
    functionName: BmpDecoder::is_rle
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn is_rle(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2074
    functionDepth: 0
    functionLinenumber: 2074
    functionLinenumberEnd: 2090
    functionName: BmpDecoder::rows_decoded
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: RowsDecoded
    signature: pub fn rows_decoded(&self) -> RowsDecoded
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:2097,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:2098,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - result
    argTypes:
    - Result<u32, (u32, io::Error)>
    constantsTouched: []
    func_position:
      end: 2100
      start: 2093
    functionDepth: 0
    functionLinenumber: 2093
    functionLinenumberEnd: 2100
    functionName: BmpDecoder::finish_row_decode
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 4
    functionsReached:
    - Err
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn finish_row_decode(&mut self, result: Result<u32, (u32, io::Error)>)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:2113,1
    - Dst: BmpDecoder::read_image_data_impl
      Src: /src/image/src/codecs/bmp/decoder.rs:2114,1
    - Dst: ImageResult::map
      Src: /src/image/src/codecs/bmp/decoder.rs:2114,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:2117,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:2117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 2119
      start: 2111
    functionDepth: 15
    functionLinenumber: 2111
    functionLinenumberEnd: 2119
    functionName: BmpDecoder::read_image_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - into
    - BmpDecoder::read_image_data_impl
    - Ok
    - ImageResult::map
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn read_image_data(&mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::read_palettized_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2124,1
    - Dst: BmpDecoder::read_16_bit_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2125,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:2125,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2126,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2127,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2128,1
    - Dst: BmpDecoder::read_rle_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2129,1
    - Dst: BmpDecoder::read_rle_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2130,1
    - Dst: BmpDecoder::read_rle_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2131,1
    - Dst: BmpDecoder::read_16_bit_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2133,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:2134,1
    - Dst: DecoderError::BitfieldMasksMissing
      Src: /src/image/src/codecs/bmp/decoder.rs:2134,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:2134,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2138,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2141,1
    - Dst: BmpDecoder::read_32_bit_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2143,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:2144,1
    - Dst: DecoderError::BitfieldMasksMissing
      Src: /src/image/src/codecs/bmp/decoder.rs:2144,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:2144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 2147
      start: 2122
    functionDepth: 14
    functionLinenumber: 2122
    functionLinenumberEnd: 2147
    functionName: BmpDecoder::read_image_data_impl
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - BmpDecoder::read_32_bit_pixel_data
    - Err
    - Some
    - DecoderError::BitfieldMasksMissing
    - BmpDecoder::read_palettized_pixel_data
    - BmpDecoder::read_rle_data
    - into
    - BmpDecoder::read_full_byte_pixel_data
    - BmpDecoder::read_16_bit_pixel_data
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image_data_impl(&mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2151
    functionDepth: 0
    functionLinenumber: 2151
    functionLinenumberEnd: 2153
    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: 2163
      start: 2155
    functionDepth: 0
    functionLinenumber: 2155
    functionLinenumberEnd: 2163
    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: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:2166,1
    - Dst: clone
      Src: /src/image/src/codecs/bmp/decoder.rs:2166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2165
    functionDepth: 2
    functionLinenumber: 2165
    functionLinenumberEnd: 2167
    functionName: BmpDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - clone
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::read_image_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 2172
      start: 2169
    functionDepth: 16
    functionLinenumber: 2169
    functionLinenumberEnd: 2172
    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:2175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 2176
      start: 2174
    functionDepth: 3
    functionLinenumber: 2174
    functionLinenumberEnd: 2176
    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: read
      Src: /src/image/src/codecs/bmp/decoder.rs:2190,1
    - Dst: f64::from
      Src: /src/image/src/codecs/bmp/decoder.rs:2191,1
    - Dst: f64::from
      Src: /src/image/src/codecs/bmp/decoder.rs:2191,1
    - Dst: round
      Src: /src/image/src/codecs/bmp/decoder.rs:2191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2186
    functionDepth: 14
    functionLinenumber: 2186
    functionLinenumberEnd: 2198
    functionName: test::test_bitfield_len
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - f64::from
    - round
    - read
    linkageType: ''
    returnType: void
    signature: fn test_bitfield_len()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2223,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2223,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2201
    functionDepth: 18
    functionLinenumber: 2201
    functionLinenumberEnd: 2226
    functionName: test::read_rle_too_short
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - BmpDecoder::new
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn read_rle_too_short()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/codecs/bmp/decoder.rs:2240,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2240,1
    - Dst: std::fs::read
      Src: /src/image/src/codecs/bmp/decoder.rs:2241,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2241,1
    - Dst: BmpDecoder::new_without_file_header
      Src: /src/image/src/codecs/bmp/decoder.rs:2244,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2244,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2244,1
    - Dst: crate::DynamicImage::from_decoder
      Src: /src/image/src/codecs/bmp/decoder.rs:2245,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2229
    functionDepth: 17
    functionLinenumber: 2229
    functionLinenumberEnd: 2248
    functionName: test::test_no_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::unwrap
    - ImageResult::unwrap
    - crate::DynamicImage::from_decoder
    - std::fs::read
    - Cursor::new
    - crate::open
    - BmpDecoder::new_without_file_header
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_no_header()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: moxcms::ColorProfile::new_from_slice
      Src: /src/image/src/codecs/bmp/decoder.rs:2258,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - profile_data
    - source_file
    - expected_color_space
    - expected_profile_class
    argTypes:
    - '&[u8]'
    - '&str'
    - moxcms::DataColorSpace
    - moxcms::ProfileClass
    constantsTouched: []
    func_position:
      end: 2276
      start: 2252
    functionDepth: 0
    functionLinenumber: 2252
    functionLinenumberEnd: 2276
    functionName: test::validate_icc_profile
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - moxcms::ColorProfile::new_from_slice
    linkageType: ''
    returnType: void
    signature: 'fn validate_icc_profile(profile_data: &[u8],source_file: &str,expected_color_space:
      moxcms::DataColorSpace,expected_profile_class: moxcms::ProfileClass,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufReader::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2282,1
    - Dst: std::fs::File::open
      Src: /src/image/src/codecs/bmp/decoder.rs:2282,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2282,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2283,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2283,1
    - Dst: ImageResult::icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:2284,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2284,1
    - Dst: BufReader::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2289,1
    - Dst: std::fs::File::open
      Src: /src/image/src/codecs/bmp/decoder.rs:2289,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2289,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2290,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2290,1
    - Dst: ImageResult::icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:2291,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2291,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2293,1
    - Dst: validate_icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:2295,1
    - Dst: BufReader::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2303,1
    - Dst: std::fs::File::open
      Src: /src/image/src/codecs/bmp/decoder.rs:2303,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2303,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2304,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2304,1
    - Dst: ImageResult::icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:2305,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2305,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2307,1
    - Dst: validate_icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:2309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2279
    functionDepth: 18
    functionLinenumber: 2279
    functionLinenumberEnd: 2315
    functionName: test::test_icc_profile
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - BufReader::new
    - BmpDecoder::new
    - validate_icc_profile
    - unwrap
    - ImageResult::icc_profile
    - std::fs::File::open
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_icc_profile()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - err
    argTypes:
    - '&ImageError'
    constantsTouched: []
    func_position:
      end: 2399
      start: 2397
    functionDepth: 0
    functionLinenumber: 2397
    functionLinenumberEnd: 2399
    functionName: test::is_unexpected_eof
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn is_unexpected_eof(err: &ImageError) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/image/src/codecs/bmp/decoder.rs:2492,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2492,1
    - Dst: Result::len
      Src: /src/image/src/codecs/bmp/decoder.rs:2493,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2496,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2496,1
    - Dst: Result::clone
      Src: /src/image/src/codecs/bmp/decoder.rs:2496,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2496,1
    - Dst: total_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:2497,1
    - Dst: icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:2499,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2499,1
    - Dst: map
      Src: /src/image/src/codecs/bmp/decoder.rs:2499,1
    - Dst: Result::len
      Src: /src/image/src/codecs/bmp/decoder.rs:2499,1
    - Dst: read_image
      Src: /src/image/src/codecs/bmp/decoder.rs:2500,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2500,1
    - Dst: PartialReader::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2503,1
    - Dst: BmpDecoder::new_resumable
      Src: /src/image/src/codecs/bmp/decoder.rs:2504,1
    - Dst: set_available
      Src: /src/image/src/codecs/bmp/decoder.rs:2513,1
    - Dst: ImageResult::read_metadata
      Src: /src/image/src/codecs/bmp/decoder.rs:2514,1
    - Dst: is_unexpected_eof
      Src: /src/image/src/codecs/bmp/decoder.rs:2516,1
    - Dst: min
      Src: /src/image/src/codecs/bmp/decoder.rs:2530,1
    - Dst: ImageResult::icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:2552,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2552,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/bmp/decoder.rs:2561,1
    - Dst: set_available
      Src: /src/image/src/codecs/bmp/decoder.rs:2573,1
    - Dst: ImageResult::read_image_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2574,1
    - Dst: ImageResult::rows_decoded
      Src: /src/image/src/codecs/bmp/decoder.rs:2577,1
    - Dst: is_unexpected_eof
      Src: /src/image/src/codecs/bmp/decoder.rs:2596,1
    - Dst: ImageResult::rows_decoded
      Src: /src/image/src/codecs/bmp/decoder.rs:2598,1
    - Dst: RowsDecoded::rows
      Src: /src/image/src/codecs/bmp/decoder.rs:2599,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 128
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2660
      start: 2406
    functionDepth: 14
    functionLinenumber: 2406
    functionLinenumberEnd: 2660
    functionName: test::test_resumable_decoding
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - Result::len
    - unwrap
    - BmpDecoder::new_resumable
    - is_unexpected_eof
    - ImageResult::icc_profile
    - Result::clone
    - Cursor::new
    - ImageResult::read_image_data
    - min
    - ImageResult::read_metadata
    - std::fs::read
    - BmpDecoder::new
    - set_available
    - ImageResult::dimensions
    - total_bytes
    - PartialReader::new
    - RowsDecoded::rows
    - std::io::Result::unwrap
    - ImageResult::unwrap
    - map
    - read_image
    - ImageResult::rows_decoded
    - icc_profile
    linkageType: ''
    returnType: void
    signature: fn test_resumable_decoding()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/image/src/codecs/bmp/decoder.rs:2698,1
    - Dst: std::io::Result::unwrap_or_else
      Src: /src/image/src/codecs/bmp/decoder.rs:2698,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2702,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2702,1
    - Dst: ImageResult::unwrap_or_else
      Src: /src/image/src/codecs/bmp/decoder.rs:2702,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/bmp/decoder.rs:2706,1
    - Dst: std::io::Result::as_mut_slice
      Src: /src/image/src/codecs/bmp/decoder.rs:2706,1
    - Dst: ImageResult::unwrap_or_else
      Src: /src/image/src/codecs/bmp/decoder.rs:2706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2717
      start: 2673
    functionDepth: 18
    functionLinenumber: 2673
    functionLinenumberEnd: 2717
    functionName: test::test_strict_vs_lenient_spec_validation
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap_or_else
    - std::io::Result::as_mut_slice
    - std::fs::read
    - Cursor::new
    - BmpDecoder::new
    - ImageResult::read_image
    - std::io::Result::unwrap_or_else
    linkageType: ''
    returnType: void
    signature: fn test_strict_vs_lenient_spec_validation()
  - 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:
    - UnsupportedErrorKind::Color
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Err
    - into
    - Ok
    - Self::default
    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: Result::read_exact
      Src: /src/image/src/codecs/tga/header.rs:127,1
    - Dst: std::io::Result::as_slice
      Src: /src/image/src/codecs/tga/header.rs:128,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/tga/header.rs:131,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/tga/header.rs:132,1
    - Dst: Result::read_u8
      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: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:135,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/tga/header.rs:136,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:137,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:138,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:139,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:140,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/tga/header.rs:141,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/tga/header.rs:142,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/header.rs:147,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut dyn Read'
    constantsTouched: []
    func_position:
      end: 148
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 148
    functionName: Header::from_reader
    functionSourceFile: /src/image/src/codecs/tga/header.rs
    functionUses: 1
    functionsReached:
    - Result::read_exact
    - Result::read_u8
    - read_u16::<LittleEndian>
    - std::io::Result::as_slice
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn from_reader(reader: &mut dyn Read) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::io::Result::as_mut_slice
      Src: /src/image/src/codecs/tga/header.rs:153,1
    - Dst: Self::write_u8
      Src: /src/image/src/codecs/tga/header.rs:155,1
    - Dst: Self::write_u8
      Src: /src/image/src/codecs/tga/header.rs:156,1
    - Dst: Self::write_u8
      Src: /src/image/src/codecs/tga/header.rs:157,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:158,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:159,1
    - Dst: Self::write_u8
      Src: /src/image/src/codecs/tga/header.rs:160,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:161,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:162,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:163,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/codecs/tga/header.rs:164,1
    - Dst: Self::write_u8
      Src: /src/image/src/codecs/tga/header.rs:165,1
    - Dst: Self::write_u8
      Src: /src/image/src/codecs/tga/header.rs:166,1
    - Dst: '&mut dyn Write::write_all'
      Src: /src/image/src/codecs/tga/header.rs:170,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/header.rs:172,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 71
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut dyn Write'
    constantsTouched: []
    func_position:
      end: 173
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 173
    functionName: Header::write_to
    functionSourceFile: /src/image/src/codecs/tga/header.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::as_mut_slice
    - Self::write_u8
    - '&mut dyn Write::write_all'
    - write_u16::<LittleEndian>
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn write_to(&self, writer: &mut dyn Write) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::write_fmt
      Src: /src/image/src/codecs/jpeg/encoder.rs:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: EncoderError::fmt
    functionSourceFile: /src/image/src/codecs/jpeg/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:
    - Ok
    - write_all
    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:
    - Ok
    - write_all
    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: 4
    functionLinenumber: 88
    functionLinenumberEnd: 152
    functionName: TgaEncoder::run_length_encode
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 1
    functionsReached:
    - None::unwrap
    - Option::bits_per_pixel
    - usize::from
    - Vec::chunks
    - Some
    - std::io::Result::clear
    - TgaEncoder::write_raw_packet
    - std::io::Result::extend_from_slice
    - vec_try_with_capacity
    - Ok
    - TgaEncoder::write_rle_encoded_packet
    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: ImageResult::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: 16
    functionLinenumber: 164
    functionLinenumberEnd: 239
    functionName: TgaEncoder::encode
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 1
    functionsReached:
    - EncoderError::HeightInvalid
    - u8::swap
    - ImageResult::write_to
    - write_all
    - ImageType::new
    - EncoderError::WidthInvalid
    - Result::map_err
    - Header::from_pixel_info
    - ImageError::from
    - Vec::from
    - Option::bits_per_pixel
    - EncoderError::Empty
    - Vec::chunks_mut
    - TgaEncoder::run_length_encode
    - u16::try_from
    - Ok
    - Option::buffer_size
    - usize::from
    - Err
    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: 17
    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: 16
    functionLinenumber: 270
    functionLinenumberEnd: 296
    functionName: tests::test_image_width_too_large
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - "source()\n                    .unwrap()\n                    .downcast_ref::<EncoderError>"
    - usize::from
    - Option::unwrap
    - Vec::new
    - ImageError::source
    - unwrap
    - ImageResult::encode
    - TgaEncoder::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: 16
    functionLinenumber: 299
    functionLinenumberEnd: 325
    functionName: tests::test_image_height_too_large
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - "source()\n                    .unwrap()\n                    .downcast_ref::<EncoderError>"
    - usize::from
    - Option::unwrap
    - Vec::new
    - ImageError::source
    - unwrap
    - ImageResult::encode
    - TgaEncoder::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: 16
    functionLinenumber: 328
    functionLinenumberEnd: 352
    functionName: tests::test_compression_diff
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::expect
    - Vec::new
    - TgaEncoder::disable_rle
    - ImageResult::encode
    - TgaEncoder::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: 17
    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: 17
    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: 17
    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: 17
    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: 17
    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::height
    - Option::unwrap
    - to_vec
    - crate::open
    - round_trip_image
    - Vec::as_rgb8
    - Vec::width
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn round_trip_bw()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::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:
    - usize::checked_sub
    - get
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn get(&self, index: usize) -> Option<&[u8]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - value
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: e::x::p::a::n::d::_::r::g::b::1::5::_::t::o::_::r::g::b::2::4::unorm5_to_unorm8
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn unorm5_to_unorm8(x: u16) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/tga/decoder.rs:90,1
    - Dst: unorm5_to_unorm8
      Src: /src/image/src/codecs/tga/decoder.rs:92,1
    - Dst: unorm5_to_unorm8
      Src: /src/image/src/codecs/tga/decoder.rs:93,1
    - Dst: unorm5_to_unorm8
      Src: /src/image/src/codecs/tga/decoder.rs:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - data
    argTypes:
    - '[u8; 2]'
    constantsTouched: []
    func_position:
      end: 96
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 96
    functionName: expand_rgb15_to_rgb24
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 2
    functionsReached:
    - unorm5_to_unorm8
    - u16::from_le_bytes
    linkageType: ''
    returnType: '[u8; 3]'
    signature: 'fn expand_rgb15_to_rgb24(data: [u8; 2]) -> [u8; 3]'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Header::from_reader
      Src: /src/image/src/codecs/tga/decoder.rs:102,1
    - Dst: ImageType::new
      Src: /src/image/src/codecs/tga/decoder.rs:103,1
    - Dst: div_ceil
      Src: /src/image/src/codecs/tga/decoder.rs:106,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:110,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:110,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:110,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:111,1
    - Dst: ImageType::is_color_mapped
      Src: /src/image/src/codecs/tga/decoder.rs:116,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:118,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:118,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:118,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:119,1
    - Dst: contains
      Src: /src/image/src/codecs/tga/decoder.rs:122,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:123,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:123,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:123,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:124,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:128,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tga/decoder.rs:128,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tga/decoder.rs:129,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:130,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tga/decoder.rs:131,1
    - Dst: '&str::into'
      Src: /src/image/src/codecs/tga/decoder.rs:132,1
    - Dst: ImageType::is_color_mapped
      Src: /src/image/src/codecs/tga/decoder.rs:140,1
    - Dst: checked_sub
      Src: /src/image/src/codecs/tga/decoder.rs:145,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/tga/decoder.rs:145,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:148,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:148,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:149,1
    - Dst: ImageType::is_color
      Src: /src/image/src/codecs/tga/decoder.rs:157,1
    - Dst: Some
      Src: /src/image/src/codecs/tga/decoder.rs:168,1
    - Dst: Some
      Src: /src/image/src/codecs/tga/decoder.rs:175,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:178,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tga/decoder.rs:178,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tga/decoder.rs:179,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:180,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/tga/decoder.rs:181,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/tga/decoder.rs:181,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/tga/decoder.rs:191,1
    - Dst: contains
      Src: /src/image/src/codecs/tga/decoder.rs:196,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:197,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tga/decoder.rs:197,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tga/decoder.rs:198,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:199,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tga/decoder.rs:200,1
    - Dst: '&str::into'
      Src: /src/image/src/codecs/tga/decoder.rs:201,1
    - Dst: div_ceil
      Src: /src/image/src/codecs/tga/decoder.rs:206,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/decoder.rs:208,1
    - Dst: Result::read_exact_vec
      Src: /src/image/src/codecs/tga/decoder.rs:209,1
    - Dst: ImageType::is_color_mapped
      Src: /src/image/src/codecs/tga/decoder.rs:213,1
    - Dst: contains
      Src: /src/image/src/codecs/tga/decoder.rs:215,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/decoder.rs:216,1
    - Dst: as_chunks::<2>
      Src: /src/image/src/codecs/tga/decoder.rs:217,1
    - Dst: iter
      Src: /src/image/src/codecs/tga/decoder.rs:217,1
    - Dst: Self::extend_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:218,1
    - Dst: expand_rgb15_to_rgb24
      Src: /src/image/src/codecs/tga/decoder.rs:218,1
    - Dst: Some
      Src: /src/image/src/codecs/tga/decoder.rs:224,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/decoder.rs:232,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 197
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 246
      start: 100
    functionDepth: 13
    functionLinenumber: 100
    functionLinenumberEnd: 246
    functionName: TgaDecoder::new
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 3
    functionsReached:
    - Some
    - checked_sub
    - ImageType::is_color
    - expand_rgb15_to_rgb24
    - ImageError::Decoding
    - ok_or_else
    - div_ceil
    - Result::read_exact_vec
    - contains
    - UnsupportedErrorKind::GenericFeature
    - Self::extend_from_slice
    - Vec::new
    - Header::from_reader
    - ImageType::new
    - as_chunks::<2>
    - UnsupportedErrorKind::Color
    - into
    - DecodingError::new
    - Ok
    - Result::read_exact
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - ExtendedColorType::Unknown
    - Err
    - '&str::into'
    - iter
    - ImageType::is_color_mapped
    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:255,1
    - Dst: read_u8
      Src: /src/image/src/codecs/tga/decoder.rs:256,1
    - Dst: read_exact
      Src: /src/image/src/codecs/tga/decoder.rs:264,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:266,1
    - Dst: take
      Src: /src/image/src/codecs/tga/decoder.rs:266,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:270,1
    - Dst: min
      Src: /src/image/src/codecs/tga/decoder.rs:276,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/tga/decoder.rs:276,1
    - Dst: read_exact
      Src: /src/image/src/codecs/tga/decoder.rs:278,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/decoder.rs:283,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 70
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 284
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 284
    functionName: TgaDecoder::read_encoded_data
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 1
    functionsReached:
    - take
    - read_exact
    - std::io::Result::len
    - Option::copy_from_slice
    - read_u8
    - min
    - Ok
    - chunks_exact_mut
    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:294,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:294,1
    - Dst: bool::chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:296,1
    - Dst: ImageResult::get
      Src: /src/image/src/codecs/tga/decoder.rs:298,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:299,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:301,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:301,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:301,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:302,1
    - Dst: as_chunks::<2>
      Src: /src/image/src/codecs/tga/decoder.rs:308,1
    - Dst: iter
      Src: /src/image/src/codecs/tga/decoder.rs:308,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:309,1
    - Dst: bool::chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:309,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/tga/decoder.rs:310,1
    - Dst: ImageResult::get
      Src: /src/image/src/codecs/tga/decoder.rs:311,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:312,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:314,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:314,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:314,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:315,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/decoder.rs:324,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 62
    argCount: 3
    argNames:
    - input
    - output
    - color_map
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&ColorMap'
    constantsTouched: []
    func_position:
      end: 325
      start: 287
    functionDepth: 13
    functionLinenumber: 287
    functionLinenumberEnd: 325
    functionName: TgaDecoder::expand_color_map
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 1
    functionsReached:
    - ImageResult::get
    - bool::chunks_exact_mut
    - Ok
    - u16::from_le_bytes
    - Err
    - iter
    - Option::copy_from_slice
    - as_chunks::<2>
    - '&[u8]::iter'
    - DecodingError::new
    - into
    - ImageError::Decoding
    - zip
    linkageType: ''
    returnType: ImageResult
    signature: 'fn expand_color_map(&self,input: &[u8],output: &mut [u8],color_map:
      &ColorMap,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:335,1
    - Dst: bytes_per_pixel
      Src: /src/image/src/codecs/tga/decoder.rs:335,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:335,1
    - Dst: Option::swap
      Src: /src/image/src/codecs/tga/decoder.rs:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - pixels
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 341
      start: 331
    functionDepth: 12
    functionLinenumber: 331
    functionLinenumberEnd: 341
    functionName: TgaDecoder::reverse_encoding_in_output
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 1
    functionsReached:
    - into
    - bytes_per_pixel
    - Option::swap
    - ImageResult::chunks_exact_mut
    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:350,1
    - Dst: ImageResult::split_at_mut
      Src: /src/image/src/codecs/tga/decoder.rs:358,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:360,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:360,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:362,1
    - Dst: rev
      Src: /src/image/src/codecs/tga/decoder.rs:362,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/tga/decoder.rs:364,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:364,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/tga/decoder.rs:364,1
    - Dst: std::mem::swap
      Src: /src/image/src/codecs/tga/decoder.rs:365,1
    - Dst: ImageResult::chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:374,1
    - Dst: Result::split_at_mut
      Src: /src/image/src/codecs/tga/decoder.rs:376,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:377,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:377,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:379,1
    - Dst: rev
      Src: /src/image/src/codecs/tga/decoder.rs:379,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/tga/decoder.rs:381,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:381,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/tga/decoder.rs:381,1
    - Dst: std::mem::swap
      Src: /src/image/src/codecs/tga/decoder.rs:382,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 85
    argCount: 1
    argNames:
    - pixels
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 387
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 387
    functionName: TgaDecoder::fixup_orientation
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 1
    functionsReached:
    - ImageResult::split_at_mut
    - Result::split_at_mut
    - TgaOrientation::from_image_desc_byte
    - iter_mut
    - std::mem::swap
    - rev
    - ImageResult::chunks_exact_mut
    - zip
    - chunks_exact_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: 393
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 393
    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: 397
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 397
    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:400,1
    - Dst: TgaDecoder::color_type
      Src: /src/image/src/codecs/tga/decoder.rs:401,1
    - Dst: ColorType::into
      Src: /src/image/src/codecs/tga/decoder.rs:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 12
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: TgaDecoder::original_color_type
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached:
    - unwrap_or_else
    - TgaDecoder::color_type
    - ColorType::into
    linkageType: ''
    returnType: ExtendedColorType
    signature: fn original_color_type(&self) -> ExtendedColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytes_per_pixel
      Src: /src/image/src/codecs/tga/decoder.rs:411,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:411,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:412,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tga/decoder.rs:412,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tga/decoder.rs:413,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:414,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tga/decoder.rs:415,1
    - Dst: '&str::into'
      Src: /src/image/src/codecs/tga/decoder.rs:416,1
    - Dst: is_encoded
      Src: /src/image/src/codecs/tga/decoder.rs:425,1
    - Dst: TgaDecoder::read_encoded_data
      Src: /src/image/src/codecs/tga/decoder.rs:426,1
    - Dst: read_exact
      Src: /src/image/src/codecs/tga/decoder.rs:428,1
    - Dst: TgaDecoder::fixup_orientation
      Src: /src/image/src/codecs/tga/decoder.rs:431,1
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/codecs/tga/decoder.rs:438,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:439,1
    - Dst: TgaDecoder::expand_color_map
      Src: /src/image/src/codecs/tga/decoder.rs:441,1
    - Dst: Some
      Src: /src/image/src/codecs/tga/decoder.rs:442,1
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/codecs/tga/decoder.rs:445,1
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:446,1
    - Dst: as_chunks::<2>
      Src: /src/image/src/codecs/tga/decoder.rs:448,1
    - Dst: iter
      Src: /src/image/src/codecs/tga/decoder.rs:448,1
    - Dst: as_chunks_mut::<3>
      Src: /src/image/src/codecs/tga/decoder.rs:449,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/tga/decoder.rs:449,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:450,1
    - Dst: expand_rgb15_to_rgb24
      Src: /src/image/src/codecs/tga/decoder.rs:451,1
    - Dst: TgaDecoder::reverse_encoding_in_output
      Src: /src/image/src/codecs/tga/decoder.rs:455,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/decoder.rs:457,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 103
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 458
      start: 404
    functionDepth: 12
    functionLinenumber: 404
    functionLinenumberEnd: 458
    functionName: TgaDecoder::read_image
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached:
    - extend_from_slice
    - TgaDecoder::read_encoded_data
    - Some
    - iter_mut
    - expand_rgb15_to_rgb24
    - iter
    - UnsupportedErrorKind::GenericFeature
    - TgaDecoder::expand_color_map
    - as_chunks::<2>
    - as_chunks_mut::<3>
    - is_encoded
    - read_exact
    - bytes_per_pixel
    - into
    - Ok
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Err
    - '&str::into'
    - TgaDecoder::fixup_orientation
    - TgaDecoder::reverse_encoding_in_output
    - utils::vec_try_with_capacity
    - zip
    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:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 462
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 462
    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:
    - PnmSubtype::magic_constant
    - Ok
    - '&mut dyn io::Write::write_all'
    - PnmHeader::subtype
    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: 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: 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:
    - map
    - collect
    - FlatSamples::U16
    - Vec::into
    - u16::from_ne_bytes
    - PnmEncoder::encode_impl
    - ImageResult::chunks
    - bytemuck::try_cast_slice
    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:
    - UnsupportedErrorKind::Color
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Self::write_with_header
    - Err
    - u32::from
    - HeaderRecord::Arbitrary
    - Some
    - into
    - bool::channel_count
    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:
    - UnsupportedErrorKind::Color
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Self::write_with_header
    - Err
    - HeaderRecord::Pixmap
    - HeaderRecord::Bitmap
    - into
    - PnmEncoder::write_dynamic_header
    - HeaderRecord::Graymap
    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:
    - check_sample_values
    - write_image
    - Range::check_header_dimensions
    - write_header
    - check_header_color
    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: 16
    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:
    - bool::channel_count
    - Err
    - Vec::len
    - Some
    - DynamicImage::checked_mul
    - ImageError::Parameter
    - ParameterError::from_kind
    - usize::checked_mul
    - Ok
    - 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:
    - Err
    - width
    - ImageError::Parameter
    - ParameterError::from_kind
    - Ok
    - height
    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:
    - Err
    - u32::from
    - ParameterErrorKind::Generic
    - '&str::to_owned'
    - ImageError::Parameter
    - ParameterError::from_kind
    - bool::channel_count
    - Ok
    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:
    - UnsupportedErrorKind::Color
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Ok
    - Err
    - Vec::all_smaller
    - UnsupportedErrorKind::GenericFeature
    - '&str::to_owned'
    - into
    - Vec::encoding_for
    - CheckedImageBuffer::check
    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:
    - '&PnmHeader::write'
    - Ok
    - 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: 16
    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: 16
    functionLinenumber: 592
    functionLinenumberEnd: 621
    functionName: SampleWriter::write_pbm_bits
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::chunks
    - as_slice
    - push
    - V::default
    - write_all
    - flush
    - ImageResult::chunks
    - clear
    - utils::vec_try_with_capacity
    - get
    linkageType: ''
    returnType: io::Result
    signature: 'fn write_pbm_bits<V>(self, samples: &[V], width: u32) -> io::Result<()>/*
      Default gives 0 for all primitives. TODO: replace this with `Zeroable` once
      it hits stable */whereV: Default + Eq + Copy,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/codecs/pnm/encoder.rs: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: 2
    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:
    - iter
    - all
    - u32::from
    linkageType: ''
    returnType: bool
    signature: 'fn all_smaller(&self, max_val: u32) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - header
    argTypes:
    - '&HeaderRecord'
    constantsTouched: []
    func_position:
      end: 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: 17
    functionLinenumber: 691
    functionLinenumberEnd: 728
    functionName: TupleEncoding::write_image
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::iter
    - write_u16::<BigEndian>
    - SampleWriter
    - map_err
    - write_samples_ascii
    - try_for_each
    - write_pbm_bits
    - '&mut dyn Write::write_all'
    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:
    - crate::DynamicImage::new_luma8
    - Self::with_subtype
    - ImageResult::expect
    - DynamicImage::write_with_encoder
    - PnmSubtype::Bitmap
    - PnmEncoder::new
    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:
    - crate::ImageBuffer::from_pixel
    - Self::with_subtype
    - expect
    - PnmSubtype::Bitmap
    - crate::DynamicImage::ImageLuma8
    - write_with_encoder
    - PnmEncoder::new
    - crate::Luma
    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:
    - crate::ImageBuffer::from_pixel
    - Self::with_subtype
    - expect_err
    - PnmSubtype::Bitmap
    - crate::DynamicImage::ImageLuma8
    - write_with_encoder
    - PnmEncoder::new
    - crate::Luma
    linkageType: ''
    returnType: void
    signature: fn pbm_verifies_pixels()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::write_str
      Src: /src/image/src/codecs/pnm/decoder.rs:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 194
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 194
    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: fmt
      Src: /src/image/src/codecs/pnm/decoder.rs:211,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/pnm/decoder.rs:212,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/pnm/decoder.rs:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 215
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 215
    functionName: ErrorDataSource::fmt
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - fmt
    - Result::write_str
    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:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 240
    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: R::read_magic_constant
      Src: /src/image/src/codecs/pnm/decoder.rs:270,1
    - Dst: PnmSubtype::Bitmap
      Src: /src/image/src/codecs/pnm/decoder.rs:273,1
    - Dst: PnmSubtype::Graymap
      Src: /src/image/src/codecs/pnm/decoder.rs:274,1
    - Dst: PnmSubtype::Pixmap
      Src: /src/image/src/codecs/pnm/decoder.rs:275,1
    - Dst: PnmSubtype::Bitmap
      Src: /src/image/src/codecs/pnm/decoder.rs:276,1
    - Dst: PnmSubtype::Graymap
      Src: /src/image/src/codecs/pnm/decoder.rs:277,1
    - Dst: PnmSubtype::Pixmap
      Src: /src/image/src/codecs/pnm/decoder.rs:278,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:280,1
    - Dst: DecoderError::PnmMagicInvalid
      Src: /src/image/src/codecs/pnm/decoder.rs:280,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:280,1
    - Dst: PnmDecoder::read_bitmap_header
      Src: /src/image/src/codecs/pnm/decoder.rs:284,1
    - Dst: PnmDecoder::read_graymap_header
      Src: /src/image/src/codecs/pnm/decoder.rs:285,1
    - Dst: PnmDecoder::read_pixmap_header
      Src: /src/image/src/codecs/pnm/decoder.rs:286,1
    - Dst: PnmDecoder::read_arbitrary_header
      Src: /src/image/src/codecs/pnm/decoder.rs:287,1
    - Dst: utils::check_dimension_overflow
      Src: /src/image/src/codecs/pnm/decoder.rs:290,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/pnm/decoder.rs:291,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/pnm/decoder.rs:292,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/pnm/decoder.rs:293,1
    - Dst: Option::bytes_per_pixel
      Src: /src/image/src/codecs/pnm/decoder.rs:293,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:295,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/decoder.rs:295,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/decoder.rs:296,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:297,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/pnm/decoder.rs:298,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:307,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 1
    argNames:
    - buffered_read
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 308
      start: 269
    functionDepth: 12
    functionLinenumber: 269
    functionLinenumberEnd: 308
    functionName: PnmDecoder::new
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 22
    functionsReached:
    - PnmSubtype::Graymap
    - PnmDecoder::read_pixmap_header
    - utils::check_dimension_overflow
    - PnmDecoder::read_bitmap_header
    - ImageResult::color_type
    - UnsupportedErrorKind::GenericFeature
    - Option::bytes_per_pixel
    - R::read_magic_constant
    - ImageResult::dimensions
    - DecoderError::PnmMagicInvalid
    - into
    - Ok
    - PnmDecoder::read_graymap_header
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Err
    - PnmSubtype::Pixmap
    - PnmDecoder::read_arbitrary_header
    - PnmSubtype::Bitmap
    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: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    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: 318
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 318
    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:321,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:322,1
    - Dst: HeaderRecord::Bitmap
      Src: /src/image/src/codecs/pnm/decoder.rs:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - reader
    - encoding
    argTypes:
    - R
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 330
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 330
    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:333,1
    - Dst: ImageResult::tuple_type
      Src: /src/image/src/codecs/pnm/decoder.rs:334,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:335,1
    - Dst: HeaderRecord::Graymap
      Src: /src/image/src/codecs/pnm/decoder.rs:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - reader
    - encoding
    argTypes:
    - R
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 343
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 343
    functionName: PnmDecoder::read_graymap_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - ImageResult::tuple_type
    - Result::read_graymap_header
    - Ok
    - HeaderRecord::Graymap
    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:346,1
    - Dst: ImageResult::tuple_type
      Src: /src/image/src/codecs/pnm/decoder.rs:347,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:348,1
    - Dst: HeaderRecord::Pixmap
      Src: /src/image/src/codecs/pnm/decoder.rs:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - reader
    - encoding
    argTypes:
    - R
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 356
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 356
    functionName: PnmDecoder::read_pixmap_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::read_pixmap_header
    - ImageResult::tuple_type
    - HeaderRecord::Pixmap
    - Ok
    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:359,1
    - Dst: ImageResult::tuple_type
      Src: /src/image/src/codecs/pnm/decoder.rs:360,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:361,1
    - Dst: HeaderRecord::Arbitrary
      Src: /src/image/src/codecs/pnm/decoder.rs:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 369
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 369
    functionName: PnmDecoder::read_arbitrary_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - ImageResult::tuple_type
    - HeaderRecord::Arbitrary
    - Ok
    - Result::read_arbitrary_header
    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:376,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 378
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 378
    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: HeaderReader::bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:385,1
    - Dst: '&[u8]::scan'
      Src: /src/image/src/codecs/pnm/decoder.rs:385,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:387,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:387,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:393,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:393,1
    - Dst: filter
      Src: /src/image/src/codecs/pnm/decoder.rs:401,1
    - Dst: io::Result::is_ascii
      Src: /src/image/src/codecs/pnm/decoder.rs:408,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:409,1
    - Dst: DecoderError::NonAsciiByteInHeader
      Src: /src/image/src/codecs/pnm/decoder.rs:409,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:409,1
    - Dst: u32::from
      Src: /src/image/src/codecs/pnm/decoder.rs:413,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:415,1
    - Dst: DecoderError::InvalidDigit
      Src: /src/image/src/codecs/pnm/decoder.rs:415,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:415,1
    - Dst: ImageResult::checked_mul
      Src: /src/image/src/codecs/pnm/decoder.rs:418,1
    - Dst: ok_or
      Src: /src/image/src/codecs/pnm/decoder.rs:418,1
    - Dst: DecoderError::Overflow
      Src: /src/image/src/codecs/pnm/decoder.rs:420,1
    - Dst: ImageResult::checked_add
      Src: /src/image/src/codecs/pnm/decoder.rs:421,1
    - Dst: ok_or
      Src: /src/image/src/codecs/pnm/decoder.rs:421,1
    - Dst: DecoderError::Overflow
      Src: /src/image/src/codecs/pnm/decoder.rs:423,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:431,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/pnm/decoder.rs:431,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:431,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:434,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 382
    functionDepth: 12
    functionLinenumber: 382
    functionLinenumberEnd: 435
    functionName: HeaderReader::read_next_u32
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 2
    functionsReached:
    - DecoderError::InvalidDigit
    - HeaderReader::bytes
    - ImageResult::checked_add
    - Err
    - io::Result::is_ascii
    - DecoderError::NonAsciiByteInHeader
    - u32::from
    - Some
    - DecoderError::Overflow
    - ok_or
    - ImageError::IoError
    - ImageResult::checked_mul
    - into
    - Ok
    - '&[u8]::scan'
    - filter
    linkageType: ''
    returnType: ImageResult
    signature: fn read_next_u32(&mut self) -> ImageResult<u32>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/pnm/decoder.rs:438,1
    - Dst: HeaderReader::read
      Src: /src/image/src/codecs/pnm/decoder.rs:441,1
    - Dst: '&RgbaImage::push'
      Src: /src/image/src/codecs/pnm/decoder.rs:444,1
    - Dst: String::from_utf8
      Src: /src/image/src/codecs/pnm/decoder.rs:447,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:447,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/pnm/decoder.rs:448,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/pnm/decoder.rs:448,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:448,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 449
      start: 437
    functionDepth: 13
    functionLinenumber: 437
    functionLinenumberEnd: 449
    functionName: HeaderReader::read_next_line
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - map_err
    - Vec::new
    - into
    - '&RgbaImage::push'
    - DecodingError::new
    - String::from_utf8
    - ImageError::Decoding
    - HeaderReader::read
    linkageType: ''
    returnType: ImageResult
    signature: fn read_next_line(&mut self) -> ImageResult<String>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HeaderReader::read_next_u32
      Src: /src/image/src/codecs/pnm/decoder.rs:452,1
    - Dst: HeaderReader::read_next_u32
      Src: /src/image/src/codecs/pnm/decoder.rs:453,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 459
      start: 451
    functionDepth: 13
    functionLinenumber: 451
    functionLinenumberEnd: 459
    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:462,1
    - Dst: ImageResult::map
      Src: /src/image/src/codecs/pnm/decoder.rs:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 475
      start: 461
    functionDepth: 14
    functionLinenumber: 461
    functionLinenumberEnd: 475
    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:478,1
    - Dst: HeaderReader::read_next_u32
      Src: /src/image/src/codecs/pnm/decoder.rs:479,1
    - Dst: HeaderReader::read_next_u32
      Src: /src/image/src/codecs/pnm/decoder.rs:480,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:481,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 487
      start: 477
    functionDepth: 13
    functionLinenumber: 477
    functionLinenumberEnd: 487
    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:495,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:496,1
    - Dst: DecoderError::HeaderLineDuplicated
      Src: /src/image/src/codecs/pnm/decoder.rs:496,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:496,1
    - Dst: Option::trim
      Src: /src/image/src/codecs/pnm/decoder.rs:498,1
    - Dst: parse
      Src: /src/image/src/codecs/pnm/decoder.rs:498,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:498,1
    - Dst: DecoderError::UnparsableValue
      Src: /src/image/src/codecs/pnm/decoder.rs:499,1
    - Dst: ErrorDataSource::Line
      Src: /src/image/src/codecs/pnm/decoder.rs:499,1
    - Dst: Option::to_owned
      Src: /src/image/src/codecs/pnm/decoder.rs:499,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:501,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:502,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - line_val
    - rest
    - line
    argTypes:
    - '&mut Option<u32>'
    - '&str'
    - PnmHeaderLine
    constantsTouched: []
    func_position:
      end: 504
      start: 490
    functionDepth: 12
    functionLinenumber: 490
    functionLinenumberEnd: 504
    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:
    - '&mut Option<u32>::is_some'
    - Option::to_owned
    - map_err
    - parse
    - Err
    - DecoderError::UnparsableValue
    - DecoderError::HeaderLineDuplicated
    - Some
    - Option::trim
    - ErrorDataSource::Line
    - into
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn parse_single_value_line(line_val: &mut Option<u32>,rest: &str,line:
      PnmHeaderLine,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HeaderReader::bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:507,1
    - Dst: '&[u8]::next'
      Src: /src/image/src/codecs/pnm/decoder.rs:507,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:508,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/pnm/decoder.rs:508,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:508,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:509,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/pnm/decoder.rs:509,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:511,1
    - Dst: DecoderError::NotNewlineAfterP7Magic
      Src: /src/image/src/codecs/pnm/decoder.rs:511,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:511,1
    - Dst: HeaderReader::read_next_line
      Src: /src/image/src/codecs/pnm/decoder.rs:521,1
    - Dst: std::io::Result::is_empty
      Src: /src/image/src/codecs/pnm/decoder.rs:522,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:523,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:523,1
    - Dst: std::io::Result::as_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:525,1
    - Dst: std::io::Result::is_ascii
      Src: /src/image/src/codecs/pnm/decoder.rs:528,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:529,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:529,1
    - Dst: std::io::Result::trim_left
      Src: /src/image/src/codecs/pnm/decoder.rs:532,1
    - Dst: split_at
      Src: /src/image/src/codecs/pnm/decoder.rs:532,1
    - Dst: std::io::Result::find
      Src: /src/image/src/codecs/pnm/decoder.rs:534,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/pnm/decoder.rs:534,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/pnm/decoder.rs:534,1
    - Dst: parse_single_value_line
      Src: /src/image/src/codecs/pnm/decoder.rs:537,1
    - Dst: parse_single_value_line
      Src: /src/image/src/codecs/pnm/decoder.rs:538,1
    - Dst: parse_single_value_line
      Src: /src/image/src/codecs/pnm/decoder.rs:539,1
    - Dst: parse_single_value_line
      Src: /src/image/src/codecs/pnm/decoder.rs:540,1
    - Dst: Option::trim
      Src: /src/image/src/codecs/pnm/decoder.rs:542,1
    - Dst: None::is_some
      Src: /src/image/src/codecs/pnm/decoder.rs:543,1
    - Dst: None::take
      Src: /src/image/src/codecs/pnm/decoder.rs:544,1
    - Dst: map
      Src: /src/image/src/codecs/pnm/decoder.rs:544,1
    - Dst: DynamicImage::push
      Src: /src/image/src/codecs/pnm/decoder.rs:545,1
    - Dst: DynamicImage::push_str
      Src: /src/image/src/codecs/pnm/decoder.rs:546,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:551,1
    - Dst: to_string
      Src: /src/image/src/codecs/pnm/decoder.rs:551,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:554,1
    - Dst: DecoderError::HeaderLineUnknown
      Src: /src/image/src/codecs/pnm/decoder.rs:554,1
    - Dst: to_string
      Src: /src/image/src/codecs/pnm/decoder.rs:554,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:554,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:559,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:559,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:570,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:572,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: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:576,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:577,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:578,1
    - Dst: ArbitraryTuplType::Custom
      Src: /src/image/src/codecs/pnm/decoder.rs:578,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:581,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 160
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 588
      start: 489
    functionDepth: 12
    functionLinenumber: 489
    functionLinenumberEnd: 588
    functionName: HeaderReader::read_arbitrary_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ArbitraryTuplType::Custom
    - Some
    - parse_single_value_line
    - DynamicImage::push_str
    - HeaderReader::read_next_line
    - to_string
    - std::io::Result::find
    - HeaderReader::bytes
    - std::io::Result::is_empty
    - split_at
    - DynamicImage::push
    - std::io::Result::is_ascii
    - std::io::Result::as_bytes
    - DecoderError::NotNewlineAfterP7Magic
    - None::take
    - into
    - unwrap_or
    - Ok
    - '&[u8]::next'
    - std::io::Result::trim_left
    - None::is_some
    - map
    - Err
    - std::io::Result::len
    - Option::trim
    - DecoderError::HeaderLineUnknown
    - ImageError::IoError
    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:595,1
    - Dst: height
      Src: /src/image/src/codecs/pnm/decoder.rs:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 596
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 596
    functionName: PnmDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - width
    - height
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 612
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 612
    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: 628
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 628
    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:633,1
    - Dst: read_samples::<BWBit>
      Src: /src/image/src/codecs/pnm/decoder.rs:634,1
    - Dst: read_samples::<BWBit>
      Src: /src/image/src/codecs/pnm/decoder.rs:635,1
    - Dst: read_samples::<U8>
      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::<U16>
      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::<U8>
      Src: /src/image/src/codecs/pnm/decoder.rs:640,1
    - Dst: read_samples::<U8>
      Src: /src/image/src/codecs/pnm/decoder.rs:641,1
    - Dst: read_samples::<U16>
      Src: /src/image/src/codecs/pnm/decoder.rs:642,1
    - Dst: read_samples::<U16>
      Src: /src/image/src/codecs/pnm/decoder.rs:643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 645
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 645
    functionName: PnmDecoder::read_image
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - read_samples::<PbmBit>
    - read_samples::<U8>
    - read_samples::<U16>
    - read_samples::<BWBit>
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(mut self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 649
      start: 647
    functionDepth: 3
    functionLinenumber: 647
    functionLinenumberEnd: 649
    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:654,1
    - Dst: PnmSubtype::sample_encoding
      Src: /src/image/src/codecs/pnm/decoder.rs:654,1
    - Dst: S::from_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:656,1
    - Dst: width
      Src: /src/image/src/codecs/pnm/decoder.rs:659,1
    - Dst: height
      Src: /src/image/src/codecs/pnm/decoder.rs:660,1
    - Dst: S::from_ascii
      Src: /src/image/src/codecs/pnm/decoder.rs:665,1
    - Dst: maximal_sample
      Src: /src/image/src/codecs/pnm/decoder.rs:670,1
    - Dst: pow
      Src: /src/image/src/codecs/pnm/decoder.rs:671,1
    - Dst: S::sample_size
      Src: /src/image/src/codecs/pnm/decoder.rs:671,1
    - Dst: S::sample_size
      Src: /src/image/src/codecs/pnm/decoder.rs:676,1
    - Dst: std::io::Result::iter_mut
      Src: /src/image/src/codecs/pnm/decoder.rs:677,1
    - Dst: f32::from
      Src: /src/image/src/codecs/pnm/decoder.rs:678,1
    - Dst: round
      Src: /src/image/src/codecs/pnm/decoder.rs:678,1
    - Dst: S::sample_size
      Src: /src/image/src/codecs/pnm/decoder.rs:680,1
    - Dst: as_chunks_mut::<2>
      Src: /src/image/src/codecs/pnm/decoder.rs:681,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/pnm/decoder.rs:681,1
    - Dst: f32::from
      Src: /src/image/src/codecs/pnm/decoder.rs:682,1
    - Dst: u16::from_ne_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:682,1
    - Dst: round
      Src: /src/image/src/codecs/pnm/decoder.rs:682,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/pnm/decoder.rs:683,1
    - Dst: DynamicImage::to_ne_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:683,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:688,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 79
    argCount: 2
    argNames:
    - components
    - buf
    argTypes:
    - u32
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 689
      start: 653
    functionDepth: 18
    functionLinenumber: 653
    functionLinenumberEnd: 689
    functionName: PnmDecoder::read_samples
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::subtype
    - S::sample_size
    - DynamicImage::to_ne_bytes
    - S::from_ascii
    - std::io::Result::iter_mut
    - pow
    - width
    - f32::from
    - iter_mut
    - maximal_sample
    - Option::copy_from_slice
    - S::from_bytes
    - u16::from_ne_bytes
    - as_chunks_mut::<2>
    - PnmSubtype::sample_encoding
    - round
    - Ok
    - height
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_samples<S: Sample>(&mut self, components: u32, buf: &mut [u8])
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: subtype
      Src: /src/image/src/codecs/pnm/decoder.rs:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 694
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 694
    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:703,1
    - Dst: '&[u8]::skip_while'
      Src: /src/image/src/codecs/pnm/decoder.rs:703,1
    - Dst: DynamicImage::as_ref
      Src: /src/image/src/codecs/pnm/decoder.rs:705,1
    - Dst: FlatSamples::ok
      Src: /src/image/src/codecs/pnm/decoder.rs:705,1
    - Dst: bool::is_some_and
      Src: /src/image/src/codecs/pnm/decoder.rs:705,1
    - Dst: take_while
      Src: /src/image/src/codecs/pnm/decoder.rs:703,1
    - Dst: DynamicImage::as_ref
      Src: /src/image/src/codecs/pnm/decoder.rs:706,1
    - Dst: FlatSamples::ok
      Src: /src/image/src/codecs/pnm/decoder.rs:706,1
    - Dst: bool::is_some_and
      Src: /src/image/src/codecs/pnm/decoder.rs:706,1
    - Dst: is_separator
      Src: /src/image/src/codecs/pnm/decoder.rs:706,1
    - Dst: u16::from
      Src: /src/image/src/codecs/pnm/decoder.rs:710,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:711,1
    - Dst: DecoderError::InvalidDigit
      Src: /src/image/src/codecs/pnm/decoder.rs:711,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:711,1
    - Dst: DynamicImage::checked_mul
      Src: /src/image/src/codecs/pnm/decoder.rs:713,1
    - Dst: ok_or
      Src: /src/image/src/codecs/pnm/decoder.rs:713,1
    - Dst: DecoderError::Overflow
      Src: /src/image/src/codecs/pnm/decoder.rs:715,1
    - Dst: DynamicImage::checked_add
      Src: /src/image/src/codecs/pnm/decoder.rs:716,1
    - Dst: ok_or
      Src: /src/image/src/codecs/pnm/decoder.rs:716,1
    - Dst: DecoderError::Overflow
      Src: /src/image/src/codecs/pnm/decoder.rs:718,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:723,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:723,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:726,1
    - Dst: T::try_from
      Src: /src/image/src/codecs/pnm/decoder.rs:726,1
    - Dst: Result::or
      Src: /src/image/src/codecs/pnm/decoder.rs:726,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:726,1
    - Dst: DecoderError::Overflow
      Src: /src/image/src/codecs/pnm/decoder.rs:726,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 68
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut dyn Read'
    constantsTouched: []
    func_position:
      end: 727
      start: 697
    functionDepth: 16
    functionLinenumber: 697
    functionLinenumberEnd: 727
    functionName: read_separated_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - DynamicImage::as_ref
    - DecoderError::InvalidDigit
    - u16::from
    - is_separator
    - DynamicImage::checked_add
    - '&[u8]::skip_while'
    - Result::bytes
    - Err
    - Result::or
    - T::try_from
    - ok_or
    - DynamicImage::checked_mul
    - FlatSamples::ok
    - take_while
    - into
    - bool::is_some_and
    - Ok
    - DecoderError::Overflow
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_separated_ascii<T: TryFrom<u16>>(reader: &mut dyn Read) ->
      ImageResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/pnm/decoder.rs:738,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:739,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - reader
    - output_buf
    - _width
    - _height
    - _components
    argTypes:
    - '&mut dyn Read'
    - '&mut [u8]'
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 740
      start: 731
    functionDepth: 2
    functionLinenumber: 731
    functionLinenumberEnd: 740
    functionName: U8::from_bytes
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::read_exact
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_bytes(reader: &mut dyn Read,output_buf: &mut [u8],_width:
      u32,_height: u32,_components: u32,) -> 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: 17
    functionLinenumber: 742
    functionLinenumberEnd: 747
    functionName: U8::from_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - read_separated_ascii
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_ascii(reader: &mut dyn Read, output_buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/pnm/decoder.rs:760,1
    - Dst: as_chunks_mut::<2>
      Src: /src/image/src/codecs/pnm/decoder.rs:761,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/pnm/decoder.rs:761,1
    - Dst: u16::from_be_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:762,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/pnm/decoder.rs:763,1
    - Dst: DynamicImage::to_ne_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:763,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:765,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 5
    argNames:
    - reader
    - output_buf
    - _width
    - _height
    - _components
    argTypes:
    - '&mut dyn Read'
    - '&mut [u8]'
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 766
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 766
    functionName: U16::from_bytes
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Result::read_exact
    - DynamicImage::to_ne_bytes
    - iter_mut
    - u16::from_be_bytes
    - Option::copy_from_slice
    - as_chunks_mut::<2>
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_bytes(reader: &mut dyn Read,output_buf: &mut [u8],_width:
      u32,_height: u32,_components: u32,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_chunks_mut::<2>
      Src: /src/image/src/codecs/pnm/decoder.rs:769,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/pnm/decoder.rs:769,1
    - Dst: read_separated_ascii::<u16>
      Src: /src/image/src/codecs/pnm/decoder.rs:770,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/pnm/decoder.rs:771,1
    - Dst: DynamicImage::to_ne_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:771,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:773,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - reader
    - output_buf
    argTypes:
    - '&mut dyn Read'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 774
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 774
    functionName: U16::from_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - read_separated_ascii::<u16>
    - DynamicImage::to_ne_bytes
    - iter_mut
    - Option::copy_from_slice
    - as_chunks_mut::<2>
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_ascii(reader: &mut dyn Read, output_buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::try_into
      Src: /src/image/src/codecs/pnm/decoder.rs:792,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:792,1
    - Dst: DecoderError::Overflow
      Src: /src/image/src/codecs/pnm/decoder.rs:794,1
    - Dst: u32::try_into
      Src: /src/image/src/codecs/pnm/decoder.rs:795,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:795,1
    - Dst: DecoderError::Overflow
      Src: /src/image/src/codecs/pnm/decoder.rs:797,1
    - Dst: u32::div_ceil
      Src: /src/image/src/codecs/pnm/decoder.rs:800,1
    - Dst: u32::checked_mul
      Src: /src/image/src/codecs/pnm/decoder.rs:801,1
    - Dst: filter
      Src: /src/image/src/codecs/pnm/decoder.rs:801,1
    - Dst: '&mut [u8]::len'
      Src: /src/image/src/codecs/pnm/decoder.rs:803,1
    - Dst: expect
      Src: /src/image/src/codecs/pnm/decoder.rs:801,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/pnm/decoder.rs:806,1
    - Dst: rev
      Src: /src/image/src/codecs/pnm/decoder.rs:812,1
    - Dst: rev
      Src: /src/image/src/codecs/pnm/decoder.rs:813,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:819,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 66
    argCount: 5
    argNames:
    - reader
    - output_buf
    - width
    - height
    - components
    argTypes:
    - '&mut dyn Read'
    - '&mut [u8]'
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 820
      start: 783
    functionDepth: 14
    functionLinenumber: 783
    functionLinenumberEnd: 820
    functionName: PbmBit::from_bytes
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Result::read_exact
    - Ok
    - filter
    - map_err
    - u32::try_into
    - '&mut [u8]::len'
    - expect
    - rev
    - u32::checked_mul
    - DecoderError::Overflow
    - u32::div_ceil
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_bytes(reader: &mut dyn Read,output_buf: &mut [u8],width: u32,height:
      u32,components: u32,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:824,1
    - Dst: '&[u8]::next'
      Src: /src/image/src/codecs/pnm/decoder.rs:827,1
    - Dst: "next()\n                    .ok_or_else::<ImageError, _>"
      Src: /src/image/src/codecs/pnm/decoder.rs:827,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:829,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:834,1
    - Dst: DecoderError::UnexpectedByteInRaster
      Src: /src/image/src/codecs/pnm/decoder.rs:834,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:834,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:840,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - reader
    - output_buf
    argTypes:
    - '&mut dyn Read'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 841
      start: 822
    functionDepth: 12
    functionLinenumber: 822
    functionLinenumberEnd: 841
    functionName: PbmBit::from_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - '&[u8]::next'
    - "next()\n                    .ok_or_else::<ImageError, _>"
    - Result::bytes
    - Err
    - DecoderError::UnexpectedByteInRaster
    - into
    - Ok
    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:855,1
    - Dst: '&mut [u8]::iter'
      Src: /src/image/src/codecs/pnm/decoder.rs:856,1
    - Dst: find
      Src: /src/image/src/codecs/pnm/decoder.rs:856,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:857,1
    - Dst: DecoderError::SampleOutOfBounds
      Src: /src/image/src/codecs/pnm/decoder.rs:857,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:857,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 5
    argNames:
    - reader
    - output_buf
    - width
    - height
    - components
    argTypes:
    - '&mut dyn Read'
    - '&mut [u8]'
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 860
      start: 848
    functionDepth: 12
    functionLinenumber: 848
    functionLinenumberEnd: 860
    functionName: BWBit::from_bytes
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - U8::from_bytes
    - find
    - DecoderError::SampleOutOfBounds
    - '&mut [u8]::iter'
    - into
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_bytes(reader: &mut dyn Read,output_buf: &mut [u8],width: u32,height:
      u32,components: u32,) -> 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: 864
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 864
    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:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 870
      start: 868
    functionDepth: 0
    functionLinenumber: 868
    functionLinenumberEnd: 870
    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:876,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:876,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:877,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:878,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:879,1
    - Dst: DecoderError::MaxvalTooBig
      Src: /src/image/src/codecs/pnm/decoder.rs:879,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 881
      start: 874
    functionDepth: 12
    functionLinenumber: 874
    functionLinenumberEnd: 881
    functionName: GraymapHeader::tuple_type
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into
    - Err
    - Ok
    - DecoderError::MaxvalTooBig
    linkageType: ''
    returnType: ImageResult
    signature: fn tuple_type(&self) -> ImageResult<TupleType>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:887,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:887,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:888,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:889,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:890,1
    - Dst: DecoderError::MaxvalTooBig
      Src: /src/image/src/codecs/pnm/decoder.rs:890,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 892
      start: 885
    functionDepth: 12
    functionLinenumber: 885
    functionLinenumberEnd: 892
    functionName: PixmapHeader::tuple_type
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into
    - Err
    - Ok
    - DecoderError::MaxvalTooBig
    linkageType: ''
    returnType: ImageResult
    signature: fn tuple_type(&self) -> ImageResult<TupleType>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:905,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:905,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:908,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:910,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:910,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:918,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:921,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:923,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:923,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:931,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:934,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:936,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:936,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:943,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:946,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:946,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:955,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:958,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:960,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:960,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:967,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:970,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:972,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:972,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:978,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/decoder.rs:978,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/decoder.rs:979,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:980,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/pnm/decoder.rs:981,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:984,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:984,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 110
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 986
      start: 896
    functionDepth: 12
    functionLinenumber: 896
    functionLinenumberEnd: 986
    functionName: ArbitraryHeader::tuple_type
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Err
    - UnsupportedErrorKind::GenericFeature
    - into
    - Ok
    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:1004,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1004,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1011,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1011,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1019,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1019,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 994
    functionDepth: 13
    functionLinenumber: 994
    functionLinenumberEnd: 1036
    functionName: tests::pam_blackandwhite
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - ImageResult::read_image
    - 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:1050,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1050,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:1059,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1059,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1059,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1040
    functionDepth: 13
    functionLinenumber: 1040
    functionLinenumberEnd: 1076
    functionName: tests::pam_blackandwhite_alpha
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - ImageResult::read_image
    - 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:1090,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1090,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1096,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1096,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1104,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1104,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1080
    functionDepth: 13
    functionLinenumber: 1080
    functionLinenumberEnd: 1121
    functionName: tests::pam_grayscale
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - ImageResult::read_image
    - 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:1135,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1135,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1142,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1142,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1153,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1153,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1125
    functionDepth: 13
    functionLinenumber: 1125
    functionLinenumberEnd: 1170
    functionName: tests::pam_grayscale_alpha
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - ImageResult::read_image
    - 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:1184,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1184,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1190,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1190,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1195,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1195,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1174
    functionDepth: 13
    functionLinenumber: 1174
    functionLinenumberEnd: 1212
    functionName: tests::pam_rgb
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - ImageResult::read_image
    - 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:1226,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1226,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1233,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1233,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1235,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1235,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1216
    functionDepth: 13
    functionLinenumber: 1216
    functionLinenumberEnd: 1252
    functionName: tests::pam_rgb_alpha
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - ImageResult::read_image
    - 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:1258,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1259,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1259,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1268,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1268,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1270,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1270,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1255
    functionDepth: 15
    functionLinenumber: 1255
    functionLinenumberEnd: 1285
    functionName: tests::pbm_binary
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::unwrap
    - concat
    - PnmDecoder::new
    - ImageResult::read_image
    linkageType: ''
    returnType: void
    signature: fn pbm_binary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufReader::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1305,1
    - Dst: FailRead
      Src: /src/image/src/codecs/pnm/decoder.rs:1305,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1305,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1307,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1307,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1309,1
    - Dst: ImageResult::expect_err
      Src: /src/image/src/codecs/pnm/decoder.rs:1309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1289
    functionDepth: 13
    functionLinenumber: 1289
    functionLinenumberEnd: 1312
    functionName: tests::pbm_binary_ascii_termination
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - FailRead
    - ImageResult::unwrap
    - BufReader::new
    - ImageResult::expect_err
    - Cursor::new
    - PnmDecoder::new
    - ImageResult::read_image
    linkageType: ''
    returnType: void
    signature: fn pbm_binary_ascii_termination()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1320,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1320,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1327,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1327,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1329,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1329,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1315
    functionDepth: 13
    functionLinenumber: 1315
    functionLinenumberEnd: 1344
    functionName: tests::pbm_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - ImageResult::read_image
    - 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:1352,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1352,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1359,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1359,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1361,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1361,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1347
    functionDepth: 13
    functionLinenumber: 1347
    functionLinenumberEnd: 1376
    functionName: tests::pbm_ascii_nospace
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - ImageResult::read_image
    - 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:1382,1
    - Dst: concat
      Src: /src/image/src/codecs/pnm/decoder.rs:1383,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1384,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1384,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1392,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1392,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1394,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1394,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1379
    functionDepth: 15
    functionLinenumber: 1379
    functionLinenumberEnd: 1410
    functionName: tests::pgm_binary
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::unwrap
    - .16).collect::<Vec<_>>
    - concat
    - PnmDecoder::new
    - ImageResult::read_image
    linkageType: ''
    returnType: void
    signature: fn pgm_binary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1417,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1417,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1425,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1425,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1427,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1427,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1413
    functionDepth: 13
    functionLinenumber: 1413
    functionLinenumberEnd: 1443
    functionName: tests::pgm_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - ImageResult::read_image
    - 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:1448,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1448,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1450,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1446
    functionDepth: 13
    functionLinenumber: 1446
    functionLinenumberEnd: 1462
    functionName: tests::ppm_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - ImageResult::read_image
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn ppm_ascii()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::load_from_memory
      Src: /src/image/src/codecs/pnm/decoder.rs:1481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1480
    functionDepth: 18
    functionLinenumber: 1480
    functionLinenumberEnd: 1482
    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:1491,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1491,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1485
    functionDepth: 13
    functionLinenumber: 1485
    functionLinenumberEnd: 1494
    functionName: tests::issue_1616_overflow
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - ImageResult::read_image
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn issue_1616_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1499,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1499,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1502,1
    - Dst: ImageResult::unwrap_err
      Src: /src/image/src/codecs/pnm/decoder.rs:1502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1497
    functionDepth: 13
    functionLinenumber: 1497
    functionLinenumberEnd: 1503
    functionName: tests::data_too_short
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - ImageResult::read_image
    - ImageResult::unwrap
    - ImageResult::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn data_too_short()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1509
    functionName: tests::no_integers_with_plus
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn no_integers_with_plus()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1512
    functionDepth: 0
    functionLinenumber: 1512
    functionLinenumberEnd: 1515
    functionName: tests::incomplete_pnm_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn incomplete_pnm_header()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1520,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1518
    functionDepth: 13
    functionLinenumber: 1518
    functionLinenumberEnd: 1523
    functionName: tests::leading_zeros
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn leading_zeros()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1526
    functionDepth: 0
    functionLinenumber: 1526
    functionLinenumberEnd: 1529
    functionName: tests::header_overflow
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn header_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1534,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1532
    functionDepth: 13
    functionLinenumber: 1532
    functionLinenumberEnd: 1536
    functionName: tests::header_large_dimension
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmDecoder::new
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn header_large_dimension()
  - 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: 2
    functionLinenumber: 16
    functionLinenumberEnd: 26
    functionName: AutoBreak::new
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 3
    functionsReached:
    - Vec::new
    - Ok
    - std::io::Result::try_reserve_exact
    linkageType: ''
    returnType: io::Result
    signature: 'pub(crate) fn new(writer: W, line_capacity: usize) -> io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/codecs/pnm/autobreak.rs:31,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/autobreak.rs:32,1
    - Dst: write
      Src: /src/image/src/codecs/pnm/autobreak.rs:35,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/autobreak.rs:39,1
    - Dst: io::Error::new
      Src: /src/image/src/codecs/pnm/autobreak.rs:39,1
    - Dst: 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:
    - write
    - io::Error::new
    - Err
    - drain
    - len
    - kind
    - Ok
    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:
    - extend_from_slice
    - AutoBreak::flush
    - push
    - '&RgbaImage::len'
    - 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:
    - AutoBreak::flush_buf
    - flush
    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: 2
    functionLinenumber: 99
    functionLinenumberEnd: 109
    functionName: tests::test_aligned_writes
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 0
    functionsReached:
    - write_all
    - Vec::new
    - unwrap
    - AutoBreak::new
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_aligned_writes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/pnm/autobreak.rs:113,1
    - Dst: AutoBreak::new
      Src: /src/image/src/codecs/pnm/autobreak.rs:116,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/pnm/autobreak.rs:116,1
    - Dst: write_all
      Src: /src/image/src/codecs/pnm/autobreak.rs:117,1
    - Dst: unwrap
      Src: /src/image/src/codecs/pnm/autobreak.rs:117,1
    - Dst: write_all
      Src: /src/image/src/codecs/pnm/autobreak.rs:118,1
    - Dst: unwrap
      Src: /src/image/src/codecs/pnm/autobreak.rs:118,1
    - Dst: write_all
      Src: /src/image/src/codecs/pnm/autobreak.rs:119,1
    - Dst: unwrap
      Src: /src/image/src/codecs/pnm/autobreak.rs:119,1
    - Dst: write_all
      Src: /src/image/src/codecs/pnm/autobreak.rs:120,1
    - Dst: unwrap
      Src: /src/image/src/codecs/pnm/autobreak.rs:120,1
    - Dst: write_all
      Src: /src/image/src/codecs/pnm/autobreak.rs:121,1
    - Dst: unwrap
      Src: /src/image/src/codecs/pnm/autobreak.rs:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: tests::test_greater_writes
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 0
    functionsReached:
    - write_all
    - Vec::new
    - unwrap
    - AutoBreak::new
    - io::Result::unwrap
    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: 16
    functionLinenumber: 28
    functionLinenumberEnd: 53
    functionName: tests::execute_roundtrip_default
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::unwrap
    - ImageResult::color_type
    - ImageResult::expect
    - Vec::new
    - ImageResult::encode
    - PnmDecoder::new
    - ImageResult::read_image
    - PnmEncoder::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: 16
    functionLinenumber: 55
    functionLinenumberEnd: 87
    functionName: tests::execute_roundtrip_with_subtype
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::unwrap
    - ImageResult::color_type
    - Self::with_subtype
    - ImageResult::expect
    - Vec::new
    - ImageResult::encode
    - PnmDecoder::new
    - ImageResult::read_image
    - PnmEncoder::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: 16
    functionLinenumber: 89
    functionLinenumberEnd: 117
    functionName: tests::execute_roundtrip_u16
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::unwrap
    - ImageResult::color_type
    - NativeEndian::write_u16_into
    - ImageResult::expect
    - Vec::new
    - ImageResult::encode
    - PnmDecoder::new
    - ImageResult::read_image
    - PnmEncoder::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: 17
    functionLinenumber: 120
    functionLinenumberEnd: 145
    functionName: tests::roundtrip_gray
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - execute_roundtrip_with_subtype
    - PnmSubtype::Graymap
    - execute_roundtrip_default
    linkageType: ''
    returnType: void
    signature: fn roundtrip_gray()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: execute_roundtrip_default
      Src: /src/image/src/codecs/pnm/mod.rs: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: 17
    functionLinenumber: 148
    functionLinenumberEnd: 183
    functionName: tests::roundtrip_rgb
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - PnmSubtype::Pixmap
    - execute_roundtrip_with_subtype
    - execute_roundtrip_default
    linkageType: ''
    returnType: void
    signature: fn roundtrip_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: execute_roundtrip_u16
      Src: /src/image/src/codecs/pnm/mod.rs:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 17
    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: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: ChromaSubsampling::to_encoder_repr
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: jpeg_encoder::SamplingFactor
    signature: fn to_encoder_repr(self) -> jpeg_encoder::SamplingFactor
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - density
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: PixelDensity::dpi
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn dpi(density: u16) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: PixelDensity::to_encoder_repr
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: jpeg_encoder::PixelDensity
    signature: fn to_encoder_repr(self) -> jpeg_encoder::PixelDensity
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: PixelDensity::default
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/src/codecs/jpeg/encoder.rs:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: JpegEncoder::new
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 4
    functionsReached:
    - JpegEncoder::new_with_quality
    linkageType: ''
    returnType: JpegEncoder
    signature: 'pub fn new(w: W) -> JpegEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Encoder::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - quality
    argTypes:
    - W
    - u8
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: JpegEncoder::new_with_quality
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 6
    functionsReached:
    - Encoder::new
    linkageType: ''
    returnType: JpegEncoder
    signature: 'pub fn new_with_quality(w: W, quality: u8) -> JpegEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_sampling_factor
      Src: /src/image/src/codecs/jpeg/encoder.rs:164,1
    - Dst: ImageResult::to_encoder_repr
      Src: /src/image/src/codecs/jpeg/encoder.rs:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - sampling
    argTypes:
    - ChromaSubsampling
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: JpegEncoder::set_chroma_subsampling
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::to_encoder_repr
    - set_sampling_factor
    linkageType: ''
    returnType: void
    signature: 'pub fn set_chroma_subsampling(&mut self, sampling: ChromaSubsampling)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_optimized_huffman_tables
      Src: /src/image/src/codecs/jpeg/encoder.rs:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - optimize
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: JpegEncoder::set_optimize_huffman_tables
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - set_optimized_huffman_tables
    linkageType: ''
    returnType: void
    signature: 'pub fn set_optimize_huffman_tables(&mut self, optimize: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_progressive
      Src: /src/image/src/codecs/jpeg/encoder.rs:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - progressive
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: JpegEncoder::set_progressive
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - set_progressive
    linkageType: ''
    returnType: void
    signature: 'pub fn set_progressive(&mut self, progressive: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_density
      Src: /src/image/src/codecs/jpeg/encoder.rs:186,1
    - Dst: to_encoder_repr
      Src: /src/image/src/codecs/jpeg/encoder.rs:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pixel_density
    argTypes:
    - PixelDensity
    constantsTouched: []
    func_position:
      end: 187
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 187
    functionName: JpegEncoder::set_pixel_density
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - to_encoder_repr
    - set_density
    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:204,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/jpeg/encoder.rs:212,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/jpeg/encoder.rs:212,1
    - Dst: Err
      Src: /src/image/src/codecs/jpeg/encoder.rs:214,1
    - Dst: EncoderError::InvalidSize
      Src: /src/image/src/codecs/jpeg/encoder.rs:214,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/encoder.rs:214,1
    - Dst: encode
      Src: /src/image/src/codecs/jpeg/encoder.rs:218,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/encoder.rs:218,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/jpeg/encoder.rs:221,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:221,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/jpeg/encoder.rs:222,1
    - Dst: encode_jpeg
      Src: /src/image/src/codecs/jpeg/encoder.rs:231,1
    - Dst: encode_jpeg
      Src: /src/image/src/codecs/jpeg/encoder.rs:235,1
    - Dst: Err
      Src: /src/image/src/codecs/jpeg/encoder.rs:237,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/jpeg/encoder.rs:237,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/jpeg/encoder.rs:238,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/encoder.rs:239,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/jpeg/encoder.rs:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 4
    argNames:
    - image
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 244
      start: 197
    functionDepth: 16
    functionLinenumber: 197
    functionLinenumberEnd: 244
    functionName: JpegEncoder::encode
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - UnsupportedErrorKind::Color
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Option::buffer_size
    - map_err
    - EncodingError::new
    - Err
    - encode
    - ImageError::Encoding
    - EncoderError::InvalidSize
    - into
    - ImageFormatHint::Exact
    - encode_jpeg
    - u16::try_from
    linkageType: ''
    returnType: ImageResult
    signature: 'fn encode(self,image: &[u8],width: u32,height: u32,color_type: ExtendedColorType,)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JpegEncoder::encode
      Src: /src/image/src/codecs/jpeg/encoder.rs:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 257
      start: 249
    functionDepth: 17
    functionLinenumber: 249
    functionLinenumberEnd: 257
    functionName: JpegEncoder::write_image
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - JpegEncoder::encode
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_icc_profile
      Src: /src/image/src/codecs/jpeg/encoder.rs:260,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/encoder.rs:260,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/jpeg/encoder.rs:261,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/encoder.rs:262,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/jpeg/encoder.rs:263,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/jpeg/encoder.rs:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - icc_profile
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 12
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: JpegEncoder::set_icc_profile
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - UnsupportedError::from_format_and_kind
    - map_err
    - '&str::to_string'
    - UnsupportedErrorKind::GenericFeature
    - add_icc_profile
    - into
    linkageType: ''
    returnType: Result
    signature: 'fn set_icc_profile(&mut self, icc_profile: Vec<u8>) -> Result<(),
      UnsupportedError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: add_exif_metadata
      Src: /src/image/src/codecs/jpeg/encoder.rs:269,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/encoder.rs:269,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/jpeg/encoder.rs:270,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/encoder.rs:271,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/jpeg/encoder.rs:272,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/jpeg/encoder.rs:272,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - exif
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 276
      start: 268
    functionDepth: 12
    functionLinenumber: 268
    functionLinenumberEnd: 276
    functionName: JpegEncoder::set_exif_metadata
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - UnsupportedError::from_format_and_kind
    - map_err
    - '&str::to_string'
    - add_exif_metadata
    - UnsupportedErrorKind::GenericFeature
    - into
    - 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:284,1
    - Dst: Some
      Src: /src/image/src/codecs/jpeg/encoder.rs:286,1
    - Dst: Option::to_luma8
      Src: /src/image/src/codecs/jpeg/encoder.rs:286,1
    - Dst: GrayImage::into
      Src: /src/image/src/codecs/jpeg/encoder.rs:286,1
    - Dst: Some
      Src: /src/image/src/codecs/jpeg/encoder.rs:287,1
    - Dst: Option::to_rgb8
      Src: /src/image/src/codecs/jpeg/encoder.rs:287,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/encoder.rs:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - img
    argTypes:
    - crate::io::encoder::MethodSealedToImage
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 289
      start: 278
    functionDepth: 12
    functionLinenumber: 278
    functionLinenumberEnd: 289
    functionName: JpegEncoder::make_compatible_img
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - GrayImage::into
    - Option::to_luma8
    - Option::to_rgb8
    - Some
    - Option::color
    - into
    linkageType: ''
    returnType: Option
    signature: 'fn make_compatible_img(&self,_: crate::io::encoder::MethodSealedToImage,img:
      &DynamicImage,) -> Option<DynamicImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JpegDecoder::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:307,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:307,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:307,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:310,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - encoded
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 314
      start: 306
    functionDepth: 13
    functionLinenumber: 306
    functionLinenumberEnd: 314
    functionName: tests::decode
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - Cursor::new
    - ImageResult::expect
    - JpegDecoder::new
    linkageType: ''
    returnType: Vec
    signature: 'fn decode(encoded: &[u8]) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:322,1
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/src/codecs/jpeg/encoder.rs:324,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:325,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:325,1
    - Dst: decode
      Src: /src/image/src/codecs/jpeg/encoder.rs:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 340
      start: 317
    functionDepth: 14
    functionLinenumber: 317
    functionLinenumberEnd: 340
    functionName: tests::roundtrip_sanity_check
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::write_image
    - decode
    - JpegEncoder::new_with_quality
    - 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:348,1
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/src/codecs/jpeg/encoder.rs:350,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:351,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:351,1
    - Dst: decode
      Src: /src/image/src/codecs/jpeg/encoder.rs:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 367
      start: 343
    functionDepth: 14
    functionLinenumber: 343
    functionLinenumberEnd: 367
    functionName: tests::grayscale_roundtrip_sanity_check
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::write_image
    - decode
    - JpegEncoder::new_with_quality
    - 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:378,1
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/src/codecs/jpeg/encoder.rs:380,1
    - Dst: ImageResult::set_exif_metadata
      Src: /src/image/src/codecs/jpeg/encoder.rs:382,1
    - Dst: Option::clone
      Src: /src/image/src/codecs/jpeg/encoder.rs:382,1
    - Dst: Result::unwrap
      Src: /src/image/src/codecs/jpeg/encoder.rs:382,1
    - Dst: ImageResult::set_icc_profile
      Src: /src/image/src/codecs/jpeg/encoder.rs:383,1
    - Dst: clone
      Src: /src/image/src/codecs/jpeg/encoder.rs:383,1
    - Dst: Result::unwrap
      Src: /src/image/src/codecs/jpeg/encoder.rs:383,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:385,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:385,1
    - Dst: JpegDecoder::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:391,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:391,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:391,1
    - Dst: ImageResult::exif_metadata
      Src: /src/image/src/codecs/jpeg/encoder.rs:392,1
    - Dst: Result::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:392,1
    - Dst: expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:392,1
    - Dst: ImageResult::icc_profile
      Src: /src/image/src/codecs/jpeg/encoder.rs:397,1
    - Dst: expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:397,1
    - Dst: expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 402
      start: 370
    functionDepth: 13
    functionLinenumber: 370
    functionLinenumberEnd: 402
    functionName: tests::roundtrip_exif_icc
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - clone
    - ImageResult::write_image
    - Result::unwrap
    - JpegEncoder::new_with_quality
    - Option::clone
    - Cursor::new
    - ImageResult::set_icc_profile
    - ImageResult::expect
    - JpegDecoder::new
    - Vec::new
    - expect
    - ImageResult::exif_metadata
    - Result::expect
    - ImageResult::icc_profile
    - ImageResult::set_exif_metadata
    linkageType: ''
    returnType: void
    signature: fn roundtrip_exif_icc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:410,1
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/src/codecs/jpeg/encoder.rs:411,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 422
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 422
    functionName: tests::test_image_too_large
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - JpegEncoder::new_with_quality
    - ImageResult::write_image
    linkageType: ''
    returnType: void
    signature: fn test_image_too_large()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:440,1
    - Dst: Vec::write_to
      Src: /src/image/src/codecs/jpeg/encoder.rs:442,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:443,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 446
      start: 425
    functionDepth: 4
    functionLinenumber: 425
    functionLinenumberEnd: 446
    functionName: tests::check_color_types
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::new
    - Cursor::new
    - ImageResult::expect
    - Vec::write_to
    linkageType: ''
    returnType: void
    signature: fn check_color_types()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/codecs/jpeg/encoder.rs:451,1
    - Dst: JpegEncoder::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 455
      start: 450
    functionDepth: 4
    functionLinenumber: 450
    functionLinenumberEnd: 455
    functionName: tests::bench_jpeg_encoder_new
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - iter
    - JpegEncoder::new
    linkageType: ''
    returnType: void
    signature: 'fn bench_jpeg_encoder_new(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:33,1
    - Dst: Result::read_to_end
      Src: /src/image/src/codecs/jpeg/decoder.rs:35,1
    - Dst: zune_core::options::DecoderOptions::default
      Src: /src/image/src/codecs/jpeg/decoder.rs:36,1
    - Dst: Limits::set_strict_mode
      Src: /src/image/src/codecs/jpeg/decoder.rs:36,1
    - Dst: set_max_width
      Src: /src/image/src/codecs/jpeg/decoder.rs:36,1
    - Dst: set_max_height
      Src: /src/image/src/codecs/jpeg/decoder.rs:36,1
    - Dst: zune_jpeg::JpegDecoder::new_with_options
      Src: /src/image/src/codecs/jpeg/decoder.rs:41,1
    - Dst: ZCursor::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:41,1
    - Dst: Self::as_slice
      Src: /src/image/src/codecs/jpeg/decoder.rs:41,1
    - Dst: ImageResult::decode_headers
      Src: /src/image/src/codecs/jpeg/decoder.rs:42,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/decoder.rs:42,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/jpeg/decoder.rs:45,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:45,1
    - Dst: u32::try_into
      Src: /src/image/src/codecs/jpeg/decoder.rs:47,1
    - Dst: unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:47,1
    - Dst: u32::try_into
      Src: /src/image/src/codecs/jpeg/decoder.rs:48,1
    - Dst: unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:48,1
    - Dst: ImageResult::input_colorspace
      Src: /src/image/src/codecs/jpeg/decoder.rs:49,1
    - Dst: expect
      Src: /src/image/src/codecs/jpeg/decoder.rs:49,1
    - Dst: ImageResult::set_options
      Src: /src/image/src/codecs/jpeg/decoder.rs:52,1
    - Dst: ImageResult::options
      Src: /src/image/src/codecs/jpeg/decoder.rs:62,1
    - Dst: jpeg_set_out_colorspace
      Src: /src/image/src/codecs/jpeg/decoder.rs:62,1
    - Dst: Limits::no_limits
      Src: /src/image/src/codecs/jpeg/decoder.rs:66,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:67,1
    - Dst: SpecCompliance::default
      Src: /src/image/src/codecs/jpeg/decoder.rs:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 77
      start: 32
    functionDepth: 12
    functionLinenumber: 32
    functionLinenumberEnd: 77
    functionName: JpegDecoder::new
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 8
    functionsReached:
    - u32::try_into
    - expect
    - unwrap
    - ImageResult::options
    - Limits::no_limits
    - Limits::set_strict_mode
    - Vec::new
    - ImageResult::set_options
    - Result::read_to_end
    - SpecCompliance::default
    - ImageResult::input_colorspace
    - Self::as_slice
    - ImageResult::dimensions
    - Ok
    - ImageResult::unwrap
    - set_max_height
    - map_err
    - zune_core::options::DecoderOptions::default
    - ImageResult::decode_headers
    - jpeg_set_out_colorspace
    - zune_jpeg::JpegDecoder::new_with_options
    - set_max_width
    - ZCursor::new
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(r: R) -> ImageResult<JpegDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:84,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - r
    - spec
    argTypes:
    - R
    - SpecCompliance
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: JpegDecoder::new_with_spec_compliance
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 2
    functionsReached:
    - Self::new
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn new_with_spec_compliance(r: R,spec: SpecCompliance,)
      -> ImageResult<JpegDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/image/src/codecs/jpeg/decoder.rs:92,1
    - Dst: u32::from
      Src: /src/image/src/codecs/jpeg/decoder.rs:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 93
    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:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 97
    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:100,1
    - Dst: Limits::set_strict_mode
      Src: /src/image/src/codecs/jpeg/decoder.rs:100,1
    - Dst: set_max_width
      Src: /src/image/src/codecs/jpeg/decoder.rs:100,1
    - Dst: set_max_height
      Src: /src/image/src/codecs/jpeg/decoder.rs:100,1
    - Dst: zune_jpeg::JpegDecoder::new_with_options
      Src: /src/image/src/codecs/jpeg/decoder.rs:105,1
    - Dst: ZCursor::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:105,1
    - Dst: ImageResult::decode_headers
      Src: /src/image/src/codecs/jpeg/decoder.rs:106,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/decoder.rs:106,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:107,1
    - Dst: ImageResult::icc_profile
      Src: /src/image/src/codecs/jpeg/decoder.rs:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 18
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: JpegDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - set_max_height
    - map_err
    - Limits::set_strict_mode
    - zune_core::options::DecoderOptions::default
    - ImageResult::decode_headers
    - zune_jpeg::JpegDecoder::new_with_options
    - set_max_width
    - Ok
    - ZCursor::new
    - ImageResult::icc_profile
    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:111,1
    - Dst: Limits::set_strict_mode
      Src: /src/image/src/codecs/jpeg/decoder.rs:111,1
    - Dst: set_max_width
      Src: /src/image/src/codecs/jpeg/decoder.rs:111,1
    - Dst: set_max_height
      Src: /src/image/src/codecs/jpeg/decoder.rs:111,1
    - Dst: zune_jpeg::JpegDecoder::new_with_options
      Src: /src/image/src/codecs/jpeg/decoder.rs:116,1
    - Dst: ZCursor::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:116,1
    - Dst: ImageResult::decode_headers
      Src: /src/image/src/codecs/jpeg/decoder.rs:117,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/decoder.rs:117,1
    - Dst: ImageResult::exif
      Src: /src/image/src/codecs/jpeg/decoder.rs:118,1
    - Dst: Option::cloned
      Src: /src/image/src/codecs/jpeg/decoder.rs:118,1
    - Dst: Some
      Src: /src/image/src/codecs/jpeg/decoder.rs:120,1
    - Dst: Option::as_ref
      Src: /src/image/src/codecs/jpeg/decoder.rs:121,1
    - Dst: FlatSamples::and_then
      Src: /src/image/src/codecs/jpeg/decoder.rs:121,1
    - Dst: Orientation::from_exif_chunk
      Src: /src/image/src/codecs/jpeg/decoder.rs:122,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/jpeg/decoder.rs:121,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 110
    functionDepth: 16
    functionLinenumber: 110
    functionLinenumberEnd: 127
    functionName: JpegDecoder::exif_metadata
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 1
    functionsReached:
    - ImageResult::exif
    - Ok
    - Option::cloned
    - set_max_height
    - map_err
    - Limits::set_strict_mode
    - FlatSamples::and_then
    - Some
    - Option::as_ref
    - zune_core::options::DecoderOptions::default
    - ImageResult::decode_headers
    - Orientation::from_exif_chunk
    - zune_jpeg::JpegDecoder::new_with_options
    - set_max_width
    - unwrap_or
    - ZCursor::new
    linkageType: ''
    returnType: ImageResult
    signature: fn exif_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zune_core::options::DecoderOptions::default
      Src: /src/image/src/codecs/jpeg/decoder.rs:130,1
    - Dst: Limits::set_strict_mode
      Src: /src/image/src/codecs/jpeg/decoder.rs:130,1
    - Dst: set_max_width
      Src: /src/image/src/codecs/jpeg/decoder.rs:130,1
    - Dst: set_max_height
      Src: /src/image/src/codecs/jpeg/decoder.rs:130,1
    - Dst: zune_jpeg::JpegDecoder::new_with_options
      Src: /src/image/src/codecs/jpeg/decoder.rs:135,1
    - Dst: ZCursor::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:135,1
    - Dst: ImageResult::decode_headers
      Src: /src/image/src/codecs/jpeg/decoder.rs:136,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/decoder.rs:136,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:138,1
    - Dst: ImageResult::xmp
      Src: /src/image/src/codecs/jpeg/decoder.rs:138,1
    - Dst: cloned
      Src: /src/image/src/codecs/jpeg/decoder.rs:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: JpegDecoder::xmp_metadata
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - set_max_height
    - map_err
    - ImageResult::xmp
    - Limits::set_strict_mode
    - cloned
    - zune_core::options::DecoderOptions::default
    - ImageResult::decode_headers
    - zune_jpeg::JpegDecoder::new_with_options
    - set_max_width
    - Ok
    - ZCursor::new
    linkageType: ''
    returnType: ImageResult
    signature: fn xmp_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zune_core::options::DecoderOptions::default
      Src: /src/image/src/codecs/jpeg/decoder.rs:142,1
    - Dst: Limits::set_strict_mode
      Src: /src/image/src/codecs/jpeg/decoder.rs:142,1
    - Dst: set_max_width
      Src: /src/image/src/codecs/jpeg/decoder.rs:142,1
    - Dst: set_max_height
      Src: /src/image/src/codecs/jpeg/decoder.rs:142,1
    - Dst: zune_jpeg::JpegDecoder::new_with_options
      Src: /src/image/src/codecs/jpeg/decoder.rs:147,1
    - Dst: ZCursor::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:147,1
    - Dst: ImageResult::decode_headers
      Src: /src/image/src/codecs/jpeg/decoder.rs:148,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/decoder.rs:148,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:150,1
    - Dst: ImageResult::iptc
      Src: /src/image/src/codecs/jpeg/decoder.rs:150,1
    - Dst: cloned
      Src: /src/image/src/codecs/jpeg/decoder.rs:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 151
    functionName: JpegDecoder::iptc_metadata
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - set_max_height
    - map_err
    - Limits::set_strict_mode
    - cloned
    - ImageResult::iptc
    - zune_core::options::DecoderOptions::default
    - ImageResult::decode_headers
    - zune_jpeg::JpegDecoder::new_with_options
    - set_max_width
    - Ok
    - ZCursor::new
    linkageType: ''
    returnType: ImageResult
    signature: fn iptc_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/image/src/codecs/jpeg/decoder.rs:155,1
    - Dst: JpegDecoder::exif_metadata
      Src: /src/image/src/codecs/jpeg/decoder.rs:156,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:158,1
    - Dst: unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 153
    functionDepth: 17
    functionLinenumber: 153
    functionLinenumberEnd: 159
    functionName: JpegDecoder::orientation
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - JpegDecoder::exif_metadata
    - unwrap
    - Ok
    - is_none
    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:162,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/jpeg/decoder.rs:163,1
    - Dst: Err
      Src: /src/image/src/codecs/jpeg/decoder.rs:166,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/jpeg/decoder.rs:166,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:166,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/decoder.rs:167,1
    - Dst: new_zune_decoder
      Src: /src/image/src/codecs/jpeg/decoder.rs:176,1
    - Dst: ImageResult::decode_into
      Src: /src/image/src/codecs/jpeg/decoder.rs:182,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/decoder.rs:182,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 184
      start: 161
    functionDepth: 13
    functionLinenumber: 161
    functionLinenumberEnd: 184
    functionName: JpegDecoder::read_image
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - JpegDecoder::total_bytes
    - map_err
    - Err
    - std::io::Result::len
    - new_zune_decoder
    - DecodingError::new
    - ImageResult::decode_into
    - into
    - ImageError::Decoding
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(self, buf: &mut [u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_support
      Src: /src/image/src/codecs/jpeg/decoder.rs:187,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/jpeg/decoder.rs:187,1
    - Dst: JpegDecoder::dimensions
      Src: /src/image/src/codecs/jpeg/decoder.rs:188,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/codecs/jpeg/decoder.rs:189,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - limits
    argTypes:
    - Limits
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 4
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: JpegDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - crate::LimitSupport::default
    - JpegDecoder::dimensions
    - Limits::check_support
    - Limits::check_dimensions
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_image
      Src: /src/image/src/codecs/jpeg/decoder.rs:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 3
    functionLinenumber: 194
    functionLinenumberEnd: 196
    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:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - colorspace
    argTypes:
    - ZuneColorSpace
    constantsTouched: []
    func_position:
      end: 213
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 213
    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: 223
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 223
    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:231,1
    - Dst: zune_core::options::DecoderOptions::default
      Src: /src/image/src/codecs/jpeg/decoder.rs:232,1
    - Dst: Limits::jpeg_set_out_colorspace
      Src: /src/image/src/codecs/jpeg/decoder.rs:232,1
    - Dst: set_strict_mode
      Src: /src/image/src/codecs/jpeg/decoder.rs:232,1
    - Dst: set_max_width
      Src: /src/image/src/codecs/jpeg/decoder.rs:235,1
    - Dst: set_max_height
      Src: /src/image/src/codecs/jpeg/decoder.rs:239,1
    - Dst: zune_jpeg::JpegDecoder::new_with_options
      Src: /src/image/src/codecs/jpeg/decoder.rs:243,1
    - Dst: ZCursor::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 4
    argNames:
    - input
    - orig_color_space
    - strict_mode
    - limits
    argTypes:
    - '&[u8]'
    - ZuneColorSpace
    - bool
    - Limits
    constantsTouched: []
    func_position:
      end: 244
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 244
    functionName: new_zune_decoder
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 1
    functionsReached:
    - set_max_height
    - Limits::jpeg_set_out_colorspace
    - zune_core::options::DecoderOptions::default
    - set_strict_mode
    - to_supported_color_space
    - zune_jpeg::JpegDecoder::new_with_options
    - set_max_width
    - ZCursor::new
    linkageType: ''
    returnType: zune_jpeg::JpegDecoder
    signature: 'fn new_zune_decoder(input: &[u8],orig_color_space: ZuneColorSpace,strict_mode:
      bool,limits: Limits,) -> zune_jpeg::JpegDecoder<ZCursor<&[u8]>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/jpeg/decoder.rs:250,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/jpeg/decoder.rs:250,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/decoder.rs:251,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/jpeg/decoder.rs:252,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/jpeg/decoder.rs:254,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/jpeg/decoder.rs:254,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/jpeg/decoder.rs:257,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:257,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/decoder.rs:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - err
    argTypes:
    - zune_jpeg::errors::DecodeErrors
    constantsTouched: []
    func_position:
      end: 259
      start: 247
    functionDepth: 12
    functionLinenumber: 247
    functionLinenumberEnd: 259
    functionName: ImageError::from_jpeg
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - UnsupportedErrorKind::GenericFeature
    - ImageError::Limits
    - LimitError::from_kind
    - DecodingError::new
    - into
    - ImageError::Decoding
    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:269,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:269,1
    - Dst: JpegDecoder::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:270,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:270,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 272
      start: 268
    functionDepth: 13
    functionLinenumber: 268
    functionLinenumberEnd: 272
    functionName: tests::test_exif_orientation
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - std::io::Result::unwrap
    - Cursor::new
    - JpegDecoder::new
    - fs::read
    linkageType: ''
    returnType: void
    signature: fn test_exif_orientation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs::read
      Src: /src/image/src/codecs/jpeg/decoder.rs:276,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:276,1
    - Dst: Vec::truncate
      Src: /src/image/src/codecs/jpeg/decoder.rs:277,1
    - Dst: Vec::len
      Src: /src/image/src/codecs/jpeg/decoder.rs:277,1
    - Dst: JpegDecoder::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:280,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:280,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:280,1
    - Dst: JpegDecoder::new_with_spec_compliance
      Src: /src/image/src/codecs/jpeg/decoder.rs:286,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:286,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 290
      start: 275
    functionDepth: 14
    functionLinenumber: 275
    functionLinenumberEnd: 290
    functionName: tests::test_strict_vs_lenient_spec_compliance
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::unwrap
    - ImageResult::unwrap
    - JpegDecoder::new_with_spec_compliance
    - Cursor::new
    - Vec::truncate
    - JpegDecoder::new
    - fs::read
    - Vec::len
    linkageType: ''
    returnType: void
    signature: fn test_strict_vs_lenient_spec_compliance()
  - 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: 16
    functionLinenumber: 48
    functionLinenumberEnd: 81
    functionName: WebPEncoder::encode
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 1
    functionsReached:
    - UnsupportedErrorKind::Color
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Option::buffer_size
    - map_err
    - Err
    - encode
    - into
    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: 17
    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:
    - Ok
    - set_exif_metadata
    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:
    - into
    - ImageError::Encoding
    - ImageError::IoError
    - EncodingError::new
    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: 16
    functionLinenumber: 129
    functionLinenumberEnd: 147
    functionName: tests::write_webp
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - RgbaImage::from_raw
    - Option::height
    - collect
    - to_rgba8
    - Option::width
    - Self::write_image
    - Vec::new
    - Option::inner_pixels
    - crate::load_from_memory_with_format
    - 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:24,1
    - Dst: image_webp::WebPDecoder::new
      Src: /src/image/src/codecs/webp/decoder.rs:25,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/webp/decoder.rs:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: WebPDecoder::new
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 7
    functionsReached:
    - ImageResult::map_err
    - image_webp::WebPDecoder::new
    - Ok
    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:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    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:37,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/decoder.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - color
    argTypes:
    - Rgba<u8>
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: WebPDecoder::set_background_color
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - set_background_color
    - map_err
    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:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 12
    functionLinenumber: 44
    functionLinenumberEnd: 46
    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:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 54
    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:59,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/decoder.rs:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 62
    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:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 66
    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:69,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/decoder.rs:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 18
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: WebPDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - icc_profile
    - map_err
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exif_metadata
      Src: /src/image/src/codecs/webp/decoder.rs:75,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/decoder.rs:75,1
    - Dst: Some
      Src: /src/image/src/codecs/webp/decoder.rs:80,1
    - Dst: Option::as_ref
      Src: /src/image/src/codecs/webp/decoder.rs:81,1
    - Dst: FlatSamples::and_then
      Src: /src/image/src/codecs/webp/decoder.rs:81,1
    - Dst: Orientation::from_exif_chunk
      Src: /src/image/src/codecs/webp/decoder.rs:82,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/webp/decoder.rs:81,1
    - Dst: Ok
      Src: /src/image/src/codecs/webp/decoder.rs:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 74
    functionDepth: 13
    functionLinenumber: 74
    functionLinenumberEnd: 87
    functionName: WebPDecoder::exif_metadata
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - map_err
    - FlatSamples::and_then
    - Some
    - exif_metadata
    - Option::as_ref
    - Orientation::from_exif_chunk
    - unwrap_or
    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:90,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/decoder.rs:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 93
    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:97,1
    - Dst: WebPDecoder::exif_metadata
      Src: /src/image/src/codecs/webp/decoder.rs:98,1
    - Dst: Ok
      Src: /src/image/src/codecs/webp/decoder.rs:100,1
    - Dst: unwrap
      Src: /src/image/src/codecs/webp/decoder.rs:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 14
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: WebPDecoder::orientation
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - Ok
    - is_none
    - WebPDecoder::exif_metadata
    linkageType: ''
    returnType: ImageResult
    signature: fn orientation(&mut self) -> ImageResult<Orientation>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: loop_count
      Src: /src/image/src/codecs/webp/decoder.rs:106,1
    - Dst: crate::metadata::LoopCount::Finite
      Src: /src/image/src/codecs/webp/decoder.rs:108,1
    - Dst: into
      Src: /src/image/src/codecs/webp/decoder.rs:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 13
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: WebPDecoder::loop_count
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - into
    - loop_count
    - crate::metadata::LoopCount::Finite
    linkageType: ''
    returnType: crate::metadata::LoopCount
    signature: fn loop_count(&self) -> crate::metadata::LoopCount
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Frames::new
      Src: /src/image/src/codecs/webp/decoder.rs:152,1
    - Dst: Box::new
      Src: /src/image/src/codecs/webp/decoder.rs:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 156
    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:162,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/webp/decoder.rs:163,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/webp/decoder.rs:163,1
    - Dst: into
      Src: /src/image/src/codecs/webp/decoder.rs:163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - image_webp::DecodingError
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 13
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: ImageError::from_webp_decode
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - DecodingError::new
    - into
    - ImageError::Decoding
    - ImageError::IoError
    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:183,1
    - Dst: WebPDecoder::new
      Src: /src/image/src/codecs/webp/decoder.rs:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 186
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 186
    functionName: tests::add_with_overflow_size
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - WebPDecoder::new
    - std::io::Cursor::new
    linkageType: ''
    returnType: void
    signature: fn add_with_overflow_size()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - precision
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: CbCrInverseTransform::to_integers
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CbCrInverseTransform
    signature: 'fn to_integers(self, precision: u32) -> CbCrInverseTransform<i32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 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:
    - Err
    - ImageError::Decoding
    - YuvConversionError::YuvPlaneSizeMismatch
    - into
    - DecodingError::new
    - Ok
    - Vec::len
    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:
    - Err
    - '&[V]::len'
    - YuvConversionError::RgbDestinationSizeMismatch
    - DecodingError::new
    - into
    - ImageError::Decoding
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn check_rgb_preconditions<V>(rgb_data: &[V],stride: usize,height:
      usize,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_integers
      Src: /src/image/src/codecs/avif/yuv.rs:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 6
    argNames:
    - range_bgra
    - range_y
    - range_uv
    - kr
    - kb
    - precision
    argTypes:
    - u32
    - u32
    - u32
    - f32
    - f32
    - u32
    constantsTouched: []
    func_position:
      end: 150
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 150
    functionName: get_inverse_transform
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 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: as_chunks_mut::<CHANNELS>
      Src: /src/image/src/codecs/avif/yuv.rs:370,1
    - Dst: iter_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: as_chunks_mut::<CHANNELS>
      Src: /src/image/src/codecs/avif/yuv.rs:406,1
    - Dst: iter_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: 129
    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:
    - qrshr::<PRECISION, BIT_DEPTH>
    - Ok
    - chunks_exact
    - check_rgb_preconditions
    - as_chunks_mut::<CHANNELS>
    - get_inverse_transform
    - iter_mut
    - Result::as_
    - YuvChromaRange::get_yuv_range
    - Result::get_kr_kb
    - check_yuv_plane_preconditions
    - iter
    - zip
    - chunks_exact_mut
    - as_
    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:
    - qrshr::<PRECISION, BIT_DEPTH>
    - Result::as_
    - 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: as_chunks::<2>
      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: iter
      Src: /src/image/src/codecs/avif/yuv.rs:573,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:573,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:573,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:573,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:575,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:576,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:577,1
    - Dst: ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/yuv.rs:581,1
    - Dst: try_into
      Src: /src/image/src/codecs/avif/yuv.rs:582,1
    - Dst: unwrap
      Src: /src/image/src/codecs/avif/yuv.rs:582,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:589,1
    - Dst: ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/yuv.rs:593,1
    - Dst: try_into
      Src: /src/image/src/codecs/avif/yuv.rs:594,1
    - Dst: unwrap
      Src: /src/image/src/codecs/avif/yuv.rs:594,1
    - Dst: into_remainder
      Src: /src/image/src/codecs/avif/yuv.rs:604,1
    - Dst: "into_remainder()\n            .as_chunks_mut::<CHANNELS>"
      Src: /src/image/src/codecs/avif/yuv.rs:604,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/yuv.rs:604,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/yuv.rs:609,1
    - Dst: rev
      Src: /src/image/src/codecs/avif/yuv.rs:609,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/yuv.rs:610,1
    - Dst: rev
      Src: /src/image/src/codecs/avif/yuv.rs:610,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/yuv.rs:613,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:613,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:613,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:613,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:615,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:616,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:617,1
    - Dst: ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/yuv.rs:619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 115
    argCount: 4
    argNames:
    - image
    - rgba
    - transform
    - range
    argTypes:
    - YuvPlanarImage<V>
    - '&mut [V]'
    - '&CbCrInverseTransform<i32>'
    - '&YuvChromaRange'
    constantsTouched: []
    func_position:
      end: 624
      start: 543
    functionDepth: 4
    functionLinenumber: 543
    functionLinenumberEnd: 624
    functionName: process_halved_chroma_row_cbcr
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - try_into
    - as_
    - iter_mut
    - as_chunks::<2>
    - unwrap
    - "into_remainder()\n            .as_chunks_mut::<CHANNELS>"
    - rev
    - into_remainder
    - iter
    - ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>
    - zip
    - chunks_exact_mut
    - div_ceil
    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:673,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:675,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:676,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:677,1
    - Dst: check_rgb_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:679,1
    - Dst: YuvChromaRange::get_yuv_range
      Src: /src/image/src/codecs/avif/yuv.rs:681,1
    - Dst: Result::get_kr_kb
      Src: /src/image/src/codecs/avif/yuv.rs:682,1
    - Dst: get_inverse_transform
      Src: /src/image/src/codecs/avif/yuv.rs:683,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:694,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:695,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:696,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:697,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:726,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:726,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:726,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:728,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:729,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:730,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/yuv.rs:741,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:747,1
    - Dst: remainder
      Src: /src/image/src/codecs/avif/yuv.rs:747,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:747,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:751,1
    - Dst: rev
      Src: /src/image/src/codecs/avif/yuv.rs:751,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:752,1
    - Dst: rev
      Src: /src/image/src/codecs/avif/yuv.rs:752,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:753,1
    - Dst: rev
      Src: /src/image/src/codecs/avif/yuv.rs:753,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:755,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:755,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:755,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/yuv.rs:766,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/yuv.rs:769,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: 770
      start: 635
    functionDepth: 15
    functionLinenumber: 635
    functionLinenumberEnd: 770
    functionName: yuv420_to_rgbx_invoker
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - worker
    - Ok
    - chunks_exact
    - zip
    - check_rgb_preconditions
    - get_inverse_transform
    - YuvChromaRange::get_yuv_range
    - Result::get_kr_kb
    - rev
    - remainder
    - check_yuv_plane_preconditions
    - chunks_exact_mut
    - div_ceil
    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:788,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: 795
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 795
    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:813,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: 820
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 820
    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:838,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: 845
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 845
    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:897,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:898,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:899,1
    - Dst: check_rgb_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:901,1
    - Dst: YuvChromaRange::get_yuv_range
      Src: /src/image/src/codecs/avif/yuv.rs:903,1
    - Dst: Result::get_kr_kb
      Src: /src/image/src/codecs/avif/yuv.rs:904,1
    - Dst: get_inverse_transform
      Src: /src/image/src/codecs/avif/yuv.rs:906,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:942,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:943,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:944,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:945,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:948,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:948,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:948,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/yuv.rs:959,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/yuv.rs:962,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: 963
      start: 856
    functionDepth: 15
    functionLinenumber: 856
    functionLinenumberEnd: 963
    functionName: yuv422_to_rgbx_invoker
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - worker
    - Ok
    - chunks_exact
    - zip
    - check_rgb_preconditions
    - get_inverse_transform
    - YuvChromaRange::get_yuv_range
    - Result::get_kr_kb
    - check_yuv_plane_preconditions
    - chunks_exact_mut
    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:980,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: 981
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 981
    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:998,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: 999
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 999
    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:1016,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: 1017
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1017
    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:1068,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:1069,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:1070,1
    - Dst: check_rgb_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:1072,1
    - Dst: YuvChromaRange::get_yuv_range
      Src: /src/image/src/codecs/avif/yuv.rs:1074,1
    - Dst: Result::get_kr_kb
      Src: /src/image/src/codecs/avif/yuv.rs:1075,1
    - Dst: get_inverse_transform
      Src: /src/image/src/codecs/avif/yuv.rs:1078,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:1092,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:1093,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:1094,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:1095,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1098,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1098,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1098,1
    - Dst: as_chunks_mut::<CHANNELS>
      Src: /src/image/src/codecs/avif/yuv.rs:1099,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/yuv.rs:1099,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/yuv.rs:1101,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1101,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1101,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1101,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1103,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1104,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1105,1
    - Dst: ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/yuv.rs:1107,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/yuv.rs:1117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 89
    argCount: 4
    argNames:
    - image
    - rgba
    - range
    - matrix
    argTypes:
    - YuvPlanarImage<V>
    - '&mut [V]'
    - YuvIntensityRange
    - YuvStandardMatrix
    constantsTouched: []
    func_position:
      end: 1118
      start: 1029
    functionDepth: 15
    functionLinenumber: 1029
    functionLinenumberEnd: 1118
    functionName: yuv444_to_rgbx_impl
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - Ok
    - chunks_exact
    - zip
    - check_rgb_preconditions
    - as_chunks_mut::<CHANNELS>
    - get_inverse_transform
    - iter_mut
    - YuvChromaRange::get_yuv_range
    - Result::get_kr_kb
    - iter
    - ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>
    - check_yuv_plane_preconditions
    - chunks_exact_mut
    - as_
    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:1133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - image
    - rgb
    - range
    argTypes:
    - YuvPlanarImage<u8>
    - '&mut [u8]'
    - YuvIntensityRange
    constantsTouched: []
    func_position:
      end: 1134
      start: 1128
    functionDepth: 0
    functionLinenumber: 1128
    functionLinenumberEnd: 1134
    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:1150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - image
    - rgba
    - range
    argTypes:
    - YuvPlanarImage<u16>
    - '&mut [u16]'
    - YuvIntensityRange
    constantsTouched: []
    func_position:
      end: 1151
      start: 1145
    functionDepth: 0
    functionLinenumber: 1145
    functionLinenumberEnd: 1151
    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:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - image
    - rgba
    - range
    argTypes:
    - YuvPlanarImage<u16>
    - '&mut [u16]'
    - YuvIntensityRange
    constantsTouched: []
    func_position:
      end: 1167
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1167
    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:1215,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:1216,1
    - Dst: check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:1217,1
    - Dst: check_rgb_preconditions
      Src: /src/image/src/codecs/avif/yuv.rs:1219,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:1225,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/yuv.rs:1226,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:1227,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/yuv.rs:1228,1
    - Dst: YuvChromaRange::get_yuv_range
      Src: /src/image/src/codecs/avif/yuv.rs:1234,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1240,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1240,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1240,1
    - Dst: as_chunks_mut::<CHANNELS>
      Src: /src/image/src/codecs/avif/yuv.rs:1241,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/yuv.rs:1241,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/yuv.rs:1244,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1244,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1244,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1244,1
    - Dst: qrshr::<PRECISION, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/yuv.rs:1247,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1247,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1247,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: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1253,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1259,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1259,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1259,1
    - Dst: as_chunks_mut::<CHANNELS>
      Src: /src/image/src/codecs/avif/yuv.rs:1260,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/yuv.rs:1260,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/yuv.rs:1263,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1263,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1263,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/yuv.rs:1263,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/yuv.rs:1269,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/yuv.rs:1276,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 163
    argCount: 3
    argNames:
    - image
    - rgba
    - yuv_range
    argTypes:
    - YuvPlanarImage<V>
    - '&mut [V]'
    - YuvIntensityRange
    constantsTouched: []
    func_position:
      end: 1277
      start: 1178
    functionDepth: 15
    functionLinenumber: 1178
    functionLinenumberEnd: 1277
    functionName: gbr_to_rgbx_impl
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - qrshr::<PRECISION, BIT_DEPTH>
    - Ok
    - chunks_exact
    - zip
    - check_rgb_preconditions
    - as_chunks_mut::<CHANNELS>
    - iter_mut
    - YuvChromaRange::get_yuv_range
    - iter
    - check_yuv_plane_preconditions
    - chunks_exact_mut
    - as_
    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: 4
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: AvifEncoder::new
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 1
    functionsReached:
    - AvifEncoder::new_with_speed_quality
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(w: W) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::cmp::min
      Src: /src/image/src/codecs/avif/encoder.rs:68,1
    - Dst: std::cmp::min
      Src: /src/image/src/codecs/avif/encoder.rs:69,1
    - Dst: Encoder::new
      Src: /src/image/src/codecs/avif/encoder.rs:71,1
    - Dst: FarbfeldEncoder::with_quality
      Src: /src/image/src/codecs/avif/encoder.rs:71,1
    - Dst: f32::from
      Src: /src/image/src/codecs/avif/encoder.rs:72,1
    - Dst: PngEncoder::with_alpha_quality
      Src: /src/image/src/codecs/avif/encoder.rs:71,1
    - Dst: f32::from
      Src: /src/image/src/codecs/avif/encoder.rs:73,1
    - Dst: with_speed
      Src: /src/image/src/codecs/avif/encoder.rs:71,1
    - Dst: with_bit_depth
      Src: /src/image/src/codecs/avif/encoder.rs:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - w
    - speed
    - quality
    argTypes:
    - W
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 78
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 78
    functionName: AvifEncoder::new_with_speed_quality
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 1
    functionsReached:
    - PngEncoder::with_alpha_quality
    - Encoder::new
    - with_speed
    - f32::from
    - std::cmp::min
    - with_bit_depth
    - FarbfeldEncoder::with_quality
    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:
    - ZuneColorSpace::to_ravif
    - with_internal_color_model
    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: 16
    functionLinenumber: 103
    functionLinenumberEnd: 132
    functionName: AvifEncoder::write_image
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached:
    - AvifEncoder::set_color
    - encode_rgb
    - map_err
    - EncodingError::new
    - ImageError::Encoding
    - encode_rgba
    - write_all
    - Self::encode_as_img
    - into
    - Ok
    - bool::buffer_size
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(mut self,data: &[u8],width: u32,height: u32,color:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::replace
      Src: /src/image/src/codecs/avif/encoder.rs:137,1
    - Dst: Encoder::new
      Src: /src/image/src/codecs/avif/encoder.rs:137,1
    - Dst: ImageResult::with_exif
      Src: /src/image/src/codecs/avif/encoder.rs:138,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - exif
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 140
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 140
    functionName: AvifEncoder::set_exif_metadata
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached:
    - std::mem::replace
    - Encoder::new
    - Ok
    - ImageResult::with_exif
    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: 1
    argNames:
    - _color
    argTypes:
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    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:162,1
    - Dst: Option::ok_or_else
      Src: /src/image/src/codecs/avif/encoder.rs:162,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:163,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - data
    - width
    - height
    argTypes:
    - '&[P::Subpixel]'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 167
    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:
    - ParameterError::from_kind
    - Option::ok_or_else
    - ImageError::Parameter
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: ImageResult
    signature: 'fn try_from_raw<P: Pixel>(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:178,1
    - Dst: Vec::convert
      Src: /src/image/src/codecs/avif/encoder.rs:180,1
    - Dst: Vec::into_raw
      Src: /src/image/src/codecs/avif/encoder.rs:181,1
    - Dst: Img::new
      Src: /src/image/src/codecs/avif/encoder.rs:182,1
    - Dst: std::io::Result::as_pixels
      Src: /src/image/src/codecs/avif/encoder.rs:182,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: 183
      start: 170
    functionDepth: 11
    functionLinenumber: 170
    functionLinenumberEnd: 183
    functionName: A::v::i::f::E::n::c::o::d::e::r::::::::e::n::c::o::d::e::_::a::s::_::i::m::g::convert_into
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::into_raw
    - Vec::convert
    - std::io::Result::as_pixels
    - Vec::dimensions
    - Img::new
    linkageType: ''
    returnType: Img
    signature: 'fn convert_into<''buf, P>(buf: &''buf mut Vec<u8>,image: ImageBuffer<P,
      &[P::Subpixel]>,) -> Img<&''buf [RGBA8]>whereP: Pixel,Rgba<u8>: FromColor<P>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytemuck::try_cast_slice
      Src: /src/image/src/codecs/avif/encoder.rs:191,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:192,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/avif/encoder.rs:192,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:193,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:193,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:194,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/avif/encoder.rs:199,1
    - Dst: String::is_multiple_of
      Src: /src/image/src/codecs/avif/encoder.rs:199,1
    - Dst: size_of::<Channel>
      Src: /src/image/src/codecs/avif/encoder.rs:199,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:200,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:200,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:200,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/avif/encoder.rs:204,1
    - Dst: size_of::<Channel>
      Src: /src/image/src/codecs/avif/encoder.rs:204,1
    - Dst: try_cast_slice_mut::<_, u8>
      Src: /src/image/src/codecs/avif/encoder.rs:206,1
    - Dst: Result::as_mut_slice
      Src: /src/image/src/codecs/avif/encoder.rs:206,1
    - Dst: unwrap
      Src: /src/image/src/codecs/avif/encoder.rs:206,1
    - Dst: SubImage::copy_from_slice
      Src: /src/image/src/codecs/avif/encoder.rs:207,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:208,1
    - Dst: Cow::Owned
      Src: /src/image/src/codecs/avif/encoder.rs:208,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:213,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:213,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:213,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/avif/encoder.rs:214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 218
      start: 187
    functionDepth: 3
    functionLinenumber: 187
    functionLinenumberEnd: 218
    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:
    - String::is_multiple_of
    - Cow::Borrowed
    - Err
    - std::io::Result::len
    - ParameterErrorKind::Generic
    - try_cast_slice_mut::<_, u8>
    - Cow::Owned
    - unwrap
    - ImageError::Parameter
    - ParameterError::from_kind
    - Result::as_mut_slice
    - size_of::<Channel>
    - SubImage::copy_from_slice
    - Ok
    - 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:223,1
    - Dst: Option::pixels
      Src: /src/image/src/codecs/avif/encoder.rs:226,1
    - Dst: ImageResult::len
      Src: /src/image/src/codecs/avif/encoder.rs:226,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:227,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:227,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:227,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:232,1
    - Dst: RgbColor::Rgb8
      Src: /src/image/src/codecs/avif/encoder.rs:232,1
    - Dst: Img::new
      Src: /src/image/src/codecs/avif/encoder.rs:232,1
    - Dst: AsPixels::as_pixels
      Src: /src/image/src/codecs/avif/encoder.rs:233,1
    - Dst: try_from_raw::<Rgba<u8>>
      Src: /src/image/src/codecs/avif/encoder.rs:240,1
    - Dst: Option::pixels
      Src: /src/image/src/codecs/avif/encoder.rs:243,1
    - Dst: ImageResult::len
      Src: /src/image/src/codecs/avif/encoder.rs:243,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:244,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:244,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:244,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:249,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:249,1
    - Dst: Img::new
      Src: /src/image/src/codecs/avif/encoder.rs:249,1
    - Dst: AsPixels::as_pixels
      Src: /src/image/src/codecs/avif/encoder.rs:250,1
    - Dst: try_from_raw::<Luma<u8>>
      Src: /src/image/src/codecs/avif/encoder.rs:257,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:258,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:258,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:258,1
    - Dst: try_from_raw::<LumaA<u8>>
      Src: /src/image/src/codecs/avif/encoder.rs:261,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:262,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:262,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:262,1
    - Dst: cast_buffer
      Src: /src/image/src/codecs/avif/encoder.rs:266,1
    - Dst: try_from_raw::<Luma<u16>>
      Src: /src/image/src/codecs/avif/encoder.rs:267,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:268,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:268,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:268,1
    - Dst: cast_buffer
      Src: /src/image/src/codecs/avif/encoder.rs:271,1
    - Dst: try_from_raw::<LumaA<u16>>
      Src: /src/image/src/codecs/avif/encoder.rs:272,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:273,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:273,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:273,1
    - Dst: cast_buffer
      Src: /src/image/src/codecs/avif/encoder.rs:276,1
    - Dst: try_from_raw::<Rgb<u16>>
      Src: /src/image/src/codecs/avif/encoder.rs:277,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:278,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:278,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:278,1
    - Dst: cast_buffer
      Src: /src/image/src/codecs/avif/encoder.rs:281,1
    - Dst: try_from_raw::<Rgba<u16>>
      Src: /src/image/src/codecs/avif/encoder.rs:282,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:283,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:283,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:283,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:286,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/encoder.rs:286,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/encoder.rs:287,1
    - Dst: into
      Src: /src/image/src/codecs/avif/encoder.rs:288,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/avif/encoder.rs:289,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 147
    argCount: 5
    argNames:
    - fallback
    - data
    - width
    - height
    - color
    argTypes:
    - '&''buf mut Vec<u8>'
    - '&''buf [u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 293
      start: 149
    functionDepth: 14
    functionLinenumber: 149
    functionLinenumberEnd: 293
    functionName: AvifEncoder::encode_as_img
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached:
    - try_from_raw::<Rgba<u8>>
    - try_from_raw::<Rgb<u8>>
    - ImageError::Parameter
    - ParameterError::from_kind
    - RgbColor::Rgb8
    - Option::pixels
    - cast_buffer
    - try_from_raw::<LumaA<u16>>
    - try_from_raw::<Rgba<u16>>
    - try_from_raw::<Luma<u8>>
    - Img::new
    - try_from_raw::<Luma<u16>>
    - UnsupportedErrorKind::Color
    - AsPixels::as_pixels
    - try_from_raw::<Rgb<u16>>
    - convert_into
    - into
    - RgbColor::Rgba8
    - Ok
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Err
    - ImageResult::len
    - try_from_raw::<LumaA<u8>>
    linkageType: ''
    returnType: ImageResult
    signature: 'fn encode_as_img<''buf>(fallback: &''buf mut Vec<u8>,data: &''buf
      [u8],width: u32,height: u32,color: ExtendedColorType,) -> ImageResult<RgbColor<''buf>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/decoder.rs:27,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:27,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - err
    argTypes:
    - E
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 13
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: error_map
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - into
    - ImageError::Decoding
    - 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:53,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/avif/decoder.rs:54,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/avif/decoder.rs:55,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/avif/decoder.rs:59,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/avif/decoder.rs:62,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/avif/decoder.rs:65,1
    - Dst: Result::write_fmt
      Src: /src/image/src/codecs/avif/decoder.rs:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 73
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 73
    functionName: AvifDecoderError::fmt
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - Result::write_fmt
    - Result::write_str
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mp4parse::read_avif
      Src: /src/image/src/codecs/avif/decoder.rs:81,1
    - Dst: map_err
      Src: /src/image/src/codecs/avif/decoder.rs:81,1
    - Dst: primary_item_coded_data
      Src: /src/image/src/codecs/avif/decoder.rs:82,1
    - Dst: unwrap_or_default
      Src: /src/image/src/codecs/avif/decoder.rs:82,1
    - Dst: dav1d::Decoder::new
      Src: /src/image/src/codecs/avif/decoder.rs:84,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/avif/decoder.rs:84,1
    - Dst: send_data
      Src: /src/image/src/codecs/avif/decoder.rs:85,1
    - Dst: RowsDecoded::to_vec
      Src: /src/image/src/codecs/avif/decoder.rs:86,1
    - Dst: map_err
      Src: /src/image/src/codecs/avif/decoder.rs:85,1
    - Dst: read_until_ready
      Src: /src/image/src/codecs/avif/decoder.rs:88,1
    - Dst: alpha_item_coded_data
      Src: /src/image/src/codecs/avif/decoder.rs:89,1
    - Dst: unwrap_or_default
      Src: /src/image/src/codecs/avif/decoder.rs:89,1
    - Dst: is_empty
      Src: /src/image/src/codecs/avif/decoder.rs:90,1
    - Dst: dav1d::Decoder::new
      Src: /src/image/src/codecs/avif/decoder.rs:91,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/avif/decoder.rs:91,1
    - Dst: send_data
      Src: /src/image/src/codecs/avif/decoder.rs:92,1
    - Dst: to_vec
      Src: /src/image/src/codecs/avif/decoder.rs:93,1
    - Dst: map_err
      Src: /src/image/src/codecs/avif/decoder.rs:92,1
    - Dst: Some
      Src: /src/image/src/codecs/avif/decoder.rs:95,1
    - Dst: read_until_ready
      Src: /src/image/src/codecs/avif/decoder.rs:95,1
    - Dst: icc_colour_information
      Src: /src/image/src/codecs/avif/decoder.rs:99,1
    - Dst: map
      Src: /src/image/src/codecs/avif/decoder.rs:99,1
    - Dst: ok
      Src: /src/image/src/codecs/avif/decoder.rs:101,1
    - Dst: bool::unwrap_or_default
      Src: /src/image/src/codecs/avif/decoder.rs:101,1
    - Dst: map
      Src: /src/image/src/codecs/avif/decoder.rs:99,1
    - Dst: to_vec
      Src: /src/image/src/codecs/avif/decoder.rs:102,1
    - Dst: ImageResult::bit_depth
      Src: /src/image/src/codecs/avif/decoder.rs:104,1
    - Dst: ImageResult::Err
      Src: /src/image/src/codecs/avif/decoder.rs:108,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/decoder.rs:108,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:108,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/avif/decoder.rs:109,1
    - Dst: image_rotation
      Src: /src/image/src/codecs/avif/decoder.rs:117,1
    - Dst: map_err
      Src: /src/image/src/codecs/avif/decoder.rs:117,1
    - Dst: image_mirror_ptr
      Src: /src/image/src/codecs/avif/decoder.rs:119,1
    - Dst: map_err
      Src: /src/image/src/codecs/avif/decoder.rs:119,1
    - Dst: is_null
      Src: /src/image/src/codecs/avif/decoder.rs:120,1
    - Dst: Some
      Src: /src/image/src/codecs/avif/decoder.rs:126,1
    - Dst: std::ptr::read_unaligned
      Src: /src/image/src/codecs/avif/decoder.rs:126,1
    - Dst: convert_orientation
      Src: /src/image/src/codecs/avif/decoder.rs:129,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:130,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 92
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 137
      start: 80
    functionDepth: 15
    functionLinenumber: 80
    functionLinenumberEnd: 137
    functionName: AvifDecoder::new
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 3
    functionsReached:
    - convert_orientation
    - Some
    - ImageError::Decoding
    - is_empty
    - alpha_item_coded_data
    - ImageResult::bit_depth
    - is_null
    - mp4parse::read_avif
    - std::ptr::read_unaligned
    - to_vec
    - image_mirror_ptr
    - ImageFormatHint::Exact
    - ImageResult::map_err
    - bool::unwrap_or_default
    - ok
    - ImageResult::Err
    - DecodingError::new
    - Ok
    - RowsDecoded::to_vec
    - map
    - image_rotation
    - send_data
    - map_err
    - unwrap_or_default
    - icc_colour_information
    - read_until_ready
    - dav1d::Decoder::new
    - primary_item_coded_data
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(mut r: R) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 2
    argNames:
    - rotation
    - mirror
    argTypes:
    - ImageRotation
    - Option<ImageMirror>
    constantsTouched: []
    func_position:
      end: 164
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 164
    functionName: convert_orientation
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Orientation
    signature: 'fn convert_orientation(rotation: ImageRotation, mirror: Option<ImageMirror>)
      -> Orientation'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/decoder.rs:169,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/decoder.rs:169,1
    - Dst: Option::chunks_exact
      Src: /src/image/src/codecs/avif/decoder.rs:171,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/decoder.rs:173,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/decoder.rs:173,1
    - Dst: as_chunks::<2>
      Src: /src/image/src/codecs/avif/decoder.rs:173,1
    - Dst: u16::from_ne_bytes
      Src: /src/image/src/codecs/avif/decoder.rs:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 4
    argNames:
    - source
    - stride
    - width
    - height
    argTypes:
    - '&[u8]'
    - usize
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 178
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 178
    functionName: reshape_plane
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 2
    functionsReached:
    - iter_mut
    - Option::chunks_exact
    - u16::from_ne_bytes
    - as_chunks::<2>
    - zip
    - chunks_exact_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:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    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:204,1
    - Dst: reshape_plane
      Src: /src/image/src/codecs/avif/decoder.rs:208,1
    - Dst: bytemuck::try_cast_slice
      Src: /src/image/src/codecs/avif/decoder.rs:212,1
    - Dst: std::borrow::Cow::Borrowed
      Src: /src/image/src/codecs/avif/decoder.rs:214,1
    - Dst: shape_y_plane
      Src: /src/image/src/codecs/avif/decoder.rs:218,1
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/avif/decoder.rs:220,1
    - Dst: shape_y_plane
      Src: /src/image/src/codecs/avif/decoder.rs:226,1
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/avif/decoder.rs:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 4
    argNames:
    - plane
    - stride
    - width
    - height
    argTypes:
    - '&dav1d::Plane'
    - usize
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 232
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 232
    functionName: transmute_y_plane16
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - std::borrow::Cow::Owned
    - reshape_plane
    - Vec::as_ref
    - shape_y_plane
    - std::borrow::Cow::Borrowed
    - 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:242,1
    - Dst: u32::div_ceil
      Src: /src/image/src/codecs/avif/decoder.rs:249,1
    - Dst: u32::div_ceil
      Src: /src/image/src/codecs/avif/decoder.rs:254,1
    - Dst: reshape_plane
      Src: /src/image/src/codecs/avif/decoder.rs:257,1
    - Dst: bytemuck::try_cast_slice
      Src: /src/image/src/codecs/avif/decoder.rs:261,1
    - Dst: std::borrow::Cow::Borrowed
      Src: /src/image/src/codecs/avif/decoder.rs:263,1
    - Dst: shape_chroma_plane
      Src: /src/image/src/codecs/avif/decoder.rs:267,1
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/avif/decoder.rs:269,1
    - Dst: shape_chroma_plane
      Src: /src/image/src/codecs/avif/decoder.rs:275,1
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/avif/decoder.rs:277,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: 281
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 281
    functionName: transmute_chroma_plane16
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - std::borrow::Cow::Owned
    - reshape_plane
    - bytemuck::try_cast_slice
    - Vec::as_ref
    - shape_chroma_plane
    - std::borrow::Cow::Borrowed
    - u32::div_ceil
    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:295,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:297,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:297,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:304,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:304,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:306,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/decoder.rs:306,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/decoder.rs:307,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:308,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/avif/decoder.rs:309,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/avif/decoder.rs:310,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:315,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:315,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:318,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:318,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:321,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:321,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:324,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:324,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:326,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:328,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:328,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:336,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/decoder.rs:336,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/decoder.rs:337,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:338,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/avif/decoder.rs:339,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/avif/decoder.rs:340,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:345,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/decoder.rs:345,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/decoder.rs:346,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:347,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/avif/decoder.rs:348,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/avif/decoder.rs:348,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:352,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/decoder.rs:353,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/decoder.rs:353,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:354,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/avif/decoder.rs:355,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/avif/decoder.rs:356,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:360,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/decoder.rs:360,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/decoder.rs:361,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:362,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/avif/decoder.rs:363,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/avif/decoder.rs:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 1
    argNames:
    - david_matrix
    argTypes:
    - dav1d::pixel::MatrixCoefficients
    constantsTouched: []
    func_position:
      end: 369
      start: 291
    functionDepth: 12
    functionLinenumber: 291
    functionLinenumberEnd: 369
    functionName: get_matrix
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - UnsupportedError::from_format_and_kind
    - YuvMatrixStrategy::KrKb
    - ImageError::Unsupported
    - '&str::to_string'
    - Err
    - UnsupportedErrorKind::GenericFeature
    - into
    - Ok
    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:373,1
    - Dst: height
      Src: /src/image/src/codecs/avif/decoder.rs:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 374
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 374
    functionName: AvifDecoder::dimensions
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - width
    - height
    linkageType: ''
    returnType: (u32, u32)
    signature: fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bit_depth
      Src: /src/image/src/codecs/avif/decoder.rs:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 382
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 382
    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:385,1
    - Dst: clone
      Src: /src/image/src/codecs/avif/decoder.rs:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: AvifDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - clone
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 390
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 390
    functionName: AvifDecoder::orientation
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn orientation(&mut self) -> ImageResult<Orientation>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bit_depth
      Src: /src/image/src/codecs/avif/decoder.rs:395,1
    - Dst: AvifDecoder::dimensions
      Src: /src/image/src/codecs/avif/decoder.rs:401,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:404,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/avif/decoder.rs:404,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/avif/decoder.rs:404,1
    - Dst: color_range
      Src: /src/image/src/codecs/avif/decoder.rs:409,1
    - Dst: get_matrix
      Src: /src/image/src/codecs/avif/decoder.rs:414,1
    - Dst: matrix_coefficients
      Src: /src/image/src/codecs/avif/decoder.rs:414,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:418,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:420,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/decoder.rs:420,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:420,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:421,1
    - Dst: AvifDecoderError::YuvLayoutOnIdentityMatrix
      Src: /src/image/src/codecs/avif/decoder.rs:422,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:422,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:427,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:429,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/decoder.rs:429,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:429,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:430,1
    - Dst: AvifDecoderError::UnsupportedLayoutAndMatrix
      Src: /src/image/src/codecs/avif/decoder.rs:431,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:432,1
    - Dst: plane
      Src: /src/image/src/codecs/avif/decoder.rs:439,1
    - Dst: plane
      Src: /src/image/src/codecs/avif/decoder.rs:440,1
    - Dst: plane
      Src: /src/image/src/codecs/avif/decoder.rs:441,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:444,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:445,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:446,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:447,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:448,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:449,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:456,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:463,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:466,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:473,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:476,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:483,1
    - Dst: ImageResult::pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:489,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:490,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/decoder.rs:490,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:490,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:491,1
    - Dst: AvifDecoderError::AlphaPlaneFormat
      Src: /src/image/src/codecs/avif/decoder.rs:492,1
    - Dst: ImageResult::pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:492,1
    - Dst: ImageResult::stride
      Src: /src/image/src/codecs/avif/decoder.rs:496,1
    - Dst: ImageResult::plane
      Src: /src/image/src/codecs/avif/decoder.rs:497,1
    - Dst: Iterator::zip
      Src: /src/image/src/codecs/avif/decoder.rs:499,1
    - Dst: std::io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/avif/decoder.rs:500,1
    - Dst: Vec::as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:501,1
    - Dst: FlatSamples::chunks_exact
      Src: /src/image/src/codecs/avif/decoder.rs:501,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/codecs/avif/decoder.rs:503,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/decoder.rs:503,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/decoder.rs:503,1
    - Dst: bytemuck::try_cast_slice_mut
      Src: /src/image/src/codecs/avif/decoder.rs:510,1
    - Dst: AvifDecoder::process_16bit_picture
      Src: /src/image/src/codecs/avif/decoder.rs:512,1
    - Dst: AvifDecoder::process_16bit_picture
      Src: /src/image/src/codecs/avif/decoder.rs:516,1
    - Dst: as_chunks_mut::<2>
      Src: /src/image/src/codecs/avif/decoder.rs:517,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/decoder.rs:517,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/decoder.rs:518,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/decoder.rs:518,1
    - Dst: to_ne_bytes
      Src: /src/image/src/codecs/avif/decoder.rs:519,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:524,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 197
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 525
      start: 392
    functionDepth: 13
    functionLinenumber: 392
    functionLinenumberEnd: 525
    functionName: AvifDecoder::read_image
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - Iterator::zip
    - iter_mut
    - LimitError::from_kind
    - Vec::as_ref
    - AvifDecoderError::AlphaPlaneFormat
    - ImageError::Decoding
    - AvifDecoder::dimensions
    - as_chunks_mut::<4>
    - ImageResult::stride
    - color_range
    - bit_depth
    - as_chunks_mut::<2>
    - bytemuck::try_cast_slice_mut
    - FlatSamples::chunks_exact
    - as_ref
    - AvifDecoderError::YuvLayoutOnIdentityMatrix
    - plane
    - ImageResult::pixel_layout
    - to_ne_bytes
    - matrix_coefficients
    - ImageError::Limits
    - into
    - DecodingError::new
    - ImageResult::plane
    - Ok
    - get_matrix
    - worker
    - pixel_layout
    - Err
    - std::io::Result::chunks_exact_mut
    - AvifDecoder::process_16bit_picture
    - AvifDecoderError::UnsupportedLayoutAndMatrix
    - stride
    - iter
    - zip
    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:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 3
    functionLinenumber: 527
    functionLinenumberEnd: 529
    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:539,1
    - Dst: width
      Src: /src/image/src/codecs/avif/decoder.rs:541,1
    - Dst: height
      Src: /src/image/src/codecs/avif/decoder.rs:541,1
    - Dst: bit_depth
      Src: /src/image/src/codecs/avif/decoder.rs:542,1
    - Dst: transmute_y_plane16
      Src: /src/image/src/codecs/avif/decoder.rs:549,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:551,1
    - Dst: plane
      Src: /src/image/src/codecs/avif/decoder.rs:556,1
    - Dst: plane
      Src: /src/image/src/codecs/avif/decoder.rs:557,1
    - Dst: Plane16View::default
      Src: /src/image/src/codecs/avif/decoder.rs:558,1
    - Dst: Plane16View::default
      Src: /src/image/src/codecs/avif/decoder.rs:559,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:561,1
    - Dst: transmute_chroma_plane16
      Src: /src/image/src/codecs/avif/decoder.rs:562,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:564,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:565,1
    - Dst: transmute_chroma_plane16
      Src: /src/image/src/codecs/avif/decoder.rs:569,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:571,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:572,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:579,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:581,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:583,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:591,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:621,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:624,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:648,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:651,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:663,1
    - Dst: ImageResult::pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:669,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:670,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/decoder.rs:670,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:670,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:671,1
    - Dst: AvifDecoderError::AlphaPlaneFormat
      Src: /src/image/src/codecs/avif/decoder.rs:672,1
    - Dst: ImageResult::pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:672,1
    - Dst: ImageResult::plane
      Src: /src/image/src/codecs/avif/decoder.rs:676,1
    - Dst: transmute_y_plane16
      Src: /src/image/src/codecs/avif/decoder.rs:677,1
    - Dst: ImageResult::stride
      Src: /src/image/src/codecs/avif/decoder.rs:679,1
    - Dst: Iterator::zip
      Src: /src/image/src/codecs/avif/decoder.rs:684,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/decoder.rs:685,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:686,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/decoder.rs:686,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/codecs/avif/decoder.rs:688,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/decoder.rs:688,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/decoder.rs:688,1
    - Dst: bit_depth
      Src: /src/image/src/codecs/avif/decoder.rs:695,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/decoder.rs:696,1
    - Dst: rotate_left
      Src: /src/image/src/codecs/avif/decoder.rs:697,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:700,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 195
    argCount: 3
    argNames:
    - target
    - yuv_range
    - matrix_strategy
    argTypes:
    - '&mut [u16]'
    - YuvIntensityRange
    - YuvMatrixStrategy
    constantsTouched: []
    func_position:
      end: 701
      start: 533
    functionDepth: 13
    functionLinenumber: 533
    functionLinenumberEnd: 701
    functionName: AvifDecoder::process_16bit_picture
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - Plane16View::default
    - Iterator::zip
    - iter_mut
    - AvifDecoderError::AlphaPlaneFormat
    - ImageError::Decoding
    - chunks_exact_mut
    - as_chunks_mut::<4>
    - transmute_y_plane16
    - ImageResult::stride
    - transmute_chroma_plane16
    - bit_depth
    - rotate_left
    - as_ref
    - plane
    - ImageResult::pixel_layout
    - into
    - DecodingError::new
    - ImageResult::plane
    - Ok
    - worker
    - chunks_exact
    - pixel_layout
    - Err
    - width
    - stride
    - zip
    - height
    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:709,1
    - Dst: ImageResult::send_pending_data
      Src: /src/image/src/codecs/avif/decoder.rs:710,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:713,1
    - Dst: error_map
      Src: /src/image/src/codecs/avif/decoder.rs:713,1
    - Dst: Result::map_err
      Src: /src/image/src/codecs/avif/decoder.rs:715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - '&mut dav1d::Decoder'
    constantsTouched: []
    func_position:
      end: 718
      start: 707
    functionDepth: 14
    functionLinenumber: 707
    functionLinenumberEnd: 718
    functionName: read_until_ready
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - ImageResult::get_picture
    - Err
    - ImageResult::send_pending_data
    - error_map
    - Result::map_err
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_until_ready(decoder: &mut dav1d::Decoder) -> ImageResult<dav1d::Picture>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: qrshr::<PRECISION, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:32,1
    - Dst: qrshr::<PRECISION, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:33,1
    - Dst: qrshr::<PRECISION, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:34,1
    - Dst: Result::as_
      Src: /src/image/src/codecs/avif/ycgco.rs:37,1
    - Dst: 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:
    - qrshr::<PRECISION, BIT_DEPTH>
    - Result::as_
    - 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:
    - clamp
    - Result::as_
    - 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: as_chunks::<2>
      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: iter
      Src: /src/image/src/codecs/avif/ycgco.rs:128,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:128,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:128,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:128,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:130,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:131,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:132,1
    - Dst: ycgco_execute_limited::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:136,1
    - Dst: try_into
      Src: /src/image/src/codecs/avif/ycgco.rs:137,1
    - Dst: unwrap
      Src: /src/image/src/codecs/avif/ycgco.rs:137,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:144,1
    - Dst: ycgco_execute_limited::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:148,1
    - Dst: try_into
      Src: /src/image/src/codecs/avif/ycgco.rs:149,1
    - Dst: unwrap
      Src: /src/image/src/codecs/avif/ycgco.rs:149,1
    - Dst: into_remainder
      Src: /src/image/src/codecs/avif/ycgco.rs:159,1
    - Dst: "into_remainder()\n            .as_chunks_mut::<CHANNELS>"
      Src: /src/image/src/codecs/avif/ycgco.rs:159,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/ycgco.rs:159,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/ycgco.rs:164,1
    - Dst: rev
      Src: /src/image/src/codecs/avif/ycgco.rs:164,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/ycgco.rs:165,1
    - Dst: rev
      Src: /src/image/src/codecs/avif/ycgco.rs:165,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/ycgco.rs:168,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:168,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:168,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:168,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:170,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:171,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:172,1
    - Dst: ycgco_execute_limited::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 129
    argCount: 4
    argNames:
    - image
    - rgba
    - range
    argTypes:
    - YuvPlanarImage<V>
    - '&mut [V]'
    - '&CbCrInverseTransform<i32>'
    - '&YuvChromaRange'
    constantsTouched: []
    func_position:
      end: 179
      start: 93
    functionDepth: 4
    functionLinenumber: 93
    functionLinenumberEnd: 179
    functionName: process_halved_chroma_row_cgco
    functionSourceFile: /src/image/src/codecs/avif/ycgco.rs
    functionUses: 0
    functionsReached:
    - ycgco_execute_limited::<V, PRECISION, CHANNELS, BIT_DEPTH>
    - try_into
    - as_
    - iter_mut
    - as_chunks::<2>
    - unwrap
    - "into_remainder()\n            .as_chunks_mut::<CHANNELS>"
    - rev
    - into_remainder
    - iter
    - zip
    - chunks_exact_mut
    - div_ceil
    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:227,1
    - Dst: codecs::avif::yuv::check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/ycgco.rs:228,1
    - Dst: codecs::avif::yuv::check_yuv_plane_preconditions
      Src: /src/image/src/codecs/avif/ycgco.rs:229,1
    - Dst: check_rgb_preconditions
      Src: /src/image/src/codecs/avif/ycgco.rs:231,1
    - Dst: YuvChromaRange::get_yuv_range
      Src: /src/image/src/codecs/avif/ycgco.rs:233,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/ycgco.rs:241,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/ycgco.rs:242,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/ycgco.rs:243,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/ycgco.rs:244,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:249,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:249,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:249,1
    - Dst: as_chunks_mut::<CHANNELS>
      Src: /src/image/src/codecs/avif/ycgco.rs:250,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/ycgco.rs:250,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/ycgco.rs:256,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:256,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:256,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:256,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:258,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:259,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:260,1
    - Dst: ycgco_execute_limited::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:262,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/ycgco.rs:269,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:269,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:269,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/ycgco.rs:269,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:271,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:272,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:273,1
    - Dst: ycgco_execute_full::<V, PRECISION, CHANNELS, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:275,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/ycgco.rs:283,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 114
    argCount: 3
    argNames:
    - image
    - rgba
    - yuv_range
    argTypes:
    - YuvPlanarImage<V>
    - '&mut [V]'
    - YuvIntensityRange
    constantsTouched: []
    func_position:
      end: 284
      start: 189
    functionDepth: 15
    functionLinenumber: 189
    functionLinenumberEnd: 284
    functionName: ycgco444_to_rgbx_impl
    functionSourceFile: /src/image/src/codecs/avif/ycgco.rs
    functionUses: 0
    functionsReached:
    - Ok
    - ycgco_execute_limited::<V, PRECISION, CHANNELS, BIT_DEPTH>
    - ycgco_execute_full::<V, PRECISION, CHANNELS, BIT_DEPTH>
    - chunks_exact
    - check_rgb_preconditions
    - as_chunks_mut::<CHANNELS>
    - as_
    - iter_mut
    - YuvChromaRange::get_yuv_range
    - iter
    - zip
    - chunks_exact_mut
    - codecs::avif::yuv::check_yuv_plane_preconditions
    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: 311
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 311
    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: 388
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 388
    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:
    - Img::into
    - contains
    - Err
    - ParameterErrorKind::Generic
    - ImageError::Parameter
    - ParameterError::from_kind
    - Ok
    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: 17
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: IcoFrame::as_png
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 1
    functionsReached:
    - PngEncoder::write_image
    - PngEncoder::new
    - Vec::new
    - Self::with_encoded
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn as_png(buf: &[u8],width: u32,height: u32,color_type: ExtendedColorType,)
      -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: IcoEncoder::new
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: IcoEncoder
    signature: 'pub fn new(w: W) -> IcoEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::from
      Src: /src/image/src/codecs/ico/encoder.rs:96,1
    - Dst: contains
      Src: /src/image/src/codecs/ico/encoder.rs:96,1
    - Dst: len
      Src: /src/image/src/codecs/ico/encoder.rs:96,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/encoder.rs:97,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/ico/encoder.rs:97,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/ico/encoder.rs:97,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/ico/encoder.rs:98,1
    - Dst: len
      Src: /src/image/src/codecs/ico/encoder.rs:104,1
    - Dst: len
      Src: /src/image/src/codecs/ico/encoder.rs:106,1
    - Dst: write_icondir
      Src: /src/image/src/codecs/ico/encoder.rs:107,1
    - Dst: write_direntry
      Src: /src/image/src/codecs/ico/encoder.rs:109,1
    - Dst: len
      Src: /src/image/src/codecs/ico/encoder.rs:115,1
    - Dst: len
      Src: /src/image/src/codecs/ico/encoder.rs:118,1
    - Dst: write_all
      Src: /src/image/src/codecs/ico/encoder.rs:121,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/encoder.rs:123,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 62
    argCount: 1
    argNames:
    - images
    argTypes:
    - '&[IcoFrame<''_>]'
    constantsTouched: []
    func_position:
      end: 124
      start: 95
    functionDepth: 14
    functionLinenumber: 95
    functionLinenumberEnd: 124
    functionName: IcoEncoder::encode_images
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 1
    functionsReached:
    - usize::from
    - contains
    - Err
    - write_direntry
    - ParameterErrorKind::Generic
    - write_all
    - write_icondir
    - len
    - ImageError::Parameter
    - ParameterError::from_kind
    - Ok
    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: 16
    functionLinenumber: 135
    functionLinenumberEnd: 152
    functionName: IcoEncoder::write_image
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 0
    functionsReached:
    - IcoEncoder::encode_images
    - Option::buffer_size
    - 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>
    - bool::bits_per_pixel
    - write_u16::<LittleEndian>
    - 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:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    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: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    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: Result::stream_position
      Src: /src/image/src/codecs/ico/decoder.rs:148,1
    - Dst: read_entries
      Src: /src/image/src/codecs/ico/decoder.rs:149,1
    - Dst: best_entry
      Src: /src/image/src/codecs/ico/decoder.rs:150,1
    - Dst: Option::decoder
      Src: /src/image/src/codecs/ico/decoder.rs:151,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 15
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: IcoDecoder::new
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 2
    functionsReached:
    - best_entry
    - Option::decoder
    - Ok
    - read_entries
    - Result::stream_position
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(mut r: R) -> ImageResult<IcoDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/ico/decoder.rs:163,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/ico/decoder.rs:165,1
    - Dst: try_into
      Src: /src/image/src/codecs/ico/decoder.rs:165,1
    - Dst: unwrap
      Src: /src/image/src/codecs/ico/decoder.rs:165,1
    - Dst: map
      Src: /src/image/src/codecs/ico/decoder.rs:166,1
    - Dst: read_entry
      Src: /src/image/src/codecs/ico/decoder.rs:166,1
    - Dst: collect
      Src: /src/image/src/codecs/ico/decoder.rs:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut R'
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 14
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: read_entries
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::read_exact
    - map
    - try_into
    - u16::from_le_bytes
    - collect
    - unwrap
    - read_entry
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_entries<R: Read>(r: &mut R) -> ImageResult<Vec<DirEntry>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/ico/decoder.rs:171,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/ico/decoder.rs:175,1
    - Dst: try_into
      Src: /src/image/src/codecs/ico/decoder.rs:175,1
    - Dst: unwrap
      Src: /src/image/src/codecs/ico/decoder.rs:175,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:177,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:177,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/ico/decoder.rs:181,1
    - Dst: try_into
      Src: /src/image/src/codecs/ico/decoder.rs:181,1
    - Dst: unwrap
      Src: /src/image/src/codecs/ico/decoder.rs:181,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:183,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:183,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:186,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/ico/decoder.rs:193,1
    - Dst: try_into
      Src: /src/image/src/codecs/ico/decoder.rs:193,1
    - Dst: unwrap
      Src: /src/image/src/codecs/ico/decoder.rs:193,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/ico/decoder.rs:194,1
    - Dst: try_into
      Src: /src/image/src/codecs/ico/decoder.rs:194,1
    - Dst: unwrap
      Src: /src/image/src/codecs/ico/decoder.rs:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 56
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut R'
    constantsTouched: []
    func_position:
      end: 196
      start: 169
    functionDepth: 12
    functionLinenumber: 169
    functionLinenumberEnd: 196
    functionName: read_entry
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::read_exact
    - try_into
    - u16::from_le_bytes
    - u32::from_le_bytes
    - Err
    - unwrap
    - into
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_entry<R: Read>(r: &mut R) -> ImageResult<DirEntry>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::into_iter
      Src: /src/image/src/codecs/ico/decoder.rs:205,1
    - Dst: rev
      Src: /src/image/src/codecs/ico/decoder.rs:205,1
    - Dst: max_by_key
      Src: /src/image/src/codecs/ico/decoder.rs:205,1
    - Dst: u32::from
      Src: /src/image/src/codecs/ico/decoder.rs:211,1
    - Dst: Option::real_width
      Src: /src/image/src/codecs/ico/decoder.rs:211,1
    - Dst: u32::from
      Src: /src/image/src/codecs/ico/decoder.rs:211,1
    - Dst: Option::real_height
      Src: /src/image/src/codecs/ico/decoder.rs:211,1
    - Dst: ok_or
      Src: /src/image/src/codecs/ico/decoder.rs:205,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - entries
    argTypes:
    - Vec<DirEntry>
    constantsTouched: []
    func_position:
      end: 215
      start: 204
    functionDepth: 12
    functionLinenumber: 204
    functionLinenumberEnd: 215
    functionName: best_entry
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 1
    functionsReached:
    - Option::real_height
    - u32::from
    - ImageResult::into_iter
    - ok_or
    - Option::real_width
    - rev
    - into
    - max_by_key
    linkageType: ''
    returnType: ImageResult
    signature: 'fn best_entry(entries: Vec<DirEntry>) -> ImageResult<DirEntry>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u16::from
      Src: /src/image/src/codecs/ico/decoder.rs:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: DirEntry::real_width
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 2
    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:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 230
    functionName: DirEntry::real_height
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 2
    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:233,1
    - Dst: DirEntry::real_width
      Src: /src/image/src/codecs/ico/decoder.rs:233,1
    - Dst: u32::min
      Src: /src/image/src/codecs/ico/decoder.rs:233,1
    - Dst: u32::from
      Src: /src/image/src/codecs/ico/decoder.rs:234,1
    - Dst: DirEntry::real_height
      Src: /src/image/src/codecs/ico/decoder.rs:234,1
    - Dst: u32::min
      Src: /src/image/src/codecs/ico/decoder.rs:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: DirEntry::matches_dimensions
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - u32::min
    - DirEntry::real_height
    - u32::from
    - DirEntry::real_width
    linkageType: ''
    returnType: bool
    signature: 'fn matches_dimensions(&self, width: u32, height: u32) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: utils::seek_start_with_offset
      Src: /src/image/src/codecs/ico/decoder.rs:238,1
    - Dst: u64::from
      Src: /src/image/src/codecs/ico/decoder.rs:238,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - r
    - reader_offset
    argTypes:
    - '&mut R'
    - u64
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: DirEntry::seek_to_start
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 2
    functionsReached:
    - utils::seek_start_with_offset
    - Ok
    - u64::from
    linkageType: ''
    returnType: ImageResult
    signature: 'fn seek_to_start<R: Read + Seek>(&self, r: &mut R, reader_offset:
      u64) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DirEntry::seek_to_start
      Src: /src/image/src/codecs/ico/decoder.rs:243,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/ico/decoder.rs:247,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - r
    - reader_offset
    argTypes:
    - '&mut R'
    - u64
    constantsTouched: []
    func_position:
      end: 250
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 250
    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, reader_offset: u64) ->
      ImageResult<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DirEntry::is_png
      Src: /src/image/src/codecs/ico/decoder.rs:257,1
    - Dst: DirEntry::seek_to_start
      Src: /src/image/src/codecs/ico/decoder.rs:258,1
    - Dst: Some
      Src: /src/image/src/codecs/ico/decoder.rs:262,1
    - Dst: DirEntry::real_width
      Src: /src/image/src/codecs/ico/decoder.rs:262,1
    - Dst: u16::into
      Src: /src/image/src/codecs/ico/decoder.rs:262,1
    - Dst: Some
      Src: /src/image/src/codecs/ico/decoder.rs:263,1
    - Dst: DirEntry::real_height
      Src: /src/image/src/codecs/ico/decoder.rs:263,1
    - Dst: u16::into
      Src: /src/image/src/codecs/ico/decoder.rs:263,1
    - Dst: Some
      Src: /src/image/src/codecs/ico/decoder.rs:264,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:266,1
    - Dst: Png
      Src: /src/image/src/codecs/ico/decoder.rs:266,1
    - Dst: Box::new
      Src: /src/image/src/codecs/ico/decoder.rs:266,1
    - Dst: PngDecoder::with_limits
      Src: /src/image/src/codecs/ico/decoder.rs:266,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:268,1
    - Dst: Bmp
      Src: /src/image/src/codecs/ico/decoder.rs:268,1
    - Dst: BmpDecoder::new_with_ico_format
      Src: /src/image/src/codecs/ico/decoder.rs:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - r
    - reader_offset
    argTypes:
    - R
    - u64
    constantsTouched: []
    func_position:
      end: 270
      start: 252
    functionDepth: 12
    functionLinenumber: 252
    functionLinenumberEnd: 270
    functionName: DirEntry::decoder
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - DirEntry::real_height
    - Ok
    - DirEntry::seek_to_start
    - Some
    - u16::into
    - Png
    - Bmp
    - BmpDecoder::new_with_ico_format
    - Box::new
    - PngDecoder::with_limits
    - DirEntry::is_png
    - DirEntry::real_width
    linkageType: ''
    returnType: ImageResult
    signature: 'fn decoder<R: BufRead + Seek>(&self,mut r: R,reader_offset: u64,)
      -> ImageResult<InnerDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/ico/decoder.rs:276,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/ico/decoder.rs:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 274
    functionDepth: 12
    functionLinenumber: 274
    functionLinenumberEnd: 279
    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:283,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/ico/decoder.rs:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 286
    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:292,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:293,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:293,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/ico/decoder.rs:297,1
    - Dst: matches_dimensions
      Src: /src/image/src/codecs/ico/decoder.rs:298,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:299,1
    - Dst: real_width
      Src: /src/image/src/codecs/ico/decoder.rs:302,1
    - Dst: real_height
      Src: /src/image/src/codecs/ico/decoder.rs:303,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:299,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/ico/decoder.rs:312,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:313,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:313,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/ico/decoder.rs:316,1
    - Dst: ImageResult::dimensions
      Src: /src/image/src/codecs/ico/decoder.rs:319,1
    - Dst: matches_dimensions
      Src: /src/image/src/codecs/ico/decoder.rs:320,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:321,1
    - Dst: real_width
      Src: /src/image/src/codecs/ico/decoder.rs:324,1
    - Dst: real_height
      Src: /src/image/src/codecs/ico/decoder.rs:325,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:321,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/ico/decoder.rs:333,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:334,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/ico/decoder.rs:334,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/ico/decoder.rs:335,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:336,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/ico/decoder.rs:337,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/codecs/ico/decoder.rs:337,1
    - Dst: Option::into
      Src: /src/image/src/codecs/ico/decoder.rs:337,1
    - Dst: ImageResult::read_image_data
      Src: /src/image/src/codecs/ico/decoder.rs:342,1
    - Dst: ImageResult::reader
      Src: /src/image/src/codecs/ico/decoder.rs:344,1
    - Dst: Result::stream_position
      Src: /src/image/src/codecs/ico/decoder.rs:345,1
    - Dst: u64::from
      Src: /src/image/src/codecs/ico/decoder.rs:347,1
    - Dst: u64::from
      Src: /src/image/src/codecs/ico/decoder.rs:348,1
    - Dst: u32::div_ceil
      Src: /src/image/src/codecs/ico/decoder.rs:350,1
    - Dst: u64::from
      Src: /src/image/src/codecs/ico/decoder.rs:351,1
    - Dst: u64::from
      Src: /src/image/src/codecs/ico/decoder.rs:351,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/ico/decoder.rs:366,1
    - Dst: rev
      Src: /src/image/src/codecs/ico/decoder.rs:367,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:380,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:383,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:385,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:385,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 166
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 389
      start: 288
    functionDepth: 14
    functionLinenumber: 288
    functionLinenumberEnd: 389
    functionName: IcoDecoder::read_image
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - Option::into
    - real_height
    - rev
    - ImageResult::read_image
    - matches_dimensions
    - ImageResult::color_type
    - ImageResult::read_image_data
    - real_width
    - Result::read_u8
    - u32::div_ceil
    - Result::stream_position
    - UnsupportedErrorKind::Color
    - ImageResult::dimensions
    - len
    - into
    - Ok
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - Err
    - u64::from
    - ImageResult::reader
    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:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    argTypes:
    - Box<Self>
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 393
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 393
    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:454,1
    - Dst: std::io::Cursor::new
      Src: /src/image/src/codecs/ico/decoder.rs:454,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/ico/decoder.rs:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 457
      start: 403
    functionDepth: 16
    functionLinenumber: 403
    functionLinenumberEnd: 457
    functionName: test::bmp_16_with_missing_alpha_channel
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - IcoDecoder::new
    - ImageResult::unwrap
    - std::io::Cursor::new
    linkageType: ''
    returnType: void
    signature: fn bmp_16_with_missing_alpha_channel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/image/src/imageops/sample.rs:131,1
    - Dst: to_i8
      Src: /src/image/src/imageops/sample.rs:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 14
    functionLinenumber: 130
    functionLinenumberEnd: 132
    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:134,1
    - Dst: to_i16
      Src: /src/image/src/imageops/sample.rs:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 14
    functionLinenumber: 133
    functionLinenumberEnd: 135
    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:137,1
    - Dst: to_i64
      Src: /src/image/src/imageops/sample.rs:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 14
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: FloatNearest::to_i64
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - to_i64
    - round
    linkageType: ''
    returnType: Option
    signature: fn to_i64(&self) -> Option<i64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/image/src/imageops/sample.rs:140,1
    - Dst: to_u8
      Src: /src/image/src/imageops/sample.rs:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 14
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: FloatNearest::to_u8
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - round
    - to_u8
    linkageType: ''
    returnType: Option
    signature: fn to_u8(&self) -> Option<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round
      Src: /src/image/src/imageops/sample.rs:143,1
    - Dst: to_u16
      Src: /src/image/src/imageops/sample.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 14
    functionLinenumber: 142
    functionLinenumberEnd: 144
    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:146,1
    - Dst: to_u64
      Src: /src/image/src/imageops/sample.rs:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 14
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: FloatNearest::to_u64
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - round
    - to_u64
    linkageType: ''
    returnType: Option
    signature: fn to_u64(&self) -> Option<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_f64
      Src: /src/image/src/imageops/sample.rs:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 150
    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:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - t
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 162
    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:166,1
    - Dst: sinc
      Src: /src/image/src/imageops/sample.rs:167,1
    - Dst: sinc
      Src: /src/image/src/imageops/sample.rs:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - x
    - t
    argTypes:
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: lanczos
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - abs
    - sinc
    linkageType: ''
    returnType: f32
    signature: 'fn lanczos(x: f32, t: f32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:176,1
    - Dst: powi
      Src: /src/image/src/imageops/sample.rs:179,1
    - Dst: powi
      Src: /src/image/src/imageops/sample.rs:180,1
    - Dst: powi
      Src: /src/image/src/imageops/sample.rs:183,1
    - Dst: powi
      Src: /src/image/src/imageops/sample.rs:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 56
    argCount: 3
    argNames:
    - x
    - b
    - c
    argTypes:
    - f32
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 192
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 192
    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:197,1
    - Dst: recip
      Src: /src/image/src/imageops/sample.rs:197,1
    - Dst: powi
      Src: /src/image/src/imageops/sample.rs:197,1
    - Dst: Result::powi
      Src: /src/image/src/imageops/sample.rs:197,1
    - Dst: exp
      Src: /src/image/src/imageops/sample.rs:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - x
    - r
    argTypes:
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: gaussian
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - exp
    - powi
    - sqrt
    - recip
    - Result::powi
    linkageType: ''
    returnType: f32
    signature: 'pub(crate) fn gaussian(x: f32, r: f32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lanczos
      Src: /src/image/src/imageops/sample.rs:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 203
    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:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 209
    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:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 215
    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:220,1
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 225
    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: 232
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 232
    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:253,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/sample.rs:261,1
    - Dst: SampleLayout::copy_color_space_from
      Src: /src/image/src/imageops/sample.rs:262,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:264,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:264,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:265,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:265,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:271,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:277,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:277,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:277,1
    - Dst: Vec::new
      Src: /src/image/src/imageops/sample.rs:280,1
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/imageops/sample.rs:282,1
    - Dst: Result::expect
      Src: /src/image/src/imageops/sample.rs:282,1
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/imageops/sample.rs:284,1
    - Dst: Result::expect
      Src: /src/image/src/imageops/sample.rs:284,1
    - Dst: Vec::as_raw
      Src: /src/image/src/imageops/sample.rs:287,1
    - Dst: SampleLayout::as_mut
      Src: /src/image/src/imageops/sample.rs:292,1
    - Dst: saturating_add
      Src: /src/image/src/imageops/sample.rs:296,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:296,1
    - Dst: Self::clear
      Src: /src/image/src/imageops/sample.rs:299,1
    - Dst: clear
      Src: /src/image/src/imageops/sample.rs:300,1
    - Dst: clear
      Src: /src/image/src/imageops/sample.rs:301,1
    - Dst: push
      Src: /src/image/src/imageops/sample.rs:302,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:315,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:317,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:318,1
    - Dst: push
      Src: /src/image/src/imageops/sample.rs:324,1
    - Dst: Self::len
      Src: /src/image/src/imageops/sample.rs:325,1
    - Dst: Self::push
      Src: /src/image/src/imageops/sample.rs:329,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/sample.rs:332,1
    - Dst: push
      Src: /src/image/src/imageops/sample.rs:335,1
    - Dst: Self::len
      Src: /src/image/src/imageops/sample.rs:335,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/sample.rs:345,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:345,1
    - Dst: u32::iter
      Src: /src/image/src/imageops/sample.rs:351,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:351,1
    - Dst: std::io::Result::iter_mut
      Src: /src/image/src/imageops/sample.rs:353,1
    - Dst: zip
      Src: /src/image/src/imageops/sample.rs:353,1
    - Dst: std::io::Result::iter
      Src: /src/image/src/imageops/sample.rs:359,1
    - Dst: zip
      Src: /src/image/src/imageops/sample.rs:359,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/sample.rs:359,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:360,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:360,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:360,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:360,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 209
    argCount: 3
    argNames:
    - image
    - new_width
    - filter
    argTypes:
    - '&Rgba32FImage'
    - u32
    - '&mut Filter'
    constantsTouched: []
    func_position:
      end: 369
      start: 244
    functionDepth: 12
    functionLinenumber: 244
    functionLinenumberEnd: 369
    functionName: horizontal_sample
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - Self::clear
    - iter_mut
    - saturating_add
    - Self::len
    - chunks_exact_mut
    - Vec::as_raw
    - max
    - push
    - Vec::dimensions
    - Vec::new
    - std::io::Result::iter
    - min
    - Result::expect
    - enumerate
    - SampleLayout::copy_color_space_from
    - Self::unwrap
    - std::io::Result::iter_mut
    - Self::push
    - u32::iter
    - ceil
    - utils::clamp
    - ImageBuffer::new
    - clear
    - NumCast::from
    - FloatNearest
    - utils::vec_try_with_capacity
    - zip
    - SampleLayout::as_mut
    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>,S: Primitive,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:377,1
    - Dst: all
      Src: /src/image/src/imageops/sample.rs:377,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:377,1
    - Dst: Option::dimensions
      Src: /src/image/src/imageops/sample.rs:381,1
    - Dst: interpolate_bilinear
      Src: /src/image/src/imageops/sample.rs:388,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:390,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:390,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:391,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 45
    argCount: 3
    argNames:
    - img
    - u
    - v
    argTypes:
    - '&impl GenericImageView<Pixel = P>'
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 393
      start: 372
    functionDepth: 14
    functionLinenumber: 372
    functionLinenumberEnd: 393
    functionName: sample_bilinear
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - max
    - contains
    - Option::dimensions
    - all
    - interpolate_bilinear
    - min
    - iter
    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:401,1
    - Dst: all
      Src: /src/image/src/imageops/sample.rs:401,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:401,1
    - Dst: Option::dimensions
      Src: /src/image/src/imageops/sample.rs:405,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:407,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:407,1
    - Dst: Self::saturating_sub
      Src: /src/image/src/imageops/sample.rs:407,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:410,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:410,1
    - Dst: ImageResult::saturating_sub
      Src: /src/image/src/imageops/sample.rs:410,1
    - Dst: interpolate_nearest
      Src: /src/image/src/imageops/sample.rs:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 3
    argNames:
    - img
    - u
    - v
    argTypes:
    - '&impl GenericImageView<Pixel = P>'
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 412
      start: 396
    functionDepth: 14
    functionLinenumber: 396
    functionLinenumberEnd: 412
    functionName: sample_nearest
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Self::saturating_sub
    - max
    - contains
    - Option::dimensions
    - all
    - min
    - iter
    - interpolate_nearest
    - ImageResult::saturating_sub
    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:425,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:429,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:432,1
    - Dst: Some
      Src: /src/image/src/imageops/sample.rs:436,1
    - Dst: Option::get_pixel
      Src: /src/image/src/imageops/sample.rs:436,1
    - Dst: round
      Src: /src/image/src/imageops/sample.rs:436,1
    - Dst: Option::round
      Src: /src/image/src/imageops/sample.rs:436,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 3
    argNames:
    - img
    - x
    - y
    argTypes:
    - '&impl GenericImageView<Pixel = P>'
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 437
      start: 420
    functionDepth: 12
    functionLinenumber: 420
    functionLinenumberEnd: 437
    functionName: interpolate_nearest
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - Option::round
    - contains
    - Some
    - Option::get_pixel
    - Option::dimensions
    - round
    linkageType: ''
    returnType: Option
    signature: 'pub fn interpolate_nearest<P: Pixel>(img: &impl GenericImageView<Pixel
      = P>,x: f32,y: f32,) -> Option<P>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::dimensions
      Src: /src/image/src/imageops/sample.rs:448,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:452,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:455,1
    - Dst: floor
      Src: /src/image/src/imageops/sample.rs:460,1
    - Dst: Option::floor
      Src: /src/image/src/imageops/sample.rs:461,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:462,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:463,1
    - Dst: Option::get_pixel
      Src: /src/image/src/imageops/sample.rs:476,1
    - Dst: Result::channels
      Src: /src/image/src/imageops/sample.rs:477,1
    - Dst: usize::iter
      Src: /src/image/src/imageops/sample.rs:477,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:477,1
    - Dst: io::Result::to_f32
      Src: /src/image/src/imageops/sample.rs:478,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/sample.rs:478,1
    - Dst: compute
      Src: /src/image/src/imageops/sample.rs:484,1
    - Dst: compute
      Src: /src/image/src/imageops/sample.rs:485,1
    - Dst: compute
      Src: /src/image/src/imageops/sample.rs:486,1
    - Dst: compute
      Src: /src/image/src/imageops/sample.rs:487,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:505,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:505,1
    - Dst: SampleLayout::channels_mut
      Src: /src/image/src/imageops/sample.rs:507,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/sample.rs:507,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:507,1
    - Dst: <P::Subpixel as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:512,1
    - Dst: DynamicImage::round
      Src: /src/image/src/imageops/sample.rs:512,1
    - Dst: Self::unwrap_or
      Src: /src/image/src/imageops/sample.rs:512,1
    - Dst: Some
      Src: /src/image/src/imageops/sample.rs:521,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 140
    argCount: 3
    argNames:
    - img
    - x
    - y
    argTypes:
    - '&impl GenericImageView<Pixel = P>'
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 522
      start: 440
    functionDepth: 12
    functionLinenumber: 440
    functionLinenumberEnd: 522
    functionName: interpolate_bilinear
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - iter_mut
    - Some
    - unwrap
    - f32::unwrap
    - io::Result::to_f32
    - Self::unwrap_or
    - contains
    - min
    - enumerate
    - <P::Subpixel as NumCast>::from
    - Option::get_pixel
    - Option::floor
    - DynamicImage::round
    - usize::iter
    - to_f32
    - Option::dimensions
    - Result::channels
    - SampleLayout::channels_mut
    - floor
    - compute
    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:538,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/sample.rs:548,1
    - Dst: SampleLayout::copy_color_space_from
      Src: /src/image/src/imageops/sample.rs:549,1
    - Dst: Vec::buffer_with_dimensions
      Src: /src/image/src/imageops/sample.rs:549,1
    - Dst: Vec::new
      Src: /src/image/src/imageops/sample.rs:550,1
    - Dst: floor
      Src: /src/image/src/imageops/sample.rs:561,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:562,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:562,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:564,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:565,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:567,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:568,1
    - Dst: u32::clear
      Src: /src/image/src/imageops/sample.rs:573,1
    - Dst: u32::push
      Src: /src/image/src/imageops/sample.rs:577,1
    - Dst: u32::iter_mut
      Src: /src/image/src/imageops/sample.rs:580,1
    - Dst: crate::Rgba
      Src: /src/image/src/imageops/sample.rs:585,1
    - Dst: u32::iter
      Src: /src/image/src/imageops/sample.rs:587,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:587,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:588,1
    - Dst: channels_mut
      Src: /src/image/src/imageops/sample.rs:590,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/sample.rs:590,1
    - Dst: zip
      Src: /src/image/src/imageops/sample.rs:590,1
    - Dst: Result::channels
      Src: /src/image/src/imageops/sample.rs:590,1
    - Dst: <f32 as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:591,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:591,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/sample.rs:595,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 102
    argCount: 3
    argNames:
    - image
    - new_height
    - filter
    argTypes:
    - '&I'
    - u32
    - '&mut Filter'
    constantsTouched: []
    func_position:
      end: 600
      start: 532
    functionDepth: 12
    functionLinenumber: 532
    functionLinenumberEnd: 600
    functionName: vertical_sample
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - SampleLayout::put_pixel
    - iter_mut
    - u32::push
    - Vec::dimensions
    - Vec::new
    - <i64 as From<_>>::from
    - crate::Rgba
    - enumerate
    - u32::clear
    - SampleLayout::copy_color_space_from
    - Self::unwrap
    - <f32 as NumCast>::from
    - Vec::buffer_with_dimensions
    - u32::iter
    - ceil
    - utils::clamp
    - ImageBuffer::new
    - Result::channels
    - channels_mut
    - u32::iter_mut
    - floor
    - Vec::get_pixel
    - zip
    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>,S: Primitive,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThumbnailSum
      Src: /src/image/src/imageops/sample.rs:607,1
    - Dst: S::Larger::zero
      Src: /src/image/src/imageops/sample.rs:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 608
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 608
    functionName: ThumbnailSum::zeroed
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 3
    functionsReached:
    - ThumbnailSum
    - S::Larger::zero
    linkageType: ''
    returnType: Self
    signature: fn zeroed() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: <S::Larger as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:611,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - S
    constantsTouched: []
    func_position:
      end: 612
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 612
    functionName: ThumbnailSum::sample_val
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Self::unwrap
    - <S::Larger as NumCast>::from
    linkageType: ''
    returnType: S::Larger
    signature: 'fn sample_val(val: S) -> S::Larger'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/image/src/imageops/sample.rs:615,1
    - Dst: zip
      Src: /src/image/src/imageops/sample.rs:615,1
    - Dst: u8::channels
      Src: /src/image/src/imageops/sample.rs:615,1
    - Dst: Self::sample_val
      Src: /src/image/src/imageops/sample.rs:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - pixel
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 618
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 618
    functionName: ThumbnailSum::add_pixel
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - u8::channels
    - Self::sample_val
    - zip
    - iter_mut
    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:642,1
    - Dst: Vec::buffer_with_dimensions
      Src: /src/image/src/imageops/sample.rs:643,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:656,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:656,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:657,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:657,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:663,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:663,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:664,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:664,1
    - Dst: thumbnail_sample_block
      Src: /src/image/src/imageops/sample.rs:667,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:677,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:677,1
    - Dst: thumbnail_sample_fraction_horizontal
      Src: /src/image/src/imageops/sample.rs:678,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:694,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:694,1
    - Dst: thumbnail_sample_fraction_vertical
      Src: /src/image/src/imageops/sample.rs:695,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:698,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:698,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:699,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:699,1
    - Dst: thumbnail_sample_fraction_both
      Src: /src/image/src/imageops/sample.rs:701,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/sample.rs:710,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 97
    argCount: 3
    argNames:
    - image
    - new_width
    - new_height
    argTypes:
    - '&I'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 715
      start: 633
    functionDepth: 12
    functionLinenumber: 633
    functionLinenumberEnd: 715
    functionName: thumbnail
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 4
    functionsReached:
    - SampleLayout::put_pixel
    - thumbnail_sample_fraction_both
    - thumbnail_sample_fraction_horizontal
    - Vec::dimensions
    - thumbnail_sample_fraction_vertical
    - Vec::buffer_with_dimensions
    - ceil
    - utils::clamp
    - fract
    - thumbnail_sample_block
    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>,S: Primitive + Enlargeable,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThumbnailSum::zeroed
      Src: /src/image/src/imageops/sample.rs:724,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:728,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:729,1
    - Dst: <S::Larger as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:733,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:733,1
    - Dst: is_integer::<S::Larger>
      Src: /src/image/src/imageops/sample.rs:737,1
    - Dst: <S::Larger as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:738,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:738,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:738,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:738,1
    - Dst: S::Larger::zero
      Src: /src/image/src/imageops/sample.rs:740,1
    - Dst: map
      Src: /src/image/src/imageops/sample.rs:743,1
    - Dst: S::clamp_from
      Src: /src/image/src/imageops/sample.rs:743,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:744,1
    - Dst: into
      Src: /src/image/src/imageops/sample.rs:744,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/imageops/sample.rs:745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 5
    argNames:
    - image
    - left
    - right
    - bottom
    - top
    argTypes:
    - '&I'
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 746
      start: 718
    functionDepth: 14
    functionLinenumber: 718
    functionLinenumberEnd: 746
    functionName: thumbnail_sample_block
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - S::Larger::zero
    - map
    - NumCast::from
    - Self::add_pixel
    - <S::Larger as NumCast>::from
    - <P as Pixel>::from_slice
    - Self::unwrap
    - is_integer::<S::Larger>
    - Vec::get_pixel
    - S::clamp_from
    - ThumbnailSum::zeroed
    - min
    - into
    linkageType: ''
    returnType: P
    signature: 'fn thumbnail_sample_block<I, P, S>(image: &I, left: u32, right: u32,
      bottom: u32, top: u32) -> PwhereI: GenericImageView<Pixel = P>,P: Pixel<Subpixel
      = S>,S: Primitive + Enlargeable,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThumbnailSum::zeroed
      Src: /src/image/src/imageops/sample.rs:763,1
    - Dst: ThumbnailSum::zeroed
      Src: /src/image/src/imageops/sample.rs:764,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:766,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:767,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:769,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:770,1
    - Dst: <S as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:778,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:779,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:779,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:779,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:779,1
    - Dst: Self::expect
      Src: /src/image/src/imageops/sample.rs:778,1
    - Dst: mix_left_and_right
      Src: /src/image/src/imageops/sample.rs:788,1
    - Dst: mix_left_and_right
      Src: /src/image/src/imageops/sample.rs:789,1
    - Dst: mix_left_and_right
      Src: /src/image/src/imageops/sample.rs:790,1
    - Dst: mix_left_and_right
      Src: /src/image/src/imageops/sample.rs:791,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:794,1
    - Dst: into
      Src: /src/image/src/imageops/sample.rs:794,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/imageops/sample.rs:795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 68
    argCount: 5
    argNames:
    - image
    - left
    - fraction_horizontal
    - bottom
    - top
    argTypes:
    - '&I'
    - u32
    - f32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 796
      start: 749
    functionDepth: 12
    functionLinenumber: 749
    functionLinenumberEnd: 796
    functionName: thumbnail_sample_fraction_horizontal
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - Self::add_pixel
    - <P as Pixel>::from_slice
    - <S as NumCast>::from
    - Vec::get_pixel
    - mix_left_and_right
    - to_f32
    - Self::expect
    - ThumbnailSum::zeroed
    - unwrap
    - min
    - into
    linkageType: ''
    returnType: P
    signature: 'fn thumbnail_sample_fraction_horizontal<I, P, S>(image: &I,left: u32,fraction_horizontal:
      f32,bottom: u32,top: u32,) -> PwhereI: GenericImageView<Pixel = P>,P: Pixel<Subpixel
      = S>,S: Primitive + Enlargeable,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThumbnailSum::zeroed
      Src: /src/image/src/imageops/sample.rs:813,1
    - Dst: ThumbnailSum::zeroed
      Src: /src/image/src/imageops/sample.rs:814,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:816,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:817,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:819,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:820,1
    - Dst: <S as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:828,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:828,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:828,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:828,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:828,1
    - Dst: Self::expect
      Src: /src/image/src/imageops/sample.rs:828,1
    - Dst: mix_bot_and_top
      Src: /src/image/src/imageops/sample.rs:836,1
    - Dst: mix_bot_and_top
      Src: /src/image/src/imageops/sample.rs:837,1
    - Dst: mix_bot_and_top
      Src: /src/image/src/imageops/sample.rs:838,1
    - Dst: mix_bot_and_top
      Src: /src/image/src/imageops/sample.rs:839,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:842,1
    - Dst: into
      Src: /src/image/src/imageops/sample.rs:842,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/imageops/sample.rs:843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 68
    argCount: 5
    argNames:
    - image
    - left
    - right
    - bottom
    - fraction_vertical
    argTypes:
    - '&I'
    - u32
    - u32
    - u32
    - f32
    constantsTouched: []
    func_position:
      end: 844
      start: 799
    functionDepth: 12
    functionLinenumber: 799
    functionLinenumberEnd: 844
    functionName: thumbnail_sample_fraction_vertical
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - Self::add_pixel
    - <P as Pixel>::from_slice
    - <S as NumCast>::from
    - Vec::get_pixel
    - mix_bot_and_top
    - to_f32
    - Self::expect
    - ThumbnailSum::zeroed
    - unwrap
    - min
    - into
    linkageType: ''
    returnType: P
    signature: 'fn thumbnail_sample_fraction_vertical<I, P, S>(image: &I,left: u32,right:
      u32,bottom: u32,fraction_vertical: f32,) -> PwhereI: 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:859,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:860,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:861,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:862,1
    - Dst: <S as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:873,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:874,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/sample.rs:874,1
    - Dst: Result::to_f32
      Src: /src/image/src/imageops/sample.rs:875,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/sample.rs:875,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:876,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/sample.rs:876,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:877,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/sample.rs:877,1
    - Dst: Self::expect
      Src: /src/image/src/imageops/sample.rs:873,1
    - Dst: Self::Pixel::channels_mut
      Src: /src/image/src/imageops/sample.rs:885,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/sample.rs:885,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:885,1
    - Dst: mix
      Src: /src/image/src/imageops/sample.rs:886,1
    - Dst: Self::Pixel::channels
      Src: /src/image/src/imageops/sample.rs:887,1
    - Dst: Self::Pixel::channels
      Src: /src/image/src/imageops/sample.rs:888,1
    - Dst: Self::Pixel::channels
      Src: /src/image/src/imageops/sample.rs:889,1
    - Dst: Self::Pixel::channels
      Src: /src/image/src/imageops/sample.rs:890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 75
    argCount: 5
    argNames:
    - image
    - left
    - fraction_vertical
    - bottom
    - fraction_horizontal
    argTypes:
    - '&I'
    - u32
    - f32
    - u32
    - f32
    constantsTouched: []
    func_position:
      end: 895
      start: 847
    functionDepth: 3
    functionLinenumber: 847
    functionLinenumberEnd: 895
    functionName: thumbnail_sample_fraction_both
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - enumerate
    - <S as NumCast>::from
    - Result::to_f32
    - Vec::get_pixel
    - mix
    - iter_mut
    - to_f32
    - Self::expect
    - Self::Pixel::channels_mut
    - f32::unwrap
    - Self::Pixel::channels
    linkageType: ''
    returnType: P
    signature: 'fn thumbnail_sample_fraction_both<I, P, S>(image: &I,left: u32,fraction_vertical:
      f32,bottom: u32,fraction_horizontal: f32,) -> PwhereI: GenericImageView<Pixel
      = P>,P: Pixel<Subpixel = S>,S: Primitive + Enlargeable,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/sample.rs:925,1
    - Dst: Vec::buffer_like
      Src: /src/image/src/imageops/sample.rs:926,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:929,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:929,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/sample.rs:931,1
    - Dst: sum
      Src: /src/image/src/imageops/sample.rs:931,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/sample.rs:943,1
    - Dst: zip
      Src: /src/image/src/imageops/sample.rs:943,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:943,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:947,1
    - Dst: std::io::Result::iter_mut
      Src: /src/image/src/imageops/sample.rs:949,1
    - Dst: zip
      Src: /src/image/src/imageops/sample.rs:949,1
    - Dst: Result::channels
      Src: /src/image/src/imageops/sample.rs:949,1
    - Dst: <f32 as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:950,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:950,1
    - Dst: std::io::Result::map
      Src: /src/image/src/imageops/sample.rs:954,1
    - Dst: ImageResult::map
      Src: /src/image/src/imageops/sample.rs:954,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:956,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:956,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:956,1
    - Dst: Pixel::from_slice
      Src: /src/image/src/imageops/sample.rs:958,1
    - Dst: SampleLayout::put_pixel
      Src: /src/image/src/imageops/sample.rs:960,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 89
    argCount: 2
    argNames:
    - image
    - kernel
    argTypes:
    - '&I'
    - '&[f32; 9]'
    constantsTouched: []
    func_position:
      end: 965
      start: 906
    functionDepth: 12
    functionLinenumber: 906
    functionLinenumberEnd: 965
    functionName: filter3x3
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - SampleLayout::put_pixel
    - Vec::buffer_like
    - NumCast::from
    - sum
    - std::io::Result::map
    - Self::unwrap
    - Vec::get_pixel
    - Vec::dimensions
    - std::io::Result::iter_mut
    - <f32 as NumCast>::from
    - f32::iter
    - Pixel::from_slice
    - utils::clamp
    - iter
    - Result::channels
    - zip
    - ImageResult::map
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn filter3x3<I, P, S>(image: &I, kernel: &[f32; 9]) -> ImageBuffer<P,
      Vec<S>>whereI: GenericImageView<Pixel = P>,P: Pixel<Subpixel = S>,S: Primitive,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/sample.rs:987,1
    - Dst: Vec::buffer_with_dimensions
      Src: /src/image/src/imageops/sample.rs:992,1
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/sample.rs:996,1
    - Dst: Vec::buffer_like
      Src: /src/image/src/imageops/sample.rs:997,1
    - Dst: ImageBuffer::copy_from
      Src: /src/image/src/imageops/sample.rs:998,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:998,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:1004,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:1008,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:1012,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:1016,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:1020,1
    - Dst: vertical_sample
      Src: /src/image/src/imageops/sample.rs:1026,1
    - Dst: horizontal_sample
      Src: /src/image/src/imageops/sample.rs:1027,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 4
    argNames:
    - image
    - nwidth
    - nheight
    - filter
    argTypes:
    - '&I'
    - u32
    - u32
    - FilterType
    constantsTouched: []
    func_position:
      end: 1028
      start: 979
    functionDepth: 12
    functionLinenumber: 979
    functionLinenumberEnd: 1028
    functionName: resize
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 15
    functionsReached:
    - ImageResult::unwrap
    - Vec::buffer_like
    - Vec::dimensions
    - Vec::buffer_with_dimensions
    - vertical_sample
    - ImageBuffer::copy_from
    - Box::new
    - horizontal_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>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gaussian_blur_indirect
      Src: /src/image/src/imageops/sample.rs:1047,1
    - Dst: GaussianBlurParameters::new_from_radius
      Src: /src/image/src/imageops/sample.rs:1047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - image
    - radius
    argTypes:
    - '&I'
    - f32
    constantsTouched: []
    func_position:
      end: 1048
      start: 1043
    functionDepth: 17
    functionLinenumber: 1043
    functionLinenumberEnd: 1048
    functionName: blur
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 11
    functionsReached:
    - gaussian_blur_indirect
    - GaussianBlurParameters::new_from_radius
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn blur<I: GenericImageView>(image: &I,radius: f32,) -> ImageBuffer<I::Pixel,
      Vec<<I::Pixel as Pixel>::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gaussian_blur_indirect
      Src: /src/image/src/imageops/sample.rs:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - image
    - parameters
    argTypes:
    - '&I'
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1064
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1064
    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>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: f32::sqrt
      Src: /src/image/src/imageops/sample.rs:1069,1
    - Dst: f32::iter_mut
      Src: /src/image/src/imageops/sample.rs:1072,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:1072,1
    - Dst: f32::exp
      Src: /src/image/src/imageops/sample.rs:1073,1
    - Dst: f32::powf
      Src: /src/image/src/imageops/sample.rs:1073,1
    - Dst: mul
      Src: /src/image/src/imageops/sample.rs:1081,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 2
    argNames:
    - width
    - sigma
    argTypes:
    - usize
    - f32
    constantsTouched: []
    func_position:
      end: 1086
      start: 1066
    functionDepth: 18
    functionLinenumber: 1066
    functionLinenumberEnd: 1086
    functionName: get_gaussian_kernel_1d
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    functionsReached:
    - f32::iter_mut
    - f32::exp
    - f32::powf
    - mul
    - f32::sqrt
    - enumerate
    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:1150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - radius
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1151
      start: 1141
    functionDepth: 16
    functionLinenumber: 1141
    functionLinenumberEnd: 1151
    functionName: GaussianBlurParameters::new_from_radius
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    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:1166,1
    - Dst: GaussianBlurParameters::sigma_from_kernel_size
      Src: /src/image/src/imageops/sample.rs:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - kernel_size
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1175
      start: 1157
    functionDepth: 15
    functionLinenumber: 1157
    functionLinenumberEnd: 1175
    functionName: GaussianBlurParameters::new_from_kernel_size
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - GaussianBlurParameters::sigma_from_kernel_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:1201,1
    - Dst: GaussianBlurParameters::round_to_nearest_odd
      Src: /src/image/src/imageops/sample.rs:1203,1
    - Dst: GaussianBlurParameters::sigma_from_kernel_size
      Src: /src/image/src/imageops/sample.rs:1205,1
    - Dst: GaussianBlurParameters::sigma_from_kernel_size
      Src: /src/image/src/imageops/sample.rs:1206,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: 1213
      start: 1181
    functionDepth: 15
    functionLinenumber: 1181
    functionLinenumberEnd: 1213
    functionName: GaussianBlurParameters::new_anisotropic_kernel_size
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - GaussianBlurParameters::sigma_from_kernel_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:1251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sigma
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1258
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1258
    functionName: GaussianBlurParameters::new_from_sigma
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 3
    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:1262,1
    - Dst: is_multiple_of
      Src: /src/image/src/imageops/sample.rs:1263,1
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:1269,1
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:1270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1278
      start: 1261
    functionDepth: 14
    functionLinenumber: 1261
    functionLinenumberEnd: 1278
    functionName: GaussianBlurParameters::round_to_nearest_odd
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    functionsReached:
    - abs
    - is_multiple_of
    - round
    linkageType: ''
    returnType: u32
    signature: 'fn round_to_nearest_odd(x: f32) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - kernel_size
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1286
      start: 1280
    functionDepth: 0
    functionLinenumber: 1280
    functionLinenumberEnd: 1286
    functionName: GaussianBlurParameters::sigma_from_kernel_size
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: f32
    signature: 'fn sigma_from_kernel_size(kernel_size: f32) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:1302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - sigma
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1303
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1303
    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:1310,1
    - Dst: get_gaussian_kernel_1d
      Src: /src/image/src/imageops/sample.rs:1315,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:1321,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:1322,1
    - Dst: imageops::filter_1d::filter_2d_sep_plane
      Src: /src/image/src/imageops/sample.rs:1328,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1329,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1328,1
    - Dst: DynamicImage::ImageLuma8
      Src: /src/image/src/imageops/sample.rs:1336,1
    - Dst: GrayImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1337,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1337,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1337,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1337,1
    - Dst: filter_2d_sep_la
      Src: /src/image/src/imageops/sample.rs:1342,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1343,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1342,1
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/src/imageops/sample.rs:1350,1
    - Dst: GrayAlphaImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1351,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1351,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1351,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1351,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgb
      Src: /src/image/src/imageops/sample.rs:1356,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1357,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1356,1
    - Dst: DynamicImage::ImageRgb8
      Src: /src/image/src/imageops/sample.rs:1364,1
    - Dst: RgbImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1365,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1365,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1365,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1365,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgba
      Src: /src/image/src/imageops/sample.rs:1370,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1371,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1370,1
    - Dst: DynamicImage::ImageRgba8
      Src: /src/image/src/imageops/sample.rs:1378,1
    - Dst: RgbaImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1379,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1379,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1379,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1379,1
    - Dst: imageops::filter_1d::filter_2d_sep_plane_u16
      Src: /src/image/src/imageops/sample.rs:1384,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1385,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1384,1
    - Dst: DynamicImage::ImageLuma16
      Src: /src/image/src/imageops/sample.rs:1392,1
    - Dst: Gray16Image::from_raw
      Src: /src/image/src/imageops/sample.rs:1393,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1393,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1393,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1393,1
    - Dst: imageops::filter_1d::filter_2d_sep_la_u16
      Src: /src/image/src/imageops/sample.rs:1398,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1399,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1398,1
    - Dst: DynamicImage::ImageLumaA16
      Src: /src/image/src/imageops/sample.rs:1406,1
    - Dst: GrayAlpha16Image::from_raw
      Src: /src/image/src/imageops/sample.rs:1407,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1407,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1407,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1407,1
    - Dst: filter_2d_sep_rgb_u16
      Src: /src/image/src/imageops/sample.rs:1412,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1413,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1412,1
    - Dst: DynamicImage::ImageRgb16
      Src: /src/image/src/imageops/sample.rs:1420,1
    - Dst: Rgb16Image::from_raw
      Src: /src/image/src/imageops/sample.rs:1421,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1421,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1421,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1421,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgba_u16
      Src: /src/image/src/imageops/sample.rs:1426,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1427,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1426,1
    - Dst: DynamicImage::ImageRgba16
      Src: /src/image/src/imageops/sample.rs:1434,1
    - Dst: Rgba16Image::from_raw
      Src: /src/image/src/imageops/sample.rs:1435,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1435,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1435,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1435,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgb_f32
      Src: /src/image/src/imageops/sample.rs:1440,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1441,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1440,1
    - Dst: DynamicImage::ImageRgb32F
      Src: /src/image/src/imageops/sample.rs:1448,1
    - Dst: Rgb32FImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1449,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1449,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1449,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1449,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgba_f32
      Src: /src/image/src/imageops/sample.rs:1454,1
    - Dst: Option::as_raw
      Src: /src/image/src/imageops/sample.rs:1455,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1454,1
    - Dst: DynamicImage::ImageRgba32F
      Src: /src/image/src/imageops/sample.rs:1462,1
    - Dst: Rgba32FImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1463,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1463,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1463,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1463,1
    - Dst: set_color_space
      Src: /src/image/src/imageops/sample.rs:1469,1
    - Dst: Vec::color_space
      Src: /src/image/src/imageops/sample.rs:1469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 190
    argCount: 2
    argNames:
    - image
    - parameters
    argTypes:
    - '&DynamicImage'
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1471
      start: 1306
    functionDepth: 19
    functionLinenumber: 1306
    functionLinenumberEnd: 1471
    functionName: gaussian_blur_dyn_image
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    functionsReached:
    - filter_2d_sep_la
    - GrayAlphaImage::from_raw
    - RgbImage::from_raw
    - GrayAlpha16Image::from_raw
    - imageops::filter_1d::filter_2d_sep_rgba
    - DynamicImage::ImageLumaA16
    - imageops::filter_1d::filter_2d_sep_plane
    - Rgb32FImage::from_raw
    - imageops::filter_1d::filter_2d_sep_la_u16
    - Vec::width
    - filter_2d_sep_rgb_u16
    - RgbaImage::from_raw
    - Vec::height
    - DynamicImage::ImageRgb32F
    - imageops::filter_1d::filter_2d_sep_rgba_f32
    - GrayImage::from_raw
    - DynamicImage::ImageRgba16
    - imageops::filter_1d::filter_2d_sep_plane_u16
    - Option::height
    - DynamicImage::ImageRgb16
    - Rgb16Image::from_raw
    - DynamicImage::ImageRgba32F
    - DynamicImage::ImageLuma8
    - Option::as_raw
    - imageops::filter_1d::filter_2d_sep_rgba_u16
    - DynamicImage::ImageLuma16
    - Rgba16Image::from_raw
    - Rgba32FImage::from_raw
    - Gray16Image::from_raw
    - DynamicImage::ImageRgba8
    - get_gaussian_kernel_1d
    - ImageResult::unwrap
    - Result::unwrap
    - imageops::filter_1d::filter_2d_sep_rgb_f32
    - Vec::color_space
    - DynamicImage::ImageLumaA8
    - imageops::filter_1d::filter_2d_sep_rgb
    - Option::width
    - set_color_space
    - DynamicImage::ImageRgb8
    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:1478,1
    - Dst: gaussian_blur_indirect_impl::<I, 2>
      Src: /src/image/src/imageops/sample.rs:1479,1
    - Dst: gaussian_blur_indirect_impl::<I, 3>
      Src: /src/image/src/imageops/sample.rs:1480,1
    - Dst: gaussian_blur_indirect_impl::<I, 4>
      Src: /src/image/src/imageops/sample.rs:1481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - image
    - parameters
    argTypes:
    - '&I'
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1484
      start: 1473
    functionDepth: 0
    functionLinenumber: 1473
    functionLinenumberEnd: 1484
    functionName: gaussian_blur_indirect
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    functionsReached:
    - gaussian_blur_indirect_impl::<I, 2>
    - gaussian_blur_indirect_impl::<I, 3>
    - gaussian_blur_indirect_impl::<I, 1>
    - gaussian_blur_indirect_impl::<I, 4>
    linkageType: ''
    returnType: ImageBuffer
    signature: 'fn gaussian_blur_indirect<I: GenericImageView>(image: &I,parameters:
      GaussianBlurParameters,) -> ImageBuffer<I::Pixel, Vec<<I::Pixel as Pixel>::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_chunks_mut::<CN>
      Src: /src/image/src/imageops/sample.rs:1491,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/sample.rs:1491,1
    - Dst: Vec::pixels
      Src: /src/image/src/imageops/sample.rs:1492,1
    - Dst: ImageResult::zip
      Src: /src/image/src/imageops/sample.rs:1492,1
    - Dst: channels
      Src: /src/image/src/imageops/sample.rs:1493,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1496,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1496,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1499,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1499,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1500,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1500,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1503,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1503,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1504,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1504,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1505,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1505,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1508,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1508,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1509,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1509,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1510,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1510,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1511,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1511,1
    - Dst: get_gaussian_kernel_1d
      Src: /src/image/src/imageops/sample.rs:1519,1
    - Dst: get_gaussian_kernel_1d
      Src: /src/image/src/imageops/sample.rs:1523,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:1529,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:1530,1
    - Dst: filter_2d_sep_plane_f32
      Src: /src/image/src/imageops/sample.rs:1535,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1535,1
    - Dst: imageops::filter_1d::filter_2d_sep_la_f32
      Src: /src/image/src/imageops/sample.rs:1545,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1545,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgb_f32
      Src: /src/image/src/imageops/sample.rs:1555,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1555,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgba_f32
      Src: /src/image/src/imageops/sample.rs:1565,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1565,1
    - Dst: Vec::buffer_like
      Src: /src/image/src/imageops/sample.rs:1577,1
    - Dst: as_chunks_mut::<CN>
      Src: /src/image/src/imageops/sample.rs:1578,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/sample.rs:1578,1
    - Dst: SampleLayout::pixels_mut
      Src: /src/image/src/imageops/sample.rs:1579,1
    - Dst: PixelsMutPar::zip
      Src: /src/image/src/imageops/sample.rs:1579,1
    - Dst: map
      Src: /src/image/src/imageops/sample.rs:1580,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1580,1
    - Dst: FloatNearest
      Src: /src/image/src/imageops/sample.rs:1580,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1580,1
    - Dst: Pixel::from_slice
      Src: /src/image/src/imageops/sample.rs:1581,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 161
    argCount: 2
    argNames:
    - image
    - parameters
    argTypes:
    - '&I'
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1585
      start: 1486
    functionDepth: 19
    functionLinenumber: 1486
    functionLinenumberEnd: 1585
    functionName: gaussian_blur_indirect_impl
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - iter_mut
    - channels
    - Vec::width
    - as_chunks_mut::<CN>
    - Vec::height
    - imageops::filter_1d::filter_2d_sep_rgba_f32
    - Vec::buffer_like
    - Self::unwrap
    - SampleLayout::pixels_mut
    - PixelsMutPar::zip
    - get_gaussian_kernel_1d
    - Result::unwrap
    - NumCast::from
    - map
    - imageops::filter_1d::filter_2d_sep_rgb_f32
    - Pixel::from_slice
    - FloatNearest
    - filter_2d_sep_plane_f32
    - ImageResult::zip
    - Vec::pixels
    - imageops::filter_1d::filter_2d_sep_la_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>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: blur_advanced
      Src: /src/image/src/imageops/sample.rs:1604,1
    - Dst: GaussianBlurParameters::new_from_sigma
      Src: /src/image/src/imageops/sample.rs:1604,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1607,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1607,1
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/sample.rs:1608,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:1612,1
    - Dst: ImageBuffer::get_pixel_mut
      Src: /src/image/src/imageops/sample.rs:1613,1
    - Dst: map2
      Src: /src/image/src/imageops/sample.rs:1615,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1616,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1616,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1617,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1617,1
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:1621,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:1622,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1624,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 3
    argNames:
    - image
    - sigma
    - threshold
    argTypes:
    - '&I'
    - f32
    - i32
    constantsTouched: []
    func_position:
      end: 1635
      start: 1598
    functionDepth: 12
    functionLinenumber: 1598
    functionLinenumberEnd: 1635
    functionName: unsharpen
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - NumCast::from
    - blur_advanced
    - Self::unwrap
    - Vec::get_pixel
    - Vec::dimensions
    - abs
    - ImageBuffer::get_pixel_mut
    - map2
    - utils::clamp
    - GaussianBlurParameters::new_from_sigma
    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>,S: Primitive,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1648,1
    - Dst: Path::new
      Src: /src/image/src/imageops/sample.rs:1648,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1648,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1649,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1650,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1653
      start: 1646
    functionDepth: 17
    functionLinenumber: 1646
    functionLinenumberEnd: 1653
    functionName: tests::bench_resize
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - resize
    - test::black_box
    - iter
    - crate::open
    - Path::new
    - io::Result::unwrap
    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:1659,1
    - Dst: Path::new
      Src: /src/image/src/imageops/sample.rs:1659,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1659,1
    - Dst: Option::clone
      Src: /src/image/src/imageops/sample.rs:1660,1
    - Dst: Self::resize
      Src: /src/image/src/imageops/sample.rs:1661,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1661,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1657
    functionDepth: 17
    functionLinenumber: 1657
    functionLinenumberEnd: 1663
    functionName: tests::test_resize_same_size
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Self::resize
    - Option::height
    - Option::clone
    - crate::open
    - Path::new
    - Option::width
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_resize_same_size()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1669,1
    - Dst: Path::new
      Src: /src/image/src/imageops/sample.rs:1669,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1667
    functionDepth: 17
    functionLinenumber: 1667
    functionLinenumberEnd: 1683
    functionName: tests::test_sample_bilinear
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Path::new
    - crate::open
    - 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:1688,1
    - Dst: Path::new
      Src: /src/image/src/imageops/sample.rs:1688,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1686
    functionDepth: 17
    functionLinenumber: 1686
    functionLinenumberEnd: 1702
    functionName: tests::test_sample_nearest
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Path::new
    - crate::open
    - 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:1706,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1707,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1708,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1709,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1735
      start: 1704
    functionDepth: 17
    functionLinenumber: 1704
    functionLinenumberEnd: 1735
    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:1740,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1741,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1742,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1743,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1744,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1747,1
    - Dst: sample_bilinear
      Src: /src/image/src/imageops/sample.rs:1748,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1748,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1750
      start: 1738
    functionDepth: 17
    functionLinenumber: 1738
    functionLinenumberEnd: 1750
    functionName: tests::bench_sample_bilinear
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - test::black_box
    - iter
    - 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:1754,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1755,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1756,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1757,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1752
    functionDepth: 17
    functionLinenumber: 1752
    functionLinenumberEnd: 1772
    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:1781,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1781,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1782,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1783,1
    - Dst: Vec::clone
      Src: /src/image/src/imageops/sample.rs:1783,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1783,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:1784,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:1785,1
    - Dst: u64::from
      Src: /src/image/src/imageops/sample.rs:1789,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:1789,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:1789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1790
      start: 1776
    functionDepth: 17
    functionLinenumber: 1776
    functionLinenumberEnd: 1790
    functionName: tests::bench_resize_same_size
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Vec::height
    - resize
    - test::black_box
    - u64::from
    - Vec::clone
    - crate::open
    - iter
    - Vec::width
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn bench_resize_same_size(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/sample.rs:1794,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1793
    functionDepth: 13
    functionLinenumber: 1793
    functionLinenumberEnd: 1796
    functionName: tests::test_issue_186
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::new
    - resize
    linkageType: ''
    returnType: void
    signature: fn test_issue_186()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1805,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1805,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1806,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1807,1
    - Dst: Vec::thumbnail
      Src: /src/image/src/imageops/sample.rs:1807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1810
      start: 1800
    functionDepth: 17
    functionLinenumber: 1800
    functionLinenumberEnd: 1810
    functionName: tests::bench_thumbnail
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - test::black_box
    - crate::open
    - iter
    - 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:1819,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1819,1
    - Dst: thumbnail
      Src: /src/image/src/imageops/sample.rs:1819,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1820,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1821,1
    - Dst: Vec::thumbnail
      Src: /src/image/src/imageops/sample.rs:1821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1824
      start: 1814
    functionDepth: 17
    functionLinenumber: 1814
    functionLinenumberEnd: 1824
    functionName: tests::bench_thumbnail_upsize
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - test::black_box
    - crate::open
    - iter
    - thumbnail
    - Vec::thumbnail
    - io::Result::unwrap
    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:1833,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1833,1
    - Dst: thumbnail
      Src: /src/image/src/imageops/sample.rs:1833,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1834,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1835,1
    - Dst: Vec::thumbnail
      Src: /src/image/src/imageops/sample.rs:1835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1838
      start: 1828
    functionDepth: 17
    functionLinenumber: 1828
    functionLinenumberEnd: 1838
    functionName: tests::bench_thumbnail_upsize_irregular
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - test::black_box
    - crate::open
    - iter
    - thumbnail
    - Vec::thumbnail
    - io::Result::unwrap
    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:1849,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/imageops/sample.rs:1850,1
    - Dst: crop
      Src: /src/image/src/imageops/sample.rs:1851,1
    - Dst: SubImage::to_image
      Src: /src/image/src/imageops/sample.rs:1851,1
    - Dst: pixels
      Src: /src/image/src/imageops/sample.rs:1852,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - image
    - filter
    argTypes:
    - '&RgbaImage'
    - FilterType
    constantsTouched: []
    func_position:
      end: 1859
      start: 1848
    functionDepth: 13
    functionLinenumber: 1848
    functionLinenumberEnd: 1859
    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
    - SubImage::to_image
    - crop
    - resize
    - Rect::from_xy_ranges
    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:1865,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1865,1
    - Dst: Option::as_rgba8
      Src: /src/image/src/imageops/sample.rs:1866,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/sample.rs:1866,1
    - Dst: assert_resize
      Src: /src/image/src/imageops/sample.rs:1869,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1842
    functionDepth: 17
    functionLinenumber: 1842
    functionLinenumberEnd: 1871
    functionName: tests::resize_transparent_image
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - assert_resize
    - Option::unwrap
    - crate::open
    - Option::as_rgba8
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn resize_transparent_image()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::RgbaImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1875,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1875,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1874
    functionDepth: 13
    functionLinenumber: 1874
    functionLinenumberEnd: 1878
    functionName: tests::bug_1600
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - crate::RgbaImage::from_raw
    - resize
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn bug_1600()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::GrayImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1882,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1882,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1884,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1881
    functionDepth: 13
    functionLinenumber: 1881
    functionLinenumberEnd: 1890
    functionName: tests::issue_2340
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - crate::GrayImage::from_raw
    - resize
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn issue_2340()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::GrayImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1895,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1895,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1896,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1893
    functionDepth: 13
    functionLinenumber: 1893
    functionLinenumberEnd: 1900
    functionName: tests::issue_2340_refl
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - crate::GrayImage::from_raw
    - resize
    - ImageResult::unwrap
    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: 4
    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: 2
    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
    - SampleLayout::copy_color_space_from
    - Vec::dimensions
    - Vec::buffer_with_dimensions
    - Vec::pixels
    - ImageBuffer::into_color
    - ImageBuffer::new
    - u8::to_luma
    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
    - SampleLayout::copy_color_space_from
    - u8::to_luma_alpha
    - Vec::dimensions
    - Vec::buffer_with_dimensions
    - Vec::pixels
    - ImageBuffer::into_color
    - ImageBuffer::new
    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: 4
    functionsReached:
    - Vec::get_pixel
    - Vec::dimensions
    - Vec::put_pixel
    - Result::invert
    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: 1
    functionsReached:
    - SampleLayout::put_pixel
    - Vec::buffer_like
    - NumCast::from
    - Self::unwrap
    - u8::map
    - powi
    - Vec::pixels
    - utils::clamp
    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>,S: Primitive,'
  - 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:
    - NumCast::from
    - Self::unwrap
    - Vec::get_pixel
    - Vec::dimensions
    - powi
    - Self::Pixel::map
    - Vec::put_pixel
    - utils::clamp
    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: 1
    functionsReached:
    - SampleLayout::put_pixel
    - Vec::buffer_like
    - NumCast::from
    - Self::unwrap
    - u8::map_with_alpha
    - Vec::pixels
    - utils::clamp
    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>,S: Primitive,'
  - 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:
    - Self::Pixel::map_with_alpha
    - NumCast::from
    - Self::unwrap
    - Vec::get_pixel
    - Vec::dimensions
    - Vec::put_pixel
    - utils::clamp
    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:242,1
    - Dst: '&RgbaImage::copy_from'
      Src: /src/image/src/imageops/colorops.rs:243,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/colorops.rs:243,1
    - Dst: Vec::buffer_like
      Src: /src/image/src/imageops/colorops.rs:247,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:249,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:249,1
    - Dst: to_radians
      Src: /src/image/src/imageops/colorops.rs:251,1
    - Dst: cos
      Src: /src/image/src/imageops/colorops.rs:251,1
    - Dst: to_radians
      Src: /src/image/src/imageops/colorops.rs:252,1
    - Dst: sin
      Src: /src/image/src/imageops/colorops.rs:252,1
    - Dst: SampleLayout::enumerate_pixels_mut
      Src: /src/image/src/imageops/colorops.rs:268,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/colorops.rs:269,1
    - Dst: u8::channels_mut
      Src: /src/image/src/imageops/colorops.rs:270,1
    - Dst: to_f64
      Src: /src/image/src/imageops/colorops.rs:272,1
    - Dst: unwrap
      Src: /src/image/src/imageops/colorops.rs:272,1
    - Dst: to_f64
      Src: /src/image/src/imageops/colorops.rs:273,1
    - Dst: unwrap
      Src: /src/image/src/imageops/colorops.rs:273,1
    - Dst: to_f64
      Src: /src/image/src/imageops/colorops.rs:274,1
    - Dst: unwrap
      Src: /src/image/src/imageops/colorops.rs:274,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:281,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:281,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:281,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:282,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:282,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:282,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:283,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/colorops.rs:283,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 133
    argCount: 2
    argNames:
    - image
    - value
    argTypes:
    - '&I'
    - i32
    constantsTouched: []
    func_position:
      end: 289
      start: 234
    functionDepth: 13
    functionLinenumber: 234
    functionLinenumberEnd: 289
    functionName: huerotate
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 1
    functionsReached:
    - to_radians
    - ImageResult::unwrap
    - Vec::buffer_like
    - NumCast::from
    - cos
    - sin
    - SampleLayout::enumerate_pixels_mut
    - Self::unwrap
    - Vec::get_pixel
    - to_f64
    - '&RgbaImage::copy_from'
    - unwrap
    - utils::clamp
    - u8::channels_mut
    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>,S: Primitive,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/colorops.rs:303,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/colorops.rs:305,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/colorops.rs:305,1
    - Dst: to_radians
      Src: /src/image/src/imageops/colorops.rs:307,1
    - Dst: cos
      Src: /src/image/src/imageops/colorops.rs:307,1
    - Dst: to_radians
      Src: /src/image/src/imageops/colorops.rs:308,1
    - Dst: sin
      Src: /src/image/src/imageops/colorops.rs:308,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/colorops.rs:327,1
    - Dst: u8::channels_mut
      Src: /src/image/src/imageops/colorops.rs:328,1
    - Dst: to_f64
      Src: /src/image/src/imageops/colorops.rs:330,1
    - Dst: unwrap
      Src: /src/image/src/imageops/colorops.rs:330,1
    - Dst: to_f64
      Src: /src/image/src/imageops/colorops.rs:331,1
    - Dst: unwrap
      Src: /src/image/src/imageops/colorops.rs:331,1
    - Dst: to_f64
      Src: /src/image/src/imageops/colorops.rs:332,1
    - Dst: unwrap
      Src: /src/image/src/imageops/colorops.rs:332,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:343,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 128
    argCount: 2
    argNames:
    - image
    - value
    argTypes:
    - '&mut I'
    - i32
    constantsTouched: []
    func_position:
      end: 346
      start: 294
    functionDepth: 12
    functionLinenumber: 294
    functionLinenumberEnd: 346
    functionName: huerotate_in_place
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - to_radians
    - sin
    - NumCast::from
    - cos
    - Self::unwrap
    - Vec::get_pixel
    - Vec::dimensions
    - to_f64
    - unwrap
    - Vec::put_pixel
    - utils::clamp
    - u8::channels_mut
    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: 360
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 360
    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: 364
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 364
    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: 412
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 412
    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:417,1
    - Dst: into
      Src: /src/image/src/imageops/colorops.rs:417,1
    - Dst: Some
      Src: /src/image/src/imageops/colorops.rs:418,1
    - Dst: into
      Src: /src/image/src/imageops/colorops.rs:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 421
      start: 415
    functionDepth: 12
    functionLinenumber: 415
    functionLinenumberEnd: 421
    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: 426
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 426
    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:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - color
    argTypes:
    - '&mut Luma<u8>'
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 433
    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:442,1
    - Dst: bool::channels
      Src: /src/image/src/imageops/colorops.rs:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - color
    argTypes:
    - '&Self::Color'
    constantsTouched: []
    func_position:
      end: 443
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 443
    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:447,1
    - Dst: Option::map
      Src: /src/image/src/imageops/colorops.rs:447,1
    - Dst: Result::into
      Src: /src/image/src/imageops/colorops.rs:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 14
    functionLinenumber: 446
    functionLinenumberEnd: 448
    functionName: color_quant::NeuQuant::lookup
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 1
    functionsReached:
    - Result::into
    - Option::map
    - color_quant::NeuQuant::lookup
    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: 453
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 453
    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:457,1
    - Dst: bool::channels_mut
      Src: /src/image/src/imageops/colorops.rs:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - color
    argTypes:
    - '&mut Self::Color'
    constantsTouched: []
    func_position:
      end: 458
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 458
    functionName: color_quant::NeuQuant::map_color
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - color_quant::NeuQuant::map_pixel
    - bool::channels_mut
    linkageType: ''
    returnType: void
    signature: 'fn map_color(&self, color: &mut Self::Color)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/imageops/colorops.rs:463,1
    - Dst: zip
      Src: /src/image/src/imageops/colorops.rs:463,1
    - Dst: u8::channels_mut
      Src: /src/image/src/imageops/colorops.rs:463,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/colorops.rs:463,1
    - Dst: <i16 as From<_>>::from
      Src: /src/image/src/imageops/colorops.rs:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 3
    argNames:
    - pixel
    - error
    - factor
    argTypes:
    - '&mut P'
    - '[i16; 3]'
    - i16
    constantsTouched: []
    func_position:
      end: 470
      start: 462
    functionDepth: 4
    functionLinenumber: 462
    functionLinenumberEnd: 470
    functionName: diffuse_err
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 1
    functionsReached:
    - <i16 as From<_>>::from
    - iter_mut
    - u8::channels_mut
    - iter
    - zip
    linkageType: ''
    returnType: void
    signature: 'fn diffuse_err<P: Pixel<Subpixel = u8>>(pixel: &mut P, error: [i16;
      3], factor: i16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 486
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 486
    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:495,1
    - Dst: do_dithering
      Src: /src/image/src/imageops/colorops.rs:499,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:500,1
    - Dst: Vec::get_pixel_mut
      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: do_dithering
      Src: /src/image/src/imageops/colorops.rs:504,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:505,1
    - Dst: Vec::get_pixel_mut
      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: do_dithering
      Src: /src/image/src/imageops/colorops.rs:511,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:512,1
    - Dst: Vec::get_pixel_mut
      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: do_dithering
      Src: /src/image/src/imageops/colorops.rs:517,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:518,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:518,1
    - Dst: do_dithering
      Src: /src/image/src/imageops/colorops.rs:520,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:521,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:521,1
    - Dst: do_dithering
      Src: /src/image/src/imageops/colorops.rs:524,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 83
    argCount: 2
    argNames:
    - image
    - color_map
    argTypes:
    - '&mut ImageBuffer<Pix, Vec<u8>>'
    - '&Map'
    constantsTouched: []
    func_position:
      end: 525
      start: 490
    functionDepth: 12
    functionLinenumber: 490
    functionLinenumberEnd: 525
    functionName: dither
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 2
    functionsReached:
    - Vec::get_pixel_mut
    - Vec::dimensions
    - do_dithering
    - diffuse_err
    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>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/colorops.rs:537,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/colorops.rs:537,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/colorops.rs:537,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/imageops/colorops.rs:538,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/imageops/colorops.rs:539,1
    - Dst: Vec::pixels
      Src: /src/image/src/imageops/colorops.rs:540,1
    - Dst: ImageResult::zip
      Src: /src/image/src/imageops/colorops.rs:540,1
    - Dst: Option::pixels_mut
      Src: /src/image/src/imageops/colorops.rs:540,1
    - Dst: color::Luma
      Src: /src/image/src/imageops/colorops.rs:541,1
    - Dst: ImageResult::index_of
      Src: /src/image/src/imageops/colorops.rs:541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 2
    argNames:
    - image
    - color_map
    argTypes:
    - '&ImageBuffer<Pix, Vec<u8>>'
    - '&Map'
    constantsTouched: []
    func_position:
      end: 544
      start: 528
    functionDepth: 4
    functionLinenumber: 528
    functionLinenumberEnd: 544
    functionName: index_colors
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Option::set_transfer_function
    - Vec::height
    - color::Luma
    - Option::pixels_mut
    - Vec::pixels
    - ImageResult::zip
    - ImageResult::index_of
    - ImageBuffer::new
    - Vec::width
    - Option::set_rgb_primaries
    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>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:585,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:585,1
    - Dst: dither
      Src: /src/image/src/imageops/colorops.rs:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 590
      start: 584
    functionDepth: 13
    functionLinenumber: 584
    functionLinenumberEnd: 590
    functionName: test::test_dither
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - dither
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_dither()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::put_pixel
      Src: /src/image/src/images/dynimage.rs:1723,1
    - Dst: Rgba
      Src: /src/image/src/images/dynimage.rs:1723,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - img
    - alpha_discarded
    argTypes:
    - super::DynamicImage
    - bool
    constantsTouched: []
    func_position:
      end: 1729
      start: 1721
    functionDepth: 2
    functionLinenumber: 1721
    functionLinenumberEnd: 1729
    functionName: test::test_grayscale
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Option::put_pixel
    - Rgba
    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:606,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:606,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:609,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:609,1
    - Dst: invert
      Src: /src/image/src/imageops/colorops.rs:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 613
      start: 604
    functionDepth: 13
    functionLinenumber: 604
    functionLinenumberEnd: 613
    functionName: test::test_invert
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - invert
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_invert()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:617,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:617,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:620,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 623
      start: 615
    functionDepth: 3
    functionLinenumber: 615
    functionLinenumberEnd: 623
    functionName: test::test_brighten
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_brighten()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:628,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:628,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:631,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:631,1
    - Dst: brighten_in_place
      Src: /src/image/src/imageops/colorops.rs:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 635
      start: 626
    functionDepth: 13
    functionLinenumber: 626
    functionLinenumberEnd: 635
    functionName: test::test_brighten_place
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - brighten_in_place
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_brighten_place()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::pixels
      Src: /src/image/src/imageops/affine.rs:383,1
    - Dst: ImageResult::zip
      Src: /src/image/src/imageops/affine.rs:383,1
    - Dst: '&J::pixels'
      Src: /src/image/src/imageops/affine.rs:384,1
    - Dst: filter
      Src: /src/image/src/imageops/affine.rs:383,1
    - Dst: "pixels()\n            .zip(right.pixels())\n            .filter(|&(p,\
        \ q)| p != q)\n            .collect::<Vec<_>>"
      Src: /src/image/src/imageops/affine.rs:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - '&I'
    - '&J'
    constantsTouched: []
    func_position:
      end: 387
      start: 377
    functionDepth: 4
    functionLinenumber: 377
    functionLinenumberEnd: 387
    functionName: test::pixel_diffs
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - "pixels()\n            .zip(right.pixels())\n            .filter(|&(p, q)| p\
      \ != q)\n            .collect::<Vec<_>>"
    - u32::pixels
    - '&J::pixels'
    - ImageResult::zip
    - filter
    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:11,1
    - Dst: Vec::buffer_with_dimensions
      Src: /src/image/src/imageops/affine.rs:12,1
    - Dst: rotate90_in
      Src: /src/image/src/imageops/affine.rs:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 15
      start: 8
    functionDepth: 12
    functionLinenumber: 8
    functionLinenumberEnd: 15
    functionName: rotate90
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 2
    functionsReached:
    - Vec::buffer_with_dimensions
    - Vec::dimensions
    - rotate90_in
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn rotate90<I: GenericImageView>(image: &I,) -> ImageBuffer<I::Pixel,
      Vec<<I::Pixel as Pixel>::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:21,1
    - Dst: Vec::buffer_with_dimensions
      Src: /src/image/src/imageops/affine.rs:22,1
    - Dst: rotate180_in
      Src: /src/image/src/imageops/affine.rs:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 12
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: rotate180
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::buffer_with_dimensions
    - Vec::dimensions
    - rotate180_in
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn rotate180<I: GenericImageView>(image: &I,) -> ImageBuffer<I::Pixel,
      Vec<<I::Pixel as Pixel>::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:31,1
    - Dst: Vec::buffer_with_dimensions
      Src: /src/image/src/imageops/affine.rs:32,1
    - Dst: rotate270_in
      Src: /src/image/src/imageops/affine.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 12
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: rotate270
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 2
    functionsReached:
    - Vec::buffer_with_dimensions
    - Vec::dimensions
    - rotate270_in
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn rotate270<I: GenericImageView>(image: &I,) -> ImageBuffer<I::Pixel,
      Vec<<I::Pixel as Pixel>::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:46,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::dimensions'
      Src: /src/image/src/imageops/affine.rs:46,1
    - Dst: Err
      Src: /src/image/src/imageops/affine.rs:48,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/imageops/affine.rs:48,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/imageops/affine.rs:48,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:55,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
      Src: /src/image/src/imageops/affine.rs:56,1
    - Dst: Ok
      Src: /src/image/src/imageops/affine.rs:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - image
    - destination
    argTypes:
    - '&I'
    - '&mut ImageBuffer<I::Pixel, Container>'
    constantsTouched: []
    func_position:
      end: 60
      start: 38
    functionDepth: 12
    functionLinenumber: 38
    functionLinenumberEnd: 60
    functionName: rotate90_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Err
    - Vec::get_pixel
    - Vec::dimensions
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - ImageError::Parameter
    - ParameterError::from_kind
    - Ok
    linkageType: ''
    returnType: crate::ImageResult
    signature: 'pub fn rotate90_in<I, Container>(image: &I,destination: &mut ImageBuffer<I::Pixel,
      Container>,) -> crate::ImageResult<()>whereI: GenericImageView,Container: std::ops::DerefMut<Target
      = [<I::Pixel as Pixel>::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:71,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::dimensions'
      Src: /src/image/src/imageops/affine.rs:71,1
    - Dst: Err
      Src: /src/image/src/imageops/affine.rs:73,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/imageops/affine.rs:73,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/imageops/affine.rs:73,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:80,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
      Src: /src/image/src/imageops/affine.rs:81,1
    - Dst: Ok
      Src: /src/image/src/imageops/affine.rs:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 2
    argNames:
    - image
    - destination
    argTypes:
    - '&I'
    - '&mut ImageBuffer<I::Pixel, Container>'
    constantsTouched: []
    func_position:
      end: 85
      start: 63
    functionDepth: 12
    functionLinenumber: 63
    functionLinenumberEnd: 85
    functionName: rotate180_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Err
    - Vec::get_pixel
    - Vec::dimensions
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - ImageError::Parameter
    - ParameterError::from_kind
    - Ok
    linkageType: ''
    returnType: crate::ImageResult
    signature: 'pub fn rotate180_in<I, Container>(image: &I,destination: &mut ImageBuffer<I::Pixel,
      Container>,) -> crate::ImageResult<()>whereI: GenericImageView,Container: std::ops::DerefMut<Target
      = [<I::Pixel as Pixel>::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:96,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::dimensions'
      Src: /src/image/src/imageops/affine.rs:96,1
    - Dst: Err
      Src: /src/image/src/imageops/affine.rs:98,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/imageops/affine.rs:98,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/imageops/affine.rs:98,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:105,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
      Src: /src/image/src/imageops/affine.rs:106,1
    - Dst: Ok
      Src: /src/image/src/imageops/affine.rs:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - image
    - destination
    argTypes:
    - '&I'
    - '&mut ImageBuffer<I::Pixel, Container>'
    constantsTouched: []
    func_position:
      end: 110
      start: 88
    functionDepth: 12
    functionLinenumber: 88
    functionLinenumberEnd: 110
    functionName: rotate270_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Err
    - Vec::get_pixel
    - Vec::dimensions
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - ImageError::Parameter
    - ParameterError::from_kind
    - Ok
    linkageType: ''
    returnType: crate::ImageResult
    signature: 'pub fn rotate270_in<I, Container>(image: &I,destination: &mut ImageBuffer<I::Pixel,
      Container>,) -> crate::ImageResult<()>whereI: GenericImageView,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:116,1
    - Dst: flip_horizontal_in
      Src: /src/image/src/imageops/affine.rs:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 13
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: flip_horizontal
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - flip_horizontal_in
    - Vec::buffer_like
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn flip_horizontal<I: GenericImageView>(image: &I,) -> ImageBuffer<I::Pixel,
      Vec<<I::Pixel as Pixel>::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::buffer_like
      Src: /src/image/src/imageops/affine.rs:125,1
    - Dst: flip_vertical_in
      Src: /src/image/src/imageops/affine.rs:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&I'
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 13
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: flip_vertical
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - flip_vertical_in
    - Vec::buffer_like
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn flip_vertical<I: GenericImageView>(image: &I,) -> ImageBuffer<I::Pixel,
      Vec<<I::Pixel as Pixel>::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:139,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::dimensions'
      Src: /src/image/src/imageops/affine.rs:139,1
    - Dst: Err
      Src: /src/image/src/imageops/affine.rs:141,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/imageops/affine.rs:141,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/imageops/affine.rs:141,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:148,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
      Src: /src/image/src/imageops/affine.rs:149,1
    - Dst: Ok
      Src: /src/image/src/imageops/affine.rs:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - image
    - destination
    argTypes:
    - '&I'
    - '&mut ImageBuffer<I::Pixel, Container>'
    constantsTouched: []
    func_position:
      end: 153
      start: 131
    functionDepth: 12
    functionLinenumber: 131
    functionLinenumberEnd: 153
    functionName: flip_horizontal_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Err
    - Vec::get_pixel
    - Vec::dimensions
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - ImageError::Parameter
    - ParameterError::from_kind
    - Ok
    linkageType: ''
    returnType: crate::ImageResult
    signature: 'pub fn flip_horizontal_in<I, Container>(image: &I,destination: &mut
      ImageBuffer<I::Pixel, Container>,) -> crate::ImageResult<()>whereI: GenericImageView,Container:
      std::ops::DerefMut<Target = [<I::Pixel as Pixel>::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:164,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::dimensions'
      Src: /src/image/src/imageops/affine.rs:164,1
    - Dst: Err
      Src: /src/image/src/imageops/affine.rs:166,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/imageops/affine.rs:166,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/imageops/affine.rs:166,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:173,1
    - Dst: '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
      Src: /src/image/src/imageops/affine.rs:174,1
    - Dst: Ok
      Src: /src/image/src/imageops/affine.rs:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - image
    - destination
    argTypes:
    - '&I'
    - '&mut ImageBuffer<I::Pixel, Container>'
    constantsTouched: []
    func_position:
      end: 178
      start: 156
    functionDepth: 12
    functionLinenumber: 156
    functionLinenumberEnd: 178
    functionName: flip_vertical_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Err
    - Vec::get_pixel
    - Vec::dimensions
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - ImageError::Parameter
    - ParameterError::from_kind
    - Ok
    linkageType: ''
    returnType: crate::ImageResult
    signature: 'pub fn flip_vertical_in<I, Container>(image: &I,destination: &mut
      ImageBuffer<I::Pixel, Container>,) -> crate::ImageResult<()>whereI: GenericImageView,Container:
      std::ops::DerefMut<Target = [<I::Pixel as Pixel>::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:182,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:186,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:191,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:192,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:193,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:201,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:204,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:205,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&mut I'
    constantsTouched: []
    func_position:
      end: 209
      start: 181
    functionDepth: 12
    functionLinenumber: 181
    functionLinenumberEnd: 209
    functionName: rotate180_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 2
    functionsReached:
    - Vec::get_pixel
    - Vec::dimensions
    - Vec::put_pixel
    linkageType: ''
    returnType: void
    signature: 'pub fn rotate180_in_place<I: GenericImage>(image: &mut I)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:213,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:218,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:219,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:220,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&mut I'
    constantsTouched: []
    func_position:
      end: 224
      start: 212
    functionDepth: 12
    functionLinenumber: 212
    functionLinenumberEnd: 224
    functionName: flip_horizontal_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::get_pixel
    - Vec::dimensions
    - Vec::put_pixel
    linkageType: ''
    returnType: void
    signature: 'pub fn flip_horizontal_in_place<I: GenericImage>(image: &mut I)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs:228,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:233,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/affine.rs:234,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:235,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/affine.rs:236,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&mut I'
    constantsTouched: []
    func_position:
      end: 239
      start: 227
    functionDepth: 12
    functionLinenumber: 227
    functionLinenumberEnd: 239
    functionName: flip_vertical_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::get_pixel
    - Vec::dimensions
    - Vec::put_pixel
    linkageType: ''
    returnType: void
    signature: 'pub fn flip_vertical_in_place<I: GenericImage>(image: &mut I)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:285,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:285,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:288,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 291
    functionName: test::test_rotate90
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_rotate90()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:296,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:296,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:299,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: test::test_rotate180
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_rotate180()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:307,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:307,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:310,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 313
    functionName: test::test_rotate270
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_rotate270()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:318,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:318,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:321,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:321,1
    - Dst: rotate180_in_place
      Src: /src/image/src/imageops/affine.rs:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 316
    functionDepth: 13
    functionLinenumber: 316
    functionLinenumberEnd: 326
    functionName: test::test_rotate180_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - rotate180_in_place
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_rotate180_in_place()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:331,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:331,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:334,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 337
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 337
    functionName: test::test_flip_horizontal
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_flip_horizontal()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:342,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:342,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:345,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 348
    functionName: test::test_flip_vertical
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_flip_vertical()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:353,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:353,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:356,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:356,1
    - Dst: flip_horizontal_in_place
      Src: /src/image/src/imageops/affine.rs:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 361
      start: 351
    functionDepth: 13
    functionLinenumber: 351
    functionLinenumberEnd: 361
    functionName: test::test_flip_horizontal_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - flip_horizontal_in_place
    - ImageBuffer::from_raw
    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:366,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:366,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs:369,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/affine.rs:369,1
    - Dst: flip_vertical_in_place
      Src: /src/image/src/imageops/affine.rs:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 374
      start: 364
    functionDepth: 13
    functionLinenumber: 364
    functionLinenumberEnd: 374
    functionName: test::test_flip_vertical_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - flip_vertical_in_place
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_flip_vertical_in_place()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubImage::new
      Src: /src/image/src/imageops/mod.rs:38,1
    - Dst: ImageBuffer::shrink_to_bounds_of
      Src: /src/image/src/imageops/mod.rs:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - image
    - rect
    argTypes:
    - '&mut I'
    - Rect
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 13
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: crop_mut
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - SubImage::new
    - ImageBuffer::shrink_to_bounds_of
    linkageType: ''
    returnType: SubImage
    signature: 'pub fn crop_mut<I: GenericImageView>(image: &mut I, rect: Rect) ->
      SubImage<&mut I>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubImage::new
      Src: /src/image/src/imageops/mod.rs:44,1
    - Dst: ImageBuffer::shrink_to_bounds_of
      Src: /src/image/src/imageops/mod.rs:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - image
    - rect
    argTypes:
    - '&I'
    - Rect
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 13
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: crop
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 2
    functionsReached:
    - SubImage::new
    - ImageBuffer::shrink_to_bounds_of
    linkageType: ''
    returnType: SubImage
    signature: 'pub fn crop<I: GenericImageView>(image: &I, rect: Rect) -> SubImage<&I>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: saturating_add
      Src: /src/image/src/imageops/mod.rs:109,1
    - Dst: min
      Src: /src/image/src/imageops/mod.rs:109,1
    - Dst: saturating_sub
      Src: /src/image/src/imageops/mod.rs:109,1
    - Dst: saturating_add
      Src: /src/image/src/imageops/mod.rs:113,1
    - Dst: min
      Src: /src/image/src/imageops/mod.rs:113,1
    - Dst: saturating_sub
      Src: /src/image/src/imageops/mod.rs:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 4
    argNames:
    - x
    - y
    argTypes:
    - (u32, u32)
    - (u32, u32)
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 118
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 118
    functionName: overlay_bounds
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - saturating_sub
    - min
    - 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:143,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:144,1
    - Dst: saturating_add
      Src: /src/image/src/imageops/mod.rs:145,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:145,1
    - Dst: Option::saturating_add
      Src: /src/image/src/imageops/mod.rs:146,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:146,1
    - Dst: saturating_add
      Src: /src/image/src/imageops/mod.rs:152,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:152,1
    - Dst: Option::saturating_add
      Src: /src/image/src/imageops/mod.rs:153,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:153,1
    - Dst: clamp
      Src: /src/image/src/imageops/mod.rs:158,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:158,1
    - Dst: clamp
      Src: /src/image/src/imageops/mod.rs:159,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:159,1
    - Dst: clamp
      Src: /src/image/src/imageops/mod.rs:160,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:160,1
    - Dst: Option::clamp
      Src: /src/image/src/imageops/mod.rs:161,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:161,1
    - Dst: saturating_mul
      Src: /src/image/src/imageops/mod.rs:171,1
    - Dst: T::clamp
      Src: /src/image/src/imageops/mod.rs:171,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:171,1
    - Dst: Option::saturating_mul
      Src: /src/image/src/imageops/mod.rs:172,1
    - Dst: T::clamp
      Src: /src/image/src/imageops/mod.rs:172,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 59
    argCount: 4
    argNames:
    - x
    - y
    argTypes:
    - (u32, u32)
    - (u32, u32)
    - i64
    - i64
    constantsTouched: []
    func_position:
      end: 182
      start: 136
    functionDepth: 15
    functionLinenumber: 136
    functionLinenumberEnd: 182
    functionName: overlay_bounds_ext
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 2
    functionsReached:
    - i64::from
    - Option::saturating_add
    - Option::clamp
    - saturating_add
    - saturating_mul
    - T::clamp
    - clamp
    - Option::saturating_mul
    linkageType: ''
    returnType: (u32, u32, u32, u32, u32, u32)
    signature: 'fn overlay_bounds_ext((bottom_width, bottom_height): (u32, u32),(top_width,
      top_height): (u32, u32),x: i64,y: i64,) -> (u32, u32, u32, u32, u32, u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut I::dimensions'
      Src: /src/image/src/imageops/mod.rs:190,1
    - Dst: u32::dimensions
      Src: /src/image/src/imageops/mod.rs:191,1
    - Dst: overlay_bounds_ext
      Src: /src/image/src/imageops/mod.rs:195,1
    - Dst: u32::get_pixel
      Src: /src/image/src/imageops/mod.rs:199,1
    - Dst: '&mut I::get_pixel'
      Src: /src/image/src/imageops/mod.rs:200,1
    - Dst: Self::Pixel::blend
      Src: /src/image/src/imageops/mod.rs:201,1
    - Dst: '&mut I::put_pixel'
      Src: /src/image/src/imageops/mod.rs:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 4
    argNames:
    - bottom
    - top
    - x
    - y
    argTypes:
    - '&mut I'
    - '&J'
    - i64
    - i64
    constantsTouched: []
    func_position:
      end: 206
      start: 185
    functionDepth: 12
    functionLinenumber: 185
    functionLinenumberEnd: 206
    functionName: overlay
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 6
    functionsReached:
    - Self::Pixel::blend
    - '&mut I::put_pixel'
    - u32::get_pixel
    - overlay_bounds_ext
    - '&mut I::get_pixel'
    - u32::dimensions
    - '&mut I::dimensions'
    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:225,1
    - Dst: step_by
      Src: /src/image/src/imageops/mod.rs:225,1
    - Dst: u32::width
      Src: /src/image/src/imageops/mod.rs:225,1
    - Dst: '&mut I::height'
      Src: /src/image/src/imageops/mod.rs:226,1
    - Dst: step_by
      Src: /src/image/src/imageops/mod.rs:226,1
    - Dst: u32::height
      Src: /src/image/src/imageops/mod.rs:226,1
    - Dst: overlay
      Src: /src/image/src/imageops/mod.rs:227,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:227,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - bottom
    - top
    argTypes:
    - '&mut I'
    - '&J'
    constantsTouched: []
    func_position:
      end: 230
      start: 220
    functionDepth: 13
    functionLinenumber: 220
    functionLinenumberEnd: 230
    functionName: tile
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - i64::from
    - u32::height
    - '&mut I::width'
    - overlay
    - u32::width
    - '&mut I::height'
    - step_by
    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:252,1
    - Dst: ImageResult::map2
      Src: /src/image/src/imageops/mod.rs:253,1
    - Dst: <S::Ratio as num_traits::NumCast>::from
      Src: /src/image/src/imageops/mod.rs:254,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/mod.rs:254,1
    - Dst: <S::Ratio as num_traits::NumCast>::from
      Src: /src/image/src/imageops/mod.rs:255,1
    - Dst: Option::height
      Src: /src/image/src/imageops/mod.rs:255,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/mod.rs:255,1
    - Dst: S::lerp
      Src: /src/image/src/imageops/mod.rs:256,1
    - Dst: Option::width
      Src: /src/image/src/imageops/mod.rs:259,1
    - Dst: Option::put_pixel
      Src: /src/image/src/imageops/mod.rs:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 3
    argNames:
    - img
    - start
    - stop
    argTypes:
    - '&mut I'
    - '&P'
    - '&P'
    constantsTouched: []
    func_position:
      end: 263
      start: 246
    functionDepth: 4
    functionLinenumber: 246
    functionLinenumberEnd: 263
    functionName: vertical_gradient
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 1
    functionsReached:
    - S::lerp
    - Option::height
    - Self::unwrap
    - Option::put_pixel
    - <S::Ratio as num_traits::NumCast>::from
    - ImageResult::map2
    - Option::width
    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>,S: Primitive + Lerp,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::width
      Src: /src/image/src/imageops/mod.rs:285,1
    - Dst: ImageResult::map2
      Src: /src/image/src/imageops/mod.rs:286,1
    - Dst: <S::Ratio as num_traits::NumCast>::from
      Src: /src/image/src/imageops/mod.rs:287,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/mod.rs:287,1
    - Dst: <S::Ratio as num_traits::NumCast>::from
      Src: /src/image/src/imageops/mod.rs:288,1
    - Dst: Option::width
      Src: /src/image/src/imageops/mod.rs:288,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/mod.rs:288,1
    - Dst: S::lerp
      Src: /src/image/src/imageops/mod.rs:289,1
    - Dst: Option::height
      Src: /src/image/src/imageops/mod.rs:292,1
    - Dst: Option::put_pixel
      Src: /src/image/src/imageops/mod.rs:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 3
    argNames:
    - img
    - start
    - stop
    argTypes:
    - '&mut I'
    - '&P'
    - '&P'
    constantsTouched: []
    func_position:
      end: 296
      start: 279
    functionDepth: 4
    functionLinenumber: 279
    functionLinenumberEnd: 296
    functionName: horizontal_gradient
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 1
    functionsReached:
    - S::lerp
    - Option::height
    - Self::unwrap
    - Option::put_pixel
    - <S::Ratio as num_traits::NumCast>::from
    - ImageResult::map2
    - Option::width
    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>,S: Primitive + Lerp,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut I::dimensions'
      Src: /src/image/src/imageops/mod.rs:304,1
    - Dst: u32::dimensions
      Src: /src/image/src/imageops/mod.rs:305,1
    - Dst: overlay_bounds_ext
      Src: /src/image/src/imageops/mod.rs:309,1
    - Dst: u32::get_pixel
      Src: /src/image/src/imageops/mod.rs:313,1
    - Dst: '&mut I::put_pixel'
      Src: /src/image/src/imageops/mod.rs:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - bottom
    - top
    - x
    - y
    argTypes:
    - '&mut I'
    - '&J'
    - i64
    - i64
    constantsTouched: []
    func_position:
      end: 317
      start: 299
    functionDepth: 12
    functionLinenumber: 299
    functionLinenumberEnd: 317
    functionName: replace
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 1
    functionsReached:
    - '&mut I::put_pixel'
    - u32::get_pixel
    - overlay_bounds_ext
    - u32::dimensions
    - '&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: 365
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 365
    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:370,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/imageops/mod.rs:371,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:371,1
    - Dst: overlay
      Src: /src/image/src/imageops/mod.rs:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 378
      start: 369
    functionDepth: 13
    functionLinenumber: 369
    functionLinenumberEnd: 378
    functionName: tests::test_image_in_image
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::new
    - Rgb
    - ImageBuffer::from_pixel
    - overlay
    linkageType: ''
    returnType: void
    signature: fn test_image_in_image()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/mod.rs:383,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/imageops/mod.rs:384,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:384,1
    - Dst: overlay
      Src: /src/image/src/imageops/mod.rs:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 382
    functionDepth: 13
    functionLinenumber: 382
    functionLinenumberEnd: 389
    functionName: tests::test_image_in_image_outside_of_bounds
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::new
    - Rgb
    - ImageBuffer::from_pixel
    - overlay
    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:395,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/imageops/mod.rs:396,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:396,1
    - Dst: overlay
      Src: /src/image/src/imageops/mod.rs:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 394
    functionDepth: 13
    functionLinenumber: 394
    functionLinenumberEnd: 401
    functionName: tests::test_image_outside_image_no_wrap_around
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::new
    - Rgb
    - ImageBuffer::from_pixel
    - overlay
    linkageType: ''
    returnType: void
    signature: fn test_image_outside_image_no_wrap_around()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Rgba
      Src: /src/image/src/imageops/mod.rs:407,1
    - Dst: RgbaImage::from_pixel
      Src: /src/image/src/imageops/mod.rs:408,1
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:409,1
    - Dst: overlay
      Src: /src/image/src/imageops/mod.rs:410,1
    - Dst: get_pixel
      Src: /src/image/src/imageops/mod.rs:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 414
      start: 406
    functionDepth: 13
    functionLinenumber: 406
    functionLinenumberEnd: 414
    functionName: tests::test_image_overlay_transparent
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - get_pixel
    - RgbaImage::from_pixel
    - overlay
    - crate::Rgba
    - RgbaImage::new
    linkageType: ''
    returnType: void
    signature: fn test_image_overlay_transparent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/mod.rs:419,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/imageops/mod.rs:420,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:420,1
    - Dst: overlay
      Src: /src/image/src/imageops/mod.rs:422,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:425,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 431
      start: 418
    functionDepth: 13
    functionLinenumber: 418
    functionLinenumberEnd: 431
    functionName: tests::test_image_coordinate_overflow
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - i64::from
    - ImageBuffer::from_pixel
    - overlay
    - ImageBuffer::new
    - Rgb
    linkageType: ''
    returnType: void
    signature: fn test_image_coordinate_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/mod.rs:438,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:440,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:441,1
    - Dst: horizontal_gradient
      Src: /src/image/src/imageops/mod.rs:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 437
    functionDepth: 5
    functionLinenumber: 437
    functionLinenumberEnd: 447
    functionName: tests::test_image_horizontal_gradient_limits
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::new
    - Rgb
    - horizontal_gradient
    linkageType: ''
    returnType: void
    signature: fn test_image_horizontal_gradient_limits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/mod.rs:452,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:454,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:455,1
    - Dst: vertical_gradient
      Src: /src/image/src/imageops/mod.rs:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 461
      start: 451
    functionDepth: 5
    functionLinenumber: 451
    functionLinenumberEnd: 461
    functionName: tests::test_image_vertical_gradient_limits
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::new
    - Rgb
    - vertical_gradient
    linkageType: ''
    returnType: void
    signature: fn test_image_vertical_gradient_limits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:466,1
    - Dst: blur
      Src: /src/image/src/imageops/mod.rs:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 468
      start: 465
    functionDepth: 18
    functionLinenumber: 465
    functionLinenumberEnd: 468
    functionName: tests::test_blur_zero
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - RgbaImage::new
    - blur
    linkageType: ''
    returnType: void
    signature: fn test_blur_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:473,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 475
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 475
    functionName: tests::test_fast_blur_zero
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - RgbaImage::new
    - self::fast_blur::fast_blur
    linkageType: ''
    returnType: void
    signature: fn test_fast_blur_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:480,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 482
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 482
    functionName: tests::test_fast_blur_negative
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - RgbaImage::new
    - self::fast_blur::fast_blur
    linkageType: ''
    returnType: void
    signature: fn test_fast_blur_negative()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:487,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 489
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 489
    functionName: tests::test_fast_large_sigma
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - RgbaImage::new
    - self::fast_blur::fast_blur
    linkageType: ''
    returnType: void
    signature: fn test_fast_large_sigma()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:494,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:495,1
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:496,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:497,1
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:498,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 500
    functionName: tests::test_fast_blur_empty
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - RgbaImage::new
    - self::fast_blur::fast_blur
    linkageType: ''
    returnType: void
    signature: fn test_fast_blur_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::new
      Src: /src/image/src/imageops/mod.rs:505,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 507
    functionName: tests::test_fast_blur_3_channels
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - RgbImage::new
    - self::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:512,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 514
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 514
    functionName: tests::test_fast_blur_2_channels
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - GrayAlphaImage::new
    - self::fast_blur::fast_blur
    linkageType: ''
    returnType: void
    signature: fn test_fast_blur_2_channels()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GrayImage::new
      Src: /src/image/src/imageops/mod.rs:519,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 521
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 521
    functionName: tests::test_fast_blur_1_channels
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - GrayImage::new
    - self::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:530,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/mod.rs:530,1
    - Dst: Vec::blur_advanced
      Src: /src/image/src/imageops/mod.rs:531,1
    - Dst: GaussianBlurParameters::new_from_sigma
      Src: /src/image/src/imageops/mod.rs:532,1
    - Dst: ImageBuffer::to_rgb8
      Src: /src/image/src/imageops/mod.rs:531,1
    - Dst: as_flat_samples
      Src: /src/image/src/imageops/mod.rs:534,1
    - Dst: FlatSamples::as_slice
      Src: /src/image/src/imageops/mod.rs:535,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/mod.rs:536,1
    - Dst: ImageBuffer::to_rgb8
      Src: /src/image/src/imageops/mod.rs:536,1
    - Dst: as_flat_samples
      Src: /src/image/src/imageops/mod.rs:537,1
    - Dst: FlatSamples::as_slice
      Src: /src/image/src/imageops/mod.rs:538,1
    - Dst: '&[T]::iter'
      Src: /src/image/src/imageops/mod.rs:540,1
    - Dst: zip
      Src: /src/image/src/imageops/mod.rs:540,1
    - Dst: '&[T]::iter'
      Src: /src/image/src/imageops/mod.rs:542,1
    - Dst: map
      Src: /src/image/src/imageops/mod.rs:540,1
    - Dst: f32::from
      Src: /src/image/src/imageops/mod.rs:543,1
    - Dst: f32::from
      Src: /src/image/src/imageops/mod.rs:543,1
    - Dst: f32::from
      Src: /src/image/src/imageops/mod.rs:543,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:540,1
    - Dst: '&[T]::len'
      Src: /src/image/src/imageops/mod.rs:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 547
      start: 525
    functionDepth: 17
    functionLinenumber: 525
    functionLinenumberEnd: 547
    functionName: tests::fast_blur_approximates_gaussian_blur_well
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - FlatSamples::as_slice
    - io::Result::unwrap
    - map
    - "iter()\n            .zip(image_blurred_fast_bytes.iter())\n            .map(|(a,\
      \ b)| (f32::from(*a) - f32::from(*b)) / f32::from(*a))\n            .sum::<f32>"
    - zip
    - ImageBuffer::to_rgb8
    - f32::from
    - crate::open
    - Vec::fast_blur
    - '&[T]::iter'
    - Vec::blur_advanced
    - '&[T]::len'
    - as_flat_samples
    - GaussianBlurParameters::new_from_sigma
    linkageType: ''
    returnType: void
    signature: fn fast_blur_approximates_gaussian_blur_well()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GrayImage::new
      Src: /src/image/src/imageops/mod.rs:552,1
    - Dst: Rgb32FImage::new
      Src: /src/image/src/imageops/mod.rs:555,1
    - Dst: GrayImage::from_vec
      Src: /src/image/src/imageops/mod.rs:562,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/mod.rs:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 564
      start: 551
    functionDepth: 4
    functionLinenumber: 551
    functionLinenumberEnd: 564
    functionName: tests::test_image_thumbnail
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - Rgb32FImage::new
    - GrayImage::new
    - GrayImage::from_vec
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_image_thumbnail()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::width
      Src: /src/image/src/imageops/resize.rs:19,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/resize.rs:19,1
    - Dst: Ok
      Src: /src/image/src/imageops/resize.rs:20,1
    - Dst: convert_filter_type
      Src: /src/image/src/imageops/resize.rs:22,1
    - Dst: ImageSize::new
      Src: /src/image/src/imageops/resize.rs:24,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/resize.rs:24,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/resize.rs:24,1
    - Dst: ImageSize::new
      Src: /src/image/src/imageops/resize.rs:25,1
    - Dst: has_constant_alpha
      Src: /src/image/src/imageops/resize.rs:31,1
    - Dst: premultiply_alpha
      Src: /src/image/src/imageops/resize.rs:32,1
    - Dst: resize_plane8
      Src: /src/image/src/imageops/resize.rs:40,1
    - Dst: as_raw
      Src: /src/image/src/imageops/resize.rs:40,1
    - Dst: ImageLuma8
      Src: /src/image/src/imageops/resize.rs:41,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/resize.rs:41,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/resize.rs:41,1
    - Dst: resize_plane8_with_alpha
      Src: /src/image/src/imageops/resize.rs:44,1
    - Dst: as_raw
      Src: /src/image/src/imageops/resize.rs:44,1
    - Dst: ImageLumaA8
      Src: /src/image/src/imageops/resize.rs:45,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/resize.rs:45,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/resize.rs:45,1
    - Dst: resize_rgb8
      Src: /src/image/src/imageops/resize.rs:48,1
    - Dst: as_raw
      Src: /src/image/src/imageops/resize.rs:48,1
    - Dst: ImageRgb8
      Src: /src/image/src/imageops/resize.rs:49,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/resize.rs:49,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/resize.rs:49,1
    - Dst: resize_rgba8
      Src: /src/image/src/imageops/resize.rs:52,1
    - Dst: as_raw
      Src: /src/image/src/imageops/resize.rs:52,1
    - Dst: ImageRgba8
      Src: /src/image/src/imageops/resize.rs:53,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/resize.rs:53,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/resize.rs:53,1
    - Dst: resize_plane16
      Src: /src/image/src/imageops/resize.rs:56,1
    - Dst: as_raw
      Src: /src/image/src/imageops/resize.rs:56,1
    - Dst: ImageLuma16
      Src: /src/image/src/imageops/resize.rs:57,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/resize.rs:57,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/resize.rs:57,1
    - Dst: resize_plane16_with_alpha
      Src: /src/image/src/imageops/resize.rs:60,1
    - Dst: as_raw
      Src: /src/image/src/imageops/resize.rs:60,1
    - Dst: ImageLumaA16
      Src: /src/image/src/imageops/resize.rs:61,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/resize.rs:61,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/resize.rs:61,1
    - Dst: resize_rgb16
      Src: /src/image/src/imageops/resize.rs:64,1
    - Dst: as_raw
      Src: /src/image/src/imageops/resize.rs:64,1
    - Dst: ImageRgb16
      Src: /src/image/src/imageops/resize.rs:65,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/resize.rs:65,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/resize.rs:65,1
    - Dst: resize_rgba16
      Src: /src/image/src/imageops/resize.rs:68,1
    - Dst: as_raw
      Src: /src/image/src/imageops/resize.rs:68,1
    - Dst: ImageRgba16
      Src: /src/image/src/imageops/resize.rs:69,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/resize.rs:69,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/resize.rs:69,1
    - Dst: resize_rgb_f32
      Src: /src/image/src/imageops/resize.rs:72,1
    - Dst: as_raw
      Src: /src/image/src/imageops/resize.rs:72,1
    - Dst: ImageRgb32F
      Src: /src/image/src/imageops/resize.rs:73,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/resize.rs:73,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/resize.rs:73,1
    - Dst: resize_rgba_f32
      Src: /src/image/src/imageops/resize.rs:76,1
    - Dst: as_raw
      Src: /src/image/src/imageops/resize.rs:76,1
    - Dst: ImageRgba32F
      Src: /src/image/src/imageops/resize.rs:77,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/resize.rs:77,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/resize.rs:77,1
    - Dst: unpremultiply_alpha
      Src: /src/image/src/imageops/resize.rs:81,1
    - Dst: Ok
      Src: /src/image/src/imageops/resize.rs:84,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 125
    argCount: 4
    argNames:
    - image
    - dst_width
    - dst_height
    - algorithm
    argTypes:
    - '&mut DynamicImage'
    - u32
    - u32
    - FilterType
    constantsTouched: []
    func_position:
      end: 85
      start: 13
    functionDepth: 20
    functionLinenumber: 13
    functionLinenumberEnd: 85
    functionName: resize_impl
    functionSourceFile: /src/image/src/imageops/resize.rs
    functionUses: 2
    functionsReached:
    - convert_filter_type
    - ImageSize::new
    - resize_rgb8
    - resize_rgb_f32
    - Vec::width
    - ImageRgba8
    - unpremultiply_alpha
    - ImageRgb16
    - ImageRgb32F
    - Vec::height
    - resize_rgb16
    - ImageRgba32F
    - resize_plane16_with_alpha
    - ImageBuffer::from_raw
    - ImageLumaA8
    - resize_plane16
    - premultiply_alpha
    - ImageLuma8
    - resize_plane8_with_alpha
    - ImageRgba16
    - resize_plane8
    - Option::unwrap
    - resize_rgba16
    - has_constant_alpha
    - Ok
    - resize_rgba_f32
    - as_raw
    - ImageLumaA16
    - ImageRgb8
    - ImageLuma16
    - resize_rgba8
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn resize_impl(image: &mut DynamicImage,dst_width: u32,dst_height:
      u32,algorithm: FilterType,) -> Result<(), String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - filter
    argTypes:
    - FilterType
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: convert_filter_type
    functionSourceFile: /src/image/src/imageops/resize.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ResamplingFunction
    signature: 'fn convert_filter_type(filter: FilterType) -> ResamplingFunction'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: premultiply_la8
      Src: /src/image/src/imageops/resize.rs:102,1
    - Dst: std::io::Result::as_mut
      Src: /src/image/src/imageops/resize.rs:102,1
    - Dst: premultiply_rgba8
      Src: /src/image/src/imageops/resize.rs:106,1
    - Dst: std::io::Result::as_mut
      Src: /src/image/src/imageops/resize.rs:106,1
    - Dst: premultiply_la16
      Src: /src/image/src/imageops/resize.rs:110,1
    - Dst: std::io::Result::as_mut
      Src: /src/image/src/imageops/resize.rs:110,1
    - Dst: premultiply_rgba16
      Src: /src/image/src/imageops/resize.rs:114,1
    - Dst: std::io::Result::as_mut
      Src: /src/image/src/imageops/resize.rs:114,1
    - Dst: premultiply_rgba_f32
      Src: /src/image/src/imageops/resize.rs:118,1
    - Dst: std::io::Result::as_mut
      Src: /src/image/src/imageops/resize.rs:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&mut DynamicImage'
    constantsTouched: []
    func_position:
      end: 121
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 121
    functionName: premultiply_alpha
    functionSourceFile: /src/image/src/imageops/resize.rs
    functionUses: 1
    functionsReached:
    - premultiply_rgba16
    - std::io::Result::as_mut
    - premultiply_rgba_f32
    - premultiply_la8
    - premultiply_rgba8
    - premultiply_la16
    linkageType: ''
    returnType: void
    signature: 'fn premultiply_alpha(image: &mut DynamicImage)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unpremultiply_la8
      Src: /src/image/src/imageops/resize.rs:128,1
    - Dst: std::io::Result::as_mut
      Src: /src/image/src/imageops/resize.rs:128,1
    - Dst: unpremultiply_rgba8
      Src: /src/image/src/imageops/resize.rs:130,1
    - Dst: std::io::Result::as_mut
      Src: /src/image/src/imageops/resize.rs:130,1
    - Dst: unpremultiply_la16
      Src: /src/image/src/imageops/resize.rs:132,1
    - Dst: std::io::Result::as_mut
      Src: /src/image/src/imageops/resize.rs:132,1
    - Dst: unpremultiply_rgba16
      Src: /src/image/src/imageops/resize.rs:134,1
    - Dst: std::io::Result::as_mut
      Src: /src/image/src/imageops/resize.rs:134,1
    - Dst: unpremultiply_rgba_f32
      Src: /src/image/src/imageops/resize.rs:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&mut DynamicImage'
    constantsTouched: []
    func_position:
      end: 138
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 138
    functionName: unpremultiply_alpha
    functionSourceFile: /src/image/src/imageops/resize.rs
    functionUses: 1
    functionsReached:
    - unpremultiply_la16
    - std::io::Result::as_mut
    - unpremultiply_la8
    - unpremultiply_rgba16
    - unpremultiply_rgba8
    - unpremultiply_rgba_f32
    linkageType: ''
    returnType: void
    signature: 'fn unpremultiply_alpha(image: &mut DynamicImage)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: has_constant_alpha_integer
      Src: /src/image/src/imageops/resize.rs:144,1
    - Dst: has_constant_alpha_integer
      Src: /src/image/src/imageops/resize.rs:146,1
    - Dst: has_constant_alpha_integer
      Src: /src/image/src/imageops/resize.rs:148,1
    - Dst: has_constant_alpha_integer
      Src: /src/image/src/imageops/resize.rs:150,1
    - Dst: has_constant_alpha_f32
      Src: /src/image/src/imageops/resize.rs:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 154
      start: 141
    functionDepth: 19
    functionLinenumber: 141
    functionLinenumberEnd: 154
    functionName: has_constant_alpha
    functionSourceFile: /src/image/src/imageops/resize.rs
    functionUses: 1
    functionsReached:
    - has_constant_alpha_integer
    - has_constant_alpha_f32
    linkageType: ''
    returnType: bool
    signature: 'fn has_constant_alpha(image: &DynamicImage) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::pixels
      Src: /src/image/src/imageops/resize.rs:164,1
    - Dst: ImageResult::next
      Src: /src/image/src/imageops/resize.rs:164,1
    - Dst: u8::channels
      Src: /src/image/src/imageops/resize.rs:165,1
    - Dst: usize::last
      Src: /src/image/src/imageops/resize.rs:165,1
    - Dst: unwrap
      Src: /src/image/src/imageops/resize.rs:165,1
    - Dst: Option::rows
      Src: /src/image/src/imageops/resize.rs:175,1
    - Dst: Result::for_each
      Src: /src/image/src/imageops/resize.rs:176,1
    - Dst: u8::alpha
      Src: /src/image/src/imageops/resize.rs:177,1
    - Dst: bitxor
      Src: /src/image/src/imageops/resize.rs:178,1
    - Dst: into
      Src: /src/image/src/imageops/resize.rs:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 1
    argNames:
    - img
    argTypes:
    - '&ImageBuffer<P, Container>'
    constantsTouched: []
    func_position:
      end: 185
      start: 157
    functionDepth: 18
    functionLinenumber: 157
    functionLinenumberEnd: 185
    functionName: has_constant_alpha_integer
    functionSourceFile: /src/image/src/imageops/resize.rs
    functionUses: 1
    functionsReached:
    - usize::last
    - Result::for_each
    - u8::channels
    - Option::rows
    - u8::alpha
    - ImageResult::next
    - bitxor
    - unwrap
    - into
    - Option::pixels
    linkageType: ''
    returnType: bool
    signature: 'fn has_constant_alpha_integer<P, Container>(img: &ImageBuffer<P, Container>)
      -> boolwhereP: Pixel,Container: std::ops::Deref<Target = [P::Subpixel]>,P::Subpixel:Copy
      + PartialEq + BitXor<P::Subpixel, Output = P::Subpixel> + AddAssign + Into<u64>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::pixels
      Src: /src/image/src/imageops/resize.rs:190,1
    - Dst: ImageResult::next
      Src: /src/image/src/imageops/resize.rs:190,1
    - Dst: u8::alpha
      Src: /src/image/src/imageops/resize.rs:191,1
    - Dst: Option::pixels
      Src: /src/image/src/imageops/resize.rs:194,1
    - Dst: ImageResult::map
      Src: /src/image/src/imageops/resize.rs:194,1
    - Dst: u8::channels
      Src: /src/image/src/imageops/resize.rs:195,1
    - Dst: usize::last
      Src: /src/image/src/imageops/resize.rs:195,1
    - Dst: unwrap
      Src: /src/image/src/imageops/resize.rs:195,1
    - Dst: ImageResult::all
      Src: /src/image/src/imageops/resize.rs:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - img
    argTypes:
    - '&ImageBuffer<crate::Rgba<f32>, Vec<f32>>'
    constantsTouched: []
    func_position:
      end: 197
      start: 188
    functionDepth: 18
    functionLinenumber: 188
    functionLinenumberEnd: 197
    functionName: has_constant_alpha_f32
    functionSourceFile: /src/image/src/imageops/resize.rs
    functionUses: 1
    functionsReached:
    - usize::last
    - u8::channels
    - u8::alpha
    - ImageResult::next
    - unwrap
    - ImageResult::all
    - Option::pixels
    - ImageResult::map
    linkageType: ''
    returnType: bool
    signature: 'fn has_constant_alpha_f32(img: &ImageBuffer<crate::Rgba<f32>, Vec<f32>>)
      -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::new
      Src: /src/image/src/imageops/resize.rs:205,1
    - Dst: resize_impl
      Src: /src/image/src/imageops/resize.rs:206,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/resize.rs:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 21
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: tests::smoke_test
    functionSourceFile: /src/image/src/imageops/resize.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::new
    - Result::unwrap
    - resize_impl
    linkageType: ''
    returnType: void
    signature: fn smoke_test()
  - 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<P, Vec<P::Subpixel>>::as_flat_samples'
    - Vec::iter
    - '&ImageBuffer<P, Vec<P::Subpixel>>::dimensions'
    - box_blur_vertical_pass_strategy::<P, P::Subpixel>
    - skip
    - ImageBuffer::from_raw
    - Option::unwrap
    - test_radius_size
    - '&ImageBuffer<P, Vec<P::Subpixel>>::clone'
    - safe_mul
    - and_then
    - box_blur_horizontal_pass_strategy::<P, P::Subpixel>
    - '&RgbaImage::copy_color_space_from'
    - Vec::is_empty
    - boxes_for_gauss
    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: 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:
    - map
    - f32::round
    - GaussianBlurParameters::powi
    - ceil_to_odd
    - 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<_>>"
    - f32::sqrt
    - recip
    - saturating_sub
    linkageType: ''
    returnType: Vec
    signature: 'fn boxes_for_gauss(sigma: f32, n: usize) -> Vec<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_multiple_of
      Src: /src/image/src/imageops/fast_blur.rs:131,1
    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:
    - is_multiple_of
    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: 14
    functionLinenumber: 140
    functionLinenumberEnd: 159
    functionName: rounding_saturating_mul
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 2
    functionsReached:
    - max
    - Self::unwrap
    - to_f32
    - unwrap
    - min
    - round
    - T::from
    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, 3>
    - box_blur_horizontal_pass_impl::<P, 2>
    - box_blur_horizontal_pass_impl::<P, 1>
    - box_blur_horizontal_pass_impl::<P, 4>
    linkageType: ''
    returnType: void
    signature: 'fn box_blur_horizontal_pass_strategy<T, P: Primitive>(src: &[P],src_stride:
      usize,dst: &mut [P],dst_stride: usize,width: u32,radius: usize,) whereT: Pixel,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: box_blur_vertical_pass_impl::<P>
      Src: /src/image/src/imageops/fast_blur.rs:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    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: 203
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 203
    functionName: box_blur_vertical_pass_strategy
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - box_blur_vertical_pass_impl::<P>
    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:216,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/fast_blur.rs:232,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:232,1
    - Dst: '&[T]::chunks_exact'
      Src: /src/image/src/imageops/fast_blur.rs:234,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:243,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:243,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:245,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:245,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:248,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:248,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:251,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:251,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:255,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:259,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:259,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:262,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:262,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:265,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:265,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:269,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:270,1
    - Dst: max
      Src: /src/image/src/imageops/fast_blur.rs:271,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:274,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:276,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:279,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:282,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:288,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:288,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:290,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:290,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:293,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:293,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:296,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:296,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:299,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:299,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:301,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:301,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:304,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:304,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:307,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:307,1
    - Dst: saturating_sub
      Src: /src/image/src/imageops/fast_blur.rs:311,1
    - Dst: '&[T]::len'
      Src: /src/image/src/imageops/fast_blur.rs:312,1
    - Dst: as_chunks_mut::<CN>
      Src: /src/image/src/imageops/fast_blur.rs:323,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/fast_blur.rs:323,1
    - Dst: as_chunks::<CN>
      Src: /src/image/src/imageops/fast_blur.rs:324,1
    - Dst: iter
      Src: /src/image/src/imageops/fast_blur.rs:324,1
    - Dst: as_chunks::<CN>
      Src: /src/image/src/imageops/fast_blur.rs:325,1
    - Dst: iter
      Src: /src/image/src/imageops/fast_blur.rs:325,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:326,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:326,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:330,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:332,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:335,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:338,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:341,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:341,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:343,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:343,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:346,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:346,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs: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:352,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:352,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: min
      Src: /src/image/src/imageops/fast_blur.rs:368,1
    - Dst: max
      Src: /src/image/src/imageops/fast_blur.rs:369,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:371,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:373,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:376,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:379,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:385,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:385,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:387,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:387,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:390,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:390,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs: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:396,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:396,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
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 508
    argCount: 6
    argNames:
    - src
    - src_stride
    - dst
    - dst_stride
    - width
    - radius
    argTypes:
    - '&[T]'
    - usize
    - '&mut [T]'
    - usize
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 408
      start: 205
    functionDepth: 15
    functionLinenumber: 205
    functionLinenumberEnd: 408
    functionName: box_blur_horizontal_pass_impl
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - max
    - '&[T]::chunks_exact'
    - iter_mut
    - to_f32
    - test_radius_size
    - rounding_saturating_mul
    - unwrap
    - min
    - as_chunks::<CN>
    - iter
    - saturating_sub
    - '&[T]::len'
    - zip
    - as_chunks_mut::<CN>
    - '&mut [T]::chunks_exact_mut'
    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:423,1
    - Dst: '&[T]::iter'
      Src: /src/image/src/imageops/fast_blur.rs:446,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:446,1
    - Dst: '&RgbaImage::iter_mut'
      Src: /src/image/src/imageops/fast_blur.rs:446,1
    - Dst: enumerate
      Src: /src/image/src/imageops/fast_blur.rs:446,1
    - Dst: DynamicImage::to_f32
      Src: /src/image/src/imageops/fast_blur.rs:447,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:447,1
    - Dst: Option::min
      Src: /src/image/src/imageops/fast_blur.rs:449,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:450,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:450,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/fast_blur.rs:455,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:455,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:456,1
    - Dst: max
      Src: /src/image/src/imageops/fast_blur.rs:457,1
    - Dst: iter
      Src: /src/image/src/imageops/fast_blur.rs:462,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:462,1
    - Dst: iter
      Src: /src/image/src/imageops/fast_blur.rs:464,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:462,1
    - Dst: '&RgbaImage::iter_mut'
      Src: /src/image/src/imageops/fast_blur.rs:465,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:462,1
    - Dst: '&mut [T]::iter_mut'
      Src: /src/image/src/imageops/fast_blur.rs:466,1
    - Dst: rounding_saturating_mul
      Src: /src/image/src/imageops/fast_blur.rs:470,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:472,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:472,1
    - Dst: to_f32
      Src: /src/image/src/imageops/fast_blur.rs:473,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:473,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 121
    argCount: 8
    argNames:
    - src
    - src_stride
    - dst
    - dst_stride
    - width
    - height
    - radius
    - n
    argTypes:
    - '&[T]'
    - usize
    - '&mut [T]'
    - usize
    - u32
    - u32
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 478
      start: 411
    functionDepth: 15
    functionLinenumber: 411
    functionLinenumberEnd: 478
    functionName: box_blur_vertical_pass_impl
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - f32::unwrap
    - DynamicImage::to_f32
    - max
    - Option::min
    - '&mut [T]::iter_mut'
    - '&RgbaImage::iter_mut'
    - test_radius_size
    - to_f32
    - rounding_saturating_mul
    - '&[T]::iter'
    - unwrap
    - min
    - enumerate
    - iter
    - zip
    - '&mut [T]::chunks_exact_mut'
    linkageType: ''
    returnType: void
    signature: 'fn box_blur_vertical_pass_impl<T: Primitive>(src: &[T],src_stride:
      usize,dst: &mut [T],dst_stride: usize,width: u32,height: u32,radius: usize,n:
      usize,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemTime::now
      Src: /src/image/src/imageops/fast_blur.rs:511,1
    - Dst: duration_since
      Src: /src/image/src/imageops/fast_blur.rs:511,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:511,1
    - Dst: Rng::new
      Src: /src/image/src/imageops/fast_blur.rs:512,1
    - Dst: as_millis
      Src: /src/image/src/imageops/fast_blur.rs:512,1
    - Dst: Self::next_u8
      Src: /src/image/src/imageops/fast_blur.rs:514,1
    - Dst: Self::next_u8
      Src: /src/image/src/imageops/fast_blur.rs:515,1
    - Dst: Self::next_f32_in_range
      Src: /src/image/src/imageops/fast_blur.rs:516,1
    - Dst: Self::next_u8
      Src: /src/image/src/imageops/fast_blur.rs:517,1
    - Dst: Self::next_u8
      Src: /src/image/src/imageops/fast_blur.rs:518,1
    - Dst: DynamicImage::from
      Src: /src/image/src/imageops/fast_blur.rs:525,1
    - Dst: GrayImage::from_vec
      Src: /src/image/src/imageops/fast_blur.rs:526,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:526,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:526,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:526,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/fast_blur.rs:528,1
    - Dst: ImageBuffer::as_bytes
      Src: /src/image/src/imageops/fast_blur.rs:529,1
    - Dst: DynamicImage::from
      Src: /src/image/src/imageops/fast_blur.rs:535,1
    - Dst: GrayAlphaImage::from_vec
      Src: /src/image/src/imageops/fast_blur.rs:536,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:536,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:536,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:536,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/fast_blur.rs:538,1
    - Dst: ImageBuffer::as_bytes
      Src: /src/image/src/imageops/fast_blur.rs:539,1
    - Dst: DynamicImage::from
      Src: /src/image/src/imageops/fast_blur.rs:545,1
    - Dst: RgbImage::from_vec
      Src: /src/image/src/imageops/fast_blur.rs:546,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:546,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:546,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:546,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/fast_blur.rs:548,1
    - Dst: ImageBuffer::as_bytes
      Src: /src/image/src/imageops/fast_blur.rs:549,1
    - Dst: DynamicImage::from
      Src: /src/image/src/imageops/fast_blur.rs:555,1
    - Dst: RgbaImage::from_vec
      Src: /src/image/src/imageops/fast_blur.rs:556,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:556,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:556,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:556,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/fast_blur.rs:558,1
    - Dst: ImageBuffer::as_bytes
      Src: /src/image/src/imageops/fast_blur.rs:559,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 566
      start: 510
    functionDepth: 15
    functionLinenumber: 510
    functionLinenumberEnd: 566
    functionName: tests::test_box_blur
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - as_millis
    - SystemTime::now
    - ImageBuffer::as_bytes
    - RgbaImage::from_vec
    - GrayImage::from_vec
    - u32::from
    - Self::next_f32_in_range
    - Option::unwrap
    - RgbImage::from_vec
    - GrayAlphaImage::from_vec
    - Self::next_u8
    - unwrap
    - Vec::fast_blur
    - duration_since
    - Rng::new
    - DynamicImage::from
    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
    - LimitError::from_kind
    - ImageError::Limits
    - 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:
    - Err
    - usize::checked_add
    - LimitError::from_kind
    - ImageError::Limits
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn safe_add(&self, rhs: usize) -> Result<usize, ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/image/src/imageops/filter_1d.rs: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: as_chunks_mut::<N>
      Src: /src/image/src/imageops/filter_1d.rs:91,1
    - Dst: iter_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:100,1
    - Dst: as_chunks_mut::<N>
      Src: /src/image/src/imageops/filter_1d.rs:101,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:101,1
    - Dst: rev
      Src: /src/image/src/imageops/filter_1d.rs:101,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: 125
    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:
    - Ok
    - max
    - iter_mut
    - safe_mul
    - min
    - rev
    - as_chunks_mut::<N>
    - iter
    - saturating_sub
    - zip
    - safe_add
    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: as_chunks_mut::<N>
      Src: /src/image/src/imageops/filter_1d.rs:144,1
    - Dst: iter_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: as_chunks_mut::<N>
      Src: /src/image/src/imageops/filter_1d.rs:158,1
    - Dst: iter_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: 99
    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:
    - iter_mut
    - min
    - as_chunks_mut::<N>
    - iter
    - saturating_sub
    - zip
    - chunks_exact_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:231,1
    - Dst: size_of::<T>
      Src: /src/image/src/imageops/filter_1d.rs:240,1
    - Dst: as_chunks_mut::<32>
      Src: /src/image/src/imageops/filter_1d.rs:241,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:241,1
    - Dst: F::default
      Src: /src/image/src/imageops/filter_1d.rs:242,1
    - Dst: F::default
      Src: /src/image/src/imageops/filter_1d.rs:243,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:248,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:248,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:249,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:249,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:251,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:251,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:252,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:252,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/filter_1d.rs:255,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:255,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:255,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:264,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:264,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:264,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:265,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:265,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:265,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:265,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:268,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:268,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:268,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:269,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:269,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:269,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:269,1
    - Dst: Option::split_at_mut
      Src: /src/image/src/imageops/filter_1d.rs:273,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:275,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:275,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:275,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:276,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:279,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:279,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:279,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:280,1
    - Dst: as_chunks_mut::<32>
      Src: /src/image/src/imageops/filter_1d.rs:286,1
    - Dst: as_chunks_mut::<16>
      Src: /src/image/src/imageops/filter_1d.rs:289,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:289,1
    - Dst: F::default
      Src: /src/image/src/imageops/filter_1d.rs:290,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:294,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:294,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:295,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:295,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/filter_1d.rs:298,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:298,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:298,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:303,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:303,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:303,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:304,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:304,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:304,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:304,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:308,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:308,1
    - Dst: Option::iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:308,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:309,1
    - Dst: as_chunks_mut::<16>
      Src: /src/image/src/imageops/filter_1d.rs:315,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/imageops/filter_1d.rs:317,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:317,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:320,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:320,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: f32::iter
      Src: /src/image/src/imageops/filter_1d.rs:325,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:325,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:325,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:329,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:329,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:329,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:329,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: to_
      Src: /src/image/src/imageops/filter_1d.rs:335,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: as_chunks_mut::<4>
      Src: /src/image/src/imageops/filter_1d.rs:342,1
    - Dst: '&mut [T]::iter_mut'
      Src: /src/image/src/imageops/filter_1d.rs:344,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:344,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:347,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:347,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/filter_1d.rs:349,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:349,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:349,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:353,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:353,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:353,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:353,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:356,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 438
    argCount: 5
    argNames:
    - arena_src
    - dst_row
    - image_size
    - kernel
    - n
    argTypes:
    - '&[&[T]]'
    - '&mut [T]'
    - FilterImageSize
    - '&[F]'
    - usize
    constantsTouched: []
    func_position:
      end: 358
      start: 213
    functionDepth: 14
    functionLinenumber: 213
    functionLinenumberEnd: 358
    functionName: filter_symmetric_column
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - '&mut [T]::iter_mut'
    - iter_mut
    - f32::iter
    - size_of::<T>
    - math::multiply_accumulate
    - as_chunks_mut::<4>
    - Option::iter_mut
    - as_chunks_mut::<16>
    - add
    - as_chunks_mut::<32>
    - enumerate
    - as_
    - take
    - f32::len
    - mul
    - to_
    - F::default
    - Option::split_at_mut
    - iter
    - zip
    linkageType: ''
    returnType: void
    signature: 'fn filter_symmetric_column<T, F>(arena_src: &[&[T]],dst_row: &mut
      [T],image_size: FilterImageSize,kernel: &[F],n: usize,) 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:379,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/imageops/filter_1d.rs:384,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:386,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:386,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: as_
      Src: /src/image/src/imageops/filter_1d.rs:395,1
    - Dst: '&[F]::iter'
      Src: /src/image/src/imageops/filter_1d.rs:399,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:399,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:399,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: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:406,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:406,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:406,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: to_
      Src: /src/image/src/imageops/filter_1d.rs:412,1
    - Dst: len
      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: 183
    argCount: 3
    argNames:
    - arena
    - dst_row
    - scanned_kernel
    argTypes:
    - '&[T]'
    - '&mut [T]'
    - '&[F]'
    constantsTouched: []
    func_position:
      end: 432
      start: 365
    functionDepth: 14
    functionLinenumber: 365
    functionLinenumberEnd: 432
    functionName: filter_symmetric_row
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - take
    - '&[F]::len'
    - as_chunks_mut::<4>
    - iter_mut
    - to_
    - len
    - enumerate
    - '&[F]::iter'
    - math::multiply_accumulate
    - as_
    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:
    - max
    - min
    linkageType: ''
    returnType: u32
    signature: 'fn transform(input: f32) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - input
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 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:
    - ImageResult::remove
    - f32::to_vec
    - ImageResult::first
    - Option::unwrap
    - ImageResult::last
    - ImageResult::len
    - unwrap
    - eq
    - as_
    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>
      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:
    - take
    - Option::chunks_exact_mut
    - Ok
    - max
    - Option::min
    - iter
    - iter_mut
    - '&RgbaImage::split_at_mut'
    - safe_mul
    - make_arena_row::<T, N>
    - enumerate
    - filter_symmetric_row::<T, I, N>
    - '&[I]::len'
    - zip
    - filter_symmetric_column::<T, I>
    - safe_add
    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>
      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:
    - '&mut [T]::len'
    - iter_mut
    - LimitError::from_kind
    - filter_2d_separable_ring_queue::<T, I, N>
    - T::transform
    - '&[F]::iter'
    - filter_symmetric_row::<T, I, N>
    - chunks_exact_mut
    - is_empty
    - Vec::len
    - '&mut [T]::chunks_exact_mut'
    - max
    - as_slice
    - "iter()\n        .map(|&x| T::transform(x))\n        .collect::<Vec<I>>"
    - '&[F]::len'
    - safe_mul
    - enumerate
    - ImageError::Limits
    - len
    - prepare_symmetric_kernel
    - make_arena_row::<T, N>
    - Ok
    - filter_symmetric_column::<T, I>
    - make_columns_arenas::<T, N>
    - map
    - '&mut [T]::copy_from_slice'
    - Err
    - zip
    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:
    - drive_unindexed
    - map
    - <P as Pixel>::from_slice
    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:
    - map
    - <P as Pixel>::from_slice
    - drive
    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:
    - map
    - with_producer
    - <P as Pixel>::from_slice
    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:
    - finish
    - Result::debug_struct
    - 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:
    - drive_unindexed
    - map
    - <P as Pixel>::from_slice_mut
    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:
    - map
    - drive
    - <P as Pixel>::from_slice_mut
    linkageType: ''
    returnType: C::Result
    signature: 'fn drive<C: Consumer<Self::Item>>(self, consumer: C) -> C::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer_par.rs:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 14
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: PixelsMutPar::len
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 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:
    - map
    - with_producer
    - <P as Pixel>::from_slice_mut
    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:
    - finish
    - Result::debug_struct
    - 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:
    - enumerate
    - 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: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:
    - enumerate
    - map
    - drive
    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:
    - enumerate
    - map
    - with_producer
    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:
    - finish
    - Result::debug_struct
    - 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:
    - enumerate
    - 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: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:
    - enumerate
    - map
    - drive
    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:
    - enumerate
    - map
    - with_producer
    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:
    - finish
    - Result::debug_struct
    - 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:
    - ImageBuffer::inner_pixels_mut
    - '&mut [P::Subpixel]::par_chunks_exact_mut'
    linkageType: ''
    returnType: PixelsMutPar
    signature: pub fn par_pixels_mut(&mut self) -> PixelsMutPar<'_, P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer_par.rs:367,1
    - Dst: ImageBuffer::par_pixels_mut
      Src: /src/image/src/images/buffer_par.rs:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 372
      start: 366
    functionDepth: 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:
    - ImageBuffer::new
    - EnumeratePixelsMutPar::for_each
    - f
    - std::io::Result::par_enumerate_pixels_mut
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn from_par_fn<F>(width: u32, height: u32, f: F) -> ImageBuffer<P,
      Vec<P::Subpixel>>whereF: Fn(u32, u32) -> P + Send + Sync,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer_par.rs:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - width
    - height
    - len
    argTypes:
    - u32
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 413
      start: 406
    functionDepth: 2
    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:2066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2072
      start: 2065
    functionDepth: 2
    functionLinenumber: 2065
    functionLinenumberEnd: 2072
    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:2076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2075
    functionDepth: 2
    functionLinenumber: 2075
    functionLinenumberEnd: 2082
    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:2086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2085
    functionDepth: 2
    functionLinenumber: 2085
    functionLinenumberEnd: 2092
    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:
    - RgbImage::from_fn
    - Rgb
    - ImageBuffer::clone
    - 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:
    - RgbImage::from_fn
    - test::black_box
    - pixel_func
    - Option::as_raw
    - iter
    - '&Container::len'
    linkageType: ''
    returnType: void
    signature: 'fn creation(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/images/buffer_par.rs:480,1
    - Dst: RgbImage::from_par_fn
      Src: /src/image/src/images/buffer_par.rs:481,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer_par.rs:481,1
    - Dst: pixel_func
      Src: /src/image/src/images/buffer_par.rs:481,1
    - Dst: Option::as_raw
      Src: /src/image/src/images/buffer_par.rs:483,1
    - Dst: '&Container::len'
      Src: /src/image/src/images/buffer_par.rs:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 487
      start: 478
    functionDepth: 17
    functionLinenumber: 478
    functionLinenumberEnd: 487
    functionName: benchmarks::creation_par
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - test::black_box
    - pixel_func
    - RgbImage::from_par_fn
    - Option::as_raw
    - iter
    - '&Container::len'
    linkageType: ''
    returnType: void
    signature: 'fn creation_par(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgb
      Src: /src/image/src/images/buffer_par.rs:492,1
    - Dst: std::array::from_fn
      Src: /src/image/src/images/buffer_par.rs:492,1
    - Dst: RandomState::new
      Src: /src/image/src/images/buffer_par.rs:493,1
    - Dst: Self::build_hasher
      Src: /src/image/src/images/buffer_par.rs:493,1
    - Dst: finish
      Src: /src/image/src/images/buffer_par.rs:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 495
    functionName: benchmarks::pixel_func
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - RandomState::new
    - std::array::from_fn
    - Rgb
    - finish
    - Self::build_hasher
    linkageType: ''
    returnType: Rgb
    signature: fn pixel_func() -> Rgb<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericImageView::dimensions
      Src: /src/image/src/images/generic_image.rs:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 12
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: GenericImageView::width
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - GenericImageView::dimensions
    linkageType: ''
    returnType: u32
    signature: fn width(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericImageView::dimensions
      Src: /src/image/src/images/generic_image.rs:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 12
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: GenericImageView::height
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - GenericImageView::dimensions
    linkageType: ''
    returnType: u32
    signature: fn height(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericImageView::dimensions
      Src: /src/image/src/images/generic_image.rs:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 12
    functionLinenumber: 35
    functionLinenumberEnd: 38
    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:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    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:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 12
    functionLinenumber: 62
    functionLinenumberEnd: 75
    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: ImageBuffer::assert_in_bounds_of
      Src: /src/image/src/images/generic_image.rs:88,1
    - Dst: SubImage::new
      Src: /src/image/src/images/generic_image.rs:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - rect
    argTypes:
    - Rect
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 13
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: GenericImageView::view
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 2
    functionsReached:
    - ImageBuffer::assert_in_bounds_of
    - SubImage::new
    linkageType: ''
    returnType: SubImage
    signature: 'fn view(&self, rect: Rect) -> SubImage<&Self>whereSelf: Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::test_in_bounds_of
      Src: /src/image/src/images/generic_image.rs:98,1
    - Dst: Ok
      Src: /src/image/src/images/generic_image.rs:99,1
    - Dst: SubImage::new
      Src: /src/image/src/images/generic_image.rs:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - rect
    argTypes:
    - Rect
    constantsTouched: []
    func_position:
      end: 100
      start: 94
    functionDepth: 13
    functionLinenumber: 94
    functionLinenumberEnd: 100
    functionName: GenericImageView::try_view
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - SubImage::new
    - Ok
    - ImageBuffer::test_in_bounds_of
    linkageType: ''
    returnType: Result
    signature: 'fn try_view(&self, rect: Rect) -> Result<SubImage<&Self>, ImageError>whereSelf:
      Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericImageView::dimensions
      Src: /src/image/src/images/generic_image.rs:111,1
    - Dst: GenericImageView::buffer_with_dimensions
      Src: /src/image/src/images/generic_image.rs:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 12
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: GenericImageView::buffer_like
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - GenericImageView::dimensions
    - GenericImageView::buffer_with_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:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 127
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: GenericImageView::to_pixel_view
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: fn to_pixel_view(&self) -> Option<ViewOfPixel<'_, Self::Pixel>>
  - 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:
    - next
    - <P as Pixel>::from_slice
    - 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:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - Self::Pixel
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 201
    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: '&O::to_pixel_view'
      Src: /src/image/src/images/generic_image.rs:222,1
    - Dst: GenericImage::copy_from_samples
      Src: /src/image/src/images/generic_image.rs:223,1
    - Dst: Rect::from_image_at
      Src: /src/image/src/images/generic_image.rs:228,1
    - Dst: Self::test_in_bounds_of
      Src: /src/image/src/images/generic_image.rs:228,1
    - Dst: '&O::height'
      Src: /src/image/src/images/generic_image.rs:230,1
    - Dst: '&O::width'
      Src: /src/image/src/images/generic_image.rs:231,1
    - Dst: '&O::get_pixel'
      Src: /src/image/src/images/generic_image.rs:232,1
    - Dst: GenericImage::put_pixel
      Src: /src/image/src/images/generic_image.rs:233,1
    - Dst: Ok
      Src: /src/image/src/images/generic_image.rs:237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 3
    argNames:
    - other
    - x
    - y
    argTypes:
    - '&O'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 238
      start: 218
    functionDepth: 14
    functionLinenumber: 218
    functionLinenumberEnd: 238
    functionName: GenericImage::copy_from
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - GenericImage::put_pixel
    - Ok
    - '&O::get_pixel'
    - GenericImage::copy_from_samples
    - Self::test_in_bounds_of
    - Rect::from_image_at
    - '&O::to_pixel_view'
    - '&O::width'
    - '&O::height'
    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: Rect::from_image_at
      Src: /src/image/src/images/generic_image.rs:249,1
    - Dst: Self::test_in_bounds_of
      Src: /src/image/src/images/generic_image.rs:249,1
    - Dst: ImageResult::height
      Src: /src/image/src/images/generic_image.rs:251,1
    - Dst: ImageResult::width
      Src: /src/image/src/images/generic_image.rs:252,1
    - Dst: ImageResult::get_pixel
      Src: /src/image/src/images/generic_image.rs:253,1
    - Dst: GenericImage::put_pixel
      Src: /src/image/src/images/generic_image.rs:254,1
    - Dst: Ok
      Src: /src/image/src/images/generic_image.rs:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - samples
    - x
    - y
    argTypes:
    - ViewOfPixel<'_, Self::Pixel>
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 259
      start: 241
    functionDepth: 13
    functionLinenumber: 241
    functionLinenumberEnd: 259
    functionName: GenericImage::copy_from_samples
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 1
    functionsReached:
    - GenericImage::put_pixel
    - ImageResult::width
    - ImageResult::height
    - Self::test_in_bounds_of
    - ImageResult::get_pixel
    - Rect::from_image_at
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn copy_from_samples(&mut self,samples: ViewOfPixel<''_, Self::Pixel>,x:
      u32,y: u32,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericImage::width
      Src: /src/image/src/images/generic_image.rs:279,1
    - Dst: u32::max
      Src: /src/image/src/images/generic_image.rs:279,1
    - Dst: GenericImage::height
      Src: /src/image/src/images/generic_image.rs:279,1
    - Dst: ImageResult::max
      Src: /src/image/src/images/generic_image.rs:279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - source
    - x
    - y
    argTypes:
    - Rect
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 306
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 306
    functionName: GenericImage::copy_within
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - u32::max
    - GenericImage::width
    - ImageResult::max
    - GenericImage::height
    linkageType: ''
    returnType: bool
    signature: 'fn copy_within(&mut self, source: Rect, x: u32, y: u32) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::assert_in_bounds_of
      Src: /src/image/src/images/generic_image.rs:315,1
    - Dst: SubImage::new
      Src: /src/image/src/images/generic_image.rs:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - rect
    argTypes:
    - Rect
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 13
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: GenericImage::sub_image
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::assert_in_bounds_of
    - SubImage::new
    linkageType: ''
    returnType: SubImage
    signature: 'fn sub_image(&mut self, rect: Rect) -> SubImage<&mut Self>whereSelf:
      Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/generic_image.rs:330,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:331,1
    - Dst: put_pixel
      Src: /src/image/src/images/generic_image.rs:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 334
    functionName: tests::test_image_put_pixel
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::new
    - Rgba
    - put_pixel
    linkageType: ''
    returnType: void
    signature: fn test_image_put_pixel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/generic_image.rs:338,1
    - Dst: put_pixel
      Src: /src/image/src/images/generic_image.rs:339,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 349
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 349
    functionName: tests::test_in_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::new
    - Rgba
    - put_pixel
    linkageType: ''
    returnType: void
    signature: fn test_in_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/generic_image.rs:353,1
    - Dst: Option::put_pixel
      Src: /src/image/src/images/generic_image.rs:354,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:354,1
    - Dst: Option::clone
      Src: /src/image/src/images/generic_image.rs:357,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:360,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:360,1
    - Dst: SubImage::to_image
      Src: /src/image/src/images/generic_image.rs:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 352
    functionDepth: 14
    functionLinenumber: 352
    functionLinenumberEnd: 363
    functionName: tests::test_can_subimage_clone_nonmut
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Option::view
    - Rgba
    - Option::clone
    - Option::put_pixel
    - SubImage::to_image
    - ImageBuffer::new
    - Rect::from_xy_ranges
    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:367,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:367,1
    - Dst: Option::sub_image
      Src: /src/image/src/images/generic_image.rs:370,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:370,1
    - Dst: SubImage::sub_image
      Src: /src/image/src/images/generic_image.rs:371,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:371,1
    - Dst: SubImage::put_pixel
      Src: /src/image/src/images/generic_image.rs:372,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:372,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:377,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:377,1
    - Dst: SubImage::view
      Src: /src/image/src/images/generic_image.rs:380,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 382
      start: 366
    functionDepth: 14
    functionLinenumber: 366
    functionLinenumberEnd: 382
    functionName: tests::test_can_nest_views
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Option::view
    - ImageBuffer::from_pixel
    - Rgba
    - SubImage::view
    - SubImage::put_pixel
    - Option::sub_image
    - SubImage::sub_image
    - Rect::from_xy_ranges
    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:387,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:387,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:388,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 14
    functionLinenumber: 386
    functionLinenumberEnd: 389
    functionName: tests::test_view_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Option::view
    - ImageBuffer::from_pixel
    - Rgba
    - Rect::from_xy_ranges
    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:394,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:394,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:395,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 14
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: tests::test_view_coordinates_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Option::view
    - ImageBuffer::from_pixel
    - Rgba
    - Rect::from_xy_ranges
    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:401,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:401,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:402,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 14
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: tests::test_view_width_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Option::view
    - ImageBuffer::from_pixel
    - Rgba
    - Rect::from_xy_ranges
    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:408,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:408,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:409,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 407
    functionDepth: 14
    functionLinenumber: 407
    functionLinenumberEnd: 410
    functionName: tests::test_view_height_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Option::view
    - ImageBuffer::from_pixel
    - Rgba
    - Rect::from_xy_ranges
    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:415,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:415,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:416,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 14
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: tests::test_view_x_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Option::view
    - ImageBuffer::from_pixel
    - Rgba
    - Rect::from_xy_ranges
    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:422,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:422,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:423,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 14
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: tests::test_view_y_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Option::view
    - ImageBuffer::from_pixel
    - Rgba
    - Rect::from_xy_ranges
    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: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
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:429,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:430,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:430,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:431,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 427
    functionDepth: 14
    functionLinenumber: 427
    functionLinenumberEnd: 432
    functionName: tests::test_view_in_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Option::view
    - ImageBuffer::from_pixel
    - Rgba
    - Rect::from_xy_ranges
    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:436,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:436,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:437,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:437,1
    - Dst: SubImage::to_image
      Src: /src/image/src/images/generic_image.rs:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 440
      start: 435
    functionDepth: 14
    functionLinenumber: 435
    functionLinenumberEnd: 440
    functionName: tests::test_copy_sub_image
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Option::view
    - ImageBuffer::from_pixel
    - Rgba
    - SubImage::to_image
    - Rect::from_xy_ranges
    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:444,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 466
    functionName: tests::test_generic_image_copy_within_oob
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_generic_image_copy_within_oob()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/generic_image.rs:472,1
    - Dst: Vec::from
      Src: /src/image/src/images/generic_image.rs:472,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 477
      start: 469
    functionDepth: 3
    functionLinenumber: 469
    functionLinenumberEnd: 477
    functionName: tests::test_generic_image_copy_within_tl
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Vec::from
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_generic_image_copy_within_tl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/generic_image.rs:483,1
    - Dst: Vec::from
      Src: /src/image/src/images/generic_image.rs:483,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 488
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 488
    functionName: tests::test_generic_image_copy_within_tr
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Vec::from
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_generic_image_copy_within_tr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/generic_image.rs:494,1
    - Dst: Vec::from
      Src: /src/image/src/images/generic_image.rs:494,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 499
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 499
    functionName: tests::test_generic_image_copy_within_bl
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Vec::from
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_generic_image_copy_within_bl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/generic_image.rs:505,1
    - Dst: Vec::from
      Src: /src/image/src/images/generic_image.rs:505,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 510
      start: 502
    functionDepth: 3
    functionLinenumber: 502
    functionLinenumberEnd: 510
    functionName: tests::test_generic_image_copy_within_br
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Vec::from
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_generic_image_copy_within_br()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 134
    functionName: dynamic_map
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 16
    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: 1
    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: 16
    functionsReached:
    - Self::new_luma16
    - Self::new_luma_a16
    - Self::new_rgba32f
    - Self::new_luma_a8
    - Self::new_rgba8
    - Self::new_rgb8
    - Self::new_rgb32f
    - Self::new_rgb16
    - Self::new_luma8
    - Self::new_rgba16
    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:
    - ImageBuffer::new
    - DynamicImage::ImageLumaA8
    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: 1
    functionsReached:
    - ImageBuffer::new
    - DynamicImage::ImageRgb8
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_rgb8(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageRgba8
      Src: /src/image/src/images/dynimage.rs: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:
    - ImageBuffer::new
    - DynamicImage::ImageRgba8
    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:
    - ImageBuffer::new
    - DynamicImage::ImageLuma16
    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:
    - ImageBuffer::new
    - DynamicImage::ImageLumaA16
    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:
    - ImageBuffer::new
    - DynamicImage::ImageRgba16
    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:
    - ImageBuffer::new
    - DynamicImage::ImageRgb32F
    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:
    - ImageBuffer::new
    - DynamicImage::ImageRgba32F
    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: 6
    functionsReached:
    - decoder_to_image
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn from_decoder(decoder: impl ImageDecoder) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 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:
    - clone
    - dynamic_map
    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:
    - clone
    - dynamic_map
    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:
    - clone
    - dynamic_map
    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:
    - clone
    - dynamic_map
    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:
    - clone
    - dynamic_map
    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:
    - clone
    - dynamic_map
    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:
    - clone
    - dynamic_map
    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:
    - clone
    - dynamic_map
    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:
    - clone
    - dynamic_map
    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:
    - clone
    - dynamic_map
    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: 5
    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: 4
    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: 1
    argNames:
    - selection
    argTypes:
    - Rect
    constantsTouched: []
    func_position:
      end: 501
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 501
    functionName: DynamicImage::crop
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn crop(&self, selection: Rect) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - selection
    argTypes:
    - Rect
    constantsTouched: []
    func_position:
      end: 510
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 510
    functionName: DynamicImage::crop_in_place
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn crop_in_place(&mut self, selection: Rect)'
  - 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:
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 733
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 733
    functionName: DynamicImage::shrink_to_fit
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    linkageType: ''
    returnType: void
    signature: pub fn shrink_to_fit(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 754
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 754
    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: 771
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 771
    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: 777
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 777
    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: 783
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 783
    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:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - color
    argTypes:
    - CicpColorPrimaries
    constantsTouched: []
    func_position:
      end: 797
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 797
    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:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tf
    argTypes:
    - CicpTransferCharacteristics
    constantsTouched: []
    func_position:
      end: 807
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 807
    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: 812
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 812
    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: 820
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 820
    functionName: DynamicImage::set_color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    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:832,1
    - Dst: color::ColorType::has_alpha
      Src: /src/image/src/images/dynimage.rs:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 833
      start: 831
    functionDepth: 1
    functionLinenumber: 831
    functionLinenumberEnd: 833
    functionName: DynamicImage::has_alpha
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - color::ColorType::has_alpha
    - DynamicImage::color
    linkageType: ''
    returnType: bool
    signature: pub fn has_alpha(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageLuma8
      Src: /src/image/src/images/dynimage.rs:841,1
    - Dst: Result::clone
      Src: /src/image/src/images/dynimage.rs:841,1
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/src/images/dynimage.rs:843,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/src/images/dynimage.rs:843,1
    - Dst: DynamicImage::ImageLuma8
      Src: /src/image/src/images/dynimage.rs:845,1
    - Dst: imageops::grayscale
      Src: /src/image/src/images/dynimage.rs:845,1
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/src/images/dynimage.rs:847,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/src/images/dynimage.rs:847,1
    - Dst: DynamicImage::ImageLuma16
      Src: /src/image/src/images/dynimage.rs:849,1
    - Dst: Result::clone
      Src: /src/image/src/images/dynimage.rs:849,1
    - Dst: DynamicImage::ImageLumaA16
      Src: /src/image/src/images/dynimage.rs:851,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/src/images/dynimage.rs:851,1
    - Dst: DynamicImage::ImageLuma16
      Src: /src/image/src/images/dynimage.rs:853,1
    - Dst: imageops::grayscale
      Src: /src/image/src/images/dynimage.rs:853,1
    - Dst: DynamicImage::ImageLumaA16
      Src: /src/image/src/images/dynimage.rs:855,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/src/images/dynimage.rs:855,1
    - Dst: DynamicImage::ImageRgb32F
      Src: /src/image/src/images/dynimage.rs:858,1
    - Dst: imageops::grayscale_with_type
      Src: /src/image/src/images/dynimage.rs:858,1
    - Dst: DynamicImage::ImageRgba32F
      Src: /src/image/src/images/dynimage.rs:861,1
    - Dst: imageops::grayscale_with_type_alpha
      Src: /src/image/src/images/dynimage.rs:861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 864
      start: 839
    functionDepth: 14
    functionLinenumber: 839
    functionLinenumberEnd: 864
    functionName: DynamicImage::grayscale
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Result::clone
    - imageops::grayscale_with_type
    - DynamicImage::ImageRgb32F
    - DynamicImage::ImageRgba32F
    - imageops::grayscale_with_type_alpha
    - DynamicImage::ImageLumaA8
    - DynamicImage::ImageLuma8
    - imageops::grayscale_alpha
    - DynamicImage::ImageLuma16
    - DynamicImage::ImageLumaA16
    - imageops::grayscale
    linkageType: ''
    returnType: DynamicImage
    signature: pub fn grayscale(&self) -> DynamicImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 873
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 873
    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:883,1
    - Dst: math::resize_dimensions
      Src: /src/image/src/images/dynimage.rs:887,1
    - Dst: DynamicImage::width
      Src: /src/image/src/images/dynimage.rs:887,1
    - Dst: DynamicImage::height
      Src: /src/image/src/images/dynimage.rs:887,1
    - Dst: DynamicImage::resize_exact
      Src: /src/image/src/images/dynimage.rs:889,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - nwidth
    - nheight
    - filter
    argTypes:
    - u32
    - u32
    - imageops::FilterType
    constantsTouched: []
    func_position:
      end: 890
      start: 882
    functionDepth: 15
    functionLinenumber: 882
    functionLinenumberEnd: 890
    functionName: DynamicImage::resize
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::height
    - math::resize_dimensions
    - DynamicImage::resize_exact
    - DynamicImage::width
    - DynamicImage::dimensions
    linkageType: ''
    returnType: void
    signature: 'pub fn resize(&mut self, nwidth: u32, nheight: u32, filter: imageops::FilterType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: imageops::resize::resize_impl
      Src: /src/image/src/images/dynimage.rs:899,1
    - Dst: Result::unwrap
      Src: /src/image/src/images/dynimage.rs:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nwidth
    - nheight
    - filter
    argTypes:
    - u32
    - u32
    - imageops::FilterType
    constantsTouched: []
    func_position:
      end: 900
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 900
    functionName: DynamicImage::resize_exact
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 2
    functionsReached:
    - Result::unwrap
    - imageops::resize::resize_impl
    linkageType: ''
    returnType: void
    signature: 'pub fn resize_exact(&mut self, nwidth: u32, nheight: u32, filter:
      imageops::FilterType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: math::resize_dimensions
      Src: /src/image/src/images/dynimage.rs:916,1
    - Dst: DynamicImage::width
      Src: /src/image/src/images/dynimage.rs:916,1
    - Dst: DynamicImage::height
      Src: /src/image/src/images/dynimage.rs:916,1
    - Dst: DynamicImage::thumbnail_exact
      Src: /src/image/src/images/dynimage.rs:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - nwidth
    - nheight
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 918
      start: 914
    functionDepth: 15
    functionLinenumber: 914
    functionLinenumberEnd: 918
    functionName: DynamicImage::thumbnail
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::width
    - DynamicImage::height
    - math::resize_dimensions
    - DynamicImage::thumbnail_exact
    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: 932
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 932
    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:945,1
    - Dst: DynamicImage::width
      Src: /src/image/src/images/dynimage.rs:945,1
    - Dst: DynamicImage::height
      Src: /src/image/src/images/dynimage.rs:945,1
    - Dst: DynamicImage::resize_exact
      Src: /src/image/src/images/dynimage.rs:946,1
    - Dst: DynamicImage::dimensions
      Src: /src/image/src/images/dynimage.rs:948,1
    - Dst: u64::from
      Src: /src/image/src/images/dynimage.rs:949,1
    - Dst: u64::from
      Src: /src/image/src/images/dynimage.rs:949,1
    - Dst: u64::from
      Src: /src/image/src/images/dynimage.rs:950,1
    - Dst: u64::from
      Src: /src/image/src/images/dynimage.rs:950,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/dynimage.rs:954,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/dynimage.rs:957,1
    - Dst: DynamicImage::crop
      Src: /src/image/src/images/dynimage.rs:960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 3
    argNames:
    - nwidth
    - nheight
    - filter
    argTypes:
    - u32
    - u32
    - imageops::FilterType
    constantsTouched: []
    func_position:
      end: 961
      start: 943
    functionDepth: 15
    functionLinenumber: 943
    functionLinenumberEnd: 961
    functionName: DynamicImage::resize_to_fill
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::height
    - math::resize_dimensions
    - u64::from
    - Rect::from_xy_ranges
    - DynamicImage::resize_exact
    - DynamicImage::crop
    - DynamicImage::width
    - DynamicImage::dimensions
    linkageType: ''
    returnType: void
    signature: 'pub fn resize_to_fill(&mut self, nwidth: u32, nheight: u32, filter:
      imageops::FilterType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: imageops::gaussian_blur_dyn_image
      Src: /src/image/src/images/dynimage.rs:982,1
    - Dst: GaussianBlurParameters::new_from_radius
      Src: /src/image/src/images/dynimage.rs:982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - radius
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 983
      start: 981
    functionDepth: 20
    functionLinenumber: 981
    functionLinenumberEnd: 983
    functionName: DynamicImage::blur
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - GaussianBlurParameters::new_from_radius
    - imageops::gaussian_blur_dyn_image
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn blur(&self, radius: f32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: imageops::gaussian_blur_dyn_image
      Src: /src/image/src/images/dynimage.rs:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - parameters
    argTypes:
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1000
      start: 998
    functionDepth: 20
    functionLinenumber: 998
    functionLinenumberEnd: 1000
    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: 1016
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1016
    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: 1034
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1034
    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: 0
    argCount: 1
    argNames:
    - kernel
    argTypes:
    - '&[f32; 9]'
    constantsTouched: []
    func_position:
      end: 1048
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1048
    functionName: DynamicImage::filter3x3
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn filter3x3(&self, kernel: &[f32; 9]) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - c
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1059
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1059
    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: 1070
      start: 1068
    functionDepth: 0
    functionLinenumber: 1068
    functionLinenumberEnd: 1070
    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: 1094
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1094
    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: 1102
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1102
    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: 1107
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1107
    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: 1115
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1115
    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: 1120
      start: 1118
    functionDepth: 0
    functionLinenumber: 1118
    functionLinenumberEnd: 1120
    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: 1126
      start: 1124
    functionDepth: 0
    functionLinenumber: 1124
    functionLinenumberEnd: 1126
    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: 1134
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1134
    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: 1139
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1139
    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: 1145
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1145
    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:1173,1
    - Dst: Vec::rotate180_in_place
      Src: /src/image/src/images/dynimage.rs:1174,1
    - Dst: Vec::rotate270
      Src: /src/image/src/images/dynimage.rs:1175,1
    - Dst: Vec::fliph_in_place
      Src: /src/image/src/images/dynimage.rs:1176,1
    - Dst: Vec::flipv_in_place
      Src: /src/image/src/images/dynimage.rs:1177,1
    - Dst: Vec::rotate90
      Src: /src/image/src/images/dynimage.rs:1179,1
    - Dst: ImageBuffer::fliph_in_place
      Src: /src/image/src/images/dynimage.rs:1180,1
    - Dst: Vec::rotate270
      Src: /src/image/src/images/dynimage.rs:1184,1
    - Dst: ImageBuffer::fliph_in_place
      Src: /src/image/src/images/dynimage.rs:1185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - orientation
    argTypes:
    - Orientation
    constantsTouched: []
    func_position:
      end: 1189
      start: 1169
    functionDepth: 13
    functionLinenumber: 1169
    functionLinenumberEnd: 1189
    functionName: DynamicImage::apply_orientation
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Vec::fliph_in_place
    - Vec::rotate90
    - Vec::rotate270
    - ImageBuffer::fliph_in_place
    - Vec::flipv_in_place
    - 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:1217,1
    - Dst: '&DynamicImage::color_space'
      Src: /src/image/src/images/dynimage.rs:1217,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:1219,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1225,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1234,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1237,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1240,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1243,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1247,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1250,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1253,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1256,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1260,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1263,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1266,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1269,1
    - Dst: ConvertColorOptions::as_transform
      Src: /src/image/src/images/dynimage.rs:1279,1
    - Dst: '&DynamicImage::color_space'
      Src: /src/image/src/images/dynimage.rs:1279,1
    - Dst: DynamicImage::color_space
      Src: /src/image/src/images/dynimage.rs:1279,1
    - Dst: transform_dynamic
      Src: /src/image/src/images/dynimage.rs:1280,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 77
    argCount: 2
    argNames:
    - other
    - options
    argTypes:
    - '&DynamicImage'
    - ConvertColorOptions
    constantsTouched: []
    func_position:
      end: 1283
      start: 1211
    functionDepth: 16
    functionLinenumber: 1211
    functionLinenumberEnd: 1283
    functionName: DynamicImage::copy_from_color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - ConvertColorOptions::as_transform
    - Option::copy_from_color_space
    - '&DynamicImage::color_space'
    - DynamicImage::color_space
    - transform_dynamic
    - Ok
    - dynamic_map
    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:1305,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1306,1
    - Dst: DynamicImage::clone
      Src: /src/image/src/images/dynimage.rs:1313,1
    - Dst: set_color_space
      Src: /src/image/src/images/dynimage.rs:1314,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1315,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - cicp
    - options
    argTypes:
    - Cicp
    - ConvertColorOptions
    constantsTouched: []
    func_position:
      end: 1319
      start: 1299
    functionDepth: 17
    functionLinenumber: 1299
    functionLinenumberEnd: 1319
    functionName: DynamicImage::apply_color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - set_color_space
    - DynamicImage::clone
    - DynamicImage::color_space
    - copy_from_color_space
    - Ok
    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:1340,1
    - Dst: DynamicImage::apply_color_space
      Src: /src/image/src/images/dynimage.rs:1341,1
    - Dst: Cicp::try_into_rgb
      Src: /src/image/src/images/dynimage.rs:1345,1
    - Dst: DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1346,1
    - Dst: DynamicImage::width
      Src: /src/image/src/images/dynimage.rs:1346,1
    - Dst: DynamicImage::height
      Src: /src/image/src/images/dynimage.rs:1346,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:1347,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1348,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 3
    argNames:
    - cicp
    - options
    - color
    argTypes:
    - Cicp
    - ConvertColorOptions
    - color::ColorType
    constantsTouched: []
    func_position:
      end: 1352
      start: 1334
    functionDepth: 18
    functionLinenumber: 1334
    functionLinenumberEnd: 1352
    functionName: DynamicImage::convert_color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::new
    - DynamicImage::height
    - DynamicImage::color
    - copy_from_color_space
    - DynamicImage::width
    - DynamicImage::apply_color_space
    - Ok
    - dynamic_map
    - Cicp::try_into_rgb
    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:1358,1
    - Dst: Option::as_ref
      Src: /src/image/src/images/dynimage.rs:1359,1
    - Dst: FlatSamples::unwrap_or
      Src: /src/image/src/images/dynimage.rs:1359,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/images/dynimage.rs:1361,1
    - Dst: Option::as_bytes
      Src: /src/image/src/images/dynimage.rs:1362,1
    - Dst: Option::width
      Src: /src/image/src/images/dynimage.rs:1363,1
    - Dst: Option::height
      Src: /src/image/src/images/dynimage.rs:1364,1
    - Dst: Option::color
      Src: /src/image/src/images/dynimage.rs:1365,1
    - Dst: bool::into
      Src: /src/image/src/images/dynimage.rs:1365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Box<dyn ImageEncoderBoxed + 'a>
    constantsTouched: []
    func_position:
      end: 1367
      start: 1354
    functionDepth: 12
    functionLinenumber: 1354
    functionLinenumberEnd: 1367
    functionName: DynamicImage::write_with_encoder_impl
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 3
    functionsReached:
    - FlatSamples::unwrap_or
    - ImageResult::write_image
    - Option::height
    - bool::into
    - Option::color
    - Option::as_ref
    - ImageResult::make_compatible_img
    - Option::as_bytes
    - Option::width
    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:1380,1
    - Dst: DynamicImage::write_with_encoder_impl
      Src: /src/image/src/images/dynimage.rs:1381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - w
    - format
    argTypes:
    - W
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1382
      start: 1379
    functionDepth: 13
    functionLinenumber: 1379
    functionLinenumberEnd: 1382
    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:1392,1
    - Dst: Box::new
      Src: /src/image/src/images/dynimage.rs:1392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - impl ImageEncoder
    constantsTouched: []
    func_position:
      end: 1393
      start: 1391
    functionDepth: 13
    functionLinenumber: 1391
    functionLinenumberEnd: 1393
    functionName: DynamicImage::write_with_encoder
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - DynamicImage::write_with_encoder_impl
    - Box::new
    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:1406,1
    - Dst: ImageResult::as_ref
      Src: /src/image/src/images/dynimage.rs:1406,1
    - Dst: DynamicImage::save_with_format
      Src: /src/image/src/images/dynimage.rs:1407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - Q
    constantsTouched: []
    func_position:
      end: 1408
      start: 1402
    functionDepth: 16
    functionLinenumber: 1402
    functionLinenumberEnd: 1408
    functionName: DynamicImage::save
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::save_with_format
    - ImageResult::as_ref
    - ImageFormat::from_path
    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:1421,1
    - Dst: File::create
      Src: /src/image/src/images/dynimage.rs:1421,1
    - Dst: io::free_functions::encoder_for_format
      Src: /src/image/src/images/dynimage.rs:1422,1
    - Dst: DynamicImage::write_with_encoder_impl
      Src: /src/image/src/images/dynimage.rs:1423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - path
    - format
    argTypes:
    - Q
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1424
      start: 1417
    functionDepth: 13
    functionLinenumber: 1417
    functionLinenumberEnd: 1424
    functionName: DynamicImage::save_with_format
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - DynamicImage::write_with_encoder_impl
    - File::create
    - io::free_functions::encoder_for_format
    - BufWriter::new
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn save_with_format<Q>(&self, path: Q, format: ImageFormat) ->
      ImageResult<()>whereQ: AsRef<Path>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageRgba32F
      Src: /src/image/src/images/dynimage.rs:1495,1
    - Dst: Vec::convert
      Src: /src/image/src/images/dynimage.rs:1495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - image
    argTypes:
    - ImageBuffer<LumaA<f32>, Vec<f32>>
    constantsTouched: []
    func_position:
      end: 1496
      start: 1494
    functionDepth: 6
    functionLinenumber: 1494
    functionLinenumberEnd: 1496
    functionName: DynamicImage::from
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - Vec::convert
    - DynamicImage::ImageRgba32F
    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: 1504
      start: 1502
    functionDepth: 0
    functionLinenumber: 1502
    functionLinenumberEnd: 1504
    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: 1508
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1508
    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:1514,1
    - Dst: u8::to_luma
      Src: /src/image/src/images/dynimage.rs:1514,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1515,1
    - Dst: u8::to_luma_alpha
      Src: /src/image/src/images/dynimage.rs:1515,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: Result::put_pixel
      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_luma
      Src: /src/image/src/images/dynimage.rs:1518,1
    - Dst: T::into_color
      Src: /src/image/src/images/dynimage.rs:1518,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1520,1
    - Dst: u8::to_luma_alpha
      Src: /src/image/src/images/dynimage.rs:1520,1
    - Dst: into_color
      Src: /src/image/src/images/dynimage.rs:1520,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1522,1
    - Dst: u8::to_rgb
      Src: /src/image/src/images/dynimage.rs:1522,1
    - Dst: '[u8; 3]::into_color'
      Src: /src/image/src/images/dynimage.rs:1522,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1523,1
    - Dst: u8::into_color
      Src: /src/image/src/images/dynimage.rs:1523,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1524,1
    - Dst: u8::to_rgb
      Src: /src/image/src/images/dynimage.rs:1524,1
    - Dst: '[u8; 3]::into_color'
      Src: /src/image/src/images/dynimage.rs:1524,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1525,1
    - Dst: u8::into_color
      Src: /src/image/src/images/dynimage.rs:1525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - color::Rgba<u8>
    constantsTouched: []
    func_position:
      end: 1527
      start: 1512
    functionDepth: 20
    functionLinenumber: 1512
    functionLinenumberEnd: 1527
    functionName: DynamicImage::put_pixel
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - into_color
    - T::into_color
    - '[u8; 3]::into_color'
    - u8::to_luma_alpha
    - Result::put_pixel
    - u8::into_color
    - u8::to_rgb
    - u8::to_luma
    linkageType: ''
    returnType: void
    signature: 'fn put_pixel(&mut self, x: u32, y: u32, pixel: color::Rgba<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::ImageRgba8
      Src: /src/image/src/images/dynimage.rs:1532,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1531
    functionDepth: 1
    functionLinenumber: 1531
    functionLinenumberEnd: 1533
    functionName: DynamicImage::default
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Self::ImageRgba8
    - Default::default
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::dimensions
      Src: /src/image/src/images/dynimage.rs:1538,1
    - Dst: ImageResult::color_type
      Src: /src/image/src/images/dynimage.rs:1539,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1543,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1544,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1544,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1548,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1549,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1549,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1553,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1554,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1554,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1558,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1559,1
    - Dst: Option::map
      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: ok_or_else
      Src: /src/image/src/images/dynimage.rs:1541,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/images/dynimage.rs:1593,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/images/dynimage.rs:1593,1
    - Dst: Vec::set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1601,1
    - Dst: Vec::set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1602,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1604,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 70
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - I
    constantsTouched: []
    func_position:
      end: 1605
      start: 1537
    functionDepth: 12
    functionLinenumber: 1537
    functionLinenumberEnd: 1605
    functionName: decoder_to_image
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - ImageResult::color_type
    - free_functions::decoder_to_vec
    - ImageBuffer::from_raw
    - ImageResult::dimensions
    - Option::map
    - Vec::set_transfer_function
    - ImageError::Parameter
    - ParameterError::from_kind
    - Ok
    - ok_or_else
    - Vec::set_rgb_primaries
    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:1616,1
    - Dst: decode
      Src: /src/image/src/images/dynimage.rs:1616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 1617
      start: 1612
    functionDepth: 17
    functionLinenumber: 1612
    functionLinenumberEnd: 1617
    functionName: open
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 36
    functionsReached:
    - decode
    - ImageReader::open
    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:1628,1
    - Dst: into_dimensions
      Src: /src/image/src/images/dynimage.rs:1628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 1629
      start: 1624
    functionDepth: 17
    functionLinenumber: 1624
    functionLinenumberEnd: 1629
    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:1646,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/images/dynimage.rs:1647,1
    - Dst: bool::into
      Src: /src/image/src/images/dynimage.rs:1647,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: 1648
      start: 1638
    functionDepth: 12
    functionLinenumber: 1638
    functionLinenumberEnd: 1648
    functionName: write_buffer_with_format
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - ImageResult::write_image
    - bool::into
    - io::free_functions::encoder_for_format
    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: ImageReader::new
      Src: /src/image/src/images/dynimage.rs:1657,1
    - Dst: io::Cursor::new
      Src: /src/image/src/images/dynimage.rs:1657,1
    - Dst: Self::with_guessed_format
      Src: /src/image/src/images/dynimage.rs:1657,1
    - Dst: decode
      Src: /src/image/src/images/dynimage.rs:1657,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1660
      start: 1656
    functionDepth: 17
    functionLinenumber: 1656
    functionLinenumberEnd: 1660
    functionName: load_from_memory
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 4
    functionsReached:
    - Self::with_guessed_format
    - decode
    - ImageReader::new
    - io::Cursor::new
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn load_from_memory(buffer: &[u8]) -> ImageResult<DynamicImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Cursor::new
      Src: /src/image/src/images/dynimage.rs:1678,1
    - Dst: free_functions::load
      Src: /src/image/src/images/dynimage.rs:1679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - format
    argTypes:
    - '&[u8]'
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1680
      start: 1671
    functionDepth: 15
    functionLinenumber: 1671
    functionLinenumberEnd: 1680
    functionName: load_from_memory_with_format
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 2
    functionsReached:
    - free_functions::load
    - io::Cursor::new
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn load_from_memory_with_format(buf: &[u8], format: ImageFormat)
      -> ImageResult<DynamicImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb8
      Src: /src/image/src/images/dynimage.rs:1687,1
    - Dst: crate::ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:1687,1
    - Dst: iter
      Src: /src/image/src/images/dynimage.rs:1688,1
    - Dst: to_luma8
      Src: /src/image/src/images/dynimage.rs:1688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1690
      start: 1686
    functionDepth: 4
    functionLinenumber: 1686
    functionLinenumberEnd: 1690
    functionName: bench::bench_conversion
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - to_luma8
    - crate::ImageBuffer::new
    - super::DynamicImage::ImageRgb8
    - iter
    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: 1703
      start: 1701
    functionDepth: 0
    functionLinenumber: 1701
    functionLinenumberEnd: 1703
    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:1709,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/dynimage.rs:1709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1707
    functionDepth: 18
    functionLinenumber: 1707
    functionLinenumberEnd: 1711
    functionName: test::image_dimensions
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - super::image_dimensions
    linkageType: ''
    returnType: void
    signature: fn image_dimensions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::open
      Src: /src/image/src/images/dynimage.rs:1717,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/images/dynimage.rs:1717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1715
    functionDepth: 17
    functionLinenumber: 1715
    functionLinenumberEnd: 1719
    functionName: test::open_16bpc_png
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::open
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn open_16bpc_png()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale
      Src: /src/image/src/images/dynimage.rs:1732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - img
    argTypes:
    - super::DynamicImage
    constantsTouched: []
    func_position:
      end: 1733
      start: 1731
    functionDepth: 3
    functionLinenumber: 1731
    functionLinenumberEnd: 1733
    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:1736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - img
    argTypes:
    - super::DynamicImage
    constantsTouched: []
    func_position:
      end: 1737
      start: 1735
    functionDepth: 3
    functionLinenumber: 1735
    functionLinenumberEnd: 1737
    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:1741,1
    - Dst: super::DynamicImage::new_luma8
      Src: /src/image/src/images/dynimage.rs:1741,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1742,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1743
      start: 1740
    functionDepth: 4
    functionLinenumber: 1740
    functionLinenumberEnd: 1743
    functionName: test::test_grayscale_luma8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - test_grayscale_alpha_discarded
    - super::DynamicImage::new_luma8
    - super::DynamicImage::new
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_luma8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1747,1
    - Dst: super::DynamicImage::new_luma_a8
      Src: /src/image/src/images/dynimage.rs:1747,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1748,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1746
    functionDepth: 4
    functionLinenumber: 1746
    functionLinenumberEnd: 1749
    functionName: test::test_grayscale_luma_a8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new_luma_a8
    - super::DynamicImage::new
    - test_grayscale_alpha_preserved
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_luma_a8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1753,1
    - Dst: super::DynamicImage::new_rgb8
      Src: /src/image/src/images/dynimage.rs:1753,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1754,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1752
    functionDepth: 4
    functionLinenumber: 1752
    functionLinenumberEnd: 1755
    functionName: test::test_grayscale_rgb8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - test_grayscale_alpha_discarded
    - super::DynamicImage::new_rgb8
    - super::DynamicImage::new
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_rgb8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1759,1
    - Dst: super::DynamicImage::new_rgba8
      Src: /src/image/src/images/dynimage.rs:1759,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1760,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1758
    functionDepth: 4
    functionLinenumber: 1758
    functionLinenumberEnd: 1761
    functionName: test::test_grayscale_rgba8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - super::DynamicImage::new_rgba8
    - test_grayscale_alpha_preserved
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_rgba8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1765,1
    - Dst: super::DynamicImage::new_luma16
      Src: /src/image/src/images/dynimage.rs:1765,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1766,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1764
    functionDepth: 4
    functionLinenumber: 1764
    functionLinenumberEnd: 1767
    functionName: test::test_grayscale_luma16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - test_grayscale_alpha_discarded
    - super::DynamicImage::new
    - 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:1771,1
    - Dst: super::DynamicImage::new_luma_a16
      Src: /src/image/src/images/dynimage.rs:1771,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1772,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1770
    functionDepth: 4
    functionLinenumber: 1770
    functionLinenumberEnd: 1773
    functionName: test::test_grayscale_luma_a16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new_luma_a16
    - super::DynamicImage::new
    - test_grayscale_alpha_preserved
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_luma_a16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1777,1
    - Dst: super::DynamicImage::new_rgb16
      Src: /src/image/src/images/dynimage.rs:1777,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1778,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1776
    functionDepth: 4
    functionLinenumber: 1776
    functionLinenumberEnd: 1779
    functionName: test::test_grayscale_rgb16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - test_grayscale_alpha_discarded
    - super::DynamicImage::new_rgb16
    - super::DynamicImage::new
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_rgb16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1783,1
    - Dst: super::DynamicImage::new_rgba16
      Src: /src/image/src/images/dynimage.rs:1783,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1784,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1782
    functionDepth: 4
    functionLinenumber: 1782
    functionLinenumberEnd: 1785
    functionName: test::test_grayscale_rgba16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new_rgba16
    - super::DynamicImage::new
    - test_grayscale_alpha_preserved
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_rgba16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1789,1
    - Dst: super::DynamicImage::new_rgb32f
      Src: /src/image/src/images/dynimage.rs:1789,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1790,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1788
    functionDepth: 4
    functionLinenumber: 1788
    functionLinenumberEnd: 1791
    functionName: test::test_grayscale_rgb32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - test_grayscale_alpha_discarded
    - super::DynamicImage::new_rgb32f
    - super::DynamicImage::new
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_rgb32f()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1795,1
    - Dst: super::DynamicImage::new_rgba32f
      Src: /src/image/src/images/dynimage.rs:1795,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1796,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1794
    functionDepth: 4
    functionLinenumber: 1794
    functionLinenumberEnd: 1797
    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: 1808
      start: 1800
    functionDepth: 0
    functionLinenumber: 1800
    functionLinenumberEnd: 1808
    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:1812,1
    - Dst: DynamicImage::into_bytes
      Src: /src/image/src/images/dynimage.rs:1812,1
    - Dst: super::DynamicImage::new_luma16
      Src: /src/image/src/images/dynimage.rs:1813,1
    - Dst: DynamicImage::into_bytes
      Src: /src/image/src/images/dynimage.rs:1813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1811
    functionDepth: 3
    functionLinenumber: 1811
    functionLinenumberEnd: 1814
    functionName: test::test_to_vecu8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new_luma16
    - super::DynamicImage::new_luma8
    - DynamicImage::into_bytes
    linkageType: ''
    returnType: void
    signature: fn test_to_vecu8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_vec
      Src: /src/image/src/images/dynimage.rs:1819,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/dynimage.rs:1819,1
    - Dst: super::DynamicImage::ImageLuma16
      Src: /src/image/src/images/dynimage.rs:1821,1
    - Dst: Option::into_bytes
      Src: /src/image/src/images/dynimage.rs:1824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1817
    functionDepth: 4
    functionLinenumber: 1817
    functionLinenumberEnd: 1826
    functionName: test::issue_1705_can_turn_16bit_image_into_bytes
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Option::into_bytes
    - super::DynamicImage::ImageLuma16
    - ImageBuffer::from_vec
    - 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:1831,1
    - Dst: super::DynamicImage::new_luma16
      Src: /src/image/src/images/dynimage.rs:1832,1
    - Dst: DynamicImage::to
      Src: /src/image/src/images/dynimage.rs:1836,1
    - Dst: to::<Luma<u16>>
      Src: /src/image/src/images/dynimage.rs:1840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1829
    functionDepth: 3
    functionLinenumber: 1829
    functionLinenumberEnd: 1842
    functionName: test::test_convert_to
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new_luma16
    - super::DynamicImage::new_luma8
    - to::<Luma<u16>>
    - DynamicImage::to
    linkageType: ''
    returnType: void
    signature: fn test_convert_to()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb8
      Src: /src/image/src/images/dynimage.rs:1846,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1847,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:1847,1
    - Dst: super::DynamicImage::ImageRgba8
      Src: /src/image/src/images/dynimage.rs:1850,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1851,1
    - Dst: Rgba
      Src: /src/image/src/images/dynimage.rs:1851,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1851,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1854,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1855,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1856,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1857,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1859,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1859,1
    - Dst: as_rgba8
      Src: /src/image/src/images/dynimage.rs:1862,1
    - Dst: expect
      Src: /src/image/src/images/dynimage.rs:1862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1845
    functionDepth: 17
    functionLinenumber: 1845
    functionLinenumberEnd: 1864
    functionName: test::color_conversion_srgb_p3
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - Default::default
    - Option::set_transfer_function
    - copy_from_color_space
    - set_transfer_function
    - Option::set_rgb_primaries
    - set_rgb_primaries
    - expect
    - as_rgba8
    - Rgb
    - ImageBuffer::from_fn
    - super::DynamicImage::ImageRgb8
    - 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:1868,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1869,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:1869,1
    - Dst: super::DynamicImage::ImageRgba8
      Src: /src/image/src/images/dynimage.rs:1872,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1873,1
    - Dst: Rgba
      Src: /src/image/src/images/dynimage.rs:1873,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1873,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1876,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1877,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1878,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1879,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1881,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1881,1
    - Dst: as_rgba8
      Src: /src/image/src/images/dynimage.rs:1884,1
    - Dst: expect
      Src: /src/image/src/images/dynimage.rs:1884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1867
    functionDepth: 17
    functionLinenumber: 1867
    functionLinenumberEnd: 1886
    functionName: test::color_conversion_preserves_sample
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - Default::default
    - Option::set_transfer_function
    - copy_from_color_space
    - set_transfer_function
    - Option::set_rgb_primaries
    - set_rgb_primaries
    - expect
    - as_rgba8
    - Rgb
    - ImageBuffer::from_fn
    - super::DynamicImage::ImageRgb16
    - 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:1890,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1891,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:1891,1
    - Dst: super::DynamicImage::ImageRgba8
      Src: /src/image/src/images/dynimage.rs:1894,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1895,1
    - Dst: Rgba
      Src: /src/image/src/images/dynimage.rs:1895,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1895,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1899,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1899,1
    - Dst: as_rgba8
      Src: /src/image/src/images/dynimage.rs:1902,1
    - Dst: expect
      Src: /src/image/src/images/dynimage.rs:1902,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1889
    functionDepth: 17
    functionLinenumber: 1889
    functionLinenumberEnd: 1904
    functionName: test::color_conversion_preserves_sample_in_fastpath
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - Default::default
    - copy_from_color_space
    - expect
    - as_rgba8
    - Rgb
    - ImageBuffer::from_fn
    - super::DynamicImage::ImageRgb16
    - 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:1908,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1909,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:1909,1
    - Dst: super::DynamicImage::ImageLuma8
      Src: /src/image/src/images/dynimage.rs:1912,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1913,1
    - Dst: Luma
      Src: /src/image/src/images/dynimage.rs:1913,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1913,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1917,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1917,1
    - Dst: as_luma8
      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: 1922
      start: 1907
    functionDepth: 17
    functionLinenumber: 1907
    functionLinenumberEnd: 1922
    functionName: test::color_conversion_rgb_to_luma
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - copy_from_color_space
    - as_luma8
    - super::DynamicImage::ImageLuma8
    - expect
    - Rgb
    - ImageBuffer::from_fn
    - Luma
    - super::DynamicImage::ImageRgb16
    linkageType: ''
    returnType: void
    signature: fn color_conversion_rgb_to_luma()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CicpTransform::new
      Src: /src/image/src/images/dynimage.rs:1940,1
    - Dst: Option::expect
      Src: /src/image/src/images/dynimage.rs:1940,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1944,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1945,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1947,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1948,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1950,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1951,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1953,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:1957,1
    - Dst: CbCrInverseTransform::clone
      Src: /src/image/src/images/dynimage.rs:1957,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1958,1
    - Dst: expect
      Src: /src/image/src/images/dynimage.rs:1953,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1925
    functionDepth: 15
    functionLinenumber: 1925
    functionLinenumberEnd: 1964
    functionName: test::copy_color_space_coverage
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Option::set_transfer_function
    - Default::default
    - copy_from_color_space
    - Option::expect
    - super::DynamicImage::new
    - Some
    - CbCrInverseTransform::clone
    - set_transfer_function
    - set_rgb_primaries
    - expect
    - CicpTransform::new
    - Option::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:1968,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1969,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:1969,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:1972,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:1973,1
    - Dst: '&RgbaImage::apply_color_space'
      Src: /src/image/src/images/dynimage.rs:1975,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1976,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/dynimage.rs:1975,1
    - Dst: '&RgbaImage::as_rgb8'
      Src: /src/image/src/images/dynimage.rs:1979,1
    - Dst: Option::expect
      Src: /src/image/src/images/dynimage.rs:1979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1967
    functionDepth: 17
    functionLinenumber: 1967
    functionLinenumberEnd: 1981
    functionName: test::apply_color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_rgb_primaries'
    - ImageResult::unwrap
    - Default::default
    - Option::expect
    - '&RgbaImage::as_rgb8'
    - '&RgbaImage::set_transfer_function'
    - Rgb
    - ImageBuffer::from_fn
    - super::DynamicImage::ImageRgb8
    - '&RgbaImage::apply_color_space'
    linkageType: ''
    returnType: void
    signature: fn apply_color_space()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CicpTransform::new
      Src: /src/image/src/images/dynimage.rs:1999,1
    - Dst: Option::expect
      Src: /src/image/src/images/dynimage.rs:1999,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:2002,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2004,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:2005,1
    - Dst: '&RgbaImage::apply_color_space'
      Src: /src/image/src/images/dynimage.rs:2007,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:2011,1
    - Dst: CbCrInverseTransform::clone
      Src: /src/image/src/images/dynimage.rs:2011,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:2012,1
    - Dst: ImageResult::expect
      Src: /src/image/src/images/dynimage.rs:2007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1984
    functionDepth: 15
    functionLinenumber: 1984
    functionLinenumberEnd: 2017
    functionName: test::apply_color_space_coverage
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_rgb_primaries'
    - Default::default
    - Option::expect
    - super::DynamicImage::new
    - '&RgbaImage::apply_color_space'
    - ImageResult::expect
    - Some
    - CbCrInverseTransform::clone
    - '&RgbaImage::set_transfer_function'
    - CicpTransform::new
    linkageType: ''
    returnType: void
    signature: fn apply_color_space_coverage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb16
      Src: /src/image/src/images/dynimage.rs:2021,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:2022,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:2022,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2025,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:2026,1
    - Dst: '&RgbaImage::convert_color_space'
      Src: /src/image/src/images/dynimage.rs:2028,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:2029,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/dynimage.rs:2028,1
    - Dst: '&RgbaImage::as_rgb8'
      Src: /src/image/src/images/dynimage.rs:2032,1
    - Dst: Option::expect
      Src: /src/image/src/images/dynimage.rs:2032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2020
    functionDepth: 17
    functionLinenumber: 2020
    functionLinenumberEnd: 2034
    functionName: test::convert_color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_rgb_primaries'
    - ImageResult::unwrap
    - Default::default
    - Option::expect
    - '&RgbaImage::convert_color_space'
    - '&RgbaImage::as_rgb8'
    - '&RgbaImage::set_transfer_function'
    - Rgb
    - ImageBuffer::from_fn
    - super::DynamicImage::ImageRgb16
    linkageType: ''
    returnType: void
    signature: fn convert_color_space()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb16
      Src: /src/image/src/images/dynimage.rs:2038,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:2039,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:2039,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2042,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:2043,1
    - Dst: '&RgbaImage::clone'
      Src: /src/image/src/images/dynimage.rs:2045,1
    - Dst: Self::into_luma8
      Src: /src/image/src/images/dynimage.rs:2045,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2049,1
    - Dst: '&RgbaImage::clone'
      Src: /src/image/src/images/dynimage.rs:2051,1
    - Dst: Self::into_luma8
      Src: /src/image/src/images/dynimage.rs:2051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2037
    functionDepth: 17
    functionLinenumber: 2037
    functionLinenumberEnd: 2054
    functionName: test::into_luma_is_color_space_aware
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_rgb_primaries'
    - '&RgbaImage::clone'
    - Self::into_luma8
    - '&RgbaImage::set_transfer_function'
    - Rgb
    - ImageBuffer::from_fn
    - super::DynamicImage::ImageRgb16
    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:2058,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:2059,1
    - Dst: Luma
      Src: /src/image/src/images/dynimage.rs:2059,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2062,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:2063,1
    - Dst: '&RgbaImage::clone'
      Src: /src/image/src/images/dynimage.rs:2065,1
    - Dst: Self::into_rgb8
      Src: /src/image/src/images/dynimage.rs:2065,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2069,1
    - Dst: '&RgbaImage::clone'
      Src: /src/image/src/images/dynimage.rs:2071,1
    - Dst: Self::into_rgb8
      Src: /src/image/src/images/dynimage.rs:2071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2057
    functionDepth: 17
    functionLinenumber: 2057
    functionLinenumberEnd: 2074
    functionName: test::from_luma_is_color_space_aware
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_rgb_primaries'
    - super::DynamicImage::ImageLuma16
    - Self::into_rgb8
    - '&RgbaImage::clone'
    - '&RgbaImage::set_transfer_function'
    - ImageBuffer::from_fn
    - Luma
    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:2095,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:2096,1
    - Dst: Luma
      Src: /src/image/src/images/dynimage.rs:2096,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2100,1
    - Dst: '&RgbaImage::to_rgb8'
      Src: /src/image/src/images/dynimage.rs:2101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2077
    functionDepth: 17
    functionLinenumber: 2077
    functionLinenumberEnd: 2108
    functionName: test::from_luma_for_all_chromaticities
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_rgb_primaries'
    - super::DynamicImage::ImageLuma16
    - '&RgbaImage::to_rgb8'
    - 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:2131,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:2132,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:2132,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2136,1
    - Dst: '&RgbaImage::as_mut_rgb8'
      Src: /src/image/src/images/dynimage.rs:2138,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/dynimage.rs:2138,1
    - Dst: pixels_mut
      Src: /src/image/src/images/dynimage.rs:2138,1
    - Dst: '&RgbaImage::to_luma8'
      Src: /src/image/src/images/dynimage.rs:2142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2111
    functionDepth: 17
    functionLinenumber: 2111
    functionLinenumberEnd: 2145
    functionName: test::from_rgb_for_all_chromaticities
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_rgb_primaries'
    - Option::unwrap
    - pixels_mut
    - '&RgbaImage::as_mut_rgb8'
    - '&RgbaImage::to_luma8'
    - Rgb
    - ImageBuffer::from_fn
    - super::DynamicImage::ImageRgb8
    linkageType: ''
    returnType: void
    signature: fn from_rgb_for_all_chromaticities()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CicpTransform::new
      Src: /src/image/src/images/dynimage.rs:2163,1
    - Dst: Option::expect
      Src: /src/image/src/images/dynimage.rs:2163,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:2167,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2169,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:2170,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:2173,1
    - Dst: CbCrInverseTransform::clone
      Src: /src/image/src/images/dynimage.rs:2173,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:2174,1
    - Dst: '&RgbaImage::convert_color_space'
      Src: /src/image/src/images/dynimage.rs:2177,1
    - Dst: ImageResult::expect
      Src: /src/image/src/images/dynimage.rs:2177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2182
      start: 2148
    functionDepth: 15
    functionLinenumber: 2148
    functionLinenumberEnd: 2182
    functionName: test::convert_color_space_coverage
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_rgb_primaries'
    - Default::default
    - Option::expect
    - super::DynamicImage::new
    - '&RgbaImage::convert_color_space'
    - Some
    - CbCrInverseTransform::clone
    - ImageResult::expect
    - '&RgbaImage::set_transfer_function'
    - CicpTransform::new
    linkageType: ''
    returnType: void
    signature: fn convert_color_space_coverage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::open
      Src: /src/image/src/images/dynimage.rs:2191,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/images/dynimage.rs:2191,1
    - Dst: Vec::clone
      Src: /src/image/src/images/dynimage.rs:2192,1
    - Dst: Vec::set_color_space
      Src: /src/image/src/images/dynimage.rs:2194,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/dynimage.rs:2194,1
    - Dst: Self::set_color_space
      Src: /src/image/src/images/dynimage.rs:2195,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/dynimage.rs:2195,1
    - Dst: iter
      Src: /src/image/src/images/dynimage.rs:2229,1
    - Dst: enumerate
      Src: /src/image/src/images/dynimage.rs:2229,1
    - Dst: op
      Src: /src/image/src/images/dynimage.rs:2230,1
    - Dst: op
      Src: /src/image/src/images/dynimage.rs:2231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 99
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2188
    functionDepth: 17
    functionLinenumber: 2188
    functionLinenumberEnd: 2238
    functionName: test::color_space_independent_imageops
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - op
    - Self::set_color_space
    - Vec::clone
    - super::open
    - enumerate
    - iter
    - Vec::set_color_space
    - io::Result::unwrap
    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:
    - expect
    - checked_mul
    linkageType: ''
    returnType: Self
    signature: 'pub fn row_major_packed(channels: u8, width: u32, height: u32) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: checked_mul
      Src: /src/image/src/images/flat.rs:176,1
    - Dst: expect
      Src: /src/image/src/images/flat.rs:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - channels
    - width
    - height
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 187
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 187
    functionName: SampleLayout::column_major_packed
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - expect
    - checked_mul
    linkageType: ''
    returnType: Self
    signature: 'pub fn column_major_packed(channels: u8, width: u32, height: u32)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: SampleLayout::strides_cwh
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 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:
    - checked_add
    - SampleLayout::index
    - 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:
    - sort
    - Dim
    linkageType: ''
    returnType: '[Dim; 3]'
    signature: fn increasing_stride_dims(&self) -> [Dim; 3]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SampleLayout::increasing_stride_dims
      Src: /src/image/src/images/flat.rs:311,1
    - Dst: checked_len
      Src: /src/image/src/images/flat.rs:314,1
    - Dst: checked_len
      Src: /src/image/src/images/flat.rs:319,1
    - Dst: checked_len
      Src: /src/image/src/images/flat.rs:324,1
    - Dst: is_none
      Src: /src/image/src/images/flat.rs:324,1
    - Dst: stride
      Src: /src/image/src/images/flat.rs:329,1
    - Dst: stride
      Src: /src/image/src/images/flat.rs:329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 330
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 330
    functionName: SampleLayout::has_aliased_samples
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - stride
    - SampleLayout::increasing_stride_dims
    - checked_len
    - 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:
    - stride
    - SampleLayout::increasing_stride_dims
    - SampleLayout::has_aliased_samples
    - len
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_normal(&self, form: NormalForm) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 398
    functionName: SampleLayout::in_bounds
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 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::index_ignoring_bounds
    - SampleLayout::in_bounds
    linkageType: ''
    returnType: Option
    signature: 'pub fn index(&self, channel: u8, x: u32, y: u32) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: checked_mul
      Src: /src/image/src/images/flat.rs:419,1
    - Dst: checked_mul
      Src: /src/image/src/images/flat.rs:420,1
    - Dst: Option::checked_mul
      Src: /src/image/src/images/flat.rs:421,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:427,1
    - Dst: and_then
      Src: /src/image/src/images/flat.rs:427,1
    - Dst: checked_add
      Src: /src/image/src/images/flat.rs:428,1
    - Dst: and_then
      Src: /src/image/src/images/flat.rs:427,1
    - Dst: checked_add
      Src: /src/image/src/images/flat.rs:429,1
    - Dst: and_then
      Src: /src/image/src/images/flat.rs:427,1
    - Dst: checked_add
      Src: /src/image/src/images/flat.rs:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - usize
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 431
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 431
    functionName: SampleLayout::index_ignoring_bounds
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - Some
    - checked_mul
    - Option::checked_mul
    - checked_add
    - and_then
    linkageType: ''
    returnType: Option
    signature: 'pub fn index_ignoring_bounds(&self, channel: usize, x: usize, y: usize)
      -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SampleLayout::strides_cwh
      Src: /src/image/src/images/flat.rs:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - c
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 445
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 445
    functionName: SampleLayout::in_bounds_index
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - SampleLayout::strides_cwh
    linkageType: ''
    returnType: usize
    signature: 'pub fn in_bounds_index(&self, c: u8, x: u32, y: u32) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/image/src/images/flat.rs:453,1
    - Dst: min
      Src: /src/image/src/images/flat.rs:454,1
    - Dst: min
      Src: /src/image/src/images/flat.rs:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - channels
    - width
    - height
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: SampleLayout::shrink_to
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - min
    linkageType: ''
    returnType: void
    signature: 'pub fn shrink_to(&mut self, channels: u8, width: u32, height: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 462
    functionName: Dim::stride
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn stride(self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: checked_mul
      Src: /src/image/src/images/flat.rs:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 467
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 467
    functionName: Dim::checked_len
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - checked_mul
    linkageType: ''
    returnType: Option
    signature: fn checked_len(self) -> Option<usize>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 471
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 471
    functionName: Dim::len
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn len(self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strides_cwh
      Src: /src/image/src/images/flat.rs:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 481
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 481
    functionName: FlatSamples::strides_cwh
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 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:
    - to_vec
    - as_ref
    linkageType: ''
    returnType: FlatSamples
    signature: 'pub fn to_vec<T>(&self) -> FlatSamples<Vec<T>>whereT: Clone,Buffer:
      AsRef<[T]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatSamples::index
      Src: /src/image/src/images/flat.rs:561,1
    - Dst: '&Self::Output::and_then'
      Src: /src/image/src/images/flat.rs:561,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:562,1
    - Dst: get
      Src: /src/image/src/images/flat.rs:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 563
      start: 557
    functionDepth: 3
    functionLinenumber: 557
    functionLinenumberEnd: 563
    functionName: FlatSamples::get_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - FlatSamples::index
    - '&Self::Output::and_then'
    - as_ref
    - get
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_sample<T>(&self, channel: u8, x: u32, y: u32) -> Option<&T>whereBuffer:
      AsRef<[T]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatSamples::index
      Src: /src/image/src/images/flat.rs:595,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:597,1
    - Dst: get_mut
      Src: /src/image/src/images/flat.rs:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 599
      start: 591
    functionDepth: 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: as_ref
      Src: /src/image/src/images/flat.rs:613,1
    - Dst: into_view
      Src: /src/image/src/images/flat.rs:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 618
      start: 607
    functionDepth: 15
    functionLinenumber: 607
    functionLinenumberEnd: 618
    functionName: FlatSamples::as_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - into_view
    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:629,1
    - Dst: Error::ChannelCountMismatch
      Src: /src/image/src/images/flat.rs:629,1
    - Dst: fits
      Src: /src/image/src/images/flat.rs:635,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:635,1
    - Dst: len
      Src: /src/image/src/images/flat.rs:635,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:636,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 643
      start: 623
    functionDepth: 14
    functionLinenumber: 623
    functionLinenumberEnd: 643
    functionName: FlatSamples::into_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - Err
    - len
    - Error::ChannelCountMismatch
    - fits
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn into_view<P>(self) -> Result<View<Buffer, P>, Error>whereP:
      Pixel,Buffer: AsRef<[P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/images/flat.rs:666,1
    - Dst: Error::ChannelCountMismatch
      Src: /src/image/src/images/flat.rs:666,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:672,1
    - Dst: fits
      Src: /src/image/src/images/flat.rs:673,1
    - Dst: FlatSamples::len
      Src: /src/image/src/images/flat.rs:673,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:674,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:677,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 685
      start: 660
    functionDepth: 15
    functionLinenumber: 660
    functionLinenumberEnd: 685
    functionName: FlatSamples::as_view_with_mut_samples
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Err
    - as_mut
    - Error::ChannelCountMismatch
    - fits
    - Ok
    - FlatSamples::len
    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:703,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:704,1
    - Dst: Error::NormalFormRequired
      Src: /src/image/src/images/flat.rs:704,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:708,1
    - Dst: Error::ChannelCountMismatch
      Src: /src/image/src/images/flat.rs:708,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:714,1
    - Dst: fits
      Src: /src/image/src/images/flat.rs:715,1
    - Dst: FlatSamples::len
      Src: /src/image/src/images/flat.rs:715,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:716,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:719,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 727
      start: 698
    functionDepth: 15
    functionLinenumber: 698
    functionLinenumberEnd: 727
    functionName: FlatSamples::as_view_mut
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Err
    - as_mut
    - Error::ChannelCountMismatch
    - Error::NormalFormRequired
    - is_normal
    - fits
    - Ok
    - FlatSamples::len
    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: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_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:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 749
      start: 744
    functionDepth: 2
    functionLinenumber: 744
    functionLinenumberEnd: 749
    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:760,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:762,1
    - Dst: '&[T]::len'
      Src: /src/image/src/images/flat.rs:763,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 768
      start: 756
    functionDepth: 14
    functionLinenumber: 756
    functionLinenumberEnd: 768
    functionName: FlatSamples::image_slice
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - Some
    - '&[T]::len'
    - FlatSamples::min_length
    linkageType: ''
    returnType: Option
    signature: 'pub fn image_slice<T>(&self) -> Option<&[T]>whereBuffer: AsRef<[T]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatSamples::min_length
      Src: /src/image/src/images/flat.rs:775,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:777,1
    - Dst: '&[T]::len'
      Src: /src/image/src/images/flat.rs:778,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:782,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 783
      start: 771
    functionDepth: 14
    functionLinenumber: 771
    functionLinenumberEnd: 783
    functionName: FlatSamples::image_mut_slice
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - Some
    - '&[T]::len'
    - FlatSamples::min_length
    linkageType: ''
    returnType: Option
    signature: 'pub fn image_mut_slice<T>(&mut self) -> Option<&mut [T]>whereBuffer:
      AsMut<[T]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatSamples::is_normal
      Src: /src/image/src/images/flat.rs:795,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:796,1
    - Dst: Error::NormalFormRequired
      Src: /src/image/src/images/flat.rs:796,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:800,1
    - Dst: Error::ChannelCountMismatch
      Src: /src/image/src/images/flat.rs:801,1
    - Dst: FlatSamples::fits
      Src: /src/image/src/images/flat.rs:806,1
    - Dst: deref
      Src: /src/image/src/images/flat.rs:806,1
    - Dst: len
      Src: /src/image/src/images/flat.rs:806,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:807,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:810,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/flat.rs:811,1
    - Dst: Option::unwrap_or_else
      Src: /src/image/src/images/flat.rs:811,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 816
      start: 790
    functionDepth: 16
    functionLinenumber: 790
    functionLinenumberEnd: 816
    functionName: FlatSamples::try_into_buffer
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - deref
    - Err
    - ImageBuffer::from_raw
    - FlatSamples::is_normal
    - len
    - Error::ChannelCountMismatch
    - Error::NormalFormRequired
    - Option::unwrap_or_else
    - FlatSamples::fits
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn try_into_buffer<P>(self) -> Result<ImageBuffer<P, Buffer>,
      (Error, Self)>whereP: Pixel,Buffer: Deref<Target = [P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min_length
      Src: /src/image/src/images/flat.rs:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 871
      start: 869
    functionDepth: 3
    functionLinenumber: 869
    functionLinenumberEnd: 871
    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:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 876
      start: 874
    functionDepth: 4
    functionLinenumber: 874
    functionLinenumberEnd: 876
    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:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 885
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 885
    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:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - form
    argTypes:
    - NormalForm
    constantsTouched: []
    func_position:
      end: 896
      start: 894
    functionDepth: 15
    functionLinenumber: 894
    functionLinenumberEnd: 896
    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:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 905
      start: 903
    functionDepth: 13
    functionLinenumber: 903
    functionLinenumberEnd: 905
    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:1379,1
    - Dst: FlatSamples::strides_cwh
      Src: /src/image/src/images/flat.rs:1380,1
    - Dst: FlatSamples::index
      Src: /src/image/src/images/flat.rs:1381,1
    - Dst: '&Self::Output::unwrap_or_else'
      Src: /src/image/src/images/flat.rs:1381,1
    - Dst: panic_cwh_out_of_bounds
      Src: /src/image/src/images/flat.rs:1383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames: []
    argTypes:
    - (u8, u32, u32)
    constantsTouched: []
    func_position:
      end: 1385
      start: 1378
    functionDepth: 2
    functionLinenumber: 1378
    functionLinenumberEnd: 1385
    functionName: FlatSamples::index
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 4
    functionsReached:
    - panic_cwh_out_of_bounds
    - FlatSamples::index
    - '&Self::Output::unwrap_or_else'
    - FlatSamples::strides_cwh
    - FlatSamples::bounds
    linkageType: ''
    returnType: '&Self::Output'
    signature: 'fn index(&self, (c, x, y): (u8, u32, u32)) -> &Self::Output'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: index_ignoring_bounds
      Src: /src/image/src/images/flat.rs:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - usize
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 921
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 921
    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:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 930
      start: 928
    functionDepth: 2
    functionLinenumber: 928
    functionLinenumberEnd: 930
    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:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - channels
    - width
    - height
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 939
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 939
    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:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pixel
    - width
    - height
    argTypes:
    - '&''buf P'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 982
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 982
    functionName: FlatSamples::with_monocolor
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 3
    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: 1115
      start: 1113
    functionDepth: 0
    functionLinenumber: 1113
    functionLinenumberEnd: 1115
    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: 1125
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1125
    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: 1133
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1133
    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:1140,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1144,1
    - Dst: View::samples
      Src: /src/image/src/images/flat.rs:1146,1
    - Dst: '&Buffer::as_ref'
      Src: /src/image/src/images/flat.rs:1146,1
    - Dst: FlatSamples::get
      Src: /src/image/src/images/flat.rs:1146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1147
      start: 1139
    functionDepth: 13
    functionLinenumber: 1139
    functionLinenumberEnd: 1147
    functionName: View::get_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - '&Buffer::as_ref'
    - View::samples
    - in_bounds
    - in_bounds_index
    - FlatSamples::get
    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:1161,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1165,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:1167,1
    - Dst: get_mut
      Src: /src/image/src/images/flat.rs:1167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1168
      start: 1157
    functionDepth: 13
    functionLinenumber: 1157
    functionLinenumberEnd: 1168
    functionName: View::get_mut_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - in_bounds_index
    - get_mut
    - in_bounds
    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:1174,1
    - Dst: unwrap
      Src: /src/image/src/images/flat.rs:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1173
    functionDepth: 3
    functionLinenumber: 1173
    functionLinenumberEnd: 1175
    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:1182,1
    - Dst: '&Buffer::as_ref'
      Src: /src/image/src/images/flat.rs:1182,1
    - Dst: View::min_length
      Src: /src/image/src/images/flat.rs:1182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1181
    functionDepth: 4
    functionLinenumber: 1181
    functionLinenumberEnd: 1183
    functionName: View::image_slice
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - View::min_length
    - '&Buffer::as_ref'
    - View::samples
    linkageType: ''
    returnType: '&[P::Subpixel]'
    signature: pub fn image_slice(&self) -> &[P::Subpixel]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: strides_cwh
      Src: /src/image/src/images/flat.rs:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1189
    functionName: View::strides_wh
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - strides_cwh
    linkageType: ''
    returnType: (usize, usize)
    signature: pub(crate) fn strides_wh(&self) -> (usize, usize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: View::min_length
      Src: /src/image/src/images/flat.rs:1200,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:1201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1196
    functionDepth: 4
    functionLinenumber: 1196
    functionLinenumberEnd: 1202
    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:1211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1212
      start: 1209
    functionDepth: 1
    functionLinenumber: 1209
    functionLinenumberEnd: 1212
    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:1236,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:1237,1
    - Dst: Error::NormalFormRequired
      Src: /src/image/src/images/flat.rs:1237,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:1241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1232
    functionDepth: 15
    functionLinenumber: 1232
    functionLinenumberEnd: 1245
    functionName: View::try_upgrade
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - is_normal
    - Err
    - Ok
    - Error::NormalFormRequired
    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: 1257
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1257
    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: 1267
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1267
    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: 1276
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1276
    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:1282,1
    - Dst: unwrap
      Src: /src/image/src/images/flat.rs:1282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1281
    functionDepth: 3
    functionLinenumber: 1281
    functionLinenumberEnd: 1283
    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:1293,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1297,1
    - Dst: ViewMut::samples
      Src: /src/image/src/images/flat.rs:1299,1
    - Dst: '&Buffer::as_ref'
      Src: /src/image/src/images/flat.rs:1299,1
    - Dst: FlatSamples::get
      Src: /src/image/src/images/flat.rs:1299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1300
      start: 1289
    functionDepth: 13
    functionLinenumber: 1289
    functionLinenumberEnd: 1300
    functionName: ViewMut::get_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - '&Buffer::as_ref'
    - in_bounds
    - ViewMut::samples
    - in_bounds_index
    - FlatSamples::get
    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:1307,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1311,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:1313,1
    - Dst: get_mut
      Src: /src/image/src/images/flat.rs:1313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1314
      start: 1306
    functionDepth: 13
    functionLinenumber: 1306
    functionLinenumberEnd: 1314
    functionName: ViewMut::get_mut_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - in_bounds_index
    - get_mut
    - in_bounds
    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:1324,1
    - Dst: ViewMut::min_length
      Src: /src/image/src/images/flat.rs:1324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1320
    functionDepth: 4
    functionLinenumber: 1320
    functionLinenumberEnd: 1325
    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:1329,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:1330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1328
    functionDepth: 4
    functionLinenumber: 1328
    functionLinenumberEnd: 1331
    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:1340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1341
      start: 1338
    functionDepth: 1
    functionLinenumber: 1338
    functionLinenumberEnd: 1341
    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: 1358
      start: 1347
    functionDepth: 0
    functionLinenumber: 1347
    functionLinenumberEnd: 1358
    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: 1365
      start: 1363
    functionDepth: 0
    functionLinenumber: 1363
    functionLinenumberEnd: 1365
    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:1398,1
    - Dst: FlatSamples::strides_cwh
      Src: /src/image/src/images/flat.rs:1399,1
    - Dst: FlatSamples::index
      Src: /src/image/src/images/flat.rs:1400,1
    - Dst: '&Self::Output::unwrap_or_else'
      Src: /src/image/src/images/flat.rs:1400,1
    - Dst: panic_cwh_out_of_bounds
      Src: /src/image/src/images/flat.rs:1402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames: []
    argTypes:
    - (u8, u32, u32)
    constantsTouched: []
    func_position:
      end: 1404
      start: 1397
    functionDepth: 2
    functionLinenumber: 1397
    functionLinenumberEnd: 1404
    functionName: FlatSamples::index_mut
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - panic_cwh_out_of_bounds
    - FlatSamples::index
    - '&Self::Output::unwrap_or_else'
    - FlatSamples::strides_cwh
    - FlatSamples::bounds
    linkageType: ''
    returnType: '&mut Self::Output'
    signature: 'fn index_mut(&mut self, (c, x, y): (u8, u32, u32)) -> &mut Self::Output'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1413
    functionDepth: 0
    functionLinenumber: 1413
    functionLinenumberEnd: 1415
    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:1418,1
    - Dst: panic_pixel_out_of_bounds
      Src: /src/image/src/images/flat.rs:1419,1
    - Dst: View::dimensions
      Src: /src/image/src/images/flat.rs:1419,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:1422,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1423,1
    - Dst: Zero::zero
      Src: /src/image/src/images/flat.rs:1426,1
    - Dst: '&RgbaImage::iter_mut'
      Src: /src/image/src/images/flat.rs:1427,1
    - Dst: enumerate
      Src: /src/image/src/images/flat.rs:1427,1
    - Dst: take
      Src: /src/image/src/images/flat.rs:1427,1
    - Dst: for_each
      Src: /src/image/src/images/flat.rs:1427,1
    - Dst: P::from_slice
      Src: /src/image/src/images/flat.rs:1436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1437
      start: 1417
    functionDepth: 13
    functionLinenumber: 1417
    functionLinenumberEnd: 1437
    functionName: View::get_pixel
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - take
    - as_ref
    - '&RgbaImage::iter_mut'
    - panic_pixel_out_of_bounds
    - in_bounds
    - P::from_slice
    - in_bounds_index
    - View::dimensions
    - enumerate
    - Zero::zero
    - for_each
    linkageType: ''
    returnType: Self::Pixel
    signature: 'fn get_pixel(&self, x: u32, y: u32) -> Self::Pixel'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1440,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:1442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1439
    functionDepth: 2
    functionLinenumber: 1439
    functionLinenumberEnd: 1448
    functionName: View::to_pixel_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - Some
    linkageType: ''
    returnType: Option
    signature: fn to_pixel_view(&self) -> Option<ViewOfPixel<'_, Self::Pixel>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1457
    functionDepth: 0
    functionLinenumber: 1457
    functionLinenumberEnd: 1459
    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:1462,1
    - Dst: panic_pixel_out_of_bounds
      Src: /src/image/src/images/flat.rs:1463,1
    - Dst: ViewMut::dimensions
      Src: /src/image/src/images/flat.rs:1463,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:1466,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1467,1
    - Dst: Zero::zero
      Src: /src/image/src/images/flat.rs:1470,1
    - Dst: '&RgbaImage::iter_mut'
      Src: /src/image/src/images/flat.rs:1471,1
    - Dst: enumerate
      Src: /src/image/src/images/flat.rs:1471,1
    - Dst: take
      Src: /src/image/src/images/flat.rs:1471,1
    - Dst: for_each
      Src: /src/image/src/images/flat.rs:1471,1
    - Dst: P::from_slice
      Src: /src/image/src/images/flat.rs:1480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1481
      start: 1461
    functionDepth: 13
    functionLinenumber: 1461
    functionLinenumberEnd: 1481
    functionName: ViewMut::get_pixel
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - take
    - as_ref
    - '&RgbaImage::iter_mut'
    - ViewMut::dimensions
    - panic_pixel_out_of_bounds
    - in_bounds
    - P::from_slice
    - in_bounds_index
    - enumerate
    - Zero::zero
    - for_each
    linkageType: ''
    returnType: Self::Pixel
    signature: 'fn get_pixel(&self, x: u32, y: u32) -> Self::Pixel'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1484,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:1486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1483
    functionDepth: 2
    functionLinenumber: 1483
    functionLinenumberEnd: 1492
    functionName: ViewMut::to_pixel_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - Some
    linkageType: ''
    returnType: Option
    signature: fn to_pixel_view(&self) -> Option<ViewOfPixel<'_, Self::Pixel>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: in_bounds
      Src: /src/image/src/images/flat.rs:1500,1
    - Dst: panic_pixel_out_of_bounds
      Src: /src/image/src/images/flat.rs:1501,1
    - Dst: ViewMut::dimensions
      Src: /src/image/src/images/flat.rs:1501,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1504,1
    - Dst: P::from_slice_mut
      Src: /src/image/src/images/flat.rs:1507,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:1507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - Self::Pixel
    constantsTouched: []
    func_position:
      end: 1508
      start: 1499
    functionDepth: 13
    functionLinenumber: 1499
    functionLinenumberEnd: 1508
    functionName: ViewMut::put_pixel
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - ViewMut::dimensions
    - panic_pixel_out_of_bounds
    - in_bounds
    - P::from_slice_mut
    - as_mut
    - in_bounds_index
    linkageType: ''
    returnType: void
    signature: 'fn put_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: 1565
      start: 1544
    functionDepth: 0
    functionLinenumber: 1544
    functionLinenumberEnd: 1565
    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:1576,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1577,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1578,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1579,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1581,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1584,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1585,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1587,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1588,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1589,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1591,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1594,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1595,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1596,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 1606
      start: 1574
    functionDepth: 0
    functionLinenumber: 1574
    functionLinenumberEnd: 1606
    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:1630,1
    - Dst: expect
      Src: /src/image/src/images/flat.rs:1630,1
    - Dst: SubImage::pixels
      Src: /src/image/src/images/flat.rs:1631,1
    - Dst: ImageResult::inspect
      Src: /src/image/src/images/flat.rs:1631,1
    - Dst: count
      Src: /src/image/src/images/flat.rs:1631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1616
    functionDepth: 13
    functionLinenumber: 1616
    functionLinenumberEnd: 1636
    functionName: tests::aliasing_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - ImageResult::inspect
    - SubImage::pixels
    - as_view::<Rgb<u8>>
    - expect
    - count
    linkageType: ''
    returnType: void
    signature: fn aliasing_view()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_view_mut::<LumaA<u16>>
      Src: /src/image/src/images/flat.rs:1654,1
    - Dst: expect
      Src: /src/image/src/images/flat.rs:1654,1
    - Dst: SubImage::put_pixel
      Src: /src/image/src/images/flat.rs:1659,1
    - Dst: LumaA
      Src: /src/image/src/images/flat.rs:1659,1
    - Dst: iter
      Src: /src/image/src/images/flat.rs:1663,1
    - Dst: enumerate
      Src: /src/image/src/images/flat.rs:1663,1
    - Dst: for_each
      Src: /src/image/src/images/flat.rs:1663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1639
    functionDepth: 4
    functionLinenumber: 1639
    functionLinenumberEnd: 1668
    functionName: tests::mutable_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - SubImage::put_pixel
    - expect
    - for_each
    - enumerate
    - iter
    - as_view_mut::<LumaA<u16>>
    - LumaA
    linkageType: ''
    returnType: void
    signature: fn mutable_view()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1671
    functionDepth: 0
    functionLinenumber: 1671
    functionLinenumberEnd: 1727
    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:1740,1
    - Dst: Self::into_flat_samples
      Src: /src/image/src/images/flat.rs:1741,1
    - Dst: '&RgbaImage::try_into_buffer'
      Src: /src/image/src/images/flat.rs:1745,1
    - Dst: Result::unwrap_or_else
      Src: /src/image/src/images/flat.rs:1745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1730
    functionDepth: 17
    functionLinenumber: 1730
    functionLinenumberEnd: 1748
    functionName: tests::image_buffer_conversion
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::try_into_buffer'
    - Self::into_flat_samples
    - Result::unwrap_or_else
    - GrayAlphaImage::new
    linkageType: ''
    returnType: void
    signature: fn image_buffer_conversion()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - image
    - rect
    argTypes:
    - I
    - Rect
    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, rect: Rect) -> 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:
    - SampleLayout::put_pixel
    - get_pixel
    - buffer_with_dimensions
    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: ImageBuffer::assert_in_bounds_of
      Src: /src/image/src/images/sub_image.rs:124,1
    - 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: 26
    argCount: 1
    argNames:
    - rect
    argTypes:
    - Rect
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 13
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: SubImage::view
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 4
    functionsReached:
    - ImageBuffer::assert_in_bounds_of
    - SubImage::new
    - saturating_add
    linkageType: ''
    returnType: SubImage
    signature: 'pub fn view(&self, mut rect: Rect) -> 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: ImageBuffer::assert_in_bounds_of
      Src: /src/image/src/images/sub_image.rs:145,1
    - Dst: saturating_add
      Src: /src/image/src/images/sub_image.rs:146,1
    - Dst: saturating_add
      Src: /src/image/src/images/sub_image.rs:147,1
    - Dst: SubImage::new
      Src: /src/image/src/images/sub_image.rs:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - rect
    argTypes:
    - Rect
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 13
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: SubImage::sub_image
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 1
    functionsReached:
    - ImageBuffer::assert_in_bounds_of
    - SubImage::new
    - saturating_add
    linkageType: ''
    returnType: SubImage
    signature: 'pub fn sub_image(&mut self, mut rect: Rect) -> SubImage<&mut I::Target>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    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: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    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: 174
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 174
    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: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    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:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 190
    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:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 202
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 202
    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: to_pixel_view
      Src: /src/image/src/images/sub_image.rs:205,1
    - Dst: Option::into_inner
      Src: /src/image/src/images/sub_image.rs:208,1
    - Dst: R::index
      Src: /src/image/src/images/sub_image.rs:210,1
    - Dst: get
      Src: /src/image/src/images/sub_image.rs:211,1
    - Dst: R::into_view
      Src: /src/image/src/images/sub_image.rs:215,1
    - Dst: Result::ok
      Src: /src/image/src/images/sub_image.rs:215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 204
    functionDepth: 15
    functionLinenumber: 204
    functionLinenumberEnd: 216
    functionName: SubImageInner::to_pixel_view
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached:
    - Result::ok
    - R::index
    - R::into_view
    - Option::into_inner
    - to_pixel_view
    - get
    linkageType: ''
    returnType: Option
    signature: fn to_pixel_view(&self) -> Option<ViewOfPixel<'_, Self::Pixel>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_pixel
      Src: /src/image/src/images/sub_image.rs:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - Self::Pixel
    constantsTouched: []
    func_position:
      end: 227
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 227
    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: Rect::from_image_at
      Src: /src/image/src/images/sub_image.rs:233,1
    - Dst: Self::test_in_bounds_of
      Src: /src/image/src/images/sub_image.rs:233,1
    - Dst: copy_from
      Src: /src/image/src/images/sub_image.rs:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - other
    - x
    - y
    argTypes:
    - '&O'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 238
      start: 229
    functionDepth: 13
    functionLinenumber: 229
    functionLinenumberEnd: 238
    functionName: SubImageInner::copy_from
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached:
    - Rect::from_image_at
    - copy_from
    - Self::test_in_bounds_of
    linkageType: ''
    returnType: Result
    signature: 'fn copy_from<O>(&mut self, other: &O, x: u32, y: u32) -> Result<(),
      crate::ImageError>whereO: GenericImageView<Pixel = Self::Pixel>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/images/sub_image.rs:247,1
    - Dst: crate::Rgba
      Src: /src/image/src/images/sub_image.rs:248,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/sub_image.rs:249,1
    - Dst: '&RgbaImage::view'
      Src: /src/image/src/images/sub_image.rs:251,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/sub_image.rs:251,1
    - Dst: SubImage::buffer_like
      Src: /src/image/src/images/sub_image.rs:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 246
    functionDepth: 14
    functionLinenumber: 246
    functionLinenumberEnd: 255
    functionName: tests::preserves_color_space
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_rgb_primaries'
    - SubImage::buffer_like
    - crate::Rgba
    - '&RgbaImage::view'
    - RgbaImage::new
    - Rect::from_xy_ranges
    linkageType: ''
    returnType: void
    signature: fn preserves_color_space()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/images/sub_image.rs:259,1
    - Dst: crate::Rgba
      Src: /src/image/src/images/sub_image.rs:260,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/sub_image.rs:261,1
    - Dst: '&RgbaImage::view'
      Src: /src/image/src/images/sub_image.rs:263,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/sub_image.rs:263,1
    - Dst: SubImage::view
      Src: /src/image/src/images/sub_image.rs:264,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/sub_image.rs:264,1
    - Dst: SubImage::buffer_like
      Src: /src/image/src/images/sub_image.rs:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 258
    functionDepth: 14
    functionLinenumber: 258
    functionLinenumberEnd: 268
    functionName: tests::deep_preserves_color_space
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_rgb_primaries'
    - SubImage::buffer_like
    - SubImage::view
    - crate::Rgba
    - '&RgbaImage::view'
    - RgbaImage::new
    - Rect::from_xy_ranges
    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:
    - Some
    - Pixels::len
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer.rs: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:
    - map
    - <P as Pixel>::from_slice
    - next_back
    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:
    - finish
    - Result::debug_struct
    - 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:
    - Some
    - PixelsMut::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: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:
    - map
    - next_back
    - <P as Pixel>::from_slice_mut
    linkageType: ''
    returnType: Option
    signature: fn next_back(&mut self) -> Option<&'a mut P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 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:
    - finish
    - Result::debug_struct
    - 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: ImageResult::get
      Src: /src/image/src/images/buffer.rs:168,1
    - Dst: Option::expect
      Src: /src/image/src/images/buffer.rs:168,1
    - Dst: ImageResult::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:
    - ImageResult::get
    - ImageResult::chunks_exact
    - chunks_exact
    - usize::from
    - Option::expect
    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: Result::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:
    - Result::chunks_exact
    - next
    - 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: Result::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:
    - Result::chunks_exact
    - Some
    - next_back
    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:
    - finish
    - Result::debug_struct
    - 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: ImageResult::get_mut
      Src: /src/image/src/images/buffer.rs:266,1
    - Dst: expect
      Src: /src/image/src/images/buffer.rs:266,1
    - Dst: ImageResult::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:
    - usize::from
    - ImageResult::get_mut
    - expect
    - ImageResult::chunks_exact_mut
    - 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: Result::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:
    - Result::chunks_exact_mut
    - next
    - 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:
    - Some
    - RowsMut::len
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer.rs: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: Result::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:
    - Result::chunks_exact_mut
    - Some
    - next_back
    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:
    - finish
    - Result::debug_struct
    - 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:
    - finish
    - Result::debug_struct
    - 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:
    - finish
    - Result::debug_struct
    - 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:
    - Some
    - EnumeratePixelsMut::len
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer.rs: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:
    - finish
    - Result::debug_struct
    - 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:
    - EnumerateRowsMut::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: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:
    - finish
    - Result::debug_struct
    - 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
    - std::io::Result::len
    - Some
    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: 3
    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:1324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1323
    functionDepth: 1
    functionLinenumber: 1323
    functionLinenumberEnd: 1325
    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: 9
    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:1328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1329
      start: 1327
    functionDepth: 1
    functionLinenumber: 1327
    functionLinenumberEnd: 1329
    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: 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: 15
    functionLinenumber: 789
    functionLinenumberEnd: 802
    functionName: ImageBuffer::get_pixel_checked
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - map
    - <P as Pixel>::from_slice
    - saturating_add
    - saturating_mul
    - checked_add
    - get
    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:
    - Self::image_buffer_len
    - Option::is_some_and
    linkageType: ''
    returnType: bool
    signature: 'fn check_image_fits(width: u32, height: u32, len: usize) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/buffer.rs: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:
    - u64::checked_mul
    - and_then
    - 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: 1
    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: 5
    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:866,1
    - Dst: as_ref
      Src: /src/image/src/images/buffer.rs:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 872
      start: 865
    functionDepth: 2
    functionLinenumber: 865
    functionLinenumberEnd: 872
    functionName: ImageBuffer::as_flat_samples
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 3
    functionsReached:
    - as_ref
    - ImageBuffer::sample_layout
    linkageType: ''
    returnType: FlatSamples
    signature: pub fn as_flat_samples(&self) -> FlatSamples<&[P::Subpixel]>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::sample_layout
      Src: /src/image/src/images/buffer.rs:881,1
    - Dst: as_mut
      Src: /src/image/src/images/buffer.rs:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 887
      start: 877
    functionDepth: 2
    functionLinenumber: 877
    functionLinenumberEnd: 887
    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:897,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 899
      start: 896
    functionDepth: 1
    functionLinenumber: 896
    functionLinenumberEnd: 899
    functionName: ImageBuffer::inner_pixels_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 4
    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:904,1
    - Dst: '&mut [P::Subpixel]::chunks_exact_mut'
      Src: /src/image/src/images/buffer.rs:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 908
      start: 902
    functionDepth: 2
    functionLinenumber: 902
    functionLinenumberEnd: 908
    functionName: ImageBuffer::pixels_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 3
    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:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 917
      start: 915
    functionDepth: 4
    functionLinenumber: 915
    functionLinenumberEnd: 917
    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:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 930
      start: 922
    functionDepth: 3
    functionLinenumber: 922
    functionLinenumberEnd: 930
    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:938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 942
      start: 935
    functionDepth: 5
    functionLinenumber: 935
    functionLinenumberEnd: 942
    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::pixel_indices
      Src: /src/image/src/images/buffer.rs:952,1
    - Dst: <P as Pixel>::from_slice_mut
      Src: /src/image/src/images/buffer.rs:958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 960
      start: 951
    functionDepth: 2
    functionLinenumber: 951
    functionLinenumberEnd: 960
    functionName: ImageBuffer::get_pixel_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 3
    functionsReached:
    - ImageBuffer::pixel_indices
    - <P as Pixel>::from_slice_mut
    linkageType: ''
    returnType: '&mut P'
    signature: 'pub 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:969,1
    - Dst: saturating_add
      Src: /src/image/src/images/buffer.rs:969,1
    - Dst: saturating_mul
      Src: /src/image/src/images/buffer.rs:969,1
    - Dst: get_mut
      Src: /src/image/src/images/buffer.rs:974,1
    - Dst: checked_add
      Src: /src/image/src/images/buffer.rs:975,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:974,1
    - Dst: <P as Pixel>::from_slice_mut
      Src: /src/image/src/images/buffer.rs:976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 977
      start: 964
    functionDepth: 15
    functionLinenumber: 964
    functionLinenumberEnd: 977
    functionName: ImageBuffer::get_pixel_mut_checked
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - map
    - get_mut
    - saturating_add
    - saturating_mul
    - <P as Pixel>::from_slice_mut
    - checked_add
    linkageType: ''
    returnType: Option
    signature: 'pub fn get_pixel_mut_checked(&mut self, x: u32, y: u32) -> Option<&mut
      P>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::get_pixel_mut
      Src: /src/image/src/images/buffer.rs:1355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - P
    constantsTouched: []
    func_position:
      end: 1356
      start: 1354
    functionDepth: 3
    functionLinenumber: 1354
    functionLinenumberEnd: 1356
    functionName: ImageBuffer::put_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::get_pixel_mut
    linkageType: ''
    returnType: void
    signature: 'fn put_pixel(&mut self, x: u32, y: u32, pixel: P)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::copy_within
      Src: /src/image/src/images/buffer.rs:1035,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - data
    - src
    - len
    - dst
    argTypes:
    - '&mut [T]'
    - usize
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 1036
      start: 1031
    functionDepth: 2
    functionLinenumber: 1031
    functionLinenumberEnd: 1036
    functionName: I::m::a::g::e::B::u::f::f::e::r::::::::c::r::o::p::_::i::n::_::p::l::a::c::e::copy_within
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Result::copy_within
    linkageType: ''
    returnType: void
    signature: 'fn copy_within<T: Copy>(data: &mut [T], src: usize, len: usize, dst:
      usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rect::shrink_to_bounds_of
      Src: /src/image/src/images/buffer.rs:1028,1
    - Dst: usize::from
      Src: /src/image/src/images/buffer.rs:1047,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1051,1
    - Dst: copy_within
      Src: /src/image/src/images/buffer.rs:1053,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 1
    argNames:
    - selection
    argTypes:
    - Rect
    constantsTouched: []
    func_position:
      end: 1058
      start: 1027
    functionDepth: 13
    functionLinenumber: 1027
    functionLinenumberEnd: 1058
    functionName: ImageBuffer::crop_in_place
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Rect::shrink_to_bounds_of
    - copy_within
    - ImageBuffer::pixel_indices_unchecked
    - usize::from
    linkageType: ''
    returnType: void
    signature: 'pub fn crop_in_place(&mut self, selection: Rect)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - color
    argTypes:
    - CicpColorPrimaries
    constantsTouched: []
    func_position:
      end: 1076
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1076
    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: 1088
      start: 1086
    functionDepth: 0
    functionLinenumber: 1086
    functionLinenumberEnd: 1088
    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:1092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1091
    functionDepth: 12
    functionLinenumber: 1091
    functionLinenumberEnd: 1093
    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:1100,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - cicp
    argTypes:
    - Cicp
    constantsTouched: []
    func_position:
      end: 1102
      start: 1099
    functionDepth: 2
    functionLinenumber: 1099
    functionLinenumberEnd: 1102
    functionName: ImageBuffer::set_color_space
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Cicp::try_into_rgb
    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: 1106
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1106
    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:1123,1
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:1125,1
    - Dst: '&[P::Subpixel]::as_bytes'
      Src: /src/image/src/images/buffer.rs:1125,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1126,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - path
    argTypes:
    - Q
    constantsTouched: []
    func_position:
      end: 1130
      start: 1118
    functionDepth: 17
    functionLinenumber: 1118
    functionLinenumberEnd: 1130
    functionName: ImageBuffer::save
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - '&[P::Subpixel]::as_bytes'
    - ImageBuffer::height
    - ImageBuffer::width
    - save_buffer
    - ImageBuffer::inner_pixels
    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:1150,1
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:1152,1
    - Dst: '&[P::Subpixel]::as_bytes'
      Src: /src/image/src/images/buffer.rs:1152,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1153,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - path
    - format
    argTypes:
    - Q
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1158
      start: 1144
    functionDepth: 13
    functionLinenumber: 1144
    functionLinenumberEnd: 1158
    functionName: ImageBuffer::save_with_format
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - '&[P::Subpixel]::as_bytes'
    - ImageBuffer::height
    - ImageBuffer::width
    - save_buffer_with_format
    - ImageBuffer::inner_pixels
    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:1177,1
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:1179,1
    - Dst: '&[P::Subpixel]::as_bytes'
      Src: /src/image/src/images/buffer.rs:1179,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1180,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - format
    argTypes:
    - '&mut W'
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1185
      start: 1171
    functionDepth: 13
    functionLinenumber: 1171
    functionLinenumberEnd: 1185
    functionName: ImageBuffer::write_to
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - '&[P::Subpixel]::as_bytes'
    - write_buffer_with_format
    - ImageBuffer::height
    - ImageBuffer::width
    - ImageBuffer::inner_pixels
    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:1201,1
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:1202,1
    - Dst: '&[P::Subpixel]::as_bytes'
      Src: /src/image/src/images/buffer.rs:1202,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1203,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - E
    constantsTouched: []
    func_position:
      end: 1207
      start: 1195
    functionDepth: 2
    functionLinenumber: 1195
    functionLinenumberEnd: 1207
    functionName: ImageBuffer::write_with_encoder
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageResult::write_image
    - '&[P::Subpixel]::as_bytes'
    - ImageBuffer::height
    - ImageBuffer::width
    - ImageBuffer::inner_pixels
    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:1220,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:1221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1215
    functionDepth: 1
    functionLinenumber: 1215
    functionLinenumberEnd: 1223
    functionName: ImageBuffer::default
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - into_rgb
    - Default::default
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1235
      start: 1233
    functionDepth: 0
    functionLinenumber: 1233
    functionLinenumberEnd: 1235
    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: 1245
      start: 1243
    functionDepth: 0
    functionLinenumber: 1243
    functionLinenumberEnd: 1245
    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:1256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames: []
    argTypes:
    - (u32, u32)
    constantsTouched: []
    func_position:
      end: 1257
      start: 1255
    functionDepth: 2
    functionLinenumber: 1255
    functionLinenumberEnd: 1257
    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:1266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames: []
    argTypes:
    - (u32, u32)
    constantsTouched: []
    func_position:
      end: 1267
      start: 1265
    functionDepth: 3
    functionLinenumber: 1265
    functionLinenumberEnd: 1267
    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:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1283
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1283
    functionName: ImageBuffer::clone
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 2
    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:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - source
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 1290
      start: 1285
    functionDepth: 2
    functionLinenumber: 1285
    functionLinenumberEnd: 1290
    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: std::any::type_name::<P>
      Src: /src/image/src/images/buffer.rs:1299,1
    - Dst: u8::strip_prefix
      Src: /src/image/src/images/buffer.rs:1300,1
    - Dst: unwrap_or
      Src: /src/image/src/images/buffer.rs:1300,1
    - Dst: Result::debug_struct
      Src: /src/image/src/images/buffer.rs:1302,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:1303,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:1304,1
    - Dst: known_name
      Src: /src/image/src/images/buffer.rs:1306,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:1307,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:1309,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:1312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 1313
      start: 1298
    functionDepth: 2
    functionLinenumber: 1298
    functionLinenumberEnd: 1313
    functionName: ImageBuffer::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - u8::strip_prefix
    - field
    - std::any::type_name::<P>
    - known_name
    - Result::debug_struct
    - unwrap_or
    - finish
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::as_flat_samples
      Src: /src/image/src/images/buffer.rs:1332,1
    - Dst: FlatSamples::into_view
      Src: /src/image/src/images/buffer.rs:1332,1
    - Dst: Result::ok
      Src: /src/image/src/images/buffer.rs:1332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1331
    functionDepth: 15
    functionLinenumber: 1331
    functionLinenumberEnd: 1333
    functionName: ImageBuffer::to_pixel_view
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - FlatSamples::into_view
    - ImageBuffer::as_flat_samples
    - Result::ok
    linkageType: ''
    returnType: Option
    signature: fn to_pixel_view(&self) -> Option<ViewOfPixel<'_, Self::Pixel>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1338,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/images/buffer.rs:1339,1
    - Dst: get_unchecked
      Src: /src/image/src/images/buffer.rs:1339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1340
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1340
    functionName: ImageBuffer::unsafe_get_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - get_unchecked
    - <P as Pixel>::from_slice
    - ImageBuffer::pixel_indices_unchecked
    linkageType: ''
    returnType: P
    signature: 'unsafe fn unsafe_get_pixel(&self, x: u32, y: u32) -> P'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1343,1
    - Dst: '&RgbaImage::copy_color_space_from'
      Src: /src/image/src/images/buffer.rs:1344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1346
      start: 1342
    functionDepth: 2
    functionLinenumber: 1342
    functionLinenumberEnd: 1346
    functionName: ImageBuffer::buffer_with_dimensions
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::new
    - '&RgbaImage::copy_color_space_from'
    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:1361,1
    - Dst: <P as Pixel>::from_slice_mut
      Src: /src/image/src/images/buffer.rs:1362,1
    - Dst: get_unchecked_mut
      Src: /src/image/src/images/buffer.rs:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - P
    constantsTouched: []
    func_position:
      end: 1364
      start: 1360
    functionDepth: 1
    functionLinenumber: 1360
    functionLinenumberEnd: 1364
    functionName: ImageBuffer::unsafe_put_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - get_unchecked_mut
    - ImageBuffer::pixel_indices_unchecked
    - <P as Pixel>::from_slice_mut
    linkageType: ''
    returnType: void
    signature: 'unsafe fn unsafe_put_pixel(&mut self, x: u32, y: u32, pixel: P)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubImage::dimensions
      Src: /src/image/src/images/buffer.rs:1372,1
    - Dst: usize::from
      Src: /src/image/src/images/buffer.rs:1373,1
    - Dst: Rect::from_image_at
      Src: /src/image/src/images/buffer.rs:1374,1
    - Dst: Self::test_in_bounds_of
      Src: /src/image/src/images/buffer.rs:1374,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1377,1
    - Dst: SubImage::strides_wh
      Src: /src/image/src/images/buffer.rs:1385,1
    - Dst: SubImage::samples
      Src: /src/image/src/images/buffer.rs:1386,1
    - Dst: ImageBuffer::inner_pixels_mut
      Src: /src/image/src/images/buffer.rs:1387,1
    - Dst: img_pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1395,1
    - Dst: copy_from_slice
      Src: /src/image/src/images/buffer.rs:1398,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1401,1
    - Dst: img_pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1406,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/images/buffer.rs:1408,1
    - Dst: ImageResult::enumerate
      Src: /src/image/src/images/buffer.rs:1412,1
    - Dst: copy_from_slice
      Src: /src/image/src/images/buffer.rs:1414,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1418,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 94
    argCount: 3
    argNames:
    - view
    - x
    - y
    argTypes:
    - ViewOfPixel<'_, Self::Pixel>
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1419
      start: 1366
    functionDepth: 12
    functionLinenumber: 1366
    functionLinenumberEnd: 1419
    functionName: ImageBuffer::copy_from_samples
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - SubImage::strides_wh
    - ImageResult::enumerate
    - usize::from
    - SubImage::dimensions
    - SubImage::samples
    - copy_from_slice
    - Self::test_in_bounds_of
    - img_pixel_indices_unchecked
    - Rect::from_image_at
    - ImageBuffer::inner_pixels_mut
    - Ok
    - chunks_exact_mut
    linkageType: ''
    returnType: ImageResult
    signature: 'fn copy_from_samples(&mut self,view: ViewOfPixel<''_, Self::Pixel>,x:
      u32,y: u32,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1432,1
    - Dst: u32::max
      Src: /src/image/src/images/buffer.rs:1432,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1432,1
    - Dst: ImageResult::max
      Src: /src/image/src/images/buffer.rs:1432,1
    - Dst: rev
      Src: /src/image/src/images/buffer.rs:1437,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1440,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1441,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1442,1
    - Dst: copy_within
      Src: /src/image/src/images/buffer.rs:1443,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1449,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1450,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1451,1
    - Dst: copy_within
      Src: /src/image/src/images/buffer.rs:1452,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 63
    argCount: 3
    argNames:
    - source
    - x
    - y
    argTypes:
    - Rect
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1456
      start: 1421
    functionDepth: 2
    functionLinenumber: 1421
    functionLinenumberEnd: 1456
    functionName: ImageBuffer::copy_within
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::height
    - ImageBuffer::width
    - rev
    - ImageResult::max
    - ImageBuffer::pixel_indices_unchecked
    - u32::max
    - copy_within
    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:1477,1
    - Dst: Option::expect
      Src: /src/image/src/images/buffer.rs:1477,1
    - Dst: into_rgb
      Src: /src/image/src/images/buffer.rs:1483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1486
      start: 1476
    functionDepth: 1
    functionLinenumber: 1476
    functionLinenumberEnd: 1486
    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:1494,1
    - Dst: std::io::Result::pixels_mut
      Src: /src/image/src/images/buffer.rs:1495,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - width
    - height
    - pixel
    argTypes:
    - u32
    - u32
    - P
    constantsTouched: []
    func_position:
      end: 1499
      start: 1493
    functionDepth: 2
    functionLinenumber: 1493
    functionLinenumberEnd: 1499
    functionName: ImageBuffer::from_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 24
    functionsReached:
    - ImageBuffer::new
    - std::io::Result::pixels_mut
    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:1512,1
    - Dst: std::io::Result::enumerate_pixels_mut
      Src: /src/image/src/images/buffer.rs:1513,1
    - Dst: f
      Src: /src/image/src/images/buffer.rs:1514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - width
    - height
    - f
    argTypes:
    - u32
    - u32
    - F
    constantsTouched: []
    func_position:
      end: 1517
      start: 1508
    functionDepth: 16
    functionLinenumber: 1508
    functionLinenumberEnd: 1517
    functionName: ImageBuffer::from_fn
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 24
    functionsReached:
    - ImageBuffer::new
    - std::io::Result::enumerate_pixels_mut
    - f
    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:1527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - width
    - height
    - buf
    argTypes:
    - u32
    - u32
    - Vec<P::Subpixel>
    constantsTouched: []
    func_position:
      end: 1528
      start: 1522
    functionDepth: 3
    functionLinenumber: 1522
    functionLinenumberEnd: 1528
    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:1534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1533
    functionDepth: 1
    functionLinenumber: 1533
    functionLinenumberEnd: 1535
    functionName: ImageBuffer::into_vec
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::into_raw
    linkageType: ''
    returnType: Vec
    signature: pub fn into_vec(self) -> Vec<P::Subpixel>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:1553,1
    - Dst: '&[P::Subpixel]::len'
      Src: /src/image/src/images/buffer.rs:1553,1
    - Dst: truncate
      Src: /src/image/src/images/buffer.rs:1554,1
    - Dst: shrink_to_fit
      Src: /src/image/src/images/buffer.rs:1555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1552
    functionDepth: 2
    functionLinenumber: 1552
    functionLinenumberEnd: 1556
    functionName: ImageBuffer::shrink_to_fit
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - '&[P::Subpixel]::len'
    - ImageBuffer::inner_pixels
    - truncate
    - shrink_to_fit
    linkageType: ''
    returnType: void
    signature: pub fn shrink_to_fit(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&ImageBuffer<O, C>'
    constantsTouched: []
    func_position:
      end: 1565
      start: 1563
    functionDepth: 0
    functionLinenumber: 1563
    functionLinenumberEnd: 1565
    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: Self::from_raw
      Src: /src/image/src/images/buffer.rs:1575,1
    - Dst: Option::pixels_mut
      Src: /src/image/src/images/buffer.rs:1577,1
    - Dst: reverse
      Src: /src/image/src/images/buffer.rs:1578,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:1581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - width
    - height
    - container
    argTypes:
    - u32
    - u32
    - Container
    constantsTouched: []
    func_position:
      end: 1582
      start: 1574
    functionDepth: 4
    functionLinenumber: 1574
    functionLinenumberEnd: 1582
    functionName: ImageBuffer::from_raw_bgr
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::pixels_mut
    - reverse
    - Self::from_raw
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_raw_bgr(width: u32, height: u32, container: Container)
      -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::pixels_mut
      Src: /src/image/src/images/buffer.rs:1586,1
    - Dst: reverse
      Src: /src/image/src/images/buffer.rs:1587,1
    - Dst: ImageBuffer::into_raw
      Src: /src/image/src/images/buffer.rs:1590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1585
    functionDepth: 3
    functionLinenumber: 1585
    functionLinenumberEnd: 1591
    functionName: ImageBuffer::into_raw_bgr
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::pixels_mut
    - ImageBuffer::into_raw
    - reverse
    linkageType: ''
    returnType: Container
    signature: pub fn into_raw_bgr(mut self) -> Container
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_raw
      Src: /src/image/src/images/buffer.rs:1601,1
    - Dst: Option::pixels_mut
      Src: /src/image/src/images/buffer.rs:1603,1
    - Dst: reverse
      Src: /src/image/src/images/buffer.rs:1604,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:1607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - width
    - height
    - container
    argTypes:
    - u32
    - u32
    - Container
    constantsTouched: []
    func_position:
      end: 1608
      start: 1600
    functionDepth: 4
    functionLinenumber: 1600
    functionLinenumberEnd: 1608
    functionName: ImageBuffer::from_raw_bgra
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::pixels_mut
    - reverse
    - Self::from_raw
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_raw_bgra(width: u32, height: u32, container: Container)
      -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::pixels_mut
      Src: /src/image/src/images/buffer.rs:1612,1
    - Dst: reverse
      Src: /src/image/src/images/buffer.rs:1613,1
    - Dst: ImageBuffer::into_raw
      Src: /src/image/src/images/buffer.rs:1616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1611
    functionDepth: 3
    functionLinenumber: 1611
    functionLinenumberEnd: 1617
    functionName: ImageBuffer::into_raw_bgra
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::pixels_mut
    - ImageBuffer::into_raw
    - reverse
    linkageType: ''
    returnType: Container
    signature: pub fn into_raw_bgra(mut self) -> Container
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GrayImage::dimensions
      Src: /src/image/src/images/buffer.rs:1640,1
    - Dst: GrayImage::into_raw
      Src: /src/image/src/images/buffer.rs:1641,1
    - Dst: Result::len
      Src: /src/image/src/images/buffer.rs:1642,1
    - Dst: Result::resize
      Src: /src/image/src/images/buffer.rs:1643,1
    - Dst: ImageResult::checked_mul
      Src: /src/image/src/images/buffer.rs:1643,1
    - Dst: unwrap
      Src: /src/image/src/images/buffer.rs:1643,1
    - Dst: ImageBuffer::from_vec
      Src: /src/image/src/images/buffer.rs:1644,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1644,1
    - Dst: utils::expand_packed
      Src: /src/image/src/images/buffer.rs:1645,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 2
    argNames:
    - palette
    - transparent_idx
    argTypes:
    - '&[(u8, u8, u8)]'
    - Option<u8>
    constantsTouched: []
    func_position:
      end: 1662
      start: 1635
    functionDepth: 12
    functionLinenumber: 1635
    functionLinenumberEnd: 1662
    functionName: GrayImage::expand_palette
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Result::resize
    - ImageBuffer::from_vec
    - Option::unwrap
    - GrayImage::into_raw
    - Result::len
    - utils::expand_packed
    - ImageResult::checked_mul
    - unwrap
    - GrayImage::dimensions
    linkageType: ''
    returnType: RgbaImage
    signature: 'pub fn expand_palette(self,palette: &[(u8, u8, u8)],transparent_idx:
      Option<u8>,) -> RgbaImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1693,1
    - Dst: '&RgbaImage::copy_color_space_from'
      Src: /src/image/src/images/buffer.rs:1694,1
    - Dst: '&RgbaImage::pixels_mut'
      Src: /src/image/src/images/buffer.rs:1695,1
    - Dst: PixelsMutPar::zip
      Src: /src/image/src/images/buffer.rs:1695,1
    - Dst: ImageBuffer::pixels
      Src: /src/image/src/images/buffer.rs:1695,1
    - Dst: ImageResult::from_color
      Src: /src/image/src/images/buffer.rs:1696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1691
    functionDepth: 5
    functionLinenumber: 1691
    functionLinenumberEnd: 1699
    functionName: ImageBuffer::convert
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 3
    functionsReached:
    - '&RgbaImage::pixels_mut'
    - ImageBuffer::pixels
    - ImageResult::from_color
    - '&RgbaImage::copy_color_space_from'
    - PixelsMutPar::zip
    - ImageBuffer::new
    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:1726,1
    - Dst: is_none
      Src: /src/image/src/images/buffer.rs:1729,1
    - Dst: CicpTransform::new
      Src: /src/image/src/images/buffer.rs:1730,1
    - Dst: as_ref
      Src: /src/image/src/images/buffer.rs:1733,1
    - Dst: ok_or_else
      Src: /src/image/src/images/buffer.rs:1733,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/images/buffer.rs:1734,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/images/buffer.rs:1734,1
    - Dst: UnsupportedErrorKind::ColorspaceCicp
      Src: /src/image/src/images/buffer.rs:1737,1
    - Dst: qualify_stability
      Src: /src/image/src/images/buffer.rs:1737,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - from_color
    - into_color
    argTypes:
    - Cicp
    - Cicp
    constantsTouched: []
    func_position:
      end: 1744
      start: 1720
    functionDepth: 15
    functionLinenumber: 1720
    functionLinenumberEnd: 1744
    functionName: ConvertColorOptions::as_transform
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 2
    functionsReached:
    - as_ref
    - ok_or_else
    - ImageError::Unsupported
    - UnsupportedError::from_format_and_kind
    - is_none
    - UnsupportedErrorKind::ColorspaceCicp
    - qualify_stability
    - Result::check_applicable
    - CicpTransform::new
    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:1755,1
    - Dst: ConvertColorOptions::as_transform
      Src: /src/image/src/images/buffer.rs:1755,1
    - Dst: "as_transform(from_color, into_color)?\n            .supported_transform_fn::<FromType,\
        \ IntoType>"
      Src: /src/image/src/images/buffer.rs:1755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - from_color
    - into_color
    argTypes:
    - Cicp
    - Cicp
    constantsTouched: []
    func_position:
      end: 1758
      start: 1746
    functionDepth: 16
    functionLinenumber: 1746
    functionLinenumberEnd: 1758
    functionName: ConvertColorOptions::as_transform_fn
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - "as_transform(from_color, into_color)?\n            .supported_transform_fn::<FromType,\
      \ IntoType>"
    - Ok
    - ConvertColorOptions::as_transform
    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:1786,1
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:1788,1
    - Dst: ImageBuffer::from_vec
      Src: /src/image/src/images/buffer.rs:1789,1
    - Dst: Option::expect
      Src: /src/image/src/images/buffer.rs:1789,1
    - Dst: '&RgbaImage::copy_color_space_from'
      Src: /src/image/src/images/buffer.rs:1791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1776
    functionDepth: 4
    functionLinenumber: 1776
    functionLinenumberEnd: 1793
    functionName: ImageBuffer::cast_in_color_space
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - "color\n            .cast_pixels::<SelfPixel, IntoPixel>"
    - Option::expect
    - ImageBuffer::from_vec
    - '&RgbaImage::copy_color_space_from'
    - ImageBuffer::inner_pixels
    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:1817,1
    - Dst: Self::dimensions
      Src: /src/image/src/images/buffer.rs:1817,1
    - Dst: Err
      Src: /src/image/src/images/buffer.rs:1818,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/images/buffer.rs:1818,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/images/buffer.rs:1818,1
    - Dst: as_transform_fn::<FromType, SelfPixel>
      Src: /src/image/src/images/buffer.rs:1823,1
    - Dst: Self::color_space
      Src: /src/image/src/images/buffer.rs:1824,1
    - Dst: ImageBuffer::color_space
      Src: /src/image/src/images/buffer.rs:1824,1
    - Dst: Self::inner_pixels
      Src: /src/image/src/images/buffer.rs:1826,1
    - Dst: ImageBuffer::inner_pixels_mut
      Src: /src/image/src/images/buffer.rs:1827,1
    - Dst: transform
      Src: /src/image/src/images/buffer.rs:1835,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 2
    argNames:
    - from
    - options
    argTypes:
    - '&ImageBuffer<FromType, D>'
    - ConvertColorOptions
    constantsTouched: []
    func_position:
      end: 1838
      start: 1808
    functionDepth: 12
    functionLinenumber: 1808
    functionLinenumberEnd: 1838
    functionName: ImageBuffer::copy_from_color_space
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::dimensions
    - Self::color_space
    - transform
    - Err
    - ImageBuffer::color_space
    - as_transform_fn::<FromType, SelfPixel>
    - ImageBuffer::inner_pixels_mut
    - ImageError::Parameter
    - ParameterError::from_kind
    - Self::dimensions
    - Self::inner_pixels
    - Ok
    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:1856,1
    - Dst: ImageBuffer::color_space
      Src: /src/image/src/images/buffer.rs:1856,1
    - Dst: ImageBuffer::dimensions
      Src: /src/image/src/images/buffer.rs:1858,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1859,1
    - Dst: ImageBuffer::inner_pixels
      Src: /src/image/src/images/buffer.rs:1861,1
    - Dst: inner_pixels_mut
      Src: /src/image/src/images/buffer.rs:1862,1
    - Dst: transform
      Src: /src/image/src/images/buffer.rs:1864,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - color
    - options
    argTypes:
    - Cicp
    - ConvertColorOptions
    constantsTouched: []
    func_position:
      end: 1867
      start: 1847
    functionDepth: 13
    functionLinenumber: 1847
    functionLinenumberEnd: 1867
    functionName: ImageBuffer::to_color_space
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::dimensions
    - inner_pixels_mut
    - transform
    - ImageBuffer::color_space
    - ImageBuffer::new
    - Ok
    - ImageBuffer::inner_pixels
    - 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:1875,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1876,1
    - Dst: as_transform_fn::<SelfPixel, SelfPixel>
      Src: /src/image/src/images/buffer.rs:1880,1
    - Dst: ImageBuffer::color_space
      Src: /src/image/src/images/buffer.rs:1880,1
    - Dst: len
      Src: /src/image/src/images/buffer.rs:1883,1
    - Dst: usize::from
      Src: /src/image/src/images/buffer.rs:1883,1
    - Dst: usize::from
      Src: /src/image/src/images/buffer.rs:1884,1
    - Dst: chunks_mut
      Src: /src/image/src/images/buffer.rs:1886,1
    - Dst: Option::len
      Src: /src/image/src/images/buffer.rs:1887,1
    - Dst: copy_from_slice
      Src: /src/image/src/images/buffer.rs:1888,1
    - Dst: transform
      Src: /src/image/src/images/buffer.rs:1889,1
    - Dst: bool::into_rgb
      Src: /src/image/src/images/buffer.rs:1892,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1894,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 2
    argNames:
    - color
    - options
    argTypes:
    - Cicp
    - ConvertColorOptions
    constantsTouched: []
    func_position:
      end: 1895
      start: 1870
    functionDepth: 13
    functionLinenumber: 1870
    functionLinenumberEnd: 1895
    functionName: ImageBuffer::apply_color_space
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - bool::into_rgb
    - as_transform_fn::<SelfPixel, SelfPixel>
    - usize::from
    - transform
    - copy_from_slice
    - chunks_mut
    - ImageBuffer::color_space
    - len
    - Ok
    - Option::len
    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:1925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1926
      start: 1924
    functionDepth: 6
    functionLinenumber: 1924
    functionLinenumberEnd: 1926
    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:1931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1932
      start: 1930
    functionDepth: 2
    functionLinenumber: 1930
    functionLinenumberEnd: 1932
    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:1937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1938
      start: 1936
    functionDepth: 4
    functionLinenumber: 1936
    functionLinenumberEnd: 1938
    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:1943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1944
      start: 1942
    functionDepth: 4
    functionLinenumber: 1942
    functionLinenumberEnd: 1944
    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:1949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1950
      start: 1948
    functionDepth: 5
    functionLinenumber: 1948
    functionLinenumberEnd: 1950
    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:1955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1956
      start: 1954
    functionDepth: 4
    functionLinenumber: 1954
    functionLinenumberEnd: 1956
    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:1961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1962
      start: 1960
    functionDepth: 4
    functionLinenumber: 1960
    functionLinenumberEnd: 1962
    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:1967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1968
      start: 1966
    functionDepth: 4
    functionLinenumber: 1966
    functionLinenumberEnd: 1968
    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:1973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1974
      start: 1972
    functionDepth: 4
    functionLinenumber: 1972
    functionLinenumberEnd: 1974
    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:1994,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1992
    functionDepth: 3
    functionLinenumber: 1992
    functionLinenumberEnd: 1996
    functionName: test::slice_buffer
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn slice_buffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:2025,1
    - Dst: get_mut
      Src: /src/image/src/images/buffer.rs:2027,1
    - Dst: unwrap
      Src: /src/image/src/images/buffer.rs:2027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2024
    functionDepth: 2
    functionLinenumber: 2024
    functionLinenumberEnd: 2031
    functionName: test::get_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::new
    - unwrap
    - get_mut
    linkageType: ''
    returnType: void
    signature: fn get_pixel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:2035,1
    - Dst: get_pixel_mut_checked
      Src: /src/image/src/images/buffer.rs:2036,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:2036,1
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:2047,1
    - Dst: put_pixel
      Src: /src/image/src/images/buffer.rs:2048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2034
    functionDepth: 16
    functionLinenumber: 2034
    functionLinenumberEnd: 2052
    functionName: test::get_pixel_checked
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - put_pixel
    - get_pixel_mut_checked
    - RgbImage::new
    - Option::unwrap
    - ImageBuffer::new
    linkageType: ''
    returnType: void
    signature: fn get_pixel_checked()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:2056,1
    - Dst: pixels_mut
      Src: /src/image/src/images/buffer.rs:2058,1
    - Dst: PixelsMutPar::next
      Src: /src/image/src/images/buffer.rs:2058,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:2058,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2055
    functionDepth: 3
    functionLinenumber: 2055
    functionLinenumberEnd: 2062
    functionName: test::mut_iter
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - pixels_mut
    - PixelsMutPar::next
    - ImageBuffer::new
    - color::Rgb
    linkageType: ''
    returnType: void
    signature: fn mut_iter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::from_raw
      Src: /src/image/src/images/buffer.rs:2096,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/buffer.rs:2096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2105
      start: 2095
    functionDepth: 4
    functionLinenumber: 2095
    functionLinenumberEnd: 2105
    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:2109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2111
      start: 2108
    functionDepth: 0
    functionLinenumber: 2108
    functionLinenumberEnd: 2111
    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:2116,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:2116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2124
      start: 2115
    functionDepth: 3
    functionLinenumber: 2115
    functionLinenumberEnd: 2124
    functionName: test::test_image_buffer_copy_within_oob
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_image_buffer_copy_within_oob()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:2130,1
    - Dst: Vec::from
      Src: /src/image/src/images/buffer.rs:2130,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:2130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2142
      start: 2127
    functionDepth: 3
    functionLinenumber: 2127
    functionLinenumberEnd: 2142
    functionName: test::test_image_buffer_copy_within_tl
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Vec::from
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_image_buffer_copy_within_tl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:2148,1
    - Dst: Vec::from
      Src: /src/image/src/images/buffer.rs:2148,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:2148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2145
    functionDepth: 3
    functionLinenumber: 2145
    functionLinenumberEnd: 2160
    functionName: test::test_image_buffer_copy_within_tr
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Vec::from
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_image_buffer_copy_within_tr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:2166,1
    - Dst: Vec::from
      Src: /src/image/src/images/buffer.rs:2166,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:2166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2163
    functionDepth: 3
    functionLinenumber: 2163
    functionLinenumberEnd: 2178
    functionName: test::test_image_buffer_copy_within_bl
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Vec::from
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_image_buffer_copy_within_bl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:2184,1
    - Dst: Vec::from
      Src: /src/image/src/images/buffer.rs:2184,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:2184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2181
    functionDepth: 3
    functionLinenumber: 2181
    functionLinenumberEnd: 2196
    functionName: test::test_image_buffer_copy_within_br
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Vec::from
    - Option::unwrap
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn test_image_buffer_copy_within_br()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:2203,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:2203,1
    - Dst: std::io::Cursor::new
      Src: /src/image/src/images/buffer.rs:2204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2206
      start: 2200
    functionDepth: 3
    functionLinenumber: 2200
    functionLinenumberEnd: 2206
    functionName: test::write_to_with_large_buffer
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - std::io::Cursor::new
    - ImageBuffer::from_raw
    linkageType: ''
    returnType: void
    signature: fn write_to_with_large_buffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::from_raw
      Src: /src/image/src/images/buffer.rs:2216,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/buffer.rs:2216,1
    - Dst: Vec::pixels
      Src: /src/image/src/images/buffer.rs:2218,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2219,1
    - Dst: Vec::pixels_mut
      Src: /src/image/src/images/buffer.rs:2222,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2223,1
    - Dst: Vec::rows
      Src: /src/image/src/images/buffer.rs:2226,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2227,1
    - Dst: Vec::rows_mut
      Src: /src/image/src/images/buffer.rs:2230,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2231,1
    - Dst: Vec::enumerate_pixels
      Src: /src/image/src/images/buffer.rs:2234,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2235,1
    - Dst: Vec::enumerate_rows
      Src: /src/image/src/images/buffer.rs:2238,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2239,1
    - Dst: Vec::enumerate_pixels_mut
      Src: /src/image/src/images/buffer.rs:2242,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2243,1
    - Dst: Vec::enumerate_rows_mut
      Src: /src/image/src/images/buffer.rs:2246,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2249
      start: 2209
    functionDepth: 14
    functionLinenumber: 2209
    functionLinenumberEnd: 2249
    functionName: test::exact_size_iter_size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ExactSizeIterator::len
    - ImageResult::unwrap
    - Vec::enumerate_pixels
    - Vec::enumerate_rows
    - Vec::enumerate_pixels_mut
    - Vec::enumerate_rows_mut
    - RgbImage::from_raw
    - Vec::rows
    - Vec::rows_mut
    - Vec::pixels_mut
    - Vec::pixels
    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:2253,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2253,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2254,1
    - Dst: color::Rgba
      Src: /src/image/src/images/buffer.rs:2254,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2254,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2256,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/buffer.rs:2257,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2259,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/buffer.rs:2260,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/buffer.rs:2262,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2252
    functionDepth: 17
    functionLinenumber: 2252
    functionLinenumberEnd: 2266
    functionName: test::color_conversion
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - Option::set_transfer_function
    - copy_from_color_space
    - set_transfer_function
    - set_rgb_primaries
    - color::Rgba
    - ImageBuffer::from_fn
    - color::Rgb
    - Option::set_rgb_primaries
    linkageType: ''
    returnType: void
    signature: fn color_conversion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2270,1
    - Dst: color::Luma
      Src: /src/image/src/images/buffer.rs:2270,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2271,1
    - Dst: color::Rgba
      Src: /src/image/src/images/buffer.rs:2271,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2271,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2273,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/buffer.rs:2274,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2276,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/buffer.rs:2277,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/buffer.rs:2279,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2283
      start: 2269
    functionDepth: 17
    functionLinenumber: 2269
    functionLinenumberEnd: 2283
    functionName: test::gray_conversions
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - color::Luma
    - Option::set_transfer_function
    - copy_from_color_space
    - set_transfer_function
    - set_rgb_primaries
    - color::Rgba
    - ImageBuffer::from_fn
    - Option::set_rgb_primaries
    linkageType: ''
    returnType: void
    signature: fn gray_conversions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2287,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2287,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2288,1
    - Dst: color::Luma
      Src: /src/image/src/images/buffer.rs:2288,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2288,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2290,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/buffer.rs:2291,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2293,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/buffer.rs:2294,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/buffer.rs:2296,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2286
    functionDepth: 17
    functionLinenumber: 2286
    functionLinenumberEnd: 2300
    functionName: test::rgb_to_gray_conversion
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - color::Luma
    - Option::set_transfer_function
    - copy_from_color_space
    - set_transfer_function
    - set_rgb_primaries
    - ImageBuffer::from_fn
    - color::Rgb
    - Option::set_rgb_primaries
    linkageType: ''
    returnType: void
    signature: fn rgb_to_gray_conversion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2304,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2304,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/buffer.rs:2306,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/buffer.rs:2307,1
    - Dst: '&RgbaImage::apply_color_space'
      Src: /src/image/src/images/buffer.rs:2309,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2310,1
    - Dst: ImageResult::expect
      Src: /src/image/src/images/buffer.rs:2309,1
    - Dst: '&RgbaImage::pixels'
      Src: /src/image/src/images/buffer.rs:2313,1
    - Dst: ImageResult::for_each
      Src: /src/image/src/images/buffer.rs:2313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2316
      start: 2303
    functionDepth: 17
    functionLinenumber: 2303
    functionLinenumberEnd: 2316
    functionName: test::apply_color
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_rgb_primaries'
    - ImageResult::for_each
    - Default::default
    - color::Rgb
    - ImageResult::expect
    - '&RgbaImage::set_transfer_function'
    - '&RgbaImage::pixels'
    - ImageBuffer::from_fn
    - '&RgbaImage::apply_color_space'
    linkageType: ''
    returnType: void
    signature: fn apply_color()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2320,1
    - Dst: color::Rgba
      Src: /src/image/src/images/buffer.rs:2320,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2321,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/buffer.rs:2322,1
    - Dst: to_color_space::<Rgb<u8>>
      Src: /src/image/src/images/buffer.rs:2324,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2325,1
    - Dst: expect
      Src: /src/image/src/images/buffer.rs:2324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2329
      start: 2319
    functionDepth: 17
    functionLinenumber: 2319
    functionLinenumberEnd: 2329
    functionName: test::to_color
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::set_transfer_function
    - Default::default
    - to_color_space::<Rgb<u8>>
    - color::Rgba
    - expect
    - ImageBuffer::from_fn
    - Option::set_rgb_primaries
    linkageType: ''
    returnType: void
    signature: fn to_color()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2333,1
    - Dst: color::Luma
      Src: /src/image/src/images/buffer.rs:2333,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2334,1
    - Dst: color::Rgba
      Src: /src/image/src/images/buffer.rs:2334,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2334,1
    - Dst: Option::set_color_space
      Src: /src/image/src/images/buffer.rs:2336,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/buffer.rs:2336,1
    - Dst: set_color_space
      Src: /src/image/src/images/buffer.rs:2337,1
    - Dst: unwrap
      Src: /src/image/src/images/buffer.rs:2337,1
    - Dst: CicpTransform::new
      Src: /src/image/src/images/buffer.rs:2340,1
    - Dst: super::ConvertColorOptions::default
      Src: /src/image/src/images/buffer.rs:2341,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/buffer.rs:2344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2346
      start: 2332
    functionDepth: 17
    functionLinenumber: 2332
    functionLinenumberEnd: 2346
    functionName: test::transformation_mismatch
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - Default::default
    - copy_from_color_space
    - color::Rgba
    - Option::set_color_space
    - unwrap
    - super::ConvertColorOptions::default
    - ImageBuffer::from_fn
    - set_color_space
    - CicpTransform::new
    - color::Luma
    linkageType: ''
    returnType: void
    signature: fn transformation_mismatch()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/buffer.rs:2393,1
    - Dst: color::Luma
      Src: /src/image/src/images/buffer.rs:2393,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/buffer.rs:2403,1
    - Dst: color::Rgba
      Src: /src/image/src/images/buffer.rs:2403,1
    - Dst: DynamicImage::set_color_space
      Src: /src/image/src/images/buffer.rs:2404,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/buffer.rs:2404,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/buffer.rs:2410,1
    - Dst: color::Rgba
      Src: /src/image/src/images/buffer.rs:2410,1
    - Dst: ImageBuffer::set_color_space
      Src: /src/image/src/images/buffer.rs:2411,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/buffer.rs:2411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2349
    functionDepth: 3
    functionLinenumber: 2349
    functionLinenumberEnd: 2423
    functionName: test::pleasant_debug
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - ImageBuffer::from_pixel
    - color::Luma
    - color::Rgba
    - ImageBuffer::set_color_space
    - DynamicImage::set_color_space
    linkageType: ''
    returnType: void
    signature: fn pleasant_debug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:2428,1
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:2429,1
    - Dst: Option::put_pixel
      Src: /src/image/src/images/buffer.rs:2431,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2431,1
    - Dst: Option::put_pixel
      Src: /src/image/src/images/buffer.rs:2432,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2432,1
    - Dst: Option::put_pixel
      Src: /src/image/src/images/buffer.rs:2433,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2433,1
    - Dst: Option::view
      Src: /src/image/src/images/buffer.rs:2435,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/buffer.rs:2435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2448
      start: 2427
    functionDepth: 14
    functionLinenumber: 2427
    functionLinenumberEnd: 2448
    functionName: test::copy_from_subimage_to_middle
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::view
    - color::Rgb
    - RgbImage::new
    - Option::put_pixel
    - Rect::from_xy_ranges
    linkageType: ''
    returnType: void
    signature: fn copy_from_subimage_to_middle()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::from_fn
      Src: /src/image/src/images/buffer.rs:2452,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2452,1
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:2453,1
    - Dst: Option::chunks_exact
      Src: /src/image/src/images/buffer.rs:2457,1
    - Dst: chunks_exact
      Src: /src/image/src/images/buffer.rs:2458,1
    - Dst: skip
      Src: /src/image/src/images/buffer.rs:2458,1
    - Dst: take
      Src: /src/image/src/images/buffer.rs:2458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2451
    functionDepth: 17
    functionLinenumber: 2451
    functionLinenumberEnd: 2461
    functionName: test::copy_from_band
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - RgbImage::from_fn
    - take
    - chunks_exact
    - skip
    - RgbImage::new
    - Option::chunks_exact
    - color::Rgb
    linkageType: ''
    returnType: void
    signature: fn copy_from_band()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2465,1
    - Dst: crate::flat::FlatSamples::with_monocolor
      Src: /src/image/src/images/buffer.rs:2466,1
    - Dst: ImageResult::as_view
      Src: /src/image/src/images/buffer.rs:2467,1
    - Dst: Result::unwrap
      Src: /src/image/src/images/buffer.rs:2467,1
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:2469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2482
      start: 2464
    functionDepth: 16
    functionLinenumber: 2464
    functionLinenumberEnd: 2482
    functionName: test::copy_from_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - crate::flat::FlatSamples::with_monocolor
    - RgbImage::new
    - ImageResult::as_view
    - color::Rgb
    linkageType: ''
    returnType: void
    signature: fn copy_from_pixel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_view::<LumaA<u8>>
      Src: /src/image/src/images/buffer.rs:2505,1
    - Dst: unwrap
      Src: /src/image/src/images/buffer.rs:2505,1
    - Dst: crate::GrayAlphaImage::new
      Src: /src/image/src/images/buffer.rs:2506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2518
      start: 2485
    functionDepth: 0
    functionLinenumber: 2485
    functionLinenumberEnd: 2518
    functionName: test::copy_from_strided
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - as_view::<LumaA<u8>>
    - unwrap
    - crate::GrayAlphaImage::new
    linkageType: ''
    returnType: void
    signature: fn copy_from_strided()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_view::<LumaA<u8>>
      Src: /src/image/src/images/buffer.rs:2541,1
    - Dst: unwrap
      Src: /src/image/src/images/buffer.rs:2541,1
    - Dst: SubImage::view
      Src: /src/image/src/images/buffer.rs:2542,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/buffer.rs:2542,1
    - Dst: crate::GrayAlphaImage::new
      Src: /src/image/src/images/buffer.rs:2544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2554
      start: 2521
    functionDepth: 14
    functionLinenumber: 2521
    functionLinenumberEnd: 2554
    functionName: test::copy_from_strided_subimage
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - as_view::<LumaA<u8>>
    - SubImage::view
    - unwrap
    - crate::GrayAlphaImage::new
    - Rect::from_xy_ranges
    linkageType: ''
    returnType: void
    signature: fn copy_from_strided_subimage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:2558,1
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:2559,1
    - Dst: Option::put_pixel
      Src: /src/image/src/images/buffer.rs:2561,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2561,1
    - Dst: Option::put_pixel
      Src: /src/image/src/images/buffer.rs:2562,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2562,1
    - Dst: Option::put_pixel
      Src: /src/image/src/images/buffer.rs:2563,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2563,1
    - Dst: Option::view
      Src: /src/image/src/images/buffer.rs:2565,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/buffer.rs:2565,1
    - Dst: SubImage::view
      Src: /src/image/src/images/buffer.rs:2566,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/buffer.rs:2566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2557
    functionDepth: 14
    functionLinenumber: 2557
    functionLinenumberEnd: 2577
    functionName: test::copy_from_subimage_subimage
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::view
    - SubImage::view
    - color::Rgb
    - RgbImage::new
    - Option::put_pixel
    - Rect::from_xy_ranges
    linkageType: ''
    returnType: void
    signature: fn copy_from_subimage_subimage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:2587,1
    - Dst: pixels_mut
      Src: /src/image/src/images/buffer.rs:2588,1
    - Dst: Result::channels_mut
      Src: /src/image/src/images/buffer.rs:2589,1
    - Dst: iter
      Src: /src/image/src/images/buffer.rs:2596,1
    - Dst: convert
      Src: /src/image/src/images/buffer.rs:2597,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:2600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 2603
      start: 2586
    functionDepth: 6
    functionLinenumber: 2586
    functionLinenumberEnd: 2603
    functionName: benchmarks::conversion
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - convert
    - test::black_box
    - pixels_mut
    - Result::channels_mut
    - ImageBuffer::new
    - iter
    linkageType: ''
    returnType: void
    signature: 'fn conversion(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:2607,1
    - Dst: pixels_mut
      Src: /src/image/src/images/buffer.rs:2608,1
    - Dst: Result::channels_mut
      Src: /src/image/src/images/buffer.rs:2609,1
    - Dst: iter
      Src: /src/image/src/images/buffer.rs:2615,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:2616,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/images/buffer.rs:2620,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2621,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2622,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2623,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:2626,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 2630
      start: 2606
    functionDepth: 3
    functionLinenumber: 2606
    functionLinenumberEnd: 2630
    functionName: benchmarks::image_access_row_by_row
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - test::black_box
    - Vec::get_pixel
    - pixels_mut
    - Result::channels_mut
    - ImageBuffer::new
    - iter
    - wrapping_add
    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:2634,1
    - Dst: pixels_mut
      Src: /src/image/src/images/buffer.rs:2635,1
    - Dst: Result::channels_mut
      Src: /src/image/src/images/buffer.rs:2636,1
    - Dst: iter
      Src: /src/image/src/images/buffer.rs:2642,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:2643,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/images/buffer.rs:2647,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2648,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2649,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2650,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:2653,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 2657
      start: 2633
    functionDepth: 3
    functionLinenumber: 2633
    functionLinenumberEnd: 2657
    functionName: benchmarks::image_access_col_by_col
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - test::black_box
    - Vec::get_pixel
    - pixels_mut
    - Result::channels_mut
    - ImageBuffer::new
    - iter
    - wrapping_add
    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: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 111
    functionName: CicpColorPrimaries::is_supported_for_transform
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub const fn is_supported_for_transform(self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 130
    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: 220
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 220
    functionName: CicpTransferCharacteristics::is_supported_for_transform
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub const fn is_supported_for_transform(self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 244
    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:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 325
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 325
    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:400,1
    - Dst: Img::qualify_stability
      Src: /src/image/src/metadata/cicp.rs:400,1
    - Dst: Self::into_rgb
      Src: /src/image/src/metadata/cicp.rs:410,1
    - Dst: CicpRgb::derived_luminance
      Src: /src/image/src/metadata/cicp.rs:410,1
    - Dst: Img::into_rgb
      Src: /src/image/src/metadata/cicp.rs:411,1
    - Dst: CicpRgb::derived_luminance
      Src: /src/image/src/metadata/cicp.rs:411,1
    - Dst: Self::to_moxcms_compute_profile
      Src: /src/image/src/metadata/cicp.rs:413,1
    - Dst: Img::to_moxcms_compute_profile
      Src: /src/image/src/metadata/cicp.rs:414,1
    - Dst: moxcms::TransformOptions::default
      Src: /src/image/src/metadata/cicp.rs:416,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:419,1
    - Dst: map_layout
      Src: /src/image/src/metadata/cicp.rs:420,1
    - Dst: map_layout
      Src: /src/image/src/metadata/cicp.rs:421,1
    - Dst: Self::create_transform_f32
      Src: /src/image/src/metadata/cicp.rs:423,1
    - Dst: ok
      Src: /src/image/src/metadata/cicp.rs:423,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:427,1
    - Dst: any
      Src: /src/image/src/metadata/cicp.rs:427,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:431,1
    - Dst: Some
      Src: /src/image/src/metadata/cicp.rs:435,1
    - Dst: Self::build_transforms
      Src: /src/image/src/metadata/cicp.rs:438,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:439,1
    - Dst: map_layout
      Src: /src/image/src/metadata/cicp.rs:440,1
    - Dst: map_layout
      Src: /src/image/src/metadata/cicp.rs:441,1
    - Dst: Self::create_transform_8bit
      Src: /src/image/src/metadata/cicp.rs:443,1
    - Dst: ok
      Src: /src/image/src/metadata/cicp.rs:443,1
    - Dst: clone
      Src: /src/image/src/metadata/cicp.rs:446,1
    - Dst: Self::build_transforms
      Src: /src/image/src/metadata/cicp.rs:449,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:450,1
    - Dst: map_layout
      Src: /src/image/src/metadata/cicp.rs:451,1
    - Dst: map_layout
      Src: /src/image/src/metadata/cicp.rs:452,1
    - Dst: Self::create_transform_16bit
      Src: /src/image/src/metadata/cicp.rs:454,1
    - Dst: ok
      Src: /src/image/src/metadata/cicp.rs:454,1
    - Dst: clone
      Src: /src/image/src/metadata/cicp.rs:457,1
    - Dst: Self::build_transforms
      Src: /src/image/src/metadata/cicp.rs:460,1
    - Dst: clone
      Src: /src/image/src/metadata/cicp.rs:461,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:461,1
    - Dst: clone
      Src: /src/image/src/metadata/cicp.rs:462,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 89
    argCount: 2
    argNames:
    - from
    - into
    argTypes:
    - Cicp
    - Cicp
    constantsTouched: []
    func_position:
      end: 467
      start: 399
    functionDepth: 14
    functionLinenumber: 399
    functionLinenumberEnd: 467
    functionName: CicpTransform::new
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 5
    functionsReached:
    - Self::create_transform_f32
    - Some
    - CicpRgb::derived_luminance
    - Img::into_rgb
    - clone
    - any
    - Img::to_moxcms_compute_profile
    - Self::to_moxcms_compute_profile
    - Self::build_transforms
    - Self::qualify_stability
    - ok
    - Self::into_rgb
    - Self::create_transform_8bit
    - map
    - Img::qualify_stability
    - Self::create_transform_16bit
    - map_layout
    - moxcms::TransformOptions::default
    - iter
    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:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 482
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 482
    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:488,1
    - Dst: Err
      Src: /src/image/src/metadata/cicp.rs:490,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/metadata/cicp.rs:490,1
    - Dst: check_expectation
      Src: /src/image/src/metadata/cicp.rs:496,1
    - Dst: map_err
      Src: /src/image/src/metadata/cicp.rs:496,1
    - Dst: check_expectation
      Src: /src/image/src/metadata/cicp.rs:497,1
    - Dst: map_err
      Src: /src/image/src/metadata/cicp.rs:497,1
    - Dst: Ok
      Src: /src/image/src/metadata/cicp.rs:499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - from
    - into
    argTypes:
    - Cicp
    - Cicp
    constantsTouched: []
    func_position:
      end: 500
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 500
    functionName: CicpTransform::check_applicable
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - check_expectation
    - map_err
    - Err
    - ParameterError::from_kind
    - Ok
    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:508,1
    - Dst: any
      Src: /src/image/src/metadata/cicp.rs:508,1
    - Dst: ImageResult::map
      Src: /src/image/src/metadata/cicp.rs:512,1
    - Dst: ImageResult::clone
      Src: /src/image/src/metadata/cicp.rs:515,1
    - Dst: Self::map
      Src: /src/image/src/metadata/cicp.rs:515,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:516,1
    - Dst: Result::transform
      Src: /src/image/src/metadata/cicp.rs:517,1
    - Dst: CbCrInverseTransform::expect
      Src: /src/image/src/metadata/cicp.rs:517,1
    - Dst: ImageResult::clone
      Src: /src/image/src/metadata/cicp.rs:525,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:528,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:532,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:532,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/cicp.rs:532,1
    - Dst: T::len
      Src: /src/image/src/metadata/cicp.rs:533,1
    - Dst: Self::expand_luma_rgb
      Src: /src/image/src/metadata/cicp.rs:536,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:537,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:537,1
    - Dst: Self::clamp_rgb
      Src: /src/image/src/metadata/cicp.rs:538,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:541,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:545,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:545,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/cicp.rs:545,1
    - Dst: T::len
      Src: /src/image/src/metadata/cicp.rs:546,1
    - Dst: Self::expand_luma_rgb
      Src: /src/image/src/metadata/cicp.rs:549,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:550,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:550,1
    - Dst: Self::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:551,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:554,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:558,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:558,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/cicp.rs:558,1
    - Dst: T::len
      Src: /src/image/src/metadata/cicp.rs:559,1
    - Dst: Self::expand_luma_rgba
      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_rgb
      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:571,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:571,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/cicp.rs:571,1
    - Dst: T::len
      Src: /src/image/src/metadata/cicp.rs:572,1
    - Dst: Self::expand_luma_rgba
      Src: /src/image/src/metadata/cicp.rs:575,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:576,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:576,1
    - Dst: Self::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:577,1
    - Dst: ImageResult::clone
      Src: /src/image/src/metadata/cicp.rs:585,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:588,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:594,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:594,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/cicp.rs:594,1
    - Dst: bool::len
      Src: /src/image/src/metadata/cicp.rs:595,1
    - Dst: Self::expand_rgb
      Src: /src/image/src/metadata/cicp.rs:598,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:599,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:599,1
    - Dst: Self::clamp_rgb_luma
      Src: /src/image/src/metadata/cicp.rs:600,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:603,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:609,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:609,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/cicp.rs:609,1
    - Dst: bool::len
      Src: /src/image/src/metadata/cicp.rs:610,1
    - Dst: Self::expand_rgb
      Src: /src/image/src/metadata/cicp.rs:613,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:614,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:614,1
    - Dst: Self::clamp_rgba_luma
      Src: /src/image/src/metadata/cicp.rs:615,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:618,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:624,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:624,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/cicp.rs:624,1
    - Dst: bool::len
      Src: /src/image/src/metadata/cicp.rs:625,1
    - Dst: Self::expand_rgba
      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_rgb_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:639,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:639,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/cicp.rs:639,1
    - Dst: bool::len
      Src: /src/image/src/metadata/cicp.rs:640,1
    - Dst: Self::expand_rgba
      Src: /src/image/src/metadata/cicp.rs:643,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:644,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:644,1
    - Dst: Self::clamp_rgba_luma
      Src: /src/image/src/metadata/cicp.rs:645,1
    - Dst: ImageResult::clone
      Src: /src/image/src/metadata/cicp.rs:653,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:656,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:661,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:661,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/cicp.rs:661,1
    - Dst: T::len
      Src: /src/image/src/metadata/cicp.rs:662,1
    - Dst: Self::expand_luma_rgb
      Src: /src/image/src/metadata/cicp.rs:665,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:666,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:666,1
    - Dst: Self::clamp_rgb_luma
      Src: /src/image/src/metadata/cicp.rs:667,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:670,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:675,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:675,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/cicp.rs:675,1
    - Dst: T::len
      Src: /src/image/src/metadata/cicp.rs:676,1
    - Dst: Self::expand_luma_rgb
      Src: /src/image/src/metadata/cicp.rs:679,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:680,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:680,1
    - Dst: Self::clamp_rgba_luma
      Src: /src/image/src/metadata/cicp.rs:681,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:684,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:689,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:689,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/cicp.rs:689,1
    - Dst: T::len
      Src: /src/image/src/metadata/cicp.rs:690,1
    - Dst: Self::expand_luma_rgba
      Src: /src/image/src/metadata/cicp.rs:693,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:694,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:694,1
    - Dst: Self::clamp_rgb_luma
      Src: /src/image/src/metadata/cicp.rs:695,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/cicp.rs:698,1
    - Dst: chunks
      Src: /src/image/src/metadata/cicp.rs:703,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:703,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/cicp.rs:703,1
    - Dst: T::len
      Src: /src/image/src/metadata/cicp.rs:704,1
    - Dst: Self::expand_luma_rgba
      Src: /src/image/src/metadata/cicp.rs:707,1
    - Dst: transform
      Src: /src/image/src/metadata/cicp.rs:708,1
    - Dst: expect
      Src: /src/image/src/metadata/cicp.rs:708,1
    - Dst: Self::clamp_rgba_luma
      Src: /src/image/src/metadata/cicp.rs:709,1
    - Dst: Some
      Src: /src/image/src/metadata/cicp.rs:715,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: 721
      start: 502
    functionDepth: 14
    functionLinenumber: 502
    functionLinenumberEnd: 721
    functionName: CicpTransform::build_transforms
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - ImageResult::clone
    - Some
    - expect
    - Self::map
    - '[Option<Arc<dyn moxcms::TransformExecutor<P> + Send + Sync>>; 4]::iter'
    - T::len
    - transform
    - Arc::new
    - Self::expand_luma_rgb
    - Self::clamp_rgba
    - any
    - bool::len
    - Self::expand_luma_rgba
    - Self::expand_rgba
    - ImageResult::map
    - chunks
    - CbCrInverseTransform::expect
    - Self::clamp_rgba_luma
    - Self::clamp_rgb
    - bool::chunks_mut
    - Result::transform
    - Self::clamp_rgb_luma
    - Self::expand_rgb
    - zip
    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:729,1
    - Dst: '&mut DynamicImage::width'
      Src: /src/image/src/metadata/cicp.rs:729,1
    - Dst: u64::from
      Src: /src/image/src/metadata/cicp.rs:729,1
    - Dst: '&mut DynamicImage::height'
      Src: /src/image/src/metadata/cicp.rs:729,1
    - Dst: LayoutWithColor::from
      Src: /src/image/src/metadata/cicp.rs:735,1
    - Dst: '&mut DynamicImage::color'
      Src: /src/image/src/metadata/cicp.rs:735,1
    - Dst: LayoutWithColor::from
      Src: /src/image/src/metadata/cicp.rs:736,1
    - Dst: '&DynamicImage::color'
      Src: /src/image/src/metadata/cicp.rs:736,1
    - Dst: step_by
      Src: /src/image/src/metadata/cicp.rs:772,1
    - Dst: min
      Src: /src/image/src/metadata/cicp.rs:773,1
    - Dst: CicpTransform::expand_luma_rgb
      Src: /src/image/src/metadata/cicp.rs:780,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:781,1
    - Dst: CicpTransform::expand_luma_rgba
      Src: /src/image/src/metadata/cicp.rs:786,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:787,1
    - Dst: CicpTransform::expand_rgb
      Src: /src/image/src/metadata/cicp.rs:792,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:793,1
    - Dst: CicpTransform::expand_rgba
      Src: /src/image/src/metadata/cicp.rs:798,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:799,1
    - Dst: CicpTransform::expand_luma_rgb
      Src: /src/image/src/metadata/cicp.rs:804,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:805,1
    - Dst: CicpTransform::expand_luma_rgba
      Src: /src/image/src/metadata/cicp.rs:810,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:811,1
    - Dst: CicpTransform::expand_rgb
      Src: /src/image/src/metadata/cicp.rs:816,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:817,1
    - Dst: CicpTransform::expand_rgba
      Src: /src/image/src/metadata/cicp.rs:823,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:824,1
    - Dst: CicpTransform::expand_rgb
      Src: /src/image/src/metadata/cicp.rs:829,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:830,1
    - Dst: CicpTransform::expand_rgba
      Src: /src/image/src/metadata/cicp.rs:835,1
    - Dst: std::io::Result::inner_pixels
      Src: /src/image/src/metadata/cicp.rs:836,1
    - Dst: inner_transform
      Src: /src/image/src/metadata/cicp.rs:845,1
    - Dst: CicpTransform::clamp_rgb_luma
      Src: /src/image/src/metadata/cicp.rs:849,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:851,1
    - Dst: CicpTransform::clamp_rgba_luma
      Src: /src/image/src/metadata/cicp.rs:856,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:858,1
    - Dst: CicpTransform::clamp_rgb
      Src: /src/image/src/metadata/cicp.rs:863,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:865,1
    - Dst: CicpTransform::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:869,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:871,1
    - Dst: CicpTransform::clamp_rgb_luma
      Src: /src/image/src/metadata/cicp.rs:875,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:877,1
    - Dst: CicpTransform::clamp_rgba_luma
      Src: /src/image/src/metadata/cicp.rs:882,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:884,1
    - Dst: CicpTransform::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:889,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:891,1
    - Dst: CicpTransform::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:896,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:898,1
    - Dst: CicpTransform::clamp_rgb
      Src: /src/image/src/metadata/cicp.rs:902,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:904,1
    - Dst: CicpTransform::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:908,1
    - Dst: std::io::Result::inner_pixels_mut
      Src: /src/image/src/metadata/cicp.rs:910,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 338
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - '&mut DynamicImage'
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 915
      start: 723
    functionDepth: 5
    functionLinenumber: 723
    functionLinenumberEnd: 915
    functionName: CicpTransform::transform_dynamic
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - CicpTransform::clamp_rgb_luma
    - CicpTransform::clamp_rgba
    - LayoutWithColor::from
    - '&mut DynamicImage::height'
    - '&mut DynamicImage::color'
    - std::io::Result::inner_pixels
    - inner_transform
    - CicpTransform::clamp_rgb
    - min
    - CicpTransform::clamp_rgba_luma
    - '&mut DynamicImage::width'
    - CicpTransform::expand_rgb
    - CicpTransform::expand_rgba
    - CicpTransform::expand_luma_rgba
    - u64::from
    - std::io::Result::inner_pixels_mut
    - '&DynamicImage::color'
    - step_by
    - CicpTransform::expand_luma_rgb
    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:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - into
    argTypes:
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 928
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 928
    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:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - into
    argTypes:
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 935
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 935
    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:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - into
    argTypes:
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 942
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 942
    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:952,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:952,1
    - Dst: as_chunks_mut::<3>
      Src: /src/image/src/metadata/cicp.rs:952,1
    - Dst: iter_mut
      Src: /src/image/src/metadata/cicp.rs:952,1
    - Dst: expand_to_f32
      Src: /src/image/src/metadata/cicp.rs:953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - luma
    - rgb
    argTypes:
    - '&[P]'
    - '&mut [f32]'
    constantsTouched: []
    func_position:
      end: 958
      start: 951
    functionDepth: 4
    functionLinenumber: 951
    functionLinenumberEnd: 958
    functionName: CicpTransform::expand_luma_rgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - T::iter
    - iter_mut
    - expand_to_f32
    - as_chunks_mut::<3>
    - zip
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn expand_luma_rgb<P: ColorComponentForCicp>(luma: &[P],
      rgb: &mut [f32])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_chunks::<2>
      Src: /src/image/src/metadata/cicp.rs:961,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:961,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/metadata/cicp.rs:962,1
    - Dst: iter_mut
      Src: /src/image/src/metadata/cicp.rs:962,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:963,1
    - Dst: expand_to_f32
      Src: /src/image/src/metadata/cicp.rs:964,1
    - Dst: expand_to_f32
      Src: /src/image/src/metadata/cicp.rs:968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 2
    argNames:
    - luma
    - rgb
    argTypes:
    - '&[P]'
    - '&mut [f32]'
    constantsTouched: []
    func_position:
      end: 970
      start: 960
    functionDepth: 4
    functionLinenumber: 960
    functionLinenumberEnd: 970
    functionName: CicpTransform::expand_luma_rgba
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - iter_mut
    - as_chunks::<2>
    - expand_to_f32
    - iter
    - zip
    - as_chunks_mut::<4>
    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:973,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:973,1
    - Dst: ImageResult::expand_to_f32
      Src: /src/image/src/metadata/cicp.rs:974,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - '&[P]'
    - '&mut [f32]'
    constantsTouched: []
    func_position:
      end: 976
      start: 972
    functionDepth: 4
    functionLinenumber: 972
    functionLinenumberEnd: 976
    functionName: CicpTransform::expand_rgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - zip
    - ImageResult::expand_to_f32
    - '&[P]::iter'
    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:979,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:979,1
    - Dst: ImageResult::expand_to_f32
      Src: /src/image/src/metadata/cicp.rs:980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - '&[P]'
    - '&mut [f32]'
    constantsTouched: []
    func_position:
      end: 982
      start: 978
    functionDepth: 4
    functionLinenumber: 978
    functionLinenumberEnd: 982
    functionName: CicpTransform::expand_rgba
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - zip
    - ImageResult::expand_to_f32
    - '&[P]::iter'
    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:986,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:986,1
    - Dst: P::clamp_from_f32
      Src: /src/image/src/metadata/cicp.rs:987,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - '&[f32]'
    - '&mut [P]'
    constantsTouched: []
    func_position:
      end: 989
      start: 984
    functionDepth: 4
    functionLinenumber: 984
    functionLinenumberEnd: 989
    functionName: CicpTransform::clamp_rgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - '&[f32]::iter'
    - zip
    - P::clamp_from_f32
    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:992,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:992,1
    - Dst: P::clamp_from_f32
      Src: /src/image/src/metadata/cicp.rs:993,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - '&[f32]'
    - '&mut [P]'
    constantsTouched: []
    func_position:
      end: 995
      start: 991
    functionDepth: 4
    functionLinenumber: 991
    functionLinenumberEnd: 995
    functionName: CicpTransform::clamp_rgba
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - '&[f32]::iter'
    - zip
    - P::clamp_from_f32
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn clamp_rgba<P: ColorComponentForCicp>(input: &[f32],
      output: &mut [P])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_chunks::<3>
      Src: /src/image/src/metadata/cicp.rs:1002,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:1002,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:1002,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:1005,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:1005,1
    - Dst: multiply_accumulate
      Src: /src/image/src/metadata/cicp.rs:1006,1
    - Dst: P::clamp_from_f32
      Src: /src/image/src/metadata/cicp.rs:1009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - input
    - output
    - coef
    argTypes:
    - '&[f32]'
    - '&mut [P]'
    - '[f32; 3]'
    constantsTouched: []
    func_position:
      end: 1011
      start: 997
    functionDepth: 4
    functionLinenumber: 997
    functionLinenumberEnd: 1011
    functionName: CicpTransform::clamp_rgb_luma
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - as_chunks::<3>
    - P::clamp_from_f32
    - iter
    - zip
    - multiply_accumulate
    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: as_chunks::<4>
      Src: /src/image/src/metadata/cicp.rs:1018,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:1018,1
    - Dst: as_chunks_mut::<2>
      Src: /src/image/src/metadata/cicp.rs:1019,1
    - Dst: iter_mut
      Src: /src/image/src/metadata/cicp.rs:1019,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:1020,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:1023,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:1023,1
    - Dst: multiply_accumulate
      Src: /src/image/src/metadata/cicp.rs:1024,1
    - Dst: P::clamp_from_f32
      Src: /src/image/src/metadata/cicp.rs:1027,1
    - Dst: P::clamp_from_f32
      Src: /src/image/src/metadata/cicp.rs:1028,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 3
    argNames:
    - input
    - output
    - coef
    argTypes:
    - '&[f32]'
    - '&mut [P]'
    - '[f32; 3]'
    constantsTouched: []
    func_position:
      end: 1030
      start: 1013
    functionDepth: 4
    functionLinenumber: 1013
    functionLinenumberEnd: 1030
    functionName: CicpTransform::clamp_rgba_luma
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - iter_mut
    - P::clamp_from_f32
    - as_chunks::<4>
    - as_chunks_mut::<2>
    - iter
    - zip
    - multiply_accumulate
    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:1052,1
    - Dst: <IntoColor as SealedPixelWithColorType>::layout
      Src: /src/image/src/metadata/cicp.rs:1053,1
    - Dst: CicpRgb::cast_pixels_by_layout
      Src: /src/image/src/metadata/cicp.rs:1058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buffer
    - color_space_fallback
    argTypes:
    - '&[FromColor::Subpixel]'
    - '&dyn Fn() -> [f32; 3]'
    constantsTouched: []
    func_position:
      end: 1059
      start: 1037
    functionDepth: 16
    functionLinenumber: 1037
    functionLinenumberEnd: 1059
    functionName: CicpRgb::cast_pixels
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - CicpRgb::cast_pixels_by_layout
    - <IntoColor as SealedPixelWithColorType>::layout
    - <FromColor as SealedPixelWithColorType>::layout
    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: CicpRgb::cast_pixels_from_subpixels
      Src: /src/image/src/metadata/cicp.rs:1074,1
    - Dst: CicpRgb::derived_luminance
      Src: /src/image/src/metadata/cicp.rs:1080,1
    - Dst: Option::unwrap_or_else
      Src: /src/image/src/metadata/cicp.rs:1080,1
    - Dst: '&RgbaImage::len'
      Src: /src/image/src/metadata/cicp.rs:1087,1
    - Dst: LayoutWithColor::channels
      Src: /src/image/src/metadata/cicp.rs:1087,1
    - Dst: Self::create_output::<IntoSubpixel>
      Src: /src/image/src/metadata/cicp.rs:1092,1
    - Dst: Self::cast_pixels_by_fallback
      Src: /src/image/src/metadata/cicp.rs:1094,1
    - Dst: bool::as_mut_slice
      Src: /src/image/src/metadata/cicp.rs:1096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 4
    argNames:
    - buffer
    - color_space_fallback
    - from_layout
    - into_layout
    argTypes:
    - '&[FromSubpixel]'
    - '&dyn Fn() -> [f32; 3]'
    - LayoutWithColor
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 1103
      start: 1061
    functionDepth: 15
    functionLinenumber: 1061
    functionLinenumberEnd: 1103
    functionName: CicpRgb::cast_pixels_by_layout
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 1
    functionsReached:
    - Self::cast_pixels_by_fallback
    - Option::unwrap_or_else
    - '&RgbaImage::len'
    - LayoutWithColor::channels
    - bool::as_mut_slice
    - Self::create_output::<IntoSubpixel>
    - CicpRgb::derived_luminance
    - CicpRgb::cast_pixels_from_subpixels
    linkageType: ''
    returnType: Vec
    signature: 'fn cast_pixels_by_layout<FromSubpixel, IntoSubpixel>(&self,buffer:
      &[FromSubpixel],// 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],from_layout: LayoutWithColor,into_layout:
      LayoutWithColor,) -> Vec<IntoSubpixel>whereFromSubpixel: ColorComponentForCicp
      + Primitive,IntoSubpixel: ColorComponentForCicp + FromPrimitive<FromSubpixel>
      + Primitive,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::resize
      Src: /src/image/src/metadata/cicp.rs:1110,1
    - Dst: LayoutWithColor::channels
      Src: /src/image/src/metadata/cicp.rs:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - output
    - pixels
    - into_layout
    argTypes:
    - '&mut Vec<Into>'
    - usize
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 1111
      start: 1105
    functionDepth: 13
    functionLinenumber: 1105
    functionLinenumberEnd: 1111
    functionName: CicpRgb::create_output
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - bool::resize
    - LayoutWithColor::channels
    linkageType: ''
    returnType: void
    signature: 'fn create_output<Into: Primitive>(output: &mut Vec<Into>,pixels: usize,into_layout:
      LayoutWithColor,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&RgbaImage::len'
      Src: /src/image/src/metadata/cicp.rs:1126,1
    - Dst: LayoutWithColor::channels
      Src: /src/image/src/metadata/cicp.rs:1126,1
    - Dst: step_by
      Src: /src/image/src/metadata/cicp.rs:1141,1
    - Dst: min
      Src: /src/image/src/metadata/cicp.rs:1142,1
    - Dst: CicpTransform::expand_rgb
      Src: /src/image/src/metadata/cicp.rs:1149,1
    - Dst: CicpTransform::expand_rgba
      Src: /src/image/src/metadata/cicp.rs:1152,1
    - Dst: CicpTransform::expand_luma_rgb
      Src: /src/image/src/metadata/cicp.rs:1155,1
    - Dst: CicpTransform::expand_luma_rgba
      Src: /src/image/src/metadata/cicp.rs:1158,1
    - Dst: as_chunks::<3>
      Src: /src/image/src/metadata/cicp.rs:1167,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:1167,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/metadata/cicp.rs:1168,1
    - Dst: iter_mut
      Src: /src/image/src/metadata/cicp.rs:1168,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:1169,1
    - Dst: take
      Src: /src/image/src/metadata/cicp.rs:1169,1
    - Dst: as_chunks::<4>
      Src: /src/image/src/metadata/cicp.rs:1179,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:1179,1
    - Dst: as_chunks_mut::<3>
      Src: /src/image/src/metadata/cicp.rs:1180,1
    - Dst: iter_mut
      Src: /src/image/src/metadata/cicp.rs:1180,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:1181,1
    - Dst: take
      Src: /src/image/src/metadata/cicp.rs:1181,1
    - Dst: CicpTransform::clamp_rgb
      Src: /src/image/src/metadata/cicp.rs:1197,1
    - Dst: CicpTransform::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:1200,1
    - Dst: CicpTransform::clamp_rgb_luma
      Src: /src/image/src/metadata/cicp.rs:1203,1
    - Dst: CicpTransform::clamp_rgba_luma
      Src: /src/image/src/metadata/cicp.rs:1210,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 152
    argCount: 5
    argNames:
    - buffer
    - output
    - from_layout
    - into_layout
    - color_space_coefs
    argTypes:
    - '&[From]'
    - '&mut [Into]'
    - LayoutWithColor
    - LayoutWithColor
    - '[f32; 3]'
    constantsTouched: []
    func_position:
      end: 1218
      start: 1113
    functionDepth: 14
    functionLinenumber: 1113
    functionLinenumberEnd: 1218
    functionName: CicpRgb::cast_pixels_by_fallback
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - CicpTransform::clamp_rgb_luma
    - CicpTransform::clamp_rgba
    - iter_mut
    - CicpTransform::expand_luma_rgb
    - as_chunks_mut::<4>
    - CicpTransform::clamp_rgb
    - '&RgbaImage::len'
    - min
    - as_chunks_mut::<3>
    - CicpTransform::clamp_rgba_luma
    - take
    - as_chunks::<3>
    - LayoutWithColor::channels
    - CicpTransform::expand_rgb
    - CicpTransform::expand_luma_rgba
    - CicpTransform::expand_rgba
    - step_by
    - as_chunks::<4>
    - iter
    - zip
    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:1235,1
    - Dst: LayoutWithColor::channels
      Src: /src/image/src/metadata/cicp.rs:1235,1
    - Dst: vec_try_with_capacity
      Src: /src/image/src/metadata/cicp.rs:1237,1
    - Dst: LayoutWithColor::channels
      Src: /src/image/src/metadata/cicp.rs:1237,1
    - Dst: Result::expect
      Src: /src/image/src/metadata/cicp.rs:1237,1
    - Dst: bool::extend
      Src: /src/image/src/metadata/cicp.rs:1265,1
    - Dst: '&RgbaImage::iter'
      Src: /src/image/src/metadata/cicp.rs:1265,1
    - Dst: copied
      Src: /src/image/src/metadata/cicp.rs:1265,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:1265,1
    - Dst: Self::subpixel_cast_rgb_to_rgba
      Src: /src/image/src/metadata/cicp.rs:1268,1
    - Dst: Self::subpixel_cast_rgba_to_rgb
      Src: /src/image/src/metadata/cicp.rs:1271,1
    - Dst: Self::subpixel_cast_luma_to_luma_alpha
      Src: /src/image/src/metadata/cicp.rs:1274,1
    - Dst: Self::subpixel_cast_luma_alpha_to_luma
      Src: /src/image/src/metadata/cicp.rs:1277,1
    - Dst: Err
      Src: /src/image/src/metadata/cicp.rs:1279,1
    - Dst: Ok
      Src: /src/image/src/metadata/cicp.rs:1282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 3
    argNames:
    - buffer
    - from_layout
    - into_layout
    argTypes:
    - '&[FromSubpixel]'
    - LayoutWithColor
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 1283
      start: 1222
    functionDepth: 14
    functionLinenumber: 1222
    functionLinenumberEnd: 1283
    functionName: CicpRgb::cast_pixels_from_subpixels
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 1
    functionsReached:
    - bool::extend
    - map
    - Self::subpixel_cast_rgba_to_rgb
    - Err
    - Self::subpixel_cast_luma_to_luma_alpha
    - copied
    - '&RgbaImage::len'
    - LayoutWithColor::channels
    - '&RgbaImage::iter'
    - Self::subpixel_cast_rgb_to_rgba
    - Self::subpixel_cast_luma_alpha_to_luma
    - Result::expect
    - vec_try_with_capacity
    - 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:
    - Dst: '&RgbaImage::len'
      Src: /src/image/src/metadata/cicp.rs:1292,1
    - Dst: channels
      Src: /src/image/src/metadata/cicp.rs:1292,1
    - Dst: Self::create_output::<IntoSubpixel>
      Src: /src/image/src/metadata/cicp.rs:1293,1
    - Dst: as_chunks::<3>
      Src: /src/image/src/metadata/cicp.rs:1298,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/metadata/cicp.rs:1299,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:1301,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:1301,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:1303,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:1304,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:1305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 2
    argNames:
    - output
    - buffer
    argTypes:
    - '&mut Vec<IntoSubpixel>'
    - '&[FromSubpixel]'
    constantsTouched: []
    func_position:
      end: 1309
      start: 1285
    functionDepth: 14
    functionLinenumber: 1285
    functionLinenumberEnd: 1309
    functionName: CicpRgb::subpixel_cast_rgb_to_rgba
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - as_chunks::<3>
    - map_channel
    - '&RgbaImage::len'
    - channels
    - Self::create_output::<IntoSubpixel>
    - iter
    - zip
    - as_chunks_mut::<4>
    linkageType: ''
    returnType: void
    signature: 'fn subpixel_cast_rgb_to_rgba<FromSubpixel, IntoSubpixel>(output: &mut
      Vec<IntoSubpixel>,buffer: &[FromSubpixel],) whereFromSubpixel: ColorComponentForCicp,IntoSubpixel:
      ColorComponentForCicp + FromPrimitive<FromSubpixel> + Primitive,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&RgbaImage::len'
      Src: /src/image/src/metadata/cicp.rs:1318,1
    - Dst: channels
      Src: /src/image/src/metadata/cicp.rs:1318,1
    - Dst: Self::create_output::<IntoSubpixel>
      Src: /src/image/src/metadata/cicp.rs:1319,1
    - Dst: as_chunks::<4>
      Src: /src/image/src/metadata/cicp.rs:1323,1
    - Dst: as_chunks_mut::<3>
      Src: /src/image/src/metadata/cicp.rs:1324,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:1326,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:1326,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:1327,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:1327,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:1327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 2
    argNames:
    - output
    - buffer
    argTypes:
    - '&mut Vec<IntoSubpixel>'
    - '&[FromSubpixel]'
    constantsTouched: []
    func_position:
      end: 1329
      start: 1311
    functionDepth: 14
    functionLinenumber: 1311
    functionLinenumberEnd: 1329
    functionName: CicpRgb::subpixel_cast_rgba_to_rgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - map_channel
    - '&RgbaImage::len'
    - channels
    - Self::create_output::<IntoSubpixel>
    - as_chunks::<4>
    - iter
    - as_chunks_mut::<3>
    - zip
    linkageType: ''
    returnType: void
    signature: 'fn subpixel_cast_rgba_to_rgb<FromSubpixel, IntoSubpixel>(output: &mut
      Vec<IntoSubpixel>,buffer: &[FromSubpixel],) whereFromSubpixel: ColorComponentForCicp,IntoSubpixel:
      ColorComponentForCicp + FromPrimitive<FromSubpixel> + Primitive,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::extend
      Src: /src/image/src/metadata/cicp.rs:1342,1
    - Dst: '&RgbaImage::iter'
      Src: /src/image/src/metadata/cicp.rs:1342,1
    - Dst: copied
      Src: /src/image/src/metadata/cicp.rs:1342,1
    - Dst: flat_map
      Src: /src/image/src/metadata/cicp.rs:1342,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:1344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - output
    - buffer
    argTypes:
    - '&mut Vec<IntoSubpixel>'
    - '&[FromSubpixel]'
    constantsTouched: []
    func_position:
      end: 1350
      start: 1333
    functionDepth: 4
    functionLinenumber: 1333
    functionLinenumberEnd: 1350
    functionName: CicpRgb::subpixel_cast_luma_to_luma_alpha
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - bool::extend
    - copied
    - map_channel
    - '&RgbaImage::iter'
    - flat_map
    linkageType: ''
    returnType: void
    signature: 'fn subpixel_cast_luma_to_luma_alpha<FromSubpixel, IntoSubpixel>(output:
      &mut Vec<IntoSubpixel>,buffer: &[FromSubpixel],) whereFromSubpixel: ColorComponentForCicp,IntoSubpixel:
      ColorComponentForCicp + FromPrimitive<FromSubpixel> + Primitive,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_chunks::<2>
      Src: /src/image/src/metadata/cicp.rs:1361,1
    - Dst: bool::extend
      Src: /src/image/src/metadata/cicp.rs:1363,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:1363,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:1363,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:1363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - output
    - buffer
    argTypes:
    - '&mut Vec<IntoSubpixel>'
    - '&[FromSubpixel]'
    constantsTouched: []
    func_position:
      end: 1364
      start: 1352
    functionDepth: 14
    functionLinenumber: 1352
    functionLinenumberEnd: 1364
    functionName: CicpRgb::subpixel_cast_luma_alpha_to_luma
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - bool::extend
    - map
    - map_channel
    - as_chunks::<2>
    - iter
    linkageType: ''
    returnType: void
    signature: 'fn subpixel_cast_luma_alpha_to_luma<FromSubpixel, IntoSubpixel>(output:
      &mut Vec<IntoSubpixel>,buffer: &[FromSubpixel],) 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: 1405
      start: 1402
    functionDepth: 0
    functionLinenumber: 1402
    functionLinenumberEnd: 1405
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - val
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1415
      start: 1408
    functionDepth: 0
    functionLinenumber: 1408
    functionLinenumberEnd: 1415
    functionName: u8::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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1419
    functionDepth: 0
    functionLinenumber: 1419
    functionLinenumberEnd: 1422
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - val
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1428
      start: 1425
    functionDepth: 0
    functionLinenumber: 1425
    functionLinenumberEnd: 1428
    functionName: u16::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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1432
    functionDepth: 0
    functionLinenumber: 1432
    functionLinenumberEnd: 1434
    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: 1438
      start: 1436
    functionDepth: 0
    functionLinenumber: 1436
    functionLinenumberEnd: 1438
    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:1447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 1
    argNames:
    - into
    argTypes:
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 1467
      start: 1442
    functionDepth: 2
    functionLinenumber: 1442
    functionLinenumberEnd: 1467
    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:1530,1
    - Dst: update_rgb_colorimetry_from_cicp
      Src: /src/image/src/metadata/cicp.rs:1532,1
    - Dst: to_moxcms
      Src: /src/image/src/metadata/cicp.rs:1533,1
    - Dst: to_moxcms
      Src: /src/image/src/metadata/cicp.rs:1534,1
    - Dst: to_moxcms
      Src: /src/image/src/metadata/cicp.rs:1535,1
    - Dst: Some
      Src: /src/image/src/metadata/cicp.rs:1542,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1543
    functionName: Cicp::to_moxcms_compute_profile
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - to_moxcms
    - Some
    - update_rgb_colorimetry_from_cicp
    - moxcms::ColorProfile::new_srgb
    linkageType: ''
    returnType: Option
    signature: fn to_moxcms_compute_profile(self) -> Option<ColorProfile>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_supported_for_transform
      Src: /src/image/src/metadata/cicp.rs:1573,1
    - Dst: is_supported_for_transform
      Src: /src/image/src/metadata/cicp.rs:1574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1557
    functionDepth: 1
    functionLinenumber: 1557
    functionLinenumberEnd: 1575
    functionName: Cicp::qualify_stability
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - is_supported_for_transform
    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: 1590
      start: 1578
    functionDepth: 0
    functionLinenumber: 1578
    functionLinenumberEnd: 1590
    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:1593,1
    - Dst: Cicp::into_rgb
      Src: /src/image/src/metadata/cicp.rs:1593,1
    - Dst: Err
      Src: /src/image/src/metadata/cicp.rs:1594,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/metadata/cicp.rs:1594,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/metadata/cicp.rs:1594,1
    - Dst: ParameterErrorKind::RgbCicpRequired
      Src: /src/image/src/metadata/cicp.rs:1595,1
    - Dst: Ok
      Src: /src/image/src/metadata/cicp.rs:1598,1
    - Dst: Cicp::into_rgb
      Src: /src/image/src/metadata/cicp.rs:1598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1592
    functionDepth: 1
    functionLinenumber: 1592
    functionLinenumberEnd: 1600
    functionName: Cicp::try_into_rgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - ParameterErrorKind::RgbCicpRequired
    - Cicp::into_rgb
    - Err
    - Cicp::from
    - ImageError::Parameter
    - ParameterError::from_kind
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub(crate) fn try_into_rgb(self) -> Result<CicpRgb, ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cicp::from
      Src: /src/image/src/metadata/cicp.rs:1606,1
    - Dst: Some
      Src: /src/image/src/metadata/cicp.rs:1607,1
    - Dst: Some
      Src: /src/image/src/metadata/cicp.rs:1608,1
    - Dst: Some
      Src: /src/image/src/metadata/cicp.rs:1609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1605
    functionDepth: 1
    functionLinenumber: 1605
    functionLinenumberEnd: 1612
    functionName: CicpRgb::known_name
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - Cicp::from
    - Some
    linkageType: ''
    returnType: Option
    signature: pub(crate) fn known_name(&self) -> Option<&'static str>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: moxcms::Chromaticity::new
      Src: /src/image/src/metadata/cicp.rs:1643,1
    - Dst: moxcms::Chromaticity::new
      Src: /src/image/src/metadata/cicp.rs:1644,1
    - Dst: transform_to_xyz
      Src: /src/image/src/metadata/cicp.rs:1650,1
    - Dst: Some
      Src: /src/image/src/metadata/cicp.rs:1653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1654
    functionName: CicpRgb::derived_luminance
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - Some
    - moxcms::Chromaticity::new
    - 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: 1665
      start: 1658
    functionDepth: 0
    functionLinenumber: 1658
    functionLinenumberEnd: 1665
    functionName: Cicp::from
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    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: 1687
      start: 1680
    functionDepth: 0
    functionLinenumber: 1680
    functionLinenumberEnd: 1687
    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: 1698
      start: 1692
    functionDepth: 0
    functionLinenumber: 1692
    functionLinenumberEnd: 1698
    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:1703,1
    - Dst: derived_luminance
      Src: /src/image/src/metadata/cicp.rs:1703,1
    - Dst: Option::unwrap
      Src: /src/image/src/metadata/cicp.rs:1704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1702
    functionDepth: 1
    functionLinenumber: 1702
    functionLinenumberEnd: 1708
    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: 1721
      start: 1716
    functionDepth: 0
    functionLinenumber: 1716
    functionLinenumberEnd: 1721
    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: 1725
      start: 1723
    functionDepth: 0
    functionLinenumber: 1723
    functionLinenumberEnd: 1725
    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:1732,1
    - Dst: cast_pixels::<Rgba<u8>, Rgb<u8>>
      Src: /src/image/src/metadata/cicp.rs:1733,1
    - Dst: cast_pixels::<Rgba<u8>, Luma<u8>>
      Src: /src/image/src/metadata/cicp.rs:1735,1
    - Dst: cast_pixels::<Rgba<u8>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1728
    functionDepth: 1
    functionLinenumber: 1728
    functionLinenumberEnd: 1739
    functionName: tests::transform_pixels_srgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - cast_pixels::<Rgba<u8>, Luma<u8>>
    - cast_pixels::<Rgba<u8>, LumaA<u8>>
    - into_rgb
    - cast_pixels::<Rgba<u8>, Rgb<u8>>
    linkageType: ''
    returnType: void
    signature: fn transform_pixels_srgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_rgb
      Src: /src/image/src/metadata/cicp.rs:1746,1
    - Dst: cast_pixels::<Luma<u16>, Rgb<u8>>
      Src: /src/image/src/metadata/cicp.rs:1747,1
    - Dst: cast_pixels::<Luma<u16>, Luma<u8>>
      Src: /src/image/src/metadata/cicp.rs:1749,1
    - Dst: cast_pixels::<Luma<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1751,1
    - Dst: into_rgb
      Src: /src/image/src/metadata/cicp.rs:1755,1
    - Dst: cast_pixels::<Luma<u16>, Rgb<u8>>
      Src: /src/image/src/metadata/cicp.rs:1756,1
    - Dst: cast_pixels::<Luma<u16>, Luma<u8>>
      Src: /src/image/src/metadata/cicp.rs:1758,1
    - Dst: cast_pixels::<Luma<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1742
    functionDepth: 1
    functionLinenumber: 1742
    functionLinenumberEnd: 1762
    functionName: tests::transform_pixels_srgb_16
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - cast_pixels::<Luma<u16>, Rgb<u8>>
    - cast_pixels::<Luma<u16>, Luma<u8>>
    - into_rgb
    - cast_pixels::<Luma<u16>, LumaA<u8>>
    linkageType: ''
    returnType: void
    signature: fn transform_pixels_srgb_16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_rgb
      Src: /src/image/src/metadata/cicp.rs:1769,1
    - Dst: cast_pixels::<LumaA<u16>, Rgb<u8>>
      Src: /src/image/src/metadata/cicp.rs:1770,1
    - Dst: cast_pixels::<LumaA<u16>, Luma<u8>>
      Src: /src/image/src/metadata/cicp.rs:1772,1
    - Dst: cast_pixels::<LumaA<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1774,1
    - Dst: cast_pixels::<LumaA<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1776,1
    - Dst: into_rgb
      Src: /src/image/src/metadata/cicp.rs:1780,1
    - Dst: cast_pixels::<LumaA<u16>, Rgb<u8>>
      Src: /src/image/src/metadata/cicp.rs:1781,1
    - Dst: cast_pixels::<LumaA<u16>, Luma<u8>>
      Src: /src/image/src/metadata/cicp.rs:1783,1
    - Dst: cast_pixels::<LumaA<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1785,1
    - Dst: cast_pixels::<LumaA<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1765
    functionDepth: 1
    functionLinenumber: 1765
    functionLinenumberEnd: 1789
    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: 14
    functionLinenumber: 56
    functionLinenumberEnd: 84
    functionName: resize_dimensions
    functionSourceFile: /src/image/src/math/utils.rs
    functionUses: 8
    functionsReached:
    - f64::min
    - f64::from
    - u64::from
    - std::cmp::max
    - f64::max
    - round
    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: 15
    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: 15
    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: 15
    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: 15
    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: 15
    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: saturating_sub
      Src: /src/image/src/math/rect.rs:53,1
    - Dst: saturating_sub
      Src: /src/image/src/math/rect.rs:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - Range<u32>
    - Range<u32>
    constantsTouched: []
    func_position:
      end: 56
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 56
    functionName: Rect::from_xy_ranges
    functionSourceFile: /src/image/src/math/rect.rs
    functionUses: 19
    functionsReached:
    - saturating_sub
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_xy_ranges(x: Range<u32>, y: Range<u32>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::width
      Src: /src/image/src/math/rect.rs:63,1
    - Dst: Vec::height
      Src: /src/image/src/math/rect.rs:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - image
    - x
    - y
    argTypes:
    - '&(impl GenericImageView + ?Sized)'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: Rect::from_image_at
    functionSourceFile: /src/image/src/math/rect.rs
    functionUses: 4
    functionsReached:
    - Vec::width
    - Vec::height
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn from_image_at(image: &(impl GenericImageView + ?Sized),
      x: u32, y: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/image/src/math/rect.rs:69,1
    - Dst: u64::from
      Src: /src/image/src/math/rect.rs:69,1
    - Dst: u64::from
      Src: /src/image/src/math/rect.rs:69,1
    - Dst: u64::from
      Src: /src/image/src/math/rect.rs:70,1
    - Dst: u64::from
      Src: /src/image/src/math/rect.rs:70,1
    - Dst: u64::from
      Src: /src/image/src/math/rect.rs:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames: []
    argTypes:
    - (u32, u32)
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: Rect::is_in_bounds
    functionSourceFile: /src/image/src/math/rect.rs
    functionUses: 2
    functionsReached:
    - u64::from
    linkageType: ''
    returnType: bool
    signature: 'fn is_in_bounds(&self, (width, height): (u32, u32)) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rect::is_in_bounds
      Src: /src/image/src/math/rect.rs:77,1
    - Dst: Vec::dimensions
      Src: /src/image/src/math/rect.rs:77,1
    - Dst: Ok
      Src: /src/image/src/math/rect.rs:78,1
    - Dst: Err
      Src: /src/image/src/math/rect.rs:80,1
    - Dst: error::ImageError::Parameter
      Src: /src/image/src/math/rect.rs:80,1
    - Dst: error::ParameterError::from_kind
      Src: /src/image/src/math/rect.rs:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&(impl GenericImageView + ?Sized)'
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 12
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: Rect::test_in_bounds_of
    functionSourceFile: /src/image/src/math/rect.rs
    functionUses: 0
    functionsReached:
    - error::ParameterError::from_kind
    - Err
    - Vec::dimensions
    - error::ImageError::Parameter
    - Rect::is_in_bounds
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn test_in_bounds_of(&self,image: &(impl GenericImageView
      + ?Sized),) -> Result<(), error::ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/math/rect.rs:91,1
    - Dst: Rect::is_in_bounds
      Src: /src/image/src/math/rect.rs:93,1
    - Dst: panic_out_of_bounds
      Src: /src/image/src/math/rect.rs:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&impl GenericImageView'
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 12
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: Rect::assert_in_bounds_of
    functionSourceFile: /src/image/src/math/rect.rs
    functionUses: 0
    functionsReached:
    - Rect::is_in_bounds
    - Vec::dimensions
    - panic_out_of_bounds
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn assert_in_bounds_of(&self, image: &impl GenericImageView)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/math/rect.rs:100,1
    - Dst: cmp::min
      Src: /src/image/src/math/rect.rs:102,1
    - Dst: cmp::min
      Src: /src/image/src/math/rect.rs:103,1
    - Dst: cmp::min
      Src: /src/image/src/math/rect.rs:105,1
    - Dst: cmp::min
      Src: /src/image/src/math/rect.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&impl GenericImageView'
    constantsTouched: []
    func_position:
      end: 114
      start: 99
    functionDepth: 12
    functionLinenumber: 99
    functionLinenumberEnd: 114
    functionName: Rect::shrink_to_bounds_of
    functionSourceFile: /src/image/src/math/rect.rs
    functionUses: 1
    functionsReached:
    - cmp::min
    - Vec::dimensions
    linkageType: ''
    returnType: Rect
    signature: 'pub(crate) fn shrink_to_bounds_of(&self, image: &impl GenericImageView)
      -> Rect'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - rect
    - dims
    argTypes:
    - '&Rect'
    - (u32, u32)
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: panic_out_of_bounds
    functionSourceFile: /src/image/src/math/rect.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '!'
    signature: 'fn panic_out_of_bounds(rect: &Rect, dims: (u32, u32)) -> !'
  - 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: 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:
    - map
    - func
    - std::iter::repeat
    - skip
    - std::io::Result::len
    - step_by
    - rev
    - flat_map
    - 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: is_multiple_of
      Src: /src/image/src/utils/mod.rs:43,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: 3
    functionLinenumber: 38
    functionLinenumberEnd: 64
    functionName: expand_bits
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 1
    functionsReached:
    - Vec::new
    - is_multiple_of
    - u32::from
    - Result::push
    linkageType: ''
    returnType: Vec
    signature: 'pub(crate) fn expand_bits(bit_depth: u8, row_size: u32, buf: &[u8])
      -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: interleave_planes_inner::<PLANES, N>
      Src: /src/image/src/utils/mod.rs:73,1
    - Dst: as_chunks_mut::<N>
      Src: /src/image/src/utils/mod.rs:74,1
    - Dst: <[_; PLANES]>::try_from
      Src: /src/image/src/utils/mod.rs:75,1
    - Dst: Result::unwrap
      Src: /src/image/src/utils/mod.rs:75,1
    - Dst: map
      Src: /src/image/src/utils/mod.rs:75,1
    - Dst: as_chunks::<N>
      Src: /src/image/src/utils/mod.rs:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - out
    - planes
    argTypes:
    - '&mut [u8]'
    - '&[&[u8]]'
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 14
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: i::n::t::e::r::l::e::a::v::e::_::p::l::a::n::e::s::trampoline
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - Result::unwrap
    - as_chunks::<N>
    - interleave_planes_inner::<PLANES, N>
    - <[_; PLANES]>::try_from
    - as_chunks_mut::<N>
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn trampoline<const PLANES: usize, const N: usize>(out:
      &mut [u8],planes: &[&[u8]],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: trampoline::<1, 1>
      Src: /src/image/src/utils/mod.rs:84,1
    - Dst: trampoline::<2, 1>
      Src: /src/image/src/utils/mod.rs:85,1
    - Dst: trampoline::<3, 1>
      Src: /src/image/src/utils/mod.rs:86,1
    - Dst: trampoline::<4, 1>
      Src: /src/image/src/utils/mod.rs:87,1
    - Dst: trampoline::<1, 2>
      Src: /src/image/src/utils/mod.rs:88,1
    - Dst: trampoline::<2, 2>
      Src: /src/image/src/utils/mod.rs:89,1
    - Dst: trampoline::<3, 2>
      Src: /src/image/src/utils/mod.rs:90,1
    - Dst: trampoline::<4, 2>
      Src: /src/image/src/utils/mod.rs:91,1
    - Dst: trampoline::<3, 4>
      Src: /src/image/src/utils/mod.rs:92,1
    - Dst: trampoline::<4, 4>
      Src: /src/image/src/utils/mod.rs:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 3
    argNames:
    - out
    - color
    - planes
    argTypes:
    - '&mut [u8]'
    - crate::ColorType
    - '&[&[u8]]'
    constantsTouched: []
    func_position:
      end: 95
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 95
    functionName: interleave_planes
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 2
    functionsReached:
    - trampoline::<1, 1>
    - trampoline::<3, 4>
    - trampoline::<4, 1>
    - trampoline::<2, 2>
    - trampoline::<3, 1>
    - trampoline::<2, 1>
    - trampoline::<1, 2>
    - trampoline::<4, 4>
    - trampoline::<3, 2>
    - trampoline::<4, 2>
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn interleave_planes(out: &mut [u8], color: crate::ColorType,
      planes: &[&[u8]])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::map
      Src: /src/image/src/utils/mod.rs:102,1
    - Dst: Vec::iter
      Src: /src/image/src/utils/mod.rs:102,1
    - Dst: copied
      Src: /src/image/src/utils/mod.rs:102,1
    - Dst: as_chunks_mut::<PLANES>
      Src: /src/image/src/utils/mod.rs:103,1
    - Dst: ImageResult::each_mut
      Src: /src/image/src/utils/mod.rs:104,1
    - Dst: map
      Src: /src/image/src/utils/mod.rs:104,1
    - Dst: unwrap_or
      Src: /src/image/src/utils/mod.rs:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - out
    - planes
    argTypes:
    - '&mut [[u8; N]]'
    - '[&[[u8; N]]; PLANES]'
    constantsTouched: []
    func_position:
      end: 111
      start: 98
    functionDepth: 14
    functionLinenumber: 98
    functionLinenumberEnd: 111
    functionName: interleave_planes_inner
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 0
    functionsReached:
    - Vec::iter
    - map
    - as_chunks_mut::<PLANES>
    - copied
    - ImageResult::each_mut
    - unwrap_or
    - ImageResult::map
    linkageType: ''
    returnType: void
    signature: 'fn interleave_planes_inner<const PLANES: usize, const N: usize>(out:
      &mut [[u8; N]],planes: [&[[u8; N]]; PLANES],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/image/src/utils/mod.rs:117,1
    - Dst: u64::from
      Src: /src/image/src/utils/mod.rs:117,1
    - Dst: u64::from
      Src: /src/image/src/utils/mod.rs:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - width
    - height
    - bytes_per_pixel
    argTypes:
    - u32
    - u32
    - u8
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: check_dimension_overflow
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 3
    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:126,1
    - Dst: to_owned
      Src: /src/image/src/utils/mod.rs:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vec
    argTypes:
    - '&[T]'
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    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: 141
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 141
    functionName: clamp
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 14
    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:145,1
    - Dst: io::Result::try_reserve_exact
      Src: /src/image/src/utils/mod.rs:146,1
    - Dst: Ok
      Src: /src/image/src/utils/mod.rs:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: vec_try_with_capacity
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 8
    functionsReached:
    - Vec::new
    - Ok
    - io::Result::try_reserve_exact
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn vec_try_with_capacity<T>(capacity: usize) -> Result<Vec<T>,
      TryReserveError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: <T as num_traits::NumCast>::from
      Src: /src/image/src/utils/mod.rs:156,1
    - Dst: Self::unwrap
      Src: /src/image/src/utils/mod.rs:156,1
    - Dst: is_zero
      Src: /src/image/src/utils/mod.rs:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: is_integer
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 0
    functionsReached:
    - Self::unwrap
    - is_zero
    - <T as num_traits::NumCast>::from
    linkageType: ''
    returnType: bool
    signature: 'pub(crate) fn is_integer<T: num_traits::NumCast + num_traits::Zero>()
      -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::checked_add
      Src: /src/image/src/utils/mod.rs:166,1
    - Dst: Err
      Src: /src/image/src/utils/mod.rs:167,1
    - Dst: std::io::Error::new
      Src: /src/image/src/utils/mod.rs:167,1
    - Dst: Result::seek
      Src: /src/image/src/utils/mod.rs:172,1
    - Dst: std::io::SeekFrom::Start
      Src: /src/image/src/utils/mod.rs:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - r
    - reader_offset
    - offset
    argTypes:
    - '&mut R'
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 173
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 173
    functionName: seek_start_with_offset
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 1
    functionsReached:
    - u64::checked_add
    - Err
    - std::io::SeekFrom::Start
    - std::io::Error::new
    - Result::seek
    linkageType: ''
    returnType: std::io::Result
    signature: 'pub(crate) fn seek_start_with_offset<R: std::io::Read + std::io::Seek>(r:
      &mut R,reader_offset: u64,offset: u64,) -> std::io::Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check
      Src: /src/image/src/utils/mod.rs:183,1
    - Dst: check
      Src: /src/image/src/utils/mod.rs:192,1
    - Dst: check
      Src: /src/image/src/utils/mod.rs:199,1
    - Dst: check
      Src: /src/image/src/utils/mod.rs:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 178
    functionDepth: 14
    functionLinenumber: 178
    functionLinenumberEnd: 207
    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_bmp.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_bmp.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:
    - usize::try_from
    - ImageResult::set_limits
    - OpenExrDecoder::with_alpha_preference
    - Err
    - Some
    - '&RgbaImage::as_mut_slice'
    - ImageResult::dimensions
    - Limits::default
    - image::ImageError::Limits
    - image::error::LimitError::from_kind
    - ImageResult::read_image
    - Ok
    - ImageResult::total_bytes
    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:
    - Self::write_image
    - OpenExrEncoder::new
    - Result::as_slice
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_rgba_image(write: impl Write + Seek,(width, height, data):
      &(u32, u32, Vec<u8>),) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_as_rgba_byte_image
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:52,1
    - Dst: Cursor::new
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:52,1
    - Dst: Vec::with_capacity
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:55,1
    - Dst: '&[u8]::len'
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:55,1
    - Dst: write_rgba_image
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:56,1
    - Dst: Cursor::new
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:56,1
    - Dst: read_as_rgba_byte_image
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:58,1
    - Dst: Cursor::new
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:58,1
    - Dst: Ok
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:65,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 55
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 66
      start: 15
    functionDepth: 16
    functionLinenumber: 15
    functionLinenumberEnd: 66
    functionName: roundtrip
    functionSourceFile: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs
    functionUses: 0
    functionsReached:
    - read_as_rgba_byte_image
    - '&[u8]::len'
    - write_rgba_image
    - Cursor::new
    - Vec::with_capacity
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn roundtrip(bytes: &[u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: image::codecs::tga::TgaDecoder::new
      Src: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs:11,1
    - Dst: std::io::Cursor::new
      Src: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs:11,1
    - Dst: ImageResult::total_bytes
      Src: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs:12,1
    - Dst: Ok
      Src: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs:13,1
    - Dst: ImageResult::read_image
      Src: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs:16,1
    - Dst: Ok
      Src: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs:17,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 18
      start: 9
    functionDepth: 13
    functionLinenumber: 9
    functionLinenumberEnd: 18
    functionName: decode
    functionSourceFile: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs
    functionUses: 18
    functionsReached:
    - image::codecs::tga::TgaDecoder::new
    - ImageResult::read_image
    - Ok
    - ImageResult::total_bytes
    - std::io::Cursor::new
    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:
    - subsec_nanos
    - as_secs
    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:
    - ImageResult::unwrap
    - map
    - image::ImageBuffer::new
    - width
    - ImageBuffer::copy_from
    - ImageResult::max
    - ImageResult::sum
    - iter
    - Option::width
    - unwrap_or
    - height
    linkageType: ''
    returnType: ImageBuffer
    signature: 'fn h_concat<I, P, S>(images: &[I]) -> ImageBuffer<P, Vec<S>>whereI:
      GenericImageView<Pixel = P>,P: Pixel<Subpixel = S>,S: Primitive,'
  - 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: io::Result::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:
    - clone
    - std::io::Result::unwrap
    - chain
    - ImageResult::unwrap
    - collect
    - bench_function
    - image::load_from_memory_with_format
    - io::Result::benchmark_group
    - iter::once
    - std::iter
    - fs::read
    - to_owned
    linkageType: ''
    returnType: void
    signature: 'fn bench_load(c: &mut Criterion, def: &BenchDef)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/benches/imageops.rs:11,1
    - Dst: image::Rgb
      Src: /src/image/benches/imageops.rs:13,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:16,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:17,1
    - Dst: imageops::filter3x3
      Src: /src/image/benches/imageops.rs:17,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:20,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:21,1
    - Dst: imageops::brighten
      Src: /src/image/benches/imageops.rs:21,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:24,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:25,1
    - Dst: imageops::contrast
      Src: /src/image/benches/imageops.rs:25,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:28,1
    - Dst: ImageBuffer::convert
      Src: /src/image/benches/imageops.rs:29,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:30,1
    - Dst: T::clone
      Src: /src/image/benches/imageops.rs:31,1
    - Dst: imageops::dither
      Src: /src/image/benches/imageops.rs:32,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:36,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:37,1
    - Dst: imageops::flip_horizontal
      Src: /src/image/benches/imageops.rs:37,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:39,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:40,1
    - Dst: imageops::flip_vertical
      Src: /src/image/benches/imageops.rs:40,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:43,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:44,1
    - Dst: imageops::grayscale
      Src: /src/image/benches/imageops.rs:44,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:46,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:47,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/benches/imageops.rs:47,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:50,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:51,1
    - Dst: imageops::huerotate
      Src: /src/image/benches/imageops.rs:51,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:54,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:55,1
    - Dst: ImageBuffer::clone
      Src: /src/image/benches/imageops.rs:56,1
    - Dst: imageops::invert
      Src: /src/image/benches/imageops.rs:57,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:61,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:62,1
    - Dst: imageops::rotate90
      Src: /src/image/benches/imageops.rs:62,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:64,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:65,1
    - Dst: imageops::rotate180
      Src: /src/image/benches/imageops.rs:65,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:67,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:68,1
    - Dst: imageops::rotate270
      Src: /src/image/benches/imageops.rs:68,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:71,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:72,1
    - Dst: imageops::unsharpen
      Src: /src/image/benches/imageops.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 164
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 74
      start: 10
    functionDepth: 17
    functionLinenumber: 10
    functionLinenumberEnd: 74
    functionName: bench_imageops
    functionSourceFile: /src/image/benches/imageops.rs
    functionUses: 0
    functionsReached:
    - imageops::brighten
    - image::Rgb
    - imageops::rotate90
    - imageops::filter3x3
    - imageops::grayscale_alpha
    - imageops::flip_vertical
    - imageops::invert
    - imageops::grayscale
    - io::Result::bench_function
    - imageops::huerotate
    - ImageBuffer::clone
    - imageops::flip_horizontal
    - imageops::dither
    - imageops::contrast
    - ImageBuffer::from_fn
    - T::clone
    - imageops::unsharpen
    - imageops::rotate180
    - ImageBuffer::convert
    - iter
    - imageops::rotate270
    linkageType: ''
    returnType: void
    signature: 'pub fn bench_imageops(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/benches/imageops.rs:77,1
    - Dst: image::Rgb
      Src: /src/image/benches/imageops.rs:79,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:91,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:92,1
    - Dst: imageops::resize
      Src: /src/image/benches/imageops.rs:92,1
    - Dst: io::Result::benchmark_group
      Src: /src/image/benches/imageops.rs:97,1
    - Dst: warm_up_time
      Src: /src/image/benches/imageops.rs:98,1
    - Dst: Duration::from_secs
      Src: /src/image/benches/imageops.rs:98,1
    - Dst: sample_size
      Src: /src/image/benches/imageops.rs:98,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:101,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:102,1
    - Dst: imageops::resize
      Src: /src/image/benches/imageops.rs:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 47
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 105
      start: 76
    functionDepth: 17
    functionLinenumber: 76
    functionLinenumberEnd: 105
    functionName: bench_resize
    functionSourceFile: /src/image/benches/imageops.rs
    functionUses: 0
    functionsReached:
    - sample_size
    - warm_up_time
    - image::Rgb
    - imageops::resize
    - io::Result::bench_function
    - io::Result::benchmark_group
    - Duration::from_secs
    - iter
    - ImageBuffer::from_fn
    linkageType: ''
    returnType: void
    signature: 'pub fn bench_resize(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageRgba8
      Src: /src/image/benches/convert.rs:6,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/convert.rs:6,1
    - Dst: image::Rgba
      Src: /src/image/benches/convert.rs:6,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:8,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:9,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:9,1
    - Dst: to_rgb8
      Src: /src/image/benches/convert.rs:9,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:12,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:13,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:13,1
    - Dst: to_rgba8
      Src: /src/image/benches/convert.rs:13,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:16,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:17,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:17,1
    - Dst: to_rgb16
      Src: /src/image/benches/convert.rs:17,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:20,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:21,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:21,1
    - Dst: to_rgba16
      Src: /src/image/benches/convert.rs:21,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:24,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:25,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:25,1
    - Dst: to_rgb32f
      Src: /src/image/benches/convert.rs:25,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:28,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:29,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:29,1
    - Dst: to_rgba32f
      Src: /src/image/benches/convert.rs:29,1
    - Dst: DynamicImage::ImageLuma8
      Src: /src/image/benches/convert.rs:33,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/convert.rs:33,1
    - Dst: image::Luma
      Src: /src/image/benches/convert.rs:33,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:35,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:36,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:36,1
    - Dst: to_luma16
      Src: /src/image/benches/convert.rs:36,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:39,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:40,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:40,1
    - Dst: to_luma_alpha8
      Src: /src/image/benches/convert.rs:40,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:43,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:44,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:44,1
    - Dst: to_luma_alpha16
      Src: /src/image/benches/convert.rs:44,1
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/benches/convert.rs:48,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/convert.rs:48,1
    - Dst: image::LumaA
      Src: /src/image/benches/convert.rs:48,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:50,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:51,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:51,1
    - Dst: to_luma_alpha16
      Src: /src/image/benches/convert.rs:51,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:54,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:55,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:55,1
    - Dst: to_luma8
      Src: /src/image/benches/convert.rs:55,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:58,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:59,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:59,1
    - Dst: to_luma16
      Src: /src/image/benches/convert.rs:59,1
    - Dst: DynamicImage::ImageLumaA16
      Src: /src/image/benches/convert.rs:63,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/convert.rs:63,1
    - Dst: image::LumaA
      Src: /src/image/benches/convert.rs:63,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:65,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:66,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:66,1
    - Dst: to_luma_alpha16
      Src: /src/image/benches/convert.rs:66,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:69,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:70,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:70,1
    - Dst: to_luma8
      Src: /src/image/benches/convert.rs:70,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:73,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:74,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:74,1
    - Dst: to_luma16
      Src: /src/image/benches/convert.rs:74,1
    - Dst: DynamicImage::ImageRgba32F
      Src: /src/image/benches/convert.rs:78,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/convert.rs:78,1
    - Dst: image::Rgba
      Src: /src/image/benches/convert.rs:78,1
    - Dst: Default::default
      Src: /src/image/benches/convert.rs:78,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:80,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:81,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:81,1
    - Dst: to_rgb8
      Src: /src/image/benches/convert.rs:81,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:84,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:85,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:85,1
    - Dst: to_rgba8
      Src: /src/image/benches/convert.rs:85,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:88,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:89,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:89,1
    - Dst: to_rgb16
      Src: /src/image/benches/convert.rs:89,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:92,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:93,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:93,1
    - Dst: to_rgba16
      Src: /src/image/benches/convert.rs:93,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:96,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:97,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:97,1
    - Dst: to_rgb32f
      Src: /src/image/benches/convert.rs:97,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:100,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:101,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:101,1
    - Dst: to_rgba32f
      Src: /src/image/benches/convert.rs:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 272
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 103
      start: 4
    functionDepth: 4
    functionLinenumber: 4
    functionLinenumberEnd: 103
    functionName: bench_cast_intra_colorspace
    functionSourceFile: /src/image/benches/convert.rs
    functionUses: 0
    functionsReached:
    - to_rgb8
    - ImageBuffer::from_pixel
    - Default::default
    - to_rgba16
    - to_luma_alpha8
    - DynamicImage::ImageLumaA16
    - to_luma_alpha16
    - criterion::black_box
    - to_rgba8
    - to_rgba32f
    - image::Luma
    - to_rgb32f
    - io::Result::bench_function
    - to_rgb16
    - DynamicImage::ImageLuma8
    - DynamicImage::ImageRgba32F
    - DynamicImage::ImageRgba8
    - to_luma8
    - DynamicImage::ImageLumaA8
    - to_luma16
    - image::LumaA
    - iter
    - image::Rgba
    linkageType: ''
    returnType: void
    signature: 'pub fn bench_cast_intra_colorspace(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageRgba8
      Src: /src/image/benches/convert.rs:107,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/convert.rs:107,1
    - Dst: image::Rgba
      Src: /src/image/benches/convert.rs:107,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:109,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:110,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:110,1
    - Dst: to_luma8
      Src: /src/image/benches/convert.rs:110,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:113,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:114,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:114,1
    - Dst: to_luma16
      Src: /src/image/benches/convert.rs:114,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/convert.rs:117,1
    - Dst: iter
      Src: /src/image/benches/convert.rs:118,1
    - Dst: criterion::black_box
      Src: /src/image/benches/convert.rs:118,1
    - Dst: to_luma_alpha16
      Src: /src/image/benches/convert.rs:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 120
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 120
    functionName: bench_cast_with_coefficient
    functionSourceFile: /src/image/benches/convert.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_pixel
    - to_luma8
    - io::Result::bench_function
    - to_luma16
    - to_luma_alpha16
    - iter
    - criterion::black_box
    - image::Rgba
    - DynamicImage::ImageRgba8
    linkageType: ''
    returnType: void
    signature: 'pub fn bench_cast_with_coefficient(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: image::math::Rect::from_xy_ranges
      Src: /src/image/benches/copy_from.rs:5,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/copy_from.rs:7,1
    - Dst: image::Rgba
      Src: /src/image/benches/copy_from.rs:7,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/copy_from.rs:8,1
    - Dst: image::Rgba
      Src: /src/image/benches/copy_from.rs:8,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/copy_from.rs:9,1
    - Dst: image::Rgba
      Src: /src/image/benches/copy_from.rs:9,1
    - Dst: image::GenericImageView::view
      Src: /src/image/benches/copy_from.rs:11,1
    - Dst: image::flat::FlatSamples::with_monocolor
      Src: /src/image/benches/copy_from.rs:14,1
    - Dst: ImageResult::as_view
      Src: /src/image/benches/copy_from.rs:15,1
    - Dst: Result::unwrap
      Src: /src/image/benches/copy_from.rs:15,1
    - Dst: ImageBuffer::as_flat_samples
      Src: /src/image/benches/copy_from.rs:17,1
    - Dst: ImageResult::as_view
      Src: /src/image/benches/copy_from.rs:22,1
    - Dst: Result::unwrap
      Src: /src/image/benches/copy_from.rs:22,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:24,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:25,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:25,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:25,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:28,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:29,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:29,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:29,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:32,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:33,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:33,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:33,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:36,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:37,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:37,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:37,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:40,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:41,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:41,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 115
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 43
      start: 4
    functionDepth: 14
    functionLinenumber: 4
    functionLinenumberEnd: 43
    functionName: bench_copy_from
    functionSourceFile: /src/image/benches/copy_from.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - ImageBuffer::from_pixel
    - copy_from
    - ImageBuffer::as_flat_samples
    - io::Result::bench_function
    - image::GenericImageView::view
    - image::flat::FlatSamples::with_monocolor
    - image::math::Rect::from_xy_ranges
    - iter
    - ImageResult::as_view
    - image::Rgba
    - criterion::black_box
    linkageType: ''
    returnType: void
    signature: 'pub fn bench_copy_from(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: image::math::Rect::from_xy_ranges
      Src: /src/image/benches/copy_from.rs:46,1
    - Dst: image::math::Rect::from_xy_ranges
      Src: /src/image/benches/copy_from.rs:47,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/copy_from.rs:49,1
    - Dst: image::Rgba
      Src: /src/image/benches/copy_from.rs:49,1
    - Dst: sub_image
      Src: /src/image/benches/copy_from.rs:50,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/copy_from.rs:52,1
    - Dst: image::Rgba
      Src: /src/image/benches/copy_from.rs:52,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/copy_from.rs:53,1
    - Dst: image::Rgba
      Src: /src/image/benches/copy_from.rs:53,1
    - Dst: image::GenericImageView::view
      Src: /src/image/benches/copy_from.rs:54,1
    - Dst: image::flat::FlatSamples::with_monocolor
      Src: /src/image/benches/copy_from.rs:57,1
    - Dst: ImageResult::as_view
      Src: /src/image/benches/copy_from.rs:58,1
    - Dst: Result::unwrap
      Src: /src/image/benches/copy_from.rs:58,1
    - Dst: ImageBuffer::as_flat_samples
      Src: /src/image/benches/copy_from.rs:60,1
    - Dst: ImageResult::as_view
      Src: /src/image/benches/copy_from.rs:65,1
    - Dst: Result::unwrap
      Src: /src/image/benches/copy_from.rs:65,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:67,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:68,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:68,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:68,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:71,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:72,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:72,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:72,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:75,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:76,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:76,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:76,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:79,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:80,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:80,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:80,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:83,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:84,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:84,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 126
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 86
      start: 45
    functionDepth: 14
    functionLinenumber: 45
    functionLinenumberEnd: 86
    functionName: bench_copy_subimage_from
    functionSourceFile: /src/image/benches/copy_from.rs
    functionUses: 0
    functionsReached:
    - sub_image
    - Result::unwrap
    - ImageBuffer::from_pixel
    - copy_from
    - ImageBuffer::as_flat_samples
    - io::Result::bench_function
    - image::GenericImageView::view
    - image::flat::FlatSamples::with_monocolor
    - image::math::Rect::from_xy_ranges
    - iter
    - ImageResult::as_view
    - image::Rgba
    - criterion::black_box
    linkageType: ''
    returnType: void
    signature: 'pub fn bench_copy_subimage_from(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode_definition
      Src: /src/image/benches/encode.rs:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 44
      start: 25
    functionDepth: 19
    functionLinenumber: 25
    functionLinenumberEnd: 44
    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:58,1
    - Dst: BenchmarkId::new
      Src: /src/image/benches/encode.rs:59,1
    - Dst: '&dyn Encoder::encode_raw'
      Src: /src/image/benches/encode.rs:63,1
    - Dst: iter
      Src: /src/image/benches/encode.rs:64,1
    - Dst: '&dyn Encoder::encode_raw'
      Src: /src/image/benches/encode.rs:64,1
    - Dst: '&mut BenchGroup::bench_with_input'
      Src: /src/image/benches/encode.rs:67,1
    - Dst: BenchmarkId::new
      Src: /src/image/benches/encode.rs:68,1
    - Dst: '&dyn Encoder::encode_raw'
      Src: /src/image/benches/encode.rs:72,1
    - Dst: iter
      Src: /src/image/benches/encode.rs:73,1
    - Dst: '&dyn Encoder::encode_bufvec'
      Src: /src/image/benches/encode.rs:73,1
    - Dst: '&mut BenchGroup::bench_with_input'
      Src: /src/image/benches/encode.rs:76,1
    - Dst: BenchmarkId::new
      Src: /src/image/benches/encode.rs:77,1
    - Dst: PathBuf::from
      Src: /src/image/benches/encode.rs:81,1
    - Dst: Self::join
      Src: /src/image/benches/encode.rs:81,1
    - Dst: File::create
      Src: /src/image/benches/encode.rs:82,1
    - Dst: unwrap
      Src: /src/image/benches/encode.rs:82,1
    - Dst: iter
      Src: /src/image/benches/encode.rs:83,1
    - Dst: '&dyn Encoder::encode_file'
      Src: /src/image/benches/encode.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 4
    argNames:
    - group
    - with
    - size
    - color
    argTypes:
    - '&mut BenchGroup'
    - '&dyn Encoder'
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 86
      start: 55
    functionDepth: 17
    functionLinenumber: 55
    functionLinenumberEnd: 86
    functionName: encode_zeroed
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 1
    functionsReached:
    - '&dyn Encoder::encode_bufvec'
    - '&mut BenchGroup::bench_with_input'
    - '&dyn Encoder::encode_file'
    - PathBuf::from
    - File::create
    - unwrap
    - BenchmarkId::new
    - iter
    - Self::join
    - '&dyn Encoder::encode_raw'
    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:89,1
    - Dst: encode_zeroed
      Src: /src/image/benches/encode.rs:93,1
    - Dst: bool::into
      Src: /src/image/benches/encode.rs:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - criterion
    - def
    argTypes:
    - '&mut Criterion'
    - '&BenchDef'
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 18
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: encode_definition
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 1
    functionsReached:
    - encode_zeroed
    - bool::into
    - '&mut Criterion::benchmark_group'
    linkageType: ''
    returnType: void
    signature: 'fn encode_definition(criterion: &mut Criterion, def: &BenchDef)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Img::clear
      Src: /src/image/benches/encode.rs:108,1
    - Dst: T::encode
      Src: /src/image/benches/encode.rs:109,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: 110
      start: 107
    functionDepth: 16
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: T::encode_raw
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 0
    functionsReached:
    - Img::clear
    - T::encode
    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:113,1
    - Dst: BufWriter::new
      Src: /src/image/benches/encode.rs:114,1
    - Dst: T::encode
      Src: /src/image/benches/encode.rs:115,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: 116
      start: 112
    functionDepth: 16
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: T::encode_bufvec
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 0
    functionsReached:
    - Img::clear
    - T::encode
    - BufWriter::new
    linkageType: ''
    returnType: void
    signature: 'fn encode_bufvec(&self, into: &mut Vec<u8>, im: &[u8], dims: u32,
      color: ExtendedColorType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: seek
      Src: /src/image/benches/encode.rs:119,1
    - Dst: SeekFrom::Start
      Src: /src/image/benches/encode.rs:119,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/benches/encode.rs:119,1
    - Dst: BufWriter::new
      Src: /src/image/benches/encode.rs:120,1
    - Dst: T::encode
      Src: /src/image/benches/encode.rs:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - file
    - im
    - dims
    - color
    argTypes:
    - '&File'
    - '&[u8]'
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 16
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: T::encode_file
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::unwrap
    - T::encode
    - SeekFrom::Start
    - BufWriter::new
    - seek
    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:127,1
    - Dst: encode
      Src: /src/image/benches/encode.rs:128,1
    - Dst: ImageResult::unwrap
      Src: /src/image/benches/encode.rs:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - into
    - im
    - size
    - color
    argTypes:
    - impl Write
    - '&[u8]'
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 16
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: Bmp::encode
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 0
    functionsReached:
    - BmpEncoder::new
    - encode
    - 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:134,1
    - Dst: write_image
      Src: /src/image/benches/encode.rs:135,1
    - Dst: ImageResult::unwrap
      Src: /src/image/benches/encode.rs:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - into
    - im
    - size
    - color
    argTypes:
    - impl Write
    - '&[u8]'
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: Jpeg::encode
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - write_image
    - JpegEncoder::new
    linkageType: ''
    returnType: void
    signature: 'fn encode(&self, mut into: impl Write, im: &[u8], size: u32, color:
      ExtendedColorType)'
  - 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: io::Result::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: io::Result::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: io::Result::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: io::Result::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: io::Result::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: io::Result::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: io::Result::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: io::Result::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: io::Result::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:
    - ImageBuffer::from_pixel
    - image::imageops::fast_blur
    - image::Rgb
    - io::Result::bench_function
    - RgbImage::from_pixel
    - iter
    - image::imageops::blur_advanced
    - DynamicImage::ImageRgb8
    - GaussianBlurParameters::new_from_sigma
    linkageType: ''
    returnType: void
    signature: 'pub fn bench_fast_blur(c: &mut Criterion)'
Fuzzer filename: /src/image/fuzz/fuzzers/fuzzer_script_bmp.rs
Fuzzing method: fuzz_target
report: name
sources:
- function_names:
  - test_read_xmp_png
  - test_read_xmp_webp
  - test_read_xmp_tiff
  - test_read_iptc_jpeg
  - test_read_iptc_png
  - test_read_xmp_jpeg
  - test_read_avif_compatible_brands
  source_file: /src/image/tests/metadata.rs
- function_names:
  - main
  - ReferenceTestCase::from_str
  source_file: /src/image/tests/reference_images.rs
- function_names:
  - process_images
  - truncate_images
  - truncate_tga
  - truncate_tiff
  - truncate_png
  - truncate_gif
  - truncate_bmp
  - truncate_ico
  - truncate_jpg
  - truncate_hdr
  - truncate_farbfeld
  - truncate_exr
  - truncate_webp
  - truncate_qoi
  - truncate_pnm
  - truncate_avif
  source_file: /src/image/tests/truncate_images.rs
- function_names:
  - process_images
  - check_regressions
  - check_webp_frames_regressions
  - ico_bmp_v5_with_icc_profile
  - bmp_bitfields
  - bad_gif_oom
  - resizing_with_alpha
  - resizing_with_catmul
  - gif_regressions
  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
  - test_decode_8bit_jpeg_ycbcr
  - test_decode_8bit_ycbcr_lzw_bt709
  - test_decode_8bit_ycbcr_lzw_invalid_coefficients
  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:
  - bad_images
  - image_paths_in
  source_file: /src/image/tests/bad_images.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::alpha
  - Pixel::map_without_alpha
  - Pixel::apply_without_alpha
  source_file: /src/image/src/traits.rs
- function_names:
  - GenericReader::new
  - 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
  - GenericReader::seek_relative
  - register_decoding_hook
  - decoding_hook_registered
  - get_decoding_hook
  - register_format_detection_hook
  - guess_format_extension
  - tests::is_mock_decoder_output
  - tests::decoding_hook
  - tests::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
  - handle_nan_before_conversion
  - u8::from_primitive
  - u16::from_primitive
  - 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
  - from_f32_rounded
  - 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::set_spec_compliance
  - 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::iptc_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::iptc_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
  - decoder_to_vec
  - t::e::s::t::_::g::u::e::s::s::_::f::o::r::m::a::t::_::a::g::r::e::e::s::_::w::i::t::h::_::e::x::t::e::n::s::i::o::n::test_file
  - test_guess_format_agrees_with_extension
  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:
  - parse_header
  - u16_be_to_ne
  - FarbfeldDecoder::new
  - FarbfeldDecoder::dimensions
  - FarbfeldDecoder::color_type
  - FarbfeldDecoder::read_image
  - FarbfeldDecoder::read_image_boxed
  - FarbfeldEncoder::new
  - FarbfeldEncoder::encode
  - FarbfeldEncoder::encode_impl
  - FarbfeldEncoder::write_image
  - tests::dimension_overflow
  source_file: /src/image/src/codecs/farbfeld.rs
- function_names:
  - GifDecoder::new
  - GifDecoder::dimensions
  - GifDecoder::color_type
  - GifDecoder::set_limits
  - GifDecoder::read_image
  - GifDecoder::icc_profile
  - GifDecoder::xmp_metadata
  - 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::loop_count
  - 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
  - TiffDecoder::interleave_planes
  - check_ycbcr_subsampling
  - read_ycbcr_coefficients
  - check_sample_format
  - err_unknown_color_type
  - ImageError::from_tiff_decode
  - ImageError::from_tiff_encode
  - 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
  - ycbcr_to_rgb8
  - cmyk_to_rgb
  - cmyk_to_rgb16
  - u8_slice_as_pod
  - TiffEncoder::new
  - TiffEncoder::write_tiff
  - TiffEncoder::write_image
  - TiffEncoder::set_icc_profile
  source_file: /src/image/src/codecs/tiff.rs
- function_names:
  - PngDecoder::new
  - PngDecoder::with_limits
  - PngDecoder::gamma_value
  - PngDecoder::apng
  - PngDecoder::is_apng
  - unsupported_color
  - PngDecoder::dimensions
  - PngDecoder::color_type
  - PngDecoder::original_color_type
  - PngDecoder::icc_profile
  - PngDecoder::exif_metadata
  - PngDecoder::xmp_metadata
  - PngDecoder::iptc_metadata
  - PngDecoder::read_image
  - PngDecoder::read_image_boxed
  - PngDecoder::set_limits
  - ApngDecoder::new
  - ApngDecoder::mix_next_frame
  - ApngDecoder::animatable_color_type
  - ApngDecoder::loop_count
  - 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::new_with_spec_compliance
  - HdrDecoder::with_strictness
  - HdrDecoder::metadata
  - HdrDecoder::dimensions
  - HdrDecoder::color_type
  - HdrDecoder::set_limits
  - 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:
  - RowsDecoded::rows
  - ParsedCoreHeader::parse
  - ParsedInfoHeader::parse
  - ParsedBitfields::parse
  - ParsedIccProfile::parse
  - DecoderState::default
  - RowIterator::next
  - DecoderError::fmt
  - ImageError::from
  - ChannelWidthError::fmt
  - calculate_row_padding
  - allocate_row_buffer
  - check_for_overflow
  - num_bytes
  - w::i::t::h::_::r::o::w::s::_::r::e::s::u::m::a::b::l::e::output_row_index
  - w::i::t::h::_::r::o::w::s::_::r::e::s::u::m::a::b::l::e::get_row_mut
  - with_rows_resumable
  - set_8bit_pixel_run
  - set_4bit_pixel_run
  - set_2bit_pixel_run
  - set_1bit_pixel_run
  - Bitfield::from_mask
  - Bitfield::read
  - Bitfields::from_mask
  - RleReader::new
  - RleReader::bytes_read
  - RleReader::read_byte
  - RleReader::read_exact
  - BmpDecoder::new_decoder
  - BmpDecoder::new
  - BmpDecoder::new_with_spec_compliance
  - BmpDecoder::new_resumable
  - BmpDecoder::new_without_file_header
  - BmpDecoder::new_with_ico_format
  - BmpDecoder::set_indexed_color
  - BmpDecoder::reader
  - BmpDecoder::read_file_header
  - BmpDecoder::image_type_from_compression
  - BmpDecoder::read_bitmap_core_header
  - BmpDecoder::read_bitmap_os2v2_header
  - BmpDecoder::read_bitmap_info_header
  - BmpDecoder::read_bitmasks
  - BmpDecoder::read_icc_profile
  - BmpDecoder::read_metadata
  - BmpDecoder::read_metadata_impl
  - BmpDecoder::read_headers
  - 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::is_rle
  - BmpDecoder::rows_decoded
  - BmpDecoder::finish_row_decode
  - BmpDecoder::read_image_data
  - BmpDecoder::read_image_data_impl
  - BmpDecoder::dimensions
  - BmpDecoder::color_type
  - BmpDecoder::icc_profile
  - BmpDecoder::read_image
  - BmpDecoder::read_image_boxed
  - test::test_bitfield_len
  - test::read_rle_too_short
  - test::test_no_header
  - test::validate_icc_profile
  - test::test_icc_profile
  - test::is_unexpected_eof
  - test::test_resumable_decoding
  - test::test_strict_vs_lenient_spec_validation
  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
  - e::x::p::a::n::d::_::r::g::b::1::5::_::t::o::_::r::g::b::2::4::unorm5_to_unorm8
  - expand_rgb15_to_rgb24
  - 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
  - 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_u32
  - HeaderReader::read_next_line
  - 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::subtype
  - read_separated_ascii
  - U8::from_bytes
  - U8::from_ascii
  - U16::from_bytes
  - U16::from_ascii
  - 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
  - tests::no_integers_with_plus
  - tests::incomplete_pnm_header
  - tests::leading_zeros
  - tests::header_overflow
  - tests::header_large_dimension
  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:
  - ChromaSubsampling::to_encoder_repr
  - PixelDensity::dpi
  - PixelDensity::to_encoder_repr
  - PixelDensity::default
  - EncoderError::fmt
  - ImageError::from
  - JpegEncoder::new
  - JpegEncoder::new_with_quality
  - JpegEncoder::set_chroma_subsampling
  - JpegEncoder::set_optimize_huffman_tables
  - JpegEncoder::set_progressive
  - JpegEncoder::set_pixel_density
  - JpegEncoder::encode
  - JpegEncoder::write_image
  - JpegEncoder::set_icc_profile
  - JpegEncoder::set_exif_metadata
  - JpegEncoder::make_compatible_img
  - tests::decode
  - tests::roundtrip_sanity_check
  - tests::grayscale_roundtrip_sanity_check
  - tests::roundtrip_exif_icc
  - tests::test_image_too_large
  - tests::check_color_types
  - tests::bench_jpeg_encoder_new
  source_file: /src/image/src/codecs/jpeg/encoder.rs
- function_names:
  - JpegDecoder::new
  - JpegDecoder::new_with_spec_compliance
  - JpegDecoder::dimensions
  - JpegDecoder::color_type
  - JpegDecoder::icc_profile
  - JpegDecoder::exif_metadata
  - JpegDecoder::xmp_metadata
  - JpegDecoder::iptc_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
  - tests::test_strict_vs_lenient_spec_compliance
  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::loop_count
  - 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_exif_metadata
  - 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
  - convert_orientation
  - reshape_plane
  - Plane16View::default
  - transmute_y_plane16
  - transmute_chroma_plane16
  - get_matrix
  - AvifDecoder::dimensions
  - AvifDecoder::color_type
  - AvifDecoder::icc_profile
  - AvifDecoder::orientation
  - 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_from_kernel_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_mut
  - crop
  - 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_overlay_transparent
  - 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
  - tests::test_image_thumbnail
  source_file: /src/image/src/imageops/mod.rs
- function_names:
  - resize_impl
  - convert_filter_type
  - premultiply_alpha
  - unpremultiply_alpha
  - has_constant_alpha
  - has_constant_alpha_integer
  - has_constant_alpha_f32
  - tests::smoke_test
  source_file: /src/image/src/imageops/resize.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
  - GenericImageView::to_pixel_view
  - Pixels::next
  - Pixels::clone
  - GenericImage::unsafe_put_pixel
  - GenericImage::copy_from
  - GenericImage::copy_from_samples
  - GenericImage::copy_within
  - GenericImage::sub_image
  - tests::test_image_put_pixel
  - 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_in_place
  - 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::shrink_to_fit
  - 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::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::into_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::strides_wh
  - 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
  - View::to_pixel_view
  - ViewMut::dimensions
  - ViewMut::get_pixel
  - ViewMut::to_pixel_view
  - ViewMut::put_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::to_pixel_view
  - SubImageInner::put_pixel
  - SubImageInner::copy_from
  - 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
  - I::m::a::g::e::B::u::f::f::e::r::::::::c::r::o::p::_::i::n::_::p::l::a::c::e::copy_within
  - ImageBuffer::crop_in_place
  - 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::fmt
  - ImageBuffer::dimensions
  - ImageBuffer::get_pixel
  - ImageBuffer::to_pixel_view
  - ImageBuffer::unsafe_get_pixel
  - ImageBuffer::buffer_with_dimensions
  - ImageBuffer::put_pixel
  - ImageBuffer::unsafe_put_pixel
  - ImageBuffer::copy_from_samples
  - ImageBuffer::copy_within
  - ImageBuffer::new
  - ImageBuffer::from_pixel
  - ImageBuffer::from_fn
  - ImageBuffer::from_vec
  - ImageBuffer::into_vec
  - ImageBuffer::shrink_to_fit
  - ImageBuffer::copy_color_space_from
  - ImageBuffer::from_raw_bgr
  - ImageBuffer::into_raw_bgr
  - ImageBuffer::from_raw_bgra
  - ImageBuffer::into_raw_bgra
  - 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
  - test::pleasant_debug
  - test::copy_from_subimage_to_middle
  - test::copy_from_band
  - test::copy_from_pixel
  - test::copy_from_strided
  - test::copy_from_strided_subimage
  - test::copy_from_subimage_subimage
  - 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::is_supported_for_transform
  - CicpColorPrimaries::to_moxcms
  - CicpTransferCharacteristics::is_supported_for_transform
  - 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_layout
  - CicpRgb::create_output
  - CicpRgb::cast_pixels_by_fallback
  - CicpRgb::cast_pixels_from_subpixels
  - CicpRgb::subpixel_cast_rgb_to_rgba
  - CicpRgb::subpixel_cast_rgba_to_rgb
  - CicpRgb::subpixel_cast_luma_to_luma_alpha
  - CicpRgb::subpixel_cast_luma_alpha_to_luma
  - 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::known_name
  - 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:
  - Rect::from_xy_ranges
  - Rect::from_image_at
  - Rect::is_in_bounds
  - Rect::test_in_bounds_of
  - Rect::assert_in_bounds_of
  - Rect::shrink_to_bounds_of
  - panic_out_of_bounds
  source_file: /src/image/src/math/rect.rs
- function_names: []
  source_file: /src/image/src/math/mod.rs
- function_names:
  - expand_packed
  - expand_bits
  - i::n::t::e::r::l::e::a::v::e::_::p::l::a::n::e::s::trampoline
  - interleave_planes
  - interleave_planes_inner
  - check_dimension_overflow
  - vec_copy_to_u8
  - clamp
  - vec_try_with_capacity
  - is_integer
  - seek_start_with_offset
  - 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_imageops
  - bench_resize
  source_file: /src/image/benches/imageops.rs
- function_names:
  - bench_cast_intra_colorspace
  - bench_cast_with_coefficient
  source_file: /src/image/benches/convert.rs
- function_names:
  - bench_copy_from
  - bench_copy_subimage_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
