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:28,1
    - Dst: PngDecoder::new
      Src: /src/image/tests/metadata.rs:31,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/metadata.rs:31,1
    - Dst: PngDecoder::prepare_image
      Src: /src/image/tests/metadata.rs:32,1
    - Dst: PngDecoder::xmp_metadata
      Src: /src/image/tests/metadata.rs:33,1
    - Dst: PngDecoder::new
      Src: /src/image/tests/metadata.rs:39,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/metadata.rs:39,1
    - Dst: image::ImageReader::from_decoder
      Src: /src/image/tests/metadata.rs:40,1
    - Dst: Box::new
      Src: /src/image/tests/metadata.rs:40,1
    - Dst: Result::decode
      Src: /src/image/tests/metadata.rs:41,1
    - Dst: Ok
      Src: /src/image/tests/metadata.rs:45,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 23
    functionDepth: 12
    functionLinenumber: 23
    functionLinenumberEnd: 46
    functionName: test_read_xmp_png
    functionSourceFile: /src/image/tests/metadata.rs
    functionUses: 0
    functionsReached:
    - PngDecoder::xmp_metadata
    - image::ImageReader::from_decoder
    - Ok
    - std::io::Cursor::new
    - fs::read
    - PathBuf::from_str
    - Box::new
    - Result::decode
    - PngDecoder::new
    - PngDecoder::prepare_image
    - Result::unwrap
    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:53,1
    - Dst: Result::unwrap
      Src: /src/image/tests/metadata.rs:53,1
    - Dst: fs::read
      Src: /src/image/tests/metadata.rs:54,1
    - Dst: WebPDecoder::new
      Src: /src/image/tests/metadata.rs:56,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/metadata.rs:56,1
    - Dst: xmp_metadata
      Src: /src/image/tests/metadata.rs:57,1
    - Dst: Ok
      Src: /src/image/tests/metadata.rs:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 12
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: test_read_xmp_webp
    functionSourceFile: /src/image/tests/metadata.rs
    functionUses: 0
    functionsReached:
    - WebPDecoder::new
    - Ok
    - std::io::Cursor::new
    - fs::read
    - PathBuf::from_str
    - xmp_metadata
    - Result::unwrap
    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:70,1
    - Dst: Result::unwrap
      Src: /src/image/tests/metadata.rs:70,1
    - Dst: fs::read
      Src: /src/image/tests/metadata.rs:72,1
    - Dst: TiffDecoder::new
      Src: /src/image/tests/metadata.rs:73,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/metadata.rs:73,1
    - Dst: xmp_metadata
      Src: /src/image/tests/metadata.rs:74,1
    - Dst: Ok
      Src: /src/image/tests/metadata.rs:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 12
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: test_read_xmp_tiff
    functionSourceFile: /src/image/tests/metadata.rs
    functionUses: 0
    functionsReached:
    - Ok
    - std::io::Cursor::new
    - fs::read
    - PathBuf::from_str
    - xmp_metadata
    - TiffDecoder::new
    - Result::unwrap
    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:92,1
    - Dst: Result::unwrap
      Src: /src/image/tests/metadata.rs:92,1
    - Dst: fs::read
      Src: /src/image/tests/metadata.rs:94,1
    - Dst: JpegDecoder::new
      Src: /src/image/tests/metadata.rs:95,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/metadata.rs:95,1
    - Dst: JpegDecoder::iptc_metadata
      Src: /src/image/tests/metadata.rs:96,1
    - Dst: Ok
      Src: /src/image/tests/metadata.rs:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 83
    functionDepth: 12
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: test_read_iptc_jpeg
    functionSourceFile: /src/image/tests/metadata.rs
    functionUses: 0
    functionsReached:
    - JpegDecoder::new
    - Ok
    - std::io::Cursor::new
    - fs::read
    - PathBuf::from_str
    - JpegDecoder::iptc_metadata
    - Result::unwrap
    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:120,1
    - Dst: Result::unwrap
      Src: /src/image/tests/metadata.rs:120,1
    - Dst: fs::read
      Src: /src/image/tests/metadata.rs:122,1
    - Dst: PngDecoder::new
      Src: /src/image/tests/metadata.rs:123,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/metadata.rs:123,1
    - Dst: PngDecoder::prepare_image
      Src: /src/image/tests/metadata.rs:124,1
    - Dst: PngDecoder::iptc_metadata
      Src: /src/image/tests/metadata.rs:125,1
    - Dst: Ok
      Src: /src/image/tests/metadata.rs:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 105
    functionDepth: 12
    functionLinenumber: 105
    functionLinenumberEnd: 130
    functionName: test_read_iptc_png
    functionSourceFile: /src/image/tests/metadata.rs
    functionUses: 0
    functionsReached:
    - PngDecoder::iptc_metadata
    - Ok
    - std::io::Cursor::new
    - fs::read
    - PathBuf::from_str
    - PngDecoder::new
    - PngDecoder::prepare_image
    - Result::unwrap
    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:137,1
    - Dst: Result::unwrap
      Src: /src/image/tests/metadata.rs:137,1
    - Dst: fs::read
      Src: /src/image/tests/metadata.rs:139,1
    - Dst: JpegDecoder::new
      Src: /src/image/tests/metadata.rs:140,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/metadata.rs:140,1
    - Dst: JpegDecoder::xmp_metadata
      Src: /src/image/tests/metadata.rs:141,1
    - Dst: Ok
      Src: /src/image/tests/metadata.rs:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 12
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: test_read_xmp_jpeg
    functionSourceFile: /src/image/tests/metadata.rs
    functionUses: 0
    functionsReached:
    - JpegDecoder::new
    - Ok
    - std::io::Cursor::new
    - fs::read
    - PathBuf::from_str
    - JpegDecoder::xmp_metadata
    - Result::unwrap
    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:158,1
    - Dst: RgbImage::from_pixel
      Src: /src/image/tests/metadata.rs:158,1
    - Dst: image::Rgb
      Src: /src/image/tests/metadata.rs:158,1
    - Dst: Vec::new
      Src: /src/image/tests/metadata.rs:159,1
    - Dst: Vec::write_to
      Src: /src/image/tests/metadata.rs:160,1
    - Dst: Cursor::new
      Src: /src/image/tests/metadata.rs:160,1
    - Dst: copy_from_slice
      Src: /src/image/tests/metadata.rs:165,1
    - Dst: AvifDecoder::new
      Src: /src/image/tests/metadata.rs:168,1
    - Dst: Cursor::new
      Src: /src/image/tests/metadata.rs:168,1
    - Dst: Ok
      Src: /src/image/tests/metadata.rs:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 150
    functionDepth: 13
    functionLinenumber: 150
    functionLinenumberEnd: 172
    functionName: test_read_avif_compatible_brands
    functionSourceFile: /src/image/tests/metadata.rs
    functionUses: 0
    functionsReached:
    - image::Rgb
    - Ok
    - RgbImage::from_pixel
    - copy_from_slice
    - Vec::write_to
    - Vec::new
    - AvifDecoder::new
    - Cursor::new
    - 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: 14
    functionLinenumber: 27
    functionLinenumberEnd: 50
    functionName: main
    functionSourceFile: /src/image/examples/scaledown/main.rs
    functionUses: 0
    functionsReached:
    - image::open
    - Option::resize
    - File::create
    - Instant::now
    - ImageResult::unwrap
    - Option::write_to
    - unwrap
    - Option::thumbnail
    - ImageBuffer::write_to
    - io::Result::unwrap
    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: 11
    functionLinenumber: 217
    functionLinenumberEnd: 242
    functionName: ReferenceTestCase::from_str
    functionSourceFile: /src/image/tests/reference_images.rs
    functionUses: 0
    functionsReached:
    - parse
    - len
    - FrameInfo::checked_sub
    - split('_').collect::<Vec<_>>
    - join
    - split
    - Ok
    - ok_or
    - pop
    - map_err
    - '&str::split'
    - last
    - collect
    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:13,1
    - Dst: collect
      Src: /src/image/tests/regression.rs:13,1
    - Dst: clone
      Src: /src/image/tests/regression.rs:18,1
    - Dst: ImageResult::push
      Src: /src/image/tests/regression.rs:19,1
    - Dst: ImageResult::push
      Src: /src/image/tests/regression.rs:20,1
    - Dst: ImageResult::push
      Src: /src/image/tests/regression.rs:21,1
    - Dst: ImageResult::push
      Src: /src/image/tests/regression.rs:22,1
    - Dst: '&str::to_string'
      Src: /src/image/tests/regression.rs:23,1
    - Dst: glob::glob
      Src: /src/image/tests/regression.rs:30,1
    - Dst: unwrap
      Src: /src/image/tests/regression.rs:30,1
    - Dst: filter_map
      Src: /src/image/tests/regression.rs:30,1
    - Dst: func
      Src: /src/image/tests/regression.rs:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 3
    argNames:
    - dir
    - input_decoder
    - func
    argTypes:
    - '&str'
    - Option<&str>
    - F
    constantsTouched: []
    func_position:
      end: 34
      start: 9
    functionDepth: 5
    functionLinenumber: 9
    functionLinenumberEnd: 34
    functionName: process_images
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 2
    functionsReached:
    - iter
    - '&str::to_string'
    - func
    - unwrap
    - glob::glob
    - ImageResult::push
    - filter_map
    - collect
    - clone
    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: 13
    functionLinenumber: 35
    functionLinenumberEnd: 47
    functionName: truncate_images
    functionSourceFile: /src/image/tests/truncate_images.rs
    functionUses: 14
    functionsReached:
    - process_images
    - take
    - fs::File::open
    - image::load_from_memory
    - Vec::with_capacity
    - step_by
    - unwrap
    - read_to_end
    - std::io::Result::len
    - io::Result::unwrap
    - ImageResult::ok
    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: 14
    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: 14
    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: 14
    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: 14
    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: 14
    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: 14
    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: 14
    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: 14
    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: 14
    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: 14
    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: 14
    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: 14
    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: 14
    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: 14
    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:38,1
    - Dst: image::open
      Src: /src/image/tests/regression.rs:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 12
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: check_regressions
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - process_images
    - image::open
    linkageType: ''
    returnType: void
    signature: fn check_regressions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/tests/regression.rs:49,1
    - Dst: "iter()\n        .collect::<PathBuf>"
      Src: /src/image/tests/regression.rs:49,1
    - Dst: join
      Src: /src/image/tests/regression.rs:49,1
    - Dst: join
      Src: /src/image/tests/regression.rs:49,1
    - Dst: join
      Src: /src/image/tests/regression.rs:49,1
    - Dst: glob::glob
      Src: /src/image/tests/regression.rs:56,1
    - Dst: unwrap
      Src: /src/image/tests/regression.rs:56,1
    - Dst: filter_map
      Src: /src/image/tests/regression.rs:56,1
    - Dst: fs::read
      Src: /src/image/tests/regression.rs:57,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/tests/regression.rs:57,1
    - Dst: Cursor::new
      Src: /src/image/tests/regression.rs:58,1
    - Dst: image_webp::WebPDecoder::new
      Src: /src/image/tests/regression.rs:59,1
    - Dst: Self::clone
      Src: /src/image/tests/regression.rs:59,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/regression.rs:59,1
    - Dst: num_frames
      Src: /src/image/tests/regression.rs:59,1
    - Dst: WebPDecoder::new
      Src: /src/image/tests/regression.rs:63,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/regression.rs:63,1
    - Dst: ImageReader::from_decoder
      Src: /src/image/tests/regression.rs:64,1
    - Dst: Box::new
      Src: /src/image/tests/regression.rs:64,1
    - Dst: Result::into_frames
      Src: /src/image/tests/regression.rs:68,1
    - Dst: Frames::take
      Src: /src/image/tests/regression.rs:68,1
    - Dst: enumerate
      Src: /src/image/tests/regression.rs:68,1
    - Dst: inspect
      Src: /src/image/tests/regression.rs:68,1
    - Dst: count
      Src: /src/image/tests/regression.rs:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 46
    functionDepth: 11
    functionLinenumber: 46
    functionLinenumberEnd: 80
    functionName: check_webp_frames_regressions
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - join
    - fs::read
    - ImageResult::unwrap
    - glob::glob
    - image_webp::WebPDecoder::new
    - Result::into_frames
    - iter
    - ImageReader::from_decoder
    - Self::clone
    - Box::new
    - unwrap
    - std::io::Result::unwrap
    - filter_map
    - "iter()\n        .collect::<PathBuf>"
    - WebPDecoder::new
    - num_frames
    - count
    - Frames::take
    - enumerate
    - Cursor::new
    - inspect
    linkageType: ''
    returnType: void
    signature: fn check_webp_frames_regressions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/tests/regression.rs:89,1
    - Dst: "iter()\n        .collect::<PathBuf>"
      Src: /src/image/tests/regression.rs:89,1
    - Dst: join
      Src: /src/image/tests/regression.rs:89,1
    - Dst: join
      Src: /src/image/tests/regression.rs:89,1
    - Dst: join
      Src: /src/image/tests/regression.rs:89,1
    - Dst: image::open
      Src: /src/image/tests/regression.rs:97,1
    - Dst: io::Result::expect
      Src: /src/image/tests/regression.rs:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 88
    functionDepth: 12
    functionLinenumber: 88
    functionLinenumberEnd: 102
    functionName: ico_bmp_v5_with_icc_profile
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - iter
    - image::open
    - join
    - io::Result::expect
    - "iter()\n        .collect::<PathBuf>"
    linkageType: ''
    returnType: void
    signature: fn ico_bmp_v5_with_icc_profile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/tests/regression.rs:113,1
    - Dst: "iter()\n        .collect::<PathBuf>"
      Src: /src/image/tests/regression.rs:113,1
    - Dst: join
      Src: /src/image/tests/regression.rs:113,1
    - Dst: BufReader::new
      Src: /src/image/tests/regression.rs:117,1
    - Dst: File::open
      Src: /src/image/tests/regression.rs:117,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/regression.rs:117,1
    - Dst: image::codecs::bmp::BmpDecoder::new_without_file_header
      Src: /src/image/tests/regression.rs:118,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/regression.rs:118,1
    - Dst: image::DynamicImage::from_decoder
      Src: /src/image/tests/regression.rs:120,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/regression.rs:120,1
    - Dst: into_rgba8
      Src: /src/image/tests/regression.rs:120,1
    - Dst: into_raw
      Src: /src/image/tests/regression.rs:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 112
    functionDepth: 12
    functionLinenumber: 112
    functionLinenumberEnd: 132
    functionName: bmp_bitfields
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - iter
    - join
    - io::Result::unwrap
    - image::codecs::bmp::BmpDecoder::new_without_file_header
    - BufReader::new
    - ImageResult::unwrap
    - into_rgba8
    - File::open
    - image::DynamicImage::from_decoder
    - into_raw
    - "iter()\n        .collect::<PathBuf>"
    linkageType: ''
    returnType: void
    signature: fn bmp_bitfields()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: image::load_from_memory
      Src: /src/image/tests/regression.rs:146,1
    - Dst: ImageResult::unwrap_err
      Src: /src/image/tests/regression.rs:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 135
    functionDepth: 15
    functionLinenumber: 135
    functionLinenumberEnd: 152
    functionName: bad_gif_oom
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap_err
    - image::load_from_memory
    linkageType: ''
    returnType: void
    signature: fn bad_gif_oom()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/tests/regression.rs:160,1
    - Dst: collect
      Src: /src/image/tests/regression.rs:160,1
    - Dst: image::ImageReaderOptions::open
      Src: /src/image/tests/regression.rs:161,1
    - Dst: join
      Src: /src/image/tests/regression.rs:162,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:168,1
    - Dst: Vec::clone
      Src: /src/image/tests/regression.rs:169,1
    - Dst: Self::resize_exact
      Src: /src/image/tests/regression.rs:170,1
    - Dst: Self::resize_exact
      Src: /src/image/tests/regression.rs:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 156
    functionDepth: 12
    functionLinenumber: 156
    functionLinenumberEnd: 174
    functionName: resizing_with_alpha
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - iter
    - image::ImageReaderOptions::open
    - Vec::clone
    - join
    - io::Result::unwrap
    - Self::resize_exact
    - unwrap
    - decode
    - Vec::dimensions
    - collect
    linkageType: ''
    returnType: void
    signature: fn resizing_with_alpha()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/tests/regression.rs:194,1
    - Dst: collect
      Src: /src/image/tests/regression.rs:194,1
    - Dst: image::ImageReaderOptions::open
      Src: /src/image/tests/regression.rs:195,1
    - Dst: join
      Src: /src/image/tests/regression.rs:196,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/regression.rs:195,1
    - Dst: decode
      Src: /src/image/tests/regression.rs:195,1
    - Dst: unwrap
      Src: /src/image/tests/regression.rs:195,1
    - Dst: image::ImageReaderOptions::open
      Src: /src/image/tests/regression.rs:202,1
    - Dst: join
      Src: /src/image/tests/regression.rs:203,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/regression.rs:202,1
    - Dst: decode
      Src: /src/image/tests/regression.rs:202,1
    - Dst: unwrap
      Src: /src/image/tests/regression.rs:202,1
    - Dst: Vec::dimensions
      Src: /src/image/tests/regression.rs:209,1
    - Dst: Self::div_ceil
      Src: /src/image/tests/regression.rs:210,1
    - Dst: ImageResult::div_ceil
      Src: /src/image/tests/regression.rs:210,1
    - Dst: Vec::clone
      Src: /src/image/tests/regression.rs:211,1
    - Dst: Self::resize_exact
      Src: /src/image/tests/regression.rs:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 190
    functionDepth: 12
    functionLinenumber: 190
    functionLinenumberEnd: 214
    functionName: resizing_with_catmul
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - iter
    - image::ImageReaderOptions::open
    - Vec::clone
    - join
    - io::Result::unwrap
    - Self::resize_exact
    - Self::div_ceil
    - unwrap
    - decode
    - Vec::dimensions
    - collect
    - ImageResult::div_ceil
    linkageType: ''
    returnType: void
    signature: fn resizing_with_catmul()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/tests/regression.rs:221,1
    - Dst: collect
      Src: /src/image/tests/regression.rs:221,1
    - Dst: join
      Src: /src/image/tests/regression.rs:222,1
    - Dst: BufReader::new
      Src: /src/image/tests/regression.rs:223,1
    - Dst: File::open
      Src: /src/image/tests/regression.rs:223,1
    - Dst: io::Result::unwrap
      Src: /src/image/tests/regression.rs:223,1
    - Dst: GifDecoder::new
      Src: /src/image/tests/regression.rs:225,1
    - Dst: ImageResult::expect
      Src: /src/image/tests/regression.rs:225,1
    - Dst: ImageReader::from_decoder
      Src: /src/image/tests/regression.rs:226,1
    - Dst: Box::new
      Src: /src/image/tests/regression.rs:226,1
    - Dst: Result::animation_attributes
      Src: /src/image/tests/regression.rs:228,1
    - Dst: Result::into_frames
      Src: /src/image/tests/regression.rs:229,1
    - Dst: ImageResult::next
      Src: /src/image/tests/regression.rs:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 218
    functionDepth: 12
    functionLinenumber: 218
    functionLinenumberEnd: 232
    functionName: gif_regressions
    functionSourceFile: /src/image/tests/regression.rs
    functionUses: 0
    functionsReached:
    - iter
    - join
    - io::Result::unwrap
    - Result::into_frames
    - Result::animation_attributes
    - BufReader::new
    - ImageResult::expect
    - ImageReader::from_decoder
    - Box::new
    - File::open
    - GifDecoder::new
    - ImageResult::next
    - collect
    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:
    - RgbImage::new
    - ImageResult::unwrap
    - Vec::write_to
    - Vec::new
    - Cursor::new
    linkageType: ''
    returnType: Vec
    signature: 'fn test_image(format: ImageFormat) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::no_limits
      Src: /src/image/tests/limits.rs:36,1
    - Dst: Some
      Src: /src/image/tests/limits.rs:37,1
    - Dst: Some
      Src: /src/image/tests/limits.rs:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: width_height_limits
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 1
    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: 9
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: allocation_limits
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - Limits::no_limits
    - Some
    - into
    linkageType: ''
    returnType: Limits
    signature: fn allocation_limits() -> Limits
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::no_limits
      Src: /src/image/tests/limits.rs:51,1
    - Dst: Some
      Src: /src/image/tests/limits.rs:52,1
    - Dst: Some
      Src: /src/image/tests/limits.rs:53,1
    - Dst: Some
      Src: /src/image/tests/limits.rs:57,1
    - Dst: into
      Src: /src/image/tests/limits.rs:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 9
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: permissive_limits
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 1
    functionsReached:
    - Limits::no_limits
    - Some
    - into
    linkageType: ''
    returnType: Limits
    signature: fn permissive_limits() -> Limits
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReaderOptions::new
      Src: /src/image/tests/limits.rs:66,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:66,1
    - Dst: Result::set_format
      Src: /src/image/tests/limits.rs:67,1
    - Dst: Result::limits
      Src: /src/image/tests/limits.rs:68,1
    - Dst: Result::decode
      Src: /src/image/tests/limits.rs:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - input
    - format
    - limits
    argTypes:
    - '&[u8]'
    - ImageFormat
    - Limits
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 12
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: load_through_reader
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 1
    functionsReached:
    - ImageReaderOptions::new
    - Result::set_format
    - Result::limits
    - Result::decode
    - Cursor::new
    linkageType: ''
    returnType: Result
    signature: 'fn load_through_reader(input: &[u8],format: ImageFormat,limits: Limits,)
      -> Result<image::DynamicImage, image::ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: gif
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 2
    functionsReached:
    - test_image
    linkageType: ''
    returnType: void
    signature: fn gif()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:90,1
    - Dst: PngDecoder::new
      Src: /src/image/tests/limits.rs:100,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:100,1
    - Dst: ImageResult::set_limits
      Src: /src/image/tests/limits.rs:101,1
    - Dst: width_height_limits
      Src: /src/image/tests/limits.rs:101,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 103
    functionName: png
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 2
    functionsReached:
    - test_image
    - width_height_limits
    - ImageResult::unwrap
    - ImageResult::set_limits
    - Cursor::new
    - PngDecoder::new
    linkageType: ''
    returnType: void
    signature: fn png()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:110,1
    - Dst: JpegDecoder::new
      Src: /src/image/tests/limits.rs:120,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 107
    functionDepth: 12
    functionLinenumber: 107
    functionLinenumberEnd: 123
    functionName: jpeg
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 2
    functionsReached:
    - test_image
    - Cursor::new
    - JpegDecoder::new
    linkageType: ''
    returnType: void
    signature: fn jpeg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:130,1
    - Dst: WebPDecoder::new
      Src: /src/image/tests/limits.rs:140,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:140,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 143
    functionName: webp
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - test_image
    - WebPDecoder::new
    - ImageResult::unwrap
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn webp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:150,1
    - Dst: permissive_limits
      Src: /src/image/tests/limits.rs:158,1
    - Dst: Some
      Src: /src/image/tests/limits.rs:160,1
    - Dst: into
      Src: /src/image/tests/limits.rs:160,1
    - Dst: load_through_reader
      Src: /src/image/tests/limits.rs:161,1
    - Dst: Result::unwrap
      Src: /src/image/tests/limits.rs:161,1
    - Dst: TiffDecoder::new
      Src: /src/image/tests/limits.rs:168,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:168,1
    - Dst: Result::unwrap
      Src: /src/image/tests/limits.rs:168,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/tests/limits.rs:169,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 147
    functionDepth: 10
    functionLinenumber: 147
    functionLinenumberEnd: 172
    functionName: tiff
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - permissive_limits
    - test_image
    - ImageResult::unwrap
    - Some
    - ImageResult::prepare_image
    - into
    - Cursor::new
    - TiffDecoder::new
    - load_through_reader
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn tiff()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:179,1
    - Dst: AvifDecoder::new
      Src: /src/image/tests/limits.rs:189,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:189,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 176
    functionDepth: 13
    functionLinenumber: 176
    functionLinenumberEnd: 192
    functionName: avif
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 2
    functionsReached:
    - AvifDecoder::new
    - test_image
    - Cursor::new
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn avif()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_image
      Src: /src/image/tests/limits.rs:199,1
    - Dst: BmpDecoder::new
      Src: /src/image/tests/limits.rs:209,1
    - Dst: Cursor::new
      Src: /src/image/tests/limits.rs:209,1
    - Dst: ImageResult::unwrap
      Src: /src/image/tests/limits.rs:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 196
    functionDepth: 14
    functionLinenumber: 196
    functionLinenumberEnd: 212
    functionName: bmp
    functionSourceFile: /src/image/tests/limits.rs
    functionUses: 0
    functionsReached:
    - test_image
    - Cursor::new
    - ImageResult::unwrap
    - BmpDecoder::new
    linkageType: ''
    returnType: void
    signature: fn bmp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/tests/conversions.rs:14,1
    - Dst: image::Rgb::<u16>
      Src: /src/image/tests/conversions.rs:14,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/tests/conversions.rs:18,1
    - Dst: image::Rgb::<u8>
      Src: /src/image/tests/conversions.rs:18,1
    - Dst: ImageBuffer::convert
      Src: /src/image/tests/conversions.rs:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 11
    functionDepth: 7
    functionLinenumber: 11
    functionLinenumberEnd: 22
    functionName: test_rgbu8_to_rgbu16
    functionSourceFile: /src/image/tests/conversions.rs
    functionUses: 0
    functionsReached:
    - image::Rgb::<u8>
    - ImageBuffer::from_pixel
    - ImageBuffer::convert
    - image::Rgb::<u16>
    linkageType: ''
    returnType: void
    signature: fn test_rgbu8_to_rgbu16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/tests/conversions.rs:26,1
    - Dst: image::Rgba::<u16>
      Src: /src/image/tests/conversions.rs:29,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/tests/conversions.rs:32,1
    - Dst: image::Rgba::<u8>
      Src: /src/image/tests/conversions.rs:35,1
    - Dst: ImageBuffer::convert
      Src: /src/image/tests/conversions.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 25
    functionDepth: 7
    functionLinenumber: 25
    functionLinenumberEnd: 40
    functionName: test_rgbau8_to_rgbau16
    functionSourceFile: /src/image/tests/conversions.rs
    functionUses: 0
    functionsReached:
    - image::Rgba::<u16>
    - ImageBuffer::from_pixel
    - ImageBuffer::convert
    - image::Rgba::<u8>
    linkageType: ''
    returnType: void
    signature: fn test_rgbau8_to_rgbau16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from_str
      Src: /src/image/tests/conversions.rs:46,1
    - Dst: Result::unwrap
      Src: /src/image/tests/conversions.rs:46,1
    - Dst: fs::read
      Src: /src/image/tests/conversions.rs:48,1
    - Dst: TiffDecoder::new
      Src: /src/image/tests/conversions.rs:49,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/conversions.rs:49,1
    - Dst: ImageReader::from_decoder
      Src: /src/image/tests/conversions.rs:50,1
    - Dst: Box::new
      Src: /src/image/tests/conversions.rs:50,1
    - Dst: Result::peek_layout
      Src: /src/image/tests/conversions.rs:52,1
    - Dst: Result::decode
      Src: /src/image/tests/conversions.rs:55,1
    - Dst: attributes
      Src: /src/image/tests/conversions.rs:56,1
    - Dst: Ok
      Src: /src/image/tests/conversions.rs:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 44
    functionDepth: 12
    functionLinenumber: 44
    functionLinenumberEnd: 62
    functionName: test_decode_8bit_jpeg_ycbcr
    functionSourceFile: /src/image/tests/conversions.rs
    functionUses: 0
    functionsReached:
    - Result::peek_layout
    - Ok
    - std::io::Cursor::new
    - fs::read
    - PathBuf::from_str
    - ImageReader::from_decoder
    - Box::new
    - Result::decode
    - attributes
    - TiffDecoder::new
    - Result::unwrap
    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:68,1
    - Dst: Result::unwrap
      Src: /src/image/tests/conversions.rs:68,1
    - Dst: fs::read
      Src: /src/image/tests/conversions.rs:70,1
    - Dst: TiffDecoder::new
      Src: /src/image/tests/conversions.rs:71,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/conversions.rs:71,1
    - Dst: ImageReader::from_decoder
      Src: /src/image/tests/conversions.rs:72,1
    - Dst: Box::new
      Src: /src/image/tests/conversions.rs:72,1
    - Dst: Result::peek_layout
      Src: /src/image/tests/conversions.rs:74,1
    - Dst: Result::decode
      Src: /src/image/tests/conversions.rs:77,1
    - Dst: attributes
      Src: /src/image/tests/conversions.rs:78,1
    - Dst: Ok
      Src: /src/image/tests/conversions.rs:83,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 12
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: test_decode_8bit_ycbcr_lzw_bt709
    functionSourceFile: /src/image/tests/conversions.rs
    functionUses: 0
    functionsReached:
    - Result::peek_layout
    - Ok
    - std::io::Cursor::new
    - fs::read
    - PathBuf::from_str
    - ImageReader::from_decoder
    - Box::new
    - Result::decode
    - attributes
    - TiffDecoder::new
    - Result::unwrap
    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:89,1
    - Dst: fs::read
      Src: /src/image/tests/conversions.rs:90,1
    - Dst: std::io::Result::expect
      Src: /src/image/tests/conversions.rs:90,1
    - Dst: TiffDecoder::new
      Src: /src/image/tests/conversions.rs:92,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/conversions.rs:92,1
    - Dst: Result::and_then
      Src: /src/image/tests/conversions.rs:92,1
    - Dst: ImageReader::from_decoder
      Src: /src/image/tests/conversions.rs:93,1
    - Dst: Box::new
      Src: /src/image/tests/conversions.rs:93,1
    - Dst: Result::peek_layout
      Src: /src/image/tests/conversions.rs:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 13
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: test_decode_8bit_ycbcr_lzw_invalid_coefficients
    functionSourceFile: /src/image/tests/conversions.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::expect
    - std::io::Cursor::new
    - fs::read
    - ImageReader::from_decoder
    - Box::new
    - PathBuf::from
    - TiffDecoder::new
    - Result::and_then
    - Result::peek_layout
    linkageType: ''
    returnType: void
    signature: fn test_decode_8bit_ycbcr_lzw_invalid_coefficients()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from
      Src: /src/image/tests/conversions.rs:104,1
    - Dst: fs::read
      Src: /src/image/tests/conversions.rs:105,1
    - Dst: std::io::Result::expect
      Src: /src/image/tests/conversions.rs:105,1
    - Dst: TiffDecoder::new
      Src: /src/image/tests/conversions.rs:107,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/conversions.rs:107,1
    - Dst: ImageReader::from_decoder
      Src: /src/image/tests/conversions.rs:108,1
    - Dst: Box::new
      Src: /src/image/tests/conversions.rs:108,1
    - Dst: Result::peek_layout
      Src: /src/image/tests/conversions.rs:110,1
    - Dst: Result::decode_into
      Src: /src/image/tests/conversions.rs:114,1
    - Dst: Ok
      Src: /src/image/tests/conversions.rs:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 103
    functionDepth: 13
    functionLinenumber: 103
    functionLinenumberEnd: 118
    functionName: test_decode_8bit_cmyk
    functionSourceFile: /src/image/tests/conversions.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::expect
    - Result::decode_into
    - std::io::Cursor::new
    - fs::read
    - Ok
    - ImageReader::from_decoder
    - Box::new
    - PathBuf::from
    - TiffDecoder::new
    - Result::peek_layout
    linkageType: ''
    returnType: Result
    signature: fn test_decode_8bit_cmyk() -> Result<(), image::ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::from
      Src: /src/image/tests/conversions.rs:124,1
    - Dst: fs::read
      Src: /src/image/tests/conversions.rs:125,1
    - Dst: std::io::Result::expect
      Src: /src/image/tests/conversions.rs:125,1
    - Dst: TiffDecoder::new
      Src: /src/image/tests/conversions.rs:127,1
    - Dst: std::io::Cursor::new
      Src: /src/image/tests/conversions.rs:127,1
    - Dst: ImageReader::from_decoder
      Src: /src/image/tests/conversions.rs:128,1
    - Dst: Box::new
      Src: /src/image/tests/conversions.rs:128,1
    - Dst: Result::peek_layout
      Src: /src/image/tests/conversions.rs:130,1
    - Dst: Result::decode_into
      Src: /src/image/tests/conversions.rs:134,1
    - Dst: Ok
      Src: /src/image/tests/conversions.rs:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 123
    functionDepth: 13
    functionLinenumber: 123
    functionLinenumberEnd: 138
    functionName: test_decode_8bit_cmyk_truncation
    functionSourceFile: /src/image/tests/conversions.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::expect
    - Result::decode_into
    - std::io::Cursor::new
    - fs::read
    - Ok
    - ImageReader::from_decoder
    - Box::new
    - PathBuf::from
    - TiffDecoder::new
    - Result::peek_layout
    linkageType: ''
    returnType: Result
    signature: fn test_decode_8bit_cmyk_truncation() -> Result<(), image::ImageError>
  - 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: image::ImageReader::from_decoder
      Src: /src/image/tests/limits_anim.rs:13,1
    - Dst: Box::new
      Src: /src/image/tests/limits_anim.rs:13,1
    - Dst: Result::set_limits
      Src: /src/image/tests/limits_anim.rs:14,1
    - Dst: Result::into_frames
      Src: /src/image/tests/limits_anim.rs:17,1
    - Dst: Ok
      Src: /src/image/tests/limits_anim.rs:22,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - data
    - limits
    argTypes:
    - '&[u8]'
    - Limits
    constantsTouched: []
    func_position:
      end: 23
      start: 9
    functionDepth: 11
    functionLinenumber: 9
    functionLinenumberEnd: 23
    functionName: gif_decode
    functionSourceFile: /src/image/tests/limits_anim.rs
    functionUses: 2
    functionsReached:
    - image::ImageReader::from_decoder
    - Ok
    - ImageResult::unwrap
    - Box::new
    - GifDecoder::new
    - Cursor::new
    - Result::into_frames
    - Result::set_limits
    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:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - res
    argTypes:
    - ImageResult<()>
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    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:42,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/tests/limits_anim.rs:42,1
    - Dst: Limits::default
      Src: /src/image/tests/limits_anim.rs:44,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:45,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:46,1
    - Dst: assert_limit_error
      Src: /src/image/tests/limits_anim.rs:47,1
    - Dst: gif_decode
      Src: /src/image/tests/limits_anim.rs:47,1
    - Dst: Limits::default
      Src: /src/image/tests/limits_anim.rs:49,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:51,1
    - Dst: assert_limit_error
      Src: /src/image/tests/limits_anim.rs:52,1
    - Dst: gif_decode
      Src: /src/image/tests/limits_anim.rs:52,1
    - Dst: Limits::default
      Src: /src/image/tests/limits_anim.rs:54,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:59,1
    - Dst: assert_limit_error
      Src: /src/image/tests/limits_anim.rs:60,1
    - Dst: gif_decode
      Src: /src/image/tests/limits_anim.rs:60,1
    - Dst: Limits::default
      Src: /src/image/tests/limits_anim.rs:62,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:63,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:64,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:67,1
    - Dst: gif_decode
      Src: /src/image/tests/limits_anim.rs:69,1
    - Dst: ImageResult::expect
      Src: /src/image/tests/limits_anim.rs:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 40
    functionDepth: 12
    functionLinenumber: 40
    functionLinenumberEnd: 71
    functionName: animated_full_frame_discard
    functionSourceFile: /src/image/tests/limits_anim.rs
    functionUses: 0
    functionsReached:
    - ImageResult::expect
    - assert_limit_error
    - Some
    - std::fs::read
    - std::io::Result::unwrap
    - 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:77,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/tests/limits_anim.rs:77,1
    - Dst: Limits::default
      Src: /src/image/tests/limits_anim.rs:79,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:80,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:81,1
    - Dst: assert_limit_error
      Src: /src/image/tests/limits_anim.rs:82,1
    - Dst: gif_decode
      Src: /src/image/tests/limits_anim.rs:82,1
    - Dst: Limits::default
      Src: /src/image/tests/limits_anim.rs:84,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:86,1
    - Dst: assert_limit_error
      Src: /src/image/tests/limits_anim.rs:87,1
    - Dst: gif_decode
      Src: /src/image/tests/limits_anim.rs:87,1
    - Dst: Limits::default
      Src: /src/image/tests/limits_anim.rs:89,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:95,1
    - Dst: assert_limit_error
      Src: /src/image/tests/limits_anim.rs:96,1
    - Dst: gif_decode
      Src: /src/image/tests/limits_anim.rs:96,1
    - Dst: Limits::default
      Src: /src/image/tests/limits_anim.rs:98,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:99,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:100,1
    - Dst: Some
      Src: /src/image/tests/limits_anim.rs:104,1
    - Dst: gif_decode
      Src: /src/image/tests/limits_anim.rs:106,1
    - Dst: ImageResult::expect
      Src: /src/image/tests/limits_anim.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 76
    functionDepth: 12
    functionLinenumber: 76
    functionLinenumberEnd: 108
    functionName: animated_frame_combine
    functionSourceFile: /src/image/tests/limits_anim.rs
    functionUses: 0
    functionsReached:
    - ImageResult::expect
    - assert_limit_error
    - Some
    - std::fs::read
    - std::io::Result::unwrap
    - 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: 14
    functionLinenumber: 10
    functionLinenumberEnd: 29
    functionName: save_16bit_to_pbm
    functionSourceFile: /src/image/tests/save_pnm.rs
    functionUses: 0
    functionsReached:
    - image::open
    - Option::as_luma16
    - expect
    - Option::save
    - ImageResult::expect
    - fs::create_dir_all
    - Option::unwrap
    - io::Result::expect
    linkageType: ''
    returnType: void
    signature: fn save_16bit_to_pbm()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs::create_dir_all
      Src: /src/image/tests/save_pnm.rs:34,1
    - Dst: expect
      Src: /src/image/tests/save_pnm.rs:34,1
    - Dst: image::open
      Src: /src/image/tests/save_pnm.rs:37,1
    - Dst: io::Result::expect
      Src: /src/image/tests/save_pnm.rs:37,1
    - Dst: Option::save
      Src: /src/image/tests/save_pnm.rs:38,1
    - Dst: ImageResult::expect
      Src: /src/image/tests/save_pnm.rs:38,1
    - Dst: image::open
      Src: /src/image/tests/save_pnm.rs:41,1
    - Dst: io::Result::expect
      Src: /src/image/tests/save_pnm.rs:41,1
    - Dst: Option::as_rgb16
      Src: /src/image/tests/save_pnm.rs:45,1
    - Dst: Option::unwrap
      Src: /src/image/tests/save_pnm.rs:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 14
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: save_16bit_to_ppm
    functionSourceFile: /src/image/tests/save_pnm.rs
    functionUses: 0
    functionsReached:
    - Option::as_rgb16
    - image::open
    - expect
    - Option::save
    - ImageResult::expect
    - fs::create_dir_all
    - Option::unwrap
    - io::Result::expect
    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: 9
    functionLinenumber: 7
    functionLinenumberEnd: 22
    functionName: bad_images
    functionSourceFile: /src/image/tests/bad_images.rs
    functionUses: 0
    functionsReached:
    - std::path::absolute
    - Vec::strip_prefix
    - image::open
    - image_paths_in
    - unwrap
    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: 8
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: image_paths_in
    functionSourceFile: /src/image/tests/bad_images.rs
    functionUses: 1
    functionsReached:
    - WalkDir::new
    - filter
    - Self::into_iter
    - map
    - into_path
    - Result::extension
    - ok
    - is_file
    - Option::is_some_and
    - filter_map
    - file_type
    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: 14
    functionLinenumber: 8
    functionLinenumberEnd: 29
    functionName: jqeg_qualitys
    functionSourceFile: /src/image/tests/save_jpeg.rs
    functionUses: 0
    functionsReached:
    - image::open
    - JpegEncoder::new
    - JpegEncoder::new_with_quality
    - ImageResult::unwrap
    - Option::write_with_encoder
    - 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::prepare_image
      Src: /src/image/fuzz-afl/reproducers/reproduce_webp.rs:13,1
    - Dst: total_bytes
      Src: /src/image/fuzz-afl/reproducers/reproduce_webp.rs:13,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:21,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 22
      start: 11
    functionDepth: 10
    functionLinenumber: 11
    functionLinenumberEnd: 22
    functionName: webp_decode
    functionSourceFile: /src/image/fuzz-afl/reproducers/reproduce_webp.rs
    functionUses: 0
    functionsReached:
    - Err
    - ImageError::Limits
    - LimitError::from_kind
    - DynamicImage::from_decoder
    - total_bytes
    - ImageResult::prepare_image
    - Cursor::new
    - 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::prepare_image
      Src: /src/image/fuzz-afl/reproducers/reproduce_pnm.rs:11,1
    - Dst: total_bytes
      Src: /src/image/fuzz-afl/reproducers/reproduce_pnm.rs:11,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: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 18
      start: 9
    functionDepth: 10
    functionLinenumber: 9
    functionLinenumberEnd: 18
    functionName: pnm_decode
    functionSourceFile: /src/image/fuzz-afl/reproducers/reproduce_pnm.rs
    functionUses: 0
    functionsReached:
    - image::codecs::pnm::PnmDecoder::new
    - ImageError::Limits
    - Err
    - LimitError::from_kind
    - DynamicImage::from_decoder
    - total_bytes
    - ImageResult::prepare_image
    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: 11
    functionLinenumber: 1
    functionLinenumberEnd: 10
    functionName: read_file_from_args
    functionSourceFile: /src/image/fuzz-afl/reproducers/utils.rs
    functionUses: 0
    functionsReached:
    - Vec::collect
    - std::env::args
    - std::io::Result::expect
    - std::process::exit
    - std::fs::read
    - Vec::len
    linkageType: ''
    returnType: Vec
    signature: pub fn read_file_from_args() -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: cms_provider
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: '&''static dyn CmsProvider'
    signature: pub(crate) fn cms_provider() -> &'static dyn CmsProvider
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/metadata.rs:58,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:59,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:60,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:61,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:62,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:63,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:64,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - exif_orientation
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 68
    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: 83
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 83
    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:96,1
    - Dst: Option::map
      Src: /src/image/src/metadata.rs:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 8
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: Orientation::from_exif_chunk
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 2
    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:110,1
    - Dst: Cursor::new
      Src: /src/image/src/metadata.rs:111,1
    - Dst: Self::set_position
      Src: /src/image/src/metadata.rs:112,1
    - Dst: to_exif
      Src: /src/image/src/metadata.rs:113,1
    - Dst: into
      Src: /src/image/src/metadata.rs:113,1
    - Dst: write_u16::<BigEndian>
      Src: /src/image/src/metadata.rs:115,1
    - Dst: unwrap
      Src: /src/image/src/metadata.rs:115,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/image/src/metadata.rs:116,1
    - Dst: unwrap
      Src: /src/image/src/metadata.rs:116,1
    - Dst: Some
      Src: /src/image/src/metadata.rs:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 8
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: Orientation::remove_from_exif_chunk
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 1
    functionsReached:
    - Self::from_exif_chunk_inner
    - Self::set_position
    - write_u16::<BigEndian>
    - unwrap
    - Some
    - into
    - to_exif
    - Cursor::new
    - write_u16::<LittleEndian>
    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:127,1
    - Dst: Result::read_exact
      Src: /src/image/src/metadata.rs:130,1
    - Dst: std::io::Result::ok
      Src: /src/image/src/metadata.rs:130,1
    - Dst: Self::locate_orientation_entry::<LittleEndian>
      Src: /src/image/src/metadata.rs:134,1
    - Dst: map
      Src: /src/image/src/metadata.rs:134,1
    - Dst: Self::locate_orientation_entry::<BigEndian>
      Src: /src/image/src/metadata.rs:138,1
    - Dst: map
      Src: /src/image/src/metadata.rs:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 144
      start: 126
    functionDepth: 7
    functionLinenumber: 126
    functionLinenumberEnd: 144
    functionName: Orientation::from_exif_chunk_inner
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::ok
    - Result::read_exact
    - map
    - Self::locate_orientation_entry::<BigEndian>
    - Self::locate_orientation_entry::<LittleEndian>
    - Cursor::new
    linkageType: ''
    returnType: Option
    signature: 'fn from_exif_chunk_inner(chunk: &[u8]) -> Option<(Self, u64, ExifEndian)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_u32::<B>
      Src: /src/image/src/metadata.rs:151,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:151,1
    - Dst: Result::set_position
      Src: /src/image/src/metadata.rs:152,1
    - Dst: u64::from
      Src: /src/image/src/metadata.rs:152,1
    - Dst: read_u16::<B>
      Src: /src/image/src/metadata.rs:153,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:153,1
    - Dst: read_u16::<B>
      Src: /src/image/src/metadata.rs:155,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:155,1
    - Dst: read_u16::<B>
      Src: /src/image/src/metadata.rs:156,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:156,1
    - Dst: read_u32::<B>
      Src: /src/image/src/metadata.rs:157,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:157,1
    - Dst: read_u16::<B>
      Src: /src/image/src/metadata.rs:158,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:158,1
    - Dst: read_u16::<B>
      Src: /src/image/src/metadata.rs:159,1
    - Dst: ok
      Src: /src/image/src/metadata.rs:159,1
    - Dst: Result::position
      Src: /src/image/src/metadata.rs:161,1
    - Dst: Self::from_exif
      Src: /src/image/src/metadata.rs:162,1
    - Dst: ImageResult::min
      Src: /src/image/src/metadata.rs:162,1
    - Dst: map
      Src: /src/image/src/metadata.rs:163,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 62
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut Cursor<&[u8]>'
    constantsTouched: []
    func_position:
      end: 168
      start: 147
    functionDepth: 6
    functionLinenumber: 147
    functionLinenumberEnd: 168
    functionName: Orientation::locate_orientation_entry
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 0
    functionsReached:
    - map
    - read_u32::<B>
    - ok
    - u64::from
    - Result::position
    - Self::from_exif
    - Result::set_position
    - read_u16::<B>
    - ImageResult::min
    linkageType: ''
    returnType: Option
    signature: 'fn locate_orientation_entry<B>(reader: &mut Cursor<&[u8]>) -> Option<(Self,
      u64)>whereB: byteorder_lite::ByteOrder,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/image/src/metadata.rs:198,1
    - Dst: JpegDecoder::new
      Src: /src/image/src/metadata.rs:199,1
    - Dst: ImageResult::exif_metadata
      Src: /src/image/src/metadata.rs:200,1
    - Dst: ImageResult::expect
      Src: /src/image/src/metadata.rs:200,1
    - Dst: expect
      Src: /src/image/src/metadata.rs:200,1
    - Dst: Orientation::from_exif_chunk
      Src: /src/image/src/metadata.rs:205,1
    - Dst: Option::expect
      Src: /src/image/src/metadata.rs:205,1
    - Dst: Orientation::remove_from_exif_chunk
      Src: /src/image/src/metadata.rs:209,1
    - Dst: Option::expect
      Src: /src/image/src/metadata.rs:209,1
    - Dst: Orientation::from_exif_chunk
      Src: /src/image/src/metadata.rs:213,1
    - Dst: Option::expect
      Src: /src/image/src/metadata.rs:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 197
    functionDepth: 12
    functionLinenumber: 197
    functionLinenumberEnd: 216
    functionName: tests::test_extraction_and_clearing
    functionSourceFile: /src/image/src/metadata.rs
    functionUses: 0
    functionsReached:
    - ImageResult::exif_metadata
    - JpegDecoder::new
    - expect
    - ImageResult::expect
    - Orientation::remove_from_exif_chunk
    - Orientation::from_exif_chunk
    - Cursor::new
    - Option::expect
    linkageType: ''
    returnType: void
    signature: fn test_extraction_and_clearing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/traits.rs:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    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:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    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:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    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: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    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:80,1
    - Dst: to_larger
      Src: /src/image/src/traits.rs:80,1
    - Dst: Self::max_value
      Src: /src/image/src/traits.rs:81,1
    - Dst: Self::min_value
      Src: /src/image/src/traits.rs:82,1
    - Dst: to_larger
      Src: /src/image/src/traits.rs:82,1
    - Dst: Self::min_value
      Src: /src/image/src/traits.rs:83,1
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:85,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - n
    argTypes:
    - Self::Larger
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: Enlargeable::clamp_from
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - Self::max_value
    - NumCast::from
    - Self::unwrap
    - Self::min_value
    - to_larger
    linkageType: ''
    returnType: Self
    signature: 'fn clamp_from(n: Self::Larger) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:90,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 91
    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:138,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:138,1
    - Dst: <Self::Ratio as NumCast>::from
      Src: /src/image/src/traits.rs:139,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:139,1
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:143,1
    - Dst: Self::max_value
      Src: /src/image/src/traits.rs:143,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:143,1
    - Dst: Self::max_value
      Src: /src/image/src/traits.rs:144,1
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:145,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:145,1
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:146,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:146,1
    - Dst: NumCast::from
      Src: /src/image/src/traits.rs:148,1
    - Dst: Self::unwrap
      Src: /src/image/src/traits.rs:148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 3
    argNames:
    - a
    - b
    - ratio
    argTypes:
    - Self
    - Self
    - Self::Ratio
    constantsTouched: []
    func_position:
      end: 150
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 150
    functionName: Lerp::lerp
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - Self::max_value
    - <Self::Ratio as NumCast>::from
    - Self::unwrap
    - NumCast::from
    linkageType: ''
    returnType: Self
    signature: 'fn lerp(a: Self, b: Self, ratio: Self::Ratio) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - ratio
    argTypes:
    - Self
    - Self
    - Self::Ratio
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    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:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - transform
    - into
    argTypes:
    - '&cicp::CicpTransform'
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 379
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 379
    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:387,1
    - Dst: Into::layout
      Src: /src/image/src/traits.rs:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - transform
    argTypes:
    - '&cicp::CicpTransform'
    constantsTouched: []
    func_position:
      end: 388
      start: 381
    functionDepth: 3
    functionLinenumber: 381
    functionLinenumberEnd: 388
    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:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 463
      start: 457
    functionDepth: 6
    functionLinenumber: 457
    functionLinenumberEnd: 463
    functionName: Pixel::alpha
    functionSourceFile: /src/image/src/traits.rs
    functionUses: 0
    functionsReached:
    - Pixel::to_luma_alpha
    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:
    - BufReader::new
    - Box::new
    - Self
    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: 7
    functionLinenumber: 82
    functionLinenumberEnd: 95
    functionName: register_decoding_hook
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 2
    functionsReached:
    - as_mut
    - entry
    - Arc::new
    - is_none
    - unwrap
    - Some
    - HashMap::new
    - Option::make_ascii_lowercase
    - write
    - Option::insert
    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: 7
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: decoding_hook_registered
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - map
    - unwrap
    - contains_key
    - read
    - Option::to_ascii_lowercase
    - unwrap_or
    - as_ref
    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: 3
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: get_decoding_hook
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 1
    functionsReached:
    - get
    - bool::clone
    - unwrap
    - Some
    - read
    - Option::to_ascii_lowercase
    - as_ref
    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:
    - ImageResult::unwrap_or
    - push
    - unwrap
    - Option::make_ascii_lowercase
    - write
    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: 11
    functionLinenumber: 165
    functionLinenumberEnd: 183
    functionName: guess_format_extension
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 1
    functionsReached:
    - iter
    - len
    - chain
    - ImageResult::iter
    - ImageResult::starts_with
    - read
    - std::iter::repeat
    - zip
    - unwrap
    - Some
    - all
    - ImageResult::is_empty
    - Option::clone
    - ImageResult::len
    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:
    - as_raw
    - Option::unwrap
    - Vec::as_rgb8
    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: ImageReaderOptions::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: 10
    functionLinenumber: 215
    functionLinenumberEnd: 230
    functionName: tests::decoding_hook
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - Ok
    - register_decoding_hook
    - Box::new
    - unwrap
    - into
    - ImageReaderOptions::open
    - decode
    - 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: ImageReaderOptions::new
      Src: /src/image/src/hooks.rs:251,1
    - Dst: Cursor::new
      Src: /src/image/src/hooks.rs:251,1
    - Dst: Self::with_guessed_format
      Src: /src/image/src/hooks.rs:251,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/hooks.rs:251,1
    - Dst: decode
      Src: /src/image/src/hooks.rs:251,1
    - Dst: unwrap
      Src: /src/image/src/hooks.rs:251,1
    - Dst: load_from_memory
      Src: /src/image/src/hooks.rs:259,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/hooks.rs:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 233
    functionDepth: 10
    functionLinenumber: 233
    functionLinenumberEnd: 261
    functionName: tests::detection_hook
    functionSourceFile: /src/image/src/hooks.rs
    functionUses: 0
    functionsReached:
    - ImageReaderOptions::new
    - Ok
    - register_format_detection_hook
    - register_decoding_hook
    - ImageResult::unwrap
    - Box::new
    - unwrap
    - Some
    - into
    - load_from_memory
    - decode
    - Cursor::new
    - Self::with_guessed_format
    - 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: 53
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: ColorType::bytes_per_pixel
    functionSourceFile: /src/image/src/color.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn bytes_per_pixel(self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: ColorType::has_alpha
    functionSourceFile: /src/image/src/color.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn has_alpha(self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: ColorType::has_color
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn has_color(self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: <u16 as From<u8>>::from
      Src: /src/image/src/color.rs:79,1
    - Dst: ColorType::bytes_per_pixel
      Src: /src/image/src/color.rs:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: ColorType::bits_per_pixel
    functionSourceFile: /src/image/src/color.rs
    functionUses: 1
    functionsReached:
    - <u16 as From<u8>>::from
    - ColorType::bytes_per_pixel
    linkageType: ''
    returnType: u16
    signature: pub fn bits_per_pixel(self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ColorType::into
      Src: /src/image/src/color.rs:85,1
    - Dst: channel_count
      Src: /src/image/src/color.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 9
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: ColorType::channel_count
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - ColorType::into
    - channel_count
    linkageType: ''
    returnType: u8
    signature: pub fn channel_count(self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 216
    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: 255
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 255
    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:282,1
    - 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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 295
    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:303,1
    - Dst: div_ceil
      Src: /src/image/src/color.rs:304,1
    - Dst: saturating_mul
      Src: /src/image/src/color.rs:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 306
    functionName: ExtendedColorType::buffer_size
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - saturating_mul
    - ExtendedColorType::bits_per_pixel
    - div_ceil
    linkageType: ''
    returnType: u64
    signature: 'pub 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: 323
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 323
    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:330,1
    - Dst: Option::ok_or
      Src: /src/image/src/color.rs:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 333
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 333
    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: std::slice::from_raw_parts
      Src: /src/image/src/color.rs:54,1
    - Dst: '&[T]::as_ptr'
      Src: /src/image/src/color.rs:54,1
    - Dst: std::slice::from_raw_parts_mut
      Src: /src/image/src/color.rs:59,1
    - Dst: '&[T]::as_mut_ptr'
      Src: /src/image/src/color.rs:59,1
    - Dst: std::slice::from_raw_parts
      Src: /src/image/src/color.rs:64,1
    - Dst: '&[T]::as_ptr'
      Src: /src/image/src/color.rs:64,1
    - Dst: std::slice::from_raw_parts_mut
      Src: /src/image/src/color.rs:69,1
    - Dst: '&[T]::as_mut_ptr'
      Src: /src/image/src/color.rs:69,1
    - Dst: from_color
      Src: /src/image/src/color.rs:78,1
    - Dst: from_color
      Src: /src/image/src/color.rs:84,1
    - Dst: from_color
      Src: /src/image/src/color.rs:90,1
    - Dst: from_color
      Src: /src/image/src/color.rs:96,1
    - Dst: apply
      Src: /src/image/src/color.rs:102,1
    - Dst: apply_with_alpha
      Src: /src/image/src/color.rs:114,1
    - Dst: iter_mut
      Src: /src/image/src/color.rs:120,1
    - Dst: f
      Src: /src/image/src/color.rs:121,1
    - Dst: get_mut
      Src: /src/image/src/color.rs:125,1
    - Dst: g
      Src: /src/image/src/color.rs:126,1
    - Dst: FnMut
      Src: /src/image/src/color.rs:130,1
    - Dst: clone
      Src: /src/image/src/color.rs:131,1
    - Dst: apply2
      Src: /src/image/src/color.rs:132,1
    - Dst: iter_mut
      Src: /src/image/src/color.rs:136,1
    - Dst: zip
      Src: /src/image/src/color.rs:136,1
    - Dst: iter
      Src: /src/image/src/color.rs:137,1
    - Dst: f
      Src: /src/image/src/color.rs:138,1
    - Dst: invert
      Src: /src/image/src/color.rs:142,1
    - Dst: Invert::invert
      Src: /src/image/src/color.rs:143,1
    - Dst: Blend::blend
      Src: /src/image/src/color.rs:147,1
    - Dst: Self
      Src: /src/image/src/color.rs:168,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 155
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 515
      start: 336
    functionDepth: 13
    functionLinenumber: 336
    functionLinenumberEnd: 515
    functionName: define_colors
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - apply_with_alpha
    - g
    - std::slice::from_raw_parts
    - iter
    - Invert::invert
    - unwrap
    - clone
    - FnMut
    - define_colors::channels
    - invert
    - '&[T]::as_ptr'
    - Blend::blend
    - from_color
    - std::slice::from_raw_parts_mut
    - get_mut
    - f
    - iter_mut
    - zip
    - apply
    - apply2
    - Self
    - '&[T]::as_mut_ptr'
    - usize::last
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - sample
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 540
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 540
    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:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - float
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 562
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 562
    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:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - c16
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 589
      start: 581
    functionDepth: 9
    functionLinenumber: 581
    functionLinenumberEnd: 589
    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:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - c8
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 613
      start: 607
    functionDepth: 9
    functionLinenumber: 607
    functionLinenumberEnd: 613
    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:
    - Dst: ImageResult::to_f32
      Src: /src/image/src/imageops/fast_blur.rs:80,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: f32::from_primitive
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - ImageResult::to_f32
    - f32::unwrap
    linkageType: ''
    returnType: f32
    signature: 'fn from_primitive(value: T) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: O::broadcast
      Src: /src/image/src/color.rs:638,1
    - Dst: Zero::zero
      Src: /src/image/src/color.rs:638,1
    - Dst: from_color
      Src: /src/image/src/color.rs:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 641
      start: 637
    functionDepth: 12
    functionLinenumber: 637
    functionLinenumberEnd: 641
    functionName: S::into_color
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - from_color
    - O::broadcast
    - Zero::zero
    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:650,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:650,1
    - Dst: to_larger
      Src: /src/image/src/color.rs:650,1
    - Dst: <T::Larger as NumCast>::from
      Src: /src/image/src/color.rs:651,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:651,1
    - Dst: to_larger
      Src: /src/image/src/color.rs:651,1
    - Dst: <T::Larger as NumCast>::from
      Src: /src/image/src/color.rs:652,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:652,1
    - Dst: to_larger
      Src: /src/image/src/color.rs:652,1
    - Dst: T::clamp_from
      Src: /src/image/src/color.rs:653,1
    - Dst: <T::Larger as NumCast>::from
      Src: /src/image/src/color.rs:653,1
    - Dst: Self::unwrap
      Src: /src/image/src/color.rs:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 1
    argNames:
    - rgb
    argTypes:
    - '&[T]'
    constantsTouched: []
    func_position:
      end: 654
      start: 649
    functionDepth: 3
    functionLinenumber: 649
    functionLinenumberEnd: 654
    functionName: rgb_to_luma
    functionSourceFile: /src/image/src/color.rs
    functionUses: 1
    functionsReached:
    - <T::Larger as NumCast>::from
    - Self::unwrap
    - to_larger
    - T::clamp_from
    linkageType: ''
    returnType: T
    signature: 'fn rgb_to_luma<T: Primitive + Enlargeable>(rgb: &[T]) -> T'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Luma::channels_mut
      Src: /src/image/src/color.rs:693,1
    - Dst: '&Rgba<S>::channels'
      Src: /src/image/src/color.rs:694,1
    - Dst: rgb_to_luma
      Src: /src/image/src/color.rs:695,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Rgba<S>'
    constantsTouched: []
    func_position:
      end: 697
      start: 692
    functionDepth: 4
    functionLinenumber: 692
    functionLinenumberEnd: 697
    functionName: Luma::from_color
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - rgb_to_luma
    - T::from_primitive
    - '&Rgba<S>::channels'
    - Luma::channels_mut
    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:743,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:744,1
    - Dst: '&Luma<S>::channels'
      Src: /src/image/src/color.rs:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Luma<S>'
    constantsTouched: []
    func_position:
      end: 746
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 746
    functionName: LumaA::from_color
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - '&Luma<S>::channels'
    - T::from_primitive
    - LumaA::channels_mut
    linkageType: ''
    returnType: void
    signature: 'fn from_color(&mut self, other: &Luma<S>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:800,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:801,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - gray
    argTypes:
    - '&Luma<S>'
    constantsTouched: []
    func_position:
      end: 804
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 804
    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:855,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:856,1
    - Dst: T::from_primitive
      Src: /src/image/src/color.rs:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Luma<S>'
    constantsTouched: []
    func_position:
      end: 858
      start: 852
    functionDepth: 1
    functionLinenumber: 852
    functionLinenumberEnd: 858
    functionName: Rgb::from_color
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - T::from_primitive
    linkageType: ''
    returnType: void
    signature: 'fn from_color(&mut self, other: &Luma<S>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_f32
      Src: /src/image/src/color.rs:870,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:870,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:875,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:875,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:876,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:876,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:879,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:879,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:880,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:880,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:893,1
    - Dst: T::nearest_from
      Src: /src/image/src/color.rs:894,1
    - Dst: T::nearest_from
      Src: /src/image/src/color.rs:895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 60
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&LumaA<T>'
    constantsTouched: []
    func_position:
      end: 897
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 897
    functionName: LumaA::blend
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - to_f32
    - LumaA
    - T::nearest_from
    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: 903
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 903
    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:910,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:924,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:924,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:925,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:925,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:926,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:926,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:927,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:927,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:930,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:930,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:931,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:931,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:932,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:932,1
    - Dst: to_f32
      Src: /src/image/src/color.rs:933,1
    - Dst: unwrap
      Src: /src/image/src/color.rs:933,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:961,1
    - Dst: T::nearest_from
      Src: /src/image/src/color.rs:962,1
    - Dst: T::nearest_from
      Src: /src/image/src/color.rs:963,1
    - Dst: T::nearest_from
      Src: /src/image/src/color.rs:964,1
    - Dst: T::nearest_from
      Src: /src/image/src/color.rs:965,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 129
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Rgba<T>'
    constantsTouched: []
    func_position:
      end: 967
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 967
    functionName: Rgba::blend
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - is_zero
    - to_f32
    - unwrap
    - T::nearest_from
    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: 973
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 973
    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:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 988
      start: 983
    functionDepth: 0
    functionLinenumber: 983
    functionLinenumberEnd: 988
    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:998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 999
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 999
    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:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1009
    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:1022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1013
    functionDepth: 0
    functionLinenumber: 1013
    functionLinenumberEnd: 1023
    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:1032,1
    - Dst: apply_with_alpha
      Src: /src/image/src/color.rs:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1035
    functionName: tests::test_apply_with_alpha_rgba
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - apply_with_alpha
    linkageType: ''
    returnType: void
    signature: fn test_apply_with_alpha_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgb
      Src: /src/image/src/color.rs:1039,1
    - Dst: apply_with_alpha
      Src: /src/image/src/color.rs:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1042
    functionName: tests::test_apply_with_alpha_rgb
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - apply_with_alpha
    - Rgb
    linkageType: ''
    returnType: void
    signature: fn test_apply_with_alpha_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgba
      Src: /src/image/src/color.rs:1046,1
    - Dst: map_with_alpha
      Src: /src/image/src/color.rs:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1048
    functionName: tests::test_map_with_alpha_rgba
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - map_with_alpha
    linkageType: ''
    returnType: void
    signature: fn test_map_with_alpha_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgb
      Src: /src/image/src/color.rs:1052,1
    - Dst: map_with_alpha
      Src: /src/image/src/color.rs:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1054
    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: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
    - Dst: LumaA
      Src: /src/image/src/color.rs:1070,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:1071,1
    - Dst: blend
      Src: /src/image/src/color.rs:1072,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:1076,1
    - Dst: LumaA
      Src: /src/image/src/color.rs:1077,1
    - Dst: blend
      Src: /src/image/src/color.rs:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1057
    functionDepth: 2
    functionLinenumber: 1057
    functionLinenumberEnd: 1081
    functionName: tests::test_blend_luma_alpha
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - LumaA
    - blend
    linkageType: ''
    returnType: void
    signature: fn test_blend_luma_alpha()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgba
      Src: /src/image/src/color.rs:1085,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1086,1
    - Dst: blend
      Src: /src/image/src/color.rs:1087,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1090,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1091,1
    - Dst: blend
      Src: /src/image/src/color.rs:1092,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1095,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1096,1
    - Dst: blend
      Src: /src/image/src/color.rs:1097,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1100,1
    - Dst: Rgba
      Src: /src/image/src/color.rs:1101,1
    - Dst: blend
      Src: /src/image/src/color.rs:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1084
    functionDepth: 2
    functionLinenumber: 1084
    functionLinenumberEnd: 1104
    functionName: tests::test_blend_rgba
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - blend
    linkageType: ''
    returnType: void
    signature: fn test_blend_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgba
      Src: /src/image/src/color.rs:1108,1
    - Dst: apply_without_alpha
      Src: /src/image/src/color.rs:1109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1111
    functionName: tests::test_apply_without_alpha_rgba
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - apply_without_alpha
    linkageType: ''
    returnType: void
    signature: fn test_apply_without_alpha_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgb
      Src: /src/image/src/color.rs:1115,1
    - Dst: apply_without_alpha
      Src: /src/image/src/color.rs:1116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1114
    functionDepth: 1
    functionLinenumber: 1114
    functionLinenumberEnd: 1118
    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:1122,1
    - Dst: map_without_alpha
      Src: /src/image/src/color.rs:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1121
    functionDepth: 1
    functionLinenumber: 1121
    functionLinenumberEnd: 1124
    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:1128,1
    - Dst: map_without_alpha
      Src: /src/image/src/color.rs:1128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1130
    functionName: tests::test_map_without_alpha_rgb
    functionSourceFile: /src/image/src/color.rs
    functionUses: 0
    functionsReached:
    - map_without_alpha
    - Rgb
    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: 1152
      start: 1144
    functionDepth: 0
    functionLinenumber: 1144
    functionLinenumberEnd: 1152
    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:1157,1
    - Dst: u8::to_luma
      Src: /src/image/src/color.rs:1158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1155
    functionDepth: 3
    functionLinenumber: 1155
    functionLinenumberEnd: 1160
    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:30,1
    - Dst: io::Result::try_reserve
      Src: /src/image/src/io.rs:31,1
    - Dst: R::take
      Src: /src/image/src/io.rs:32,1
    - Dst: read_to_end
      Src: /src/image/src/io.rs:32,1
    - Dst: Ok
      Src: /src/image/src/io.rs:33,1
    - Dst: io::Result::truncate
      Src: /src/image/src/io.rs:35,1
    - Dst: Err
      Src: /src/image/src/io.rs:36,1
    - Dst: err
      Src: /src/image/src/io.rs:36,1
    - Dst: unwrap_or
      Src: /src/image/src/io.rs:36,1
    - Dst: into
      Src: /src/image/src/io.rs:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - vec
    - len
    argTypes:
    - '&mut Vec<u8>'
    - usize
    constantsTouched: []
    func_position:
      end: 39
      start: 29
    functionDepth: 11
    functionLinenumber: 29
    functionLinenumberEnd: 39
    functionName: R::read_exact_vec
    functionSourceFile: /src/image/src/io.rs
    functionUses: 0
    functionsReached:
    - Err
    - R::take
    - err
    - Ok
    - unwrap_or
    - io::Result::truncate
    - read_to_end
    - into
    - io::Result::len
    - io::Result::try_reserve
    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: 3
    argNames:
    - w
    - h
    - color
    argTypes:
    - u32
    - u32
    - crate::ColorType
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: ImageLayout::new
    functionSourceFile: /src/image/src/io.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: ImageLayout
    signature: 'pub fn new(w: u32, h: u32, color: crate::ColorType) -> ImageLayout'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - color
    argTypes:
    - crate::ColorType
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: ImageLayout::empty
    functionSourceFile: /src/image/src/io.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn empty(color: crate::ColorType) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: ImageLayout::dimensions
    functionSourceFile: /src/image/src/io.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (u32, u32)
    signature: pub fn dimensions(&self) -> (u32, u32)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/image/src/io.rs:93,1
    - Dst: u64::from
      Src: /src/image/src/io.rs:93,1
    - Dst: u64::from
      Src: /src/image/src/io.rs:94,1
    - Dst: bytes_per_pixel
      Src: /src/image/src/io.rs:94,1
    - Dst: saturating_mul
      Src: /src/image/src/io.rs:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: ImageLayout::total_bytes
    functionSourceFile: /src/image/src/io.rs
    functionUses: 0
    functionsReached:
    - saturating_mul
    - u64::from
    - bytes_per_pixel
    linkageType: ''
    returnType: u64
    signature: pub fn total_bytes(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytes_per_pixel
      Src: /src/image/src/io.rs:105,1
    - Dst: u64::from
      Src: /src/image/src/io.rs:106,1
    - Dst: u64::from
      Src: /src/image/src/io.rs:106,1
    - Dst: u64::from
      Src: /src/image/src/io.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: ImageLayout::total_bytes_overflows_u64
    functionSourceFile: /src/image/src/io.rs
    functionUses: 0
    functionsReached:
    - u64::from
    - bytes_per_pixel
    linkageType: ''
    returnType: bool
    signature: pub(crate) fn total_bytes_overflows_u64(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - layout
    argTypes:
    - ImageLayout
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: DecoderPreparedImage::from
    functionSourceFile: /src/image/src/io.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(layout: ImageLayout) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageLayout::new
      Src: /src/image/src/io.rs:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - w
    - h
    - color
    argTypes:
    - u32
    - u32
    - crate::ColorType
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: DecoderPreparedImage::new
    functionSourceFile: /src/image/src/io.rs
    functionUses: 12
    functionsReached:
    - ImageLayout::new
    linkageType: ''
    returnType: DecoderPreparedImage
    signature: 'pub fn new(w: u32, h: u32, color: crate::ColorType) -> DecoderPreparedImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: total_bytes
      Src: /src/image/src/io.rs:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: DecoderPreparedImage::total_bytes
    functionSourceFile: /src/image/src/io.rs
    functionUses: 0
    functionsReached:
    - total_bytes
    linkageType: ''
    returnType: u64
    signature: pub fn total_bytes(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - format
    - kind
    argTypes:
    - ImageFormatHint
    - UnsupportedErrorKind
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: UnsupportedError::from_format_and_kind
    functionSourceFile: /src/image/src/error.rs
    functionUses: 52
    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:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 211
    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:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 217
    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:225,1
    - Dst: ImageError::into
      Src: /src/image/src/error.rs:225,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: 227
      start: 222
    functionDepth: 9
    functionLinenumber: 222
    functionLinenumberEnd: 227
    functionName: DecodingError::new
    functionSourceFile: /src/image/src/error.rs
    functionUses: 22
    functionsReached:
    - Some
    - ImageError::into
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(format: ImageFormatHint, err: impl Into<Box<dyn Error +
      Send + Sync>>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - format
    argTypes:
    - ImageFormatHint
    constantsTouched: []
    func_position:
      end: 238
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 238
    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:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 244
    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:252,1
    - Dst: ImageError::into
      Src: /src/image/src/error.rs:252,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: 254
      start: 249
    functionDepth: 9
    functionLinenumber: 249
    functionLinenumberEnd: 254
    functionName: EncodingError::new
    functionSourceFile: /src/image/src/error.rs
    functionUses: 8
    functionsReached:
    - Some
    - ImageError::into
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(format: ImageFormatHint, err: impl Into<Box<dyn Error +
      Send + Sync>>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - format
    argTypes:
    - ImageFormatHint
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    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:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 271
    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: 282
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 282
    functionName: ParameterError::from_kind
    functionSourceFile: /src/image/src/error.rs
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_kind(kind: ParameterErrorKind) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/error.rs:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 288
    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: 296
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: LimitError::from_kind
    functionSourceFile: /src/image/src/error.rs
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_kind(kind: LimitErrorKind) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/error.rs:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 302
    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: 308
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 308
    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:1760,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/images/flat.rs:1760,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/images/flat.rs:1763,1
    - Dst: DecodingError::new
      Src: /src/image/src/images/flat.rs:1763,1
    - Dst: NormalFormRequiredError
      Src: /src/image/src/images/flat.rs:1765,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/images/flat.rs:1767,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/images/flat.rs:1768,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/images/flat.rs:1771,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/images/flat.rs:1771,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/images/flat.rs:1773,1
    - Dst: bool::into
      Src: /src/image/src/images/flat.rs:1773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - error
    argTypes:
    - Error
    constantsTouched: []
    func_position:
      end: 1777
      start: 1749
    functionDepth: 10
    functionLinenumber: 1749
    functionLinenumberEnd: 1777
    functionName: ImageError::from
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - ImageError::Decoding
    - UnsupportedError::from_format_and_kind
    - NormalFormRequiredError
    - UnsupportedErrorKind::Color
    - ImageError::Unsupported
    - bool::into
    - ParameterError::from_kind
    - ImageError::Parameter
    - DecodingError::new
    linkageType: ''
    returnType: ImageError
    signature: 'fn from(error: Error) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::extension
      Src: /src/image/src/error.rs:331,1
    - Dst: ImageFormatHint::PathExtension
      Src: /src/image/src/error.rs:332,1
    - Dst: Option::into
      Src: /src/image/src/error.rs:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&''_ std::path::Path'
    constantsTouched: []
    func_position:
      end: 335
      start: 330
    functionDepth: 12
    functionLinenumber: 330
    functionLinenumberEnd: 335
    functionName: ImageFormatHint::from
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - ImageResult::extension
    - ImageFormatHint::PathExtension
    - Option::into
    linkageType: ''
    returnType: Self
    signature: 'fn from(path: &''_ std::path::Path) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageFormatHint::clone
      Src: /src/image/src/error.rs:341,1
    - Dst: UnsupportedErrorKind::Format
      Src: /src/image/src/error.rs:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hint
    argTypes:
    - ImageFormatHint
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: UnsupportedError::from
    functionSourceFile: /src/image/src/error.rs
    functionUses: 0
    functionsReached:
    - ImageFormatHint::clone
    - UnsupportedErrorKind::Format
    linkageType: ''
    returnType: Self
    signature: 'fn from(hint: ImageFormatHint) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::fmt
      Src: /src/image/src/error.rs:353,1
    - Dst: ImageError::fmt
      Src: /src/image/src/error.rs:354,1
    - Dst: ImageError::fmt
      Src: /src/image/src/error.rs:355,1
    - Dst: ImageError::fmt
      Src: /src/image/src/error.rs:356,1
    - Dst: ImageError::fmt
      Src: /src/image/src/error.rs:357,1
    - Dst: ImageError::fmt
      Src: /src/image/src/error.rs:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 360
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 360
    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:366,1
    - Dst: ImageError::source
      Src: /src/image/src/error.rs:367,1
    - Dst: ImageError::source
      Src: /src/image/src/error.rs:368,1
    - Dst: ImageError::source
      Src: /src/image/src/error.rs:369,1
    - Dst: ImageError::source
      Src: /src/image/src/error.rs:370,1
    - Dst: ImageError::source
      Src: /src/image/src/error.rs:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 373
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 373
    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: 413
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 413
    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:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 454
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 454
    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:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 463
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 463
    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: 476
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 476
    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:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 485
    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: 499
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 499
    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:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 508
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 508
    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:518,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 521
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 521
    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: 534
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 534
    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: 559
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 559
    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: 584
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 584
    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:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 587
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 587
    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:
    - Dst: as_chunks_mut::<3>
      Src: /src/image/src/primitive_sealed.rs:33,1
    - Dst: u8::swap
      Src: /src/image/src/primitive_sealed.rs:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pixels
    argTypes:
    - '&mut [Self]'
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: BgraSwizzle::swizzle_rgb_bgr
    functionSourceFile: /src/image/src/primitive_sealed.rs
    functionUses: 1
    functionsReached:
    - as_chunks_mut::<3>
    - u8::swap
    linkageType: ''
    returnType: void
    signature: 'fn swizzle_rgb_bgr(pixels: &mut [Self])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/primitive_sealed.rs:38,1
    - Dst: swap
      Src: /src/image/src/primitive_sealed.rs:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pixels
    argTypes:
    - '&mut [Self]'
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: BgraSwizzle::swizzle_rgba_bgra
    functionSourceFile: /src/image/src/primitive_sealed.rs
    functionUses: 1
    functionsReached:
    - as_chunks_mut::<4>
    - swap
    linkageType: ''
    returnType: void
    signature: 'fn swizzle_rgba_bgra(pixels: &mut [Self])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/primitive_sealed.rs:47,1
    - Dst: u32::from_be_bytes
      Src: /src/image/src/primitive_sealed.rs:48,1
    - Dst: swap_bytes
      Src: /src/image/src/primitive_sealed.rs:49,1
    - Dst: rotate_left
      Src: /src/image/src/primitive_sealed.rs:50,1
    - Dst: to_be_bytes
      Src: /src/image/src/primitive_sealed.rs:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - pixels
    argTypes:
    - '&mut [Self]'
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: u8::swizzle_rgba_bgra
    functionSourceFile: /src/image/src/primitive_sealed.rs
    functionUses: 0
    functionsReached:
    - u32::from_be_bytes
    - rotate_left
    - as_chunks_mut::<4>
    - swap_bytes
    - to_be_bytes
    linkageType: ''
    returnType: void
    signature: 'fn swizzle_rgba_bgra(pixels: &mut [Self])'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: u8::nearest_from
    functionSourceFile: /src/image/src/primitive_sealed.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn nearest_from(value: f32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::nearest_from
      Src: /src/image/src/primitive_sealed.rs:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: u8::clamp_nearest_from
    functionSourceFile: /src/image/src/primitive_sealed.rs
    functionUses: 0
    functionsReached:
    - Self::nearest_from
    linkageType: ''
    returnType: Self
    signature: 'fn clamp_nearest_from(value: f32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: u16::nearest_from
    functionSourceFile: /src/image/src/primitive_sealed.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn nearest_from(value: f32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::nearest_from
      Src: /src/image/src/primitive_sealed.rs:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: u16::clamp_nearest_from
    functionSourceFile: /src/image/src/primitive_sealed.rs
    functionUses: 0
    functionsReached:
    - Self::nearest_from
    linkageType: ''
    returnType: Self
    signature: 'fn clamp_nearest_from(value: f32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - value
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: f32::nearest_from
    functionSourceFile: /src/image/src/primitive_sealed.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn nearest_from(value: f32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::max
      Src: /src/image/src/primitive_sealed.rs:133,1
    - Dst: min
      Src: /src/image/src/primitive_sealed.rs:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: f32::clamp_nearest_from
    functionSourceFile: /src/image/src/primitive_sealed.rs
    functionUses: 0
    functionsReached:
    - ImageResult::max
    - min
    linkageType: ''
    returnType: Self
    signature: 'fn clamp_nearest_from(value: f32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: f64::nearest_from
    functionSourceFile: /src/image/src/primitive_sealed.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn nearest_from(value: f32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::max
      Src: /src/image/src/primitive_sealed.rs:142,1
    - Dst: min
      Src: /src/image/src/primitive_sealed.rs:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - value
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: f64::clamp_nearest_from
    functionSourceFile: /src/image/src/primitive_sealed.rs
    functionUses: 0
    functionsReached:
    - ImageResult::max
    - min
    linkageType: ''
    returnType: Self
    signature: 'fn clamp_nearest_from(value: f32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::round
      Src: /src/image/src/primitive_sealed.rs:4,1
    - Dst: Self::nearest_from
      Src: /src/image/src/primitive_sealed.rs:7,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 146
    functionDepth: 7
    functionLinenumber: 146
    functionLinenumberEnd: 157
    functionName: impl_nearest_from_f32_for_ints
    functionSourceFile: /src/image/src/primitive_sealed.rs
    functionUses: 0
    functionsReached:
    - ImageResult::round
    - Self::nearest_from
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: impl_with_blur_acc_f32
    functionSourceFile: /src/image/src/primitive_sealed.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 291
    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: 1
    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: 4
    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: 5
    functionsReached:
    - Self::from_numer_denom_ms
    - Self::closest_bounded_fraction
    - min
    - Self::as_nanos
    - Self::as_millis
    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: 3
    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:
    - abs_diff_nom
    - u64::from
    - cmp
    - 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: 9
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: Duration::from
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 2
    functionsReached:
    - Self::into
    - Duration::from_millis
    - Duration::from_nanos
    - Self::to_integer
    - Delay::into_ratio
    - u64::from
    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: 3
    functionsReached:
    - gcd
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn new(numerator: u32, denominator: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: Ratio::to_integer
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub(crate) fn to_integer(self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ratio::cmp
      Src: /src/image/src/animation.rs:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 4
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: Ratio::eq
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Ratio::cmp
    linkageType: ''
    returnType: bool
    signature: 'fn eq(&self, other: &Self) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/animation.rs:361,1
    - Dst: Ratio::cmp
      Src: /src/image/src/animation.rs:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 362
      start: 360
    functionDepth: 4
    functionLinenumber: 360
    functionLinenumberEnd: 362
    functionName: Ratio::partial_cmp
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Ratio::cmp
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn partial_cmp(&self, other: &Self) -> Option<Ordering>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/image/src/animation.rs:382,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:382,1
    - Dst: cmp
      Src: /src/image/src/animation.rs:382,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:382,1
    - Dst: u64::from
      Src: /src/image/src/animation.rs:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 383
      start: 366
    functionDepth: 3
    functionLinenumber: 366
    functionLinenumberEnd: 383
    functionName: Ratio::cmp
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 2
    functionsReached:
    - u64::from
    - cmp
    linkageType: ''
    returnType: Ordering
    signature: 'fn cmp(&self, other: &Self) -> Ordering'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Delay::from_numer_denom_ms
      Src: /src/image/src/animation.rs:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 394
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 394
    functionName: tests::simple
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Delay::from_numer_denom_ms
    linkageType: ''
    returnType: void
    signature: fn simple()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Delay::from_numer_denom_ms
      Src: /src/image/src/animation.rs:398,1
    - Dst: Duration::from
      Src: /src/image/src/animation.rs:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 397
    functionDepth: 10
    functionLinenumber: 397
    functionLinenumberEnd: 403
    functionName: tests::fps_30
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Delay::from_numer_denom_ms
    - Duration::from
    linkageType: ''
    returnType: void
    signature: fn fps_30()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Duration::from_secs
      Src: /src/image/src/animation.rs:407,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 406
    functionDepth: 6
    functionLinenumber: 406
    functionLinenumberEnd: 410
    functionName: tests::duration_outlier
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Duration::from_secs
    - Delay::from_saturating_duration
    linkageType: ''
    returnType: void
    signature: fn duration_outlier()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Duration::from_millis
      Src: /src/image/src/animation.rs:414,1
    - Dst: Duration::from_micros
      Src: /src/image/src/animation.rs:414,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:415,1
    - Dst: Duration::from_millis
      Src: /src/image/src/animation.rs:418,1
    - Dst: Duration::from_micros
      Src: /src/image/src/animation.rs:418,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:419,1
    - Dst: Duration::from_millis
      Src: /src/image/src/animation.rs:423,1
    - Dst: Duration::from_micros
      Src: /src/image/src/animation.rs:423,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 427
      start: 413
    functionDepth: 6
    functionLinenumber: 413
    functionLinenumberEnd: 427
    functionName: tests::duration_approx
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Duration::from_micros
    - Delay::from_saturating_duration
    - Duration::from_millis
    linkageType: ''
    returnType: void
    signature: fn duration_approx()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Duration::from_secs
      Src: /src/image/src/animation.rs:433,1
    - Dst: Duration::from_nanos
      Src: /src/image/src/animation.rs:433,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 436
      start: 430
    functionDepth: 6
    functionLinenumber: 430
    functionLinenumberEnd: 436
    functionName: tests::precise
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Duration::from_secs
    - Duration::from_nanos
    - Delay::from_saturating_duration
    linkageType: ''
    returnType: void
    signature: fn precise()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Delay::from_numer_denom_ms
      Src: /src/image/src/animation.rs:441,1
    - Dst: Duration::from
      Src: /src/image/src/animation.rs:442,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/animation.rs:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 439
    functionDepth: 10
    functionLinenumber: 439
    functionLinenumberEnd: 447
    functionName: tests::small
    functionSourceFile: /src/image/src/animation.rs
    functionUses: 0
    functionsReached:
    - Delay::from_numer_denom_ms
    - Duration::from
    - 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:111,1
    - Dst: SpecCompliance::default
      Src: /src/image/src/io/image_reader_type.rs:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buffered_reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 114
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 114
    functionName: ImageReaderOptions::new
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 5
    functionsReached:
    - Limits::default
    - SpecCompliance::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:123,1
    - Dst: Format::BuiltIn
      Src: /src/image/src/io/image_reader_type.rs:123,1
    - Dst: Limits::default
      Src: /src/image/src/io/image_reader_type.rs:124,1
    - Dst: SpecCompliance::default
      Src: /src/image/src/io/image_reader_type.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buffered_reader
    - format
    argTypes:
    - R
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: ImageReaderOptions::with_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Limits::default
    - Some
    - Format::BuiltIn
    - SpecCompliance::default
    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:132,1
    - Dst: ImageFormat::from_extension
      Src: /src/image/src/io/image_reader_type.rs:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 9
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: ImageReaderOptions::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:140,1
    - Dst: Format::BuiltIn
      Src: /src/image/src/io/image_reader_type.rs:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: ImageReaderOptions::set_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Some
    - Format::BuiltIn
    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: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: ImageReaderOptions::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:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: ImageReaderOptions::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: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: ImageReaderOptions::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: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: ImageReaderOptions::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: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: ImageReaderOptions::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:187,1
    - Dst: hook
      Src: /src/image/src/io/image_reader_type.rs:188,1
    - Dst: hooks::GenericReader::new
      Src: /src/image/src/io/image_reader_type.rs:188,1
    - Dst: ImageFormat::from_extension
      Src: /src/image/src/io/image_reader_type.rs:191,1
    - Dst: Option::ok_or
      Src: /src/image/src/io/image_reader_type.rs:191,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/image_reader_type.rs:191,1
    - Dst: ImageFormatHint::PathExtension
      Src: /src/image/src/io/image_reader_type.rs:192,1
    - Dst: Option::into
      Src: /src/image/src/io/image_reader_type.rs:192,1
    - Dst: into
      Src: /src/image/src/io/image_reader_type.rs:192,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:199,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:201,1
    - Dst: avif::AvifDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:201,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:203,1
    - Dst: png::PngDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:203,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:205,1
    - Dst: gif::GifDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:205,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:207,1
    - Dst: jpeg::JpegDecoder::with_spec_compliance
      Src: /src/image/src/io/image_reader_type.rs:207,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:212,1
    - Dst: webp::WebPDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:212,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:214,1
    - Dst: tiff::TiffDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:214,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:216,1
    - Dst: tga::TgaDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:216,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:218,1
    - Dst: bmp::BmpDecoder::with_spec_compliance
      Src: /src/image/src/io/image_reader_type.rs:218,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:223,1
    - Dst: ico::IcoDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:223,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:225,1
    - Dst: hdr::HdrDecoder::with_spec_compliance
      Src: /src/image/src/io/image_reader_type.rs:225,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:230,1
    - Dst: openexr::OpenExrDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:230,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:232,1
    - Dst: pnm::PnmDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:232,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:234,1
    - Dst: farbfeld::FarbfeldDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:234,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:236,1
    - Dst: qoi::QoiDecoder::new
      Src: /src/image/src/io/image_reader_type.rs:236,1
    - Dst: Err
      Src: /src/image/src/io/image_reader_type.rs:238,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/image_reader_type.rs:238,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/io/image_reader_type.rs:239,1
    - Dst: into
      Src: /src/image/src/io/image_reader_type.rs:239,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 3
    argNames:
    - format
    - reader
    - spec_compliance
    argTypes:
    - Format
    - R
    - SpecCompliance
    constantsTouched: []
    func_position:
      end: 243
      start: 176
    functionDepth: 8
    functionLinenumber: 176
    functionLinenumberEnd: 243
    functionName: ImageReaderOptions::make_decoder
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - gif::GifDecoder::new
    - ico::IcoDecoder::new
    - Err
    - webp::WebPDecoder::new
    - tga::TgaDecoder::new
    - jpeg::JpegDecoder::with_spec_compliance
    - into
    - bmp::BmpDecoder::with_spec_compliance
    - qoi::QoiDecoder::new
    - hdr::HdrDecoder::with_spec_compliance
    - openexr::OpenExrDecoder::new
    - hooks::get_decoding_hook
    - Option::into
    - Box::new
    - ImageError::Unsupported
    - pnm::PnmDecoder::new
    - png::PngDecoder::new
    - hooks::GenericReader::new
    - hook
    - tiff::TiffDecoder::new
    - ImageFormat::from_extension
    - Option::ok_or
    - Ok
    - ImageFormatHint::PathExtension
    - ImageFormatHint::Exact
    - farbfeld::FarbfeldDecoder::new
    - avif::AvifDecoder::new
    linkageType: ''
    returnType: ImageResult
    signature: 'fn make_decoder(format: Format,reader: R,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:248,1
    - Dst: ImageReaderOptions::require_format
      Src: /src/image/src/io/image_reader_type.rs:248,1
    - Dst: ImageResult::set_limits
      Src: /src/image/src/io/image_reader_type.rs:249,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 246
    functionDepth: 9
    functionLinenumber: 246
    functionLinenumberEnd: 251
    functionName: ImageReaderOptions::into_decoder
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 1
    functionsReached:
    - Self::make_decoder
    - ImageReaderOptions::require_format
    - Ok
    - ImageResult::set_limits
    linkageType: ''
    returnType: ImageResult
    signature: pub fn into_decoder(mut self) -> ImageResult<impl ImageDecoder + 'a>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReaderOptions::require_format
      Src: /src/image/src/io/image_reader_type.rs:255,1
    - Dst: Self::make_decoder
      Src: /src/image/src/io/image_reader_type.rs:256,1
    - Dst: ImageReader::from_decoder
      Src: /src/image/src/io/image_reader_type.rs:257,1
    - Dst: Result::set_limits
      Src: /src/image/src/io/image_reader_type.rs:258,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 9
    functionLinenumber: 254
    functionLinenumberEnd: 260
    functionName: ImageReaderOptions::into_reader
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 1
    functionsReached:
    - Self::make_decoder
    - Ok
    - ImageReader::from_decoder
    - ImageReaderOptions::require_format
    - Result::set_limits
    linkageType: ''
    returnType: ImageResult
    signature: pub fn into_reader(mut self) -> ImageResult<ImageReader<'a>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReaderOptions::guess_format
      Src: /src/image/src/io/image_reader_type.rs:291,1
    - Dst: Self::or
      Src: /src/image/src/io/image_reader_type.rs:293,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 13
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: ImageReaderOptions::with_guessed_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Ok
    - ImageReaderOptions::guess_format
    - Self::or
    linkageType: ''
    returnType: io::Result
    signature: pub fn with_guessed_format(mut self) -> io::Result<Self>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::copy
      Src: /src/image/src/io/image_reader_type.rs:301,1
    - Dst: by_ref
      Src: /src/image/src/io/image_reader_type.rs:303,1
    - Dst: take
      Src: /src/image/src/io/image_reader_type.rs:303,1
    - Dst: Cursor::new
      Src: /src/image/src/io/image_reader_type.rs:304,1
    - Dst: seek_relative
      Src: /src/image/src/io/image_reader_type.rs:306,1
    - Dst: hooks::guess_format_extension
      Src: /src/image/src/io/image_reader_type.rs:309,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:310,1
    - Dst: Some
      Src: /src/image/src/io/image_reader_type.rs:310,1
    - Dst: Format::Extension
      Src: /src/image/src/io/image_reader_type.rs:310,1
    - Dst: free_functions::guess_format_impl
      Src: /src/image/src/io/image_reader_type.rs:313,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:314,1
    - Dst: Some
      Src: /src/image/src/io/image_reader_type.rs:314,1
    - Dst: Format::BuiltIn
      Src: /src/image/src/io/image_reader_type.rs:314,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 297
    functionDepth: 12
    functionLinenumber: 297
    functionLinenumberEnd: 318
    functionName: ImageReaderOptions::guess_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 1
    functionsReached:
    - io::copy
    - take
    - free_functions::guess_format_impl
    - by_ref
    - Format::BuiltIn
    - Ok
    - seek_relative
    - Format::Extension
    - Some
    - Cursor::new
    - hooks::guess_format_extension
    linkageType: ''
    returnType: io::Result
    signature: fn guess_format(&mut self) -> io::Result<Option<Format>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReaderOptions::into_decoder
      Src: /src/image/src/io/image_reader_type.rs:326,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/io/image_reader_type.rs:327,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:328,1
    - Dst: dimensions
      Src: /src/image/src/io/image_reader_type.rs:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 10
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: ImageReaderOptions::into_dimensions
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - dimensions
    - Ok
    - ImageResult::prepare_image
    - ImageReaderOptions::into_decoder
    linkageType: ''
    returnType: ImageResult
    signature: pub fn into_dimensions(self) -> ImageResult<(u32, u32)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReaderOptions::into_reader
      Src: /src/image/src/io/image_reader_type.rs:337,1
    - Dst: decode
      Src: /src/image/src/io/image_reader_type.rs:337,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:338,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 10
    functionLinenumber: 336
    functionLinenumberEnd: 339
    functionName: ImageReaderOptions::decode
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Ok
    - ImageReaderOptions::into_reader
    - decode
    linkageType: ''
    returnType: ImageResult
    signature: pub fn decode(self) -> ImageResult<DynamicImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/io/image_reader_type.rs:342,1
    - Dst: ok_or_else
      Src: /src/image/src/io/image_reader_type.rs:342,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/image_reader_type.rs:343,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/io/image_reader_type.rs:343,1
    - Dst: UnsupportedErrorKind::Format
      Src: /src/image/src/io/image_reader_type.rs:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 348
    functionName: ImageReaderOptions::require_format
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 2
    functionsReached:
    - UnsupportedErrorKind::Format
    - ok_or_else
    - ImageError::Unsupported
    - UnsupportedError::from_format_and_kind
    - clone
    linkageType: ''
    returnType: ImageResult
    signature: fn require_format(&mut self) -> ImageResult<Format>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 401
    functionName: MetadataBlock::is_not_none
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn is_not_none(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:405,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:406,1
    - Dst: Some
      Src: /src/image/src/io/image_reader_type.rs:406,1
    - Dst: ImageResult::clone
      Src: /src/image/src/io/image_reader_type.rs:406,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/io/image_reader_type.rs:409,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/io/image_reader_type.rs:409,1
    - Dst: core::mem::replace
      Src: /src/image/src/io/image_reader_type.rs:413,1
    - Dst: MetadataBlock::Unsupported
      Src: /src/image/src/io/image_reader_type.rs:416,1
    - Dst: format_hint
      Src: /src/image/src/io/image_reader_type.rs:416,1
    - Dst: Err
      Src: /src/image/src/io/image_reader_type.rs:421,1
    - Dst: Err
      Src: /src/image/src/io/image_reader_type.rs:423,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/io/image_reader_type.rs:423,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/io/image_reader_type.rs:423,1
    - Dst: Err
      Src: /src/image/src/io/image_reader_type.rs:426,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/image_reader_type.rs:426,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/io/image_reader_type.rs:427,1
    - Dst: ImageFormatHint::clone
      Src: /src/image/src/io/image_reader_type.rs:428,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/io/image_reader_type.rs:429,1
    - Dst: '&str::to_string'
      Src: /src/image/src/io/image_reader_type.rs:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 433
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 433
    functionName: MetadataBlock::get
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - format_hint
    - Err
    - MetadataBlock::Unsupported
    - Ok
    - '&str::to_string'
    - ImageResult::clone
    - ImageError::Unsupported
    - Some
    - ParameterError::from_kind
    - ImageFormatHint::clone
    - ImageError::Parameter
    - UnsupportedError::from_format_and_kind
    - core::mem::replace
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: ImageResult
    signature: fn get(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 446
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 446
    functionName: ImageReaderSettings::default
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::open_impl
      Src: /src/image/src/io/image_reader_type.rs:462,1
    - Dst: ImageResult::as_ref
      Src: /src/image/src/io/image_reader_type.rs:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - path
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 463
      start: 458
    functionDepth: 13
    functionLinenumber: 458
    functionLinenumberEnd: 463
    functionName: ImageReaderOptions::open
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 6
    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:466,1
    - Dst: Option::filter
      Src: /src/image/src/io/image_reader_type.rs:466,1
    - Dst: Option::is_empty
      Src: /src/image/src/io/image_reader_type.rs:468,1
    - Dst: map
      Src: /src/image/src/io/image_reader_type.rs:466,1
    - Dst: Format::Extension
      Src: /src/image/src/io/image_reader_type.rs:469,1
    - Dst: Option::to_owned
      Src: /src/image/src/io/image_reader_type.rs:469,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:471,1
    - Dst: BufReader::new
      Src: /src/image/src/io/image_reader_type.rs:472,1
    - Dst: File::open
      Src: /src/image/src/io/image_reader_type.rs:472,1
    - Dst: Limits::default
      Src: /src/image/src/io/image_reader_type.rs:474,1
    - Dst: SpecCompliance::default
      Src: /src/image/src/io/image_reader_type.rs:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&Path'
    constantsTouched: []
    func_position:
      end: 477
      start: 465
    functionDepth: 12
    functionLinenumber: 465
    functionLinenumberEnd: 477
    functionName: ImageReaderOptions::open_impl
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - ImageResult::extension
    - Option::to_owned
    - map
    - Ok
    - SpecCompliance::default
    - BufReader::new
    - Format::Extension
    - File::open
    - Option::filter
    - Limits::default
    - Option::is_empty
    linkageType: ''
    returnType: io::Result
    signature: 'fn open_impl(path: &Path) -> io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prepare_image
      Src: /src/image/src/io/image_reader_type.rs:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 484
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 484
    functionName: ImageReader::peek_layout
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - prepare_image
    linkageType: ''
    returnType: ImageResult
    signature: pub fn peek_layout(&mut self) -> ImageResult<DecoderPreparedImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::default
      Src: /src/image/src/io/image_reader_type.rs:509,1
    - Dst: ImageReader::decode_to_dynimage
      Src: /src/image/src/io/image_reader_type.rs:510,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:511,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 10
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: ImageReader::decode
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Ok
    - ImageReader::decode_to_dynimage
    - DynamicImage::default
    linkageType: ''
    returnType: ImageResult
    signature: pub fn decode(&mut self) -> ImageResult<(DynamicImage, DecodedImageMetadata<'_>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prepare_image
      Src: /src/image/src/io/image_reader_type.rs:542,1
    - Dst: ImageReader::fill_header_metadata_if_any
      Src: /src/image/src/io/image_reader_type.rs:543,1
    - Dst: check_layout_dimensions
      Src: /src/image/src/io/image_reader_type.rs:546,1
    - Dst: reserve
      Src: /src/image/src/io/image_reader_type.rs:549,1
    - Dst: ImageResult::total_bytes
      Src: /src/image/src/io/image_reader_type.rs:549,1
    - Dst: Vec::decode_raw
      Src: /src/image/src/io/image_reader_type.rs:552,1
    - Dst: as_mut
      Src: /src/image/src/io/image_reader_type.rs:552,1
    - Dst: as_mut
      Src: /src/image/src/io/image_reader_type.rs:555,1
    - Dst: apply_metdata
      Src: /src/image/src/io/image_reader_type.rs:560,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:562,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&mut DynamicImage'
    constantsTouched: []
    func_position:
      end: 563
      start: 538
    functionDepth: 9
    functionLinenumber: 538
    functionLinenumberEnd: 563
    functionName: ImageReader::decode_to_dynimage
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 2
    functionsReached:
    - as_mut
    - apply_metdata
    - check_layout_dimensions
    - ImageResult::total_bytes
    - Ok
    - prepare_image
    - Vec::decode_raw
    - ImageReader::fill_header_metadata_if_any
    - reserve
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn decode_to_dynimage(&mut self,image: &mut DynamicImage,)
      -> ImageResult<DecodedImageMetadata<''_>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prepare_image
      Src: /src/image/src/io/image_reader_type.rs:589,1
    - Dst: ImageReader::fill_header_metadata_if_any
      Src: /src/image/src/io/image_reader_type.rs:590,1
    - Dst: '&RgbaImage::len'
      Src: /src/image/src/io/image_reader_type.rs:592,1
    - Dst: usize::try_from
      Src: /src/image/src/io/image_reader_type.rs:594,1
    - Dst: ImageResult::total_bytes
      Src: /src/image/src/io/image_reader_type.rs:594,1
    - Dst: Result::ok
      Src: /src/image/src/io/image_reader_type.rs:594,1
    - Dst: Some
      Src: /src/image/src/io/image_reader_type.rs:594,1
    - Dst: Err
      Src: /src/image/src/io/image_reader_type.rs:595,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/io/image_reader_type.rs:595,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/io/image_reader_type.rs:595,1
    - Dst: check_layout_dimensions
      Src: /src/image/src/io/image_reader_type.rs:600,1
    - Dst: read_image
      Src: /src/image/src/io/image_reader_type.rs:602,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:604,1
    - Dst: as_mut
      Src: /src/image/src/io/image_reader_type.rs:605,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 609
      start: 588
    functionDepth: 8
    functionLinenumber: 588
    functionLinenumberEnd: 609
    functionName: ImageReader::decode_into
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - Err
    - Result::ok
    - check_layout_dimensions
    - ImageResult::total_bytes
    - Ok
    - prepare_image
    - '&RgbaImage::len'
    - read_image
    - Some
    - ParameterError::from_kind
    - ImageReader::fill_header_metadata_if_any
    - ImageError::Parameter
    - usize::try_from
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn decode_into(&mut self, buffer: &mut [u8]) -> ImageResult<DecodedImageMetadata<''_>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prepare_image
      Src: /src/image/src/io/image_reader_type.rs:622,1
    - Dst: ImageReader::fill_header_metadata_if_any
      Src: /src/image/src/io/image_reader_type.rs:623,1
    - Dst: check_layout_dimensions
      Src: /src/image/src/io/image_reader_type.rs:626,1
    - Dst: ImageResult::total_bytes
      Src: /src/image/src/io/image_reader_type.rs:627,1
    - Dst: read_image
      Src: /src/image/src/io/image_reader_type.rs:631,1
    - Dst: DynamicImage::default
      Src: /src/image/src/io/image_reader_type.rs:636,1
    - Dst: reserve
      Src: /src/image/src/io/image_reader_type.rs:637,1
    - Dst: Self::decode_raw
      Src: /src/image/src/io/image_reader_type.rs:638,1
    - Dst: as_mut
      Src: /src/image/src/io/image_reader_type.rs:638,1
    - Dst: free
      Src: /src/image/src/io/image_reader_type.rs:639,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:642,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 643
      start: 616
    functionDepth: 9
    functionLinenumber: 616
    functionLinenumberEnd: 643
    functionName: ImageReader::skip_image
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - free
    - check_layout_dimensions
    - ImageResult::total_bytes
    - Ok
    - Self::decode_raw
    - prepare_image
    - read_image
    - ImageReader::fill_header_metadata_if_any
    - reserve
    - DynamicImage::default
    linkageType: ''
    returnType: ImageResult
    signature: pub fn skip_image(&mut self) -> ImageResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prepare_image
      Src: /src/image/src/io/image_reader_type.rs:647,1
    - Dst: animation_attributes
      Src: /src/image/src/io/image_reader_type.rs:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 649
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 649
    functionName: ImageReader::animation_attributes
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - animation_attributes
    - prepare_image
    linkageType: ''
    returnType: Option
    signature: pub fn animation_attributes(&mut self) -> Option<DecodedAnimationAttributes>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: format_attributes
      Src: /src/image/src/io/image_reader_type.rs:661,1
    - Dst: '&RgbaImage::is_not_none'
      Src: /src/image/src/io/image_reader_type.rs:700,1
    - Dst: getter
      Src: /src/image/src/io/image_reader_type.rs:704,1
    - Dst: as_mut
      Src: /src/image/src/io/image_reader_type.rs:704,1
    - Dst: MetadataBlock::Ok
      Src: /src/image/src/io/image_reader_type.rs:706,1
    - Dst: MetadataBlock::Err
      Src: /src/image/src/io/image_reader_type.rs:708,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 715
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 715
    functionName: ImageReader::fill_header_metadata_if_any
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 3
    functionsReached:
    - as_mut
    - MetadataBlock::Err
    - '&RgbaImage::is_not_none'
    - format_attributes
    - MetadataBlock::Ok
    - getter
    linkageType: ''
    returnType: void
    signature: fn fill_header_metadata_if_any(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReaderOptions::new
      Src: /src/image/src/io/image_reader_type.rs:749,1
    - Dst: Self::with_guessed_format
      Src: /src/image/src/io/image_reader_type.rs:749,1
    - Dst: into_reader
      Src: /src/image/src/io/image_reader_type.rs:749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 752
      start: 748
    functionDepth: 14
    functionLinenumber: 748
    functionLinenumberEnd: 752
    functionName: ImageReader::new
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - ImageReaderOptions::new
    - Self::with_guessed_format
    - into_reader
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new<R: ''stream + BufRead + Seek>(reader: R) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReaderOptions::open
      Src: /src/image/src/io/image_reader_type.rs:777,1
    - Dst: into_reader
      Src: /src/image/src/io/image_reader_type.rs:777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 778
      start: 776
    functionDepth: 14
    functionLinenumber: 776
    functionLinenumberEnd: 778
    functionName: ImageReader::open
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - ImageReaderOptions::open
    - into_reader
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn open<P: AsRef<Path>>(path: P) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReaderSettings::default
      Src: /src/image/src/io/image_reader_type.rs:792,1
    - Dst: Limits::default
      Src: /src/image/src/io/image_reader_type.rs:793,1
    - Dst: Default::default
      Src: /src/image/src/io/image_reader_type.rs:794,1
    - Dst: MetadataBuffers::default
      Src: /src/image/src/io/image_reader_type.rs:795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - boxed
    argTypes:
    - Box<dyn ImageDecoder + 'stream>
    constantsTouched: []
    func_position:
      end: 797
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 797
    functionName: ImageReader::from_decoder
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 16
    functionsReached:
    - Limits::default
    - MetadataBuffers::default
    - ImageReaderSettings::default
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_decoder(boxed: Box<dyn ImageDecoder + ''stream>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_limits
      Src: /src/image/src/io/image_reader_type.rs:806,1
    - Dst: Limits::clone
      Src: /src/image/src/io/image_reader_type.rs:806,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:808,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - limits
    argTypes:
    - Limits
    constantsTouched: []
    func_position:
      end: 809
      start: 800
    functionDepth: 2
    functionLinenumber: 800
    functionLinenumberEnd: 809
    functionName: ImageReader::set_limits
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - set_limits
    - Limits::clone
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn set_limits(&mut self, mut limits: Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - '&ImageError'
    constantsTouched: []
    func_position:
      end: 827
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 827
    functionName: I::m::a::g::e::R::e::a::d::e::r::::::::i::n::t::o::_::f::r::a::m::e::s::is_end_reached
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn is_end_reached(err: &ImageError) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: core::iter::from_fn
      Src: /src/image/src/io/image_reader_type.rs:829,1
    - Dst: more_images
      Src: /src/image/src/io/image_reader_type.rs:830,1
    - Dst: Delay::from_saturating_duration
      Src: /src/image/src/io/image_reader_type.rs:835,1
    - Dst: Default::default
      Src: /src/image/src/io/image_reader_type.rs:835,1
    - Dst: DynamicImage::default
      Src: /src/image/src/io/image_reader_type.rs:837,1
    - Dst: ImageReader::decode_to_dynimage
      Src: /src/image/src/io/image_reader_type.rs:838,1
    - Dst: is_end_reached
      Src: /src/image/src/io/image_reader_type.rs:840,1
    - Dst: Some
      Src: /src/image/src/io/image_reader_type.rs:841,1
    - Dst: Err
      Src: /src/image/src/io/image_reader_type.rs:841,1
    - Dst: attributes
      Src: /src/image/src/io/image_reader_type.rs:844,1
    - Dst: attributes
      Src: /src/image/src/io/image_reader_type.rs:845,1
    - Dst: attributes
      Src: /src/image/src/io/image_reader_type.rs:846,1
    - Dst: unwrap_or
      Src: /src/image/src/io/image_reader_type.rs:846,1
    - Dst: FrameInfo::into_rgba8
      Src: /src/image/src/io/image_reader_type.rs:847,1
    - Dst: Frame::from_parts
      Src: /src/image/src/io/image_reader_type.rs:849,1
    - Dst: Some
      Src: /src/image/src/io/image_reader_type.rs:850,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:850,1
    - Dst: Frames::new
      Src: /src/image/src/io/image_reader_type.rs:853,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:853,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 854
      start: 820
    functionDepth: 10
    functionLinenumber: 820
    functionLinenumberEnd: 854
    functionName: ImageReader::into_frames
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Err
    - Frame::from_parts
    - Ok
    - Box::new
    - ImageReader::decode_to_dynimage
    - Some
    - more_images
    - core::iter::from_fn
    - is_end_reached
    - attributes
    - FrameInfo::into_rgba8
    - Frames::new
    - unwrap_or
    - DynamicImage::default
    - Delay::from_saturating_duration
    - Default::default
    linkageType: ''
    returnType: Frames
    signature: pub fn into_frames(mut self) -> Frames<'stream>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::access_block_with
      Src: /src/image/src/io/image_reader_type.rs:867,1
    - Dst: format_attributes
      Src: /src/image/src/io/image_reader_type.rs:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 873
      start: 866
    functionDepth: 4
    functionLinenumber: 866
    functionLinenumberEnd: 873
    functionName: DecodedImageMetadata::exif_metadata
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 1
    functionsReached:
    - format_attributes
    - Self::access_block_with
    linkageType: ''
    returnType: ImageResult
    signature: pub fn exif_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::access_block_with
      Src: /src/image/src/io/image_reader_type.rs:877,1
    - Dst: format_attributes
      Src: /src/image/src/io/image_reader_type.rs:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 883
      start: 876
    functionDepth: 4
    functionLinenumber: 876
    functionLinenumberEnd: 883
    functionName: DecodedImageMetadata::icc_profile
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 1
    functionsReached:
    - format_attributes
    - Self::access_block_with
    linkageType: ''
    returnType: ImageResult
    signature: pub fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::access_block_with
      Src: /src/image/src/io/image_reader_type.rs:887,1
    - Dst: format_attributes
      Src: /src/image/src/io/image_reader_type.rs:889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 893
      start: 886
    functionDepth: 4
    functionLinenumber: 886
    functionLinenumberEnd: 893
    functionName: DecodedImageMetadata::xmp_metadata
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - format_attributes
    - Self::access_block_with
    linkageType: ''
    returnType: ImageResult
    signature: pub fn xmp_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::access_block_with
      Src: /src/image/src/io/image_reader_type.rs:897,1
    - Dst: format_attributes
      Src: /src/image/src/io/image_reader_type.rs:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 903
      start: 896
    functionDepth: 4
    functionLinenumber: 896
    functionLinenumberEnd: 903
    functionName: DecodedImageMetadata::iptc_metadata
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - format_attributes
    - Self::access_block_with
    linkageType: ''
    returnType: ImageResult
    signature: pub fn iptc_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DecodedImageMetadata::icc_profile
      Src: /src/image/src/io/image_reader_type.rs:911,1
    - Dst: DecodedImageMetadata::exif_metadata
      Src: /src/image/src/io/image_reader_type.rs:912,1
    - Dst: crate::metadata::cms_provider
      Src: /src/image/src/io/image_reader_type.rs:919,1
    - Dst: '&''static dyn CmsProvider::parse_icc'
      Src: /src/image/src/io/image_reader_type.rs:919,1
    - Dst: try_into_rgb
      Src: /src/image/src/io/image_reader_type.rs:922,1
    - Dst: Vec::set_rgb_primaries
      Src: /src/image/src/io/image_reader_type.rs:923,1
    - Dst: Vec::set_transfer_function
      Src: /src/image/src/io/image_reader_type.rs:924,1
    - Dst: Vec::set_rgb_primaries
      Src: /src/image/src/io/image_reader_type.rs:926,1
    - Dst: Vec::set_transfer_function
      Src: /src/image/src/io/image_reader_type.rs:927,1
    - Dst: is_none
      Src: /src/image/src/io/image_reader_type.rs:937,1
    - Dst: Option::and_then
      Src: /src/image/src/io/image_reader_type.rs:938,1
    - Dst: Orientation::from_exif_chunk
      Src: /src/image/src/io/image_reader_type.rs:938,1
    - Dst: Vec::apply_orientation
      Src: /src/image/src/io/image_reader_type.rs:945,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:949,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 59
    argCount: 2
    argNames:
    - settings
    - image
    argTypes:
    - '&ImageReaderSettings'
    - '&mut DynamicImage'
    constantsTouched: []
    func_position:
      end: 950
      start: 905
    functionDepth: 9
    functionLinenumber: 905
    functionLinenumberEnd: 950
    functionName: DecodedImageMetadata::apply_metdata
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - crate::metadata::cms_provider
    - Option::and_then
    - Vec::apply_orientation
    - Vec::set_transfer_function
    - '&''static dyn CmsProvider::parse_icc'
    - Ok
    - DecodedImageMetadata::icc_profile
    - is_none
    - DecodedImageMetadata::exif_metadata
    - Vec::set_rgb_primaries
    - try_into_rgb
    - Orientation::from_exif_chunk
    linkageType: ''
    returnType: Result
    signature: 'fn apply_metdata(&mut self,settings: &ImageReaderSettings,image: &mut
      DynamicImage,) -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: P::get
      Src: /src/image/src/io/image_reader_type.rs:964,1
    - Dst: P::get
      Src: /src/image/src/io/image_reader_type.rs:971,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - block
    - meta
    - decoder
    - access
    argTypes:
    - '&mut MetadataBlock'
    - DecodedMetadataHint
    - '&mut (dyn ImageDecoder + ''l)'
    - fn(&'_ mut (dyn ImageDecoder + 'l)) -> ImageResult<Option<Vec<u8>>>
    constantsTouched: []
    func_position:
      end: 975
      start: 952
    functionDepth: 3
    functionLinenumber: 952
    functionLinenumberEnd: 975
    functionName: DecodedImageMetadata::access_block_with
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Ok
    - P::get
    linkageType: ''
    returnType: ImageResult
    signature: 'fn access_block_with<''l>(block: &mut MetadataBlock,meta: DecodedMetadataHint,decoder:
      &mut (dyn ImageDecoder + ''l),access: fn(&''_ mut (dyn ImageDecoder + ''l))
      -> ImageResult<Option<Vec<u8>>>,) -> ImageResult<Option<Vec<u8>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 980
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 980
    functionName: DecodedImageMetadata::attributes
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&DecodedImageAttributes'
    signature: pub fn attributes(&self) -> &DecodedImageAttributes
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReader::from_decoder
      Src: /src/image/src/io/image_reader_type.rs:1058,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:1058,1
    - Dst: FormatAttributes::default
      Src: /src/image/src/io/image_reader_type.rs:1061,1
    - Dst: InjectedXmp::default
      Src: /src/image/src/io/image_reader_type.rs:1063,1
    - Dst: Result::decode
      Src: /src/image/src/io/image_reader_type.rs:1068,1
    - Dst: Result::decode
      Src: /src/image/src/io/image_reader_type.rs:1072,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:1075,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1055
    functionDepth: 12
    functionLinenumber: 1055
    functionLinenumberEnd: 1076
    functionName: tests::in_header_data_applies
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Ok
    - ImageReader::from_decoder
    - Box::new
    - FormatAttributes::default
    - Result::decode
    - InjectedXmp::default
    linkageType: ''
    returnType: Result
    signature: fn in_header_data_applies() -> Result<(), ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReader::from_decoder
      Src: /src/image/src/io/image_reader_type.rs:1080,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:1080,1
    - Dst: FormatAttributes::default
      Src: /src/image/src/io/image_reader_type.rs:1083,1
    - Dst: InjectedXmp::default
      Src: /src/image/src/io/image_reader_type.rs:1085,1
    - Dst: Result::decode
      Src: /src/image/src/io/image_reader_type.rs:1090,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:1096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1079
    functionDepth: 12
    functionLinenumber: 1079
    functionLinenumberEnd: 1097
    functionName: tests::error_stays_error
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Ok
    - ImageReader::from_decoder
    - Box::new
    - FormatAttributes::default
    - Result::decode
    - InjectedXmp::default
    linkageType: ''
    returnType: Result
    signature: fn error_stays_error() -> Result<(), ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReader::from_decoder
      Src: /src/image/src/io/image_reader_type.rs:1101,1
    - Dst: Box::new
      Src: /src/image/src/io/image_reader_type.rs:1101,1
    - Dst: FormatAttributes::default
      Src: /src/image/src/io/image_reader_type.rs:1104,1
    - Dst: InjectedXmp::default
      Src: /src/image/src/io/image_reader_type.rs:1106,1
    - Dst: Result::decode
      Src: /src/image/src/io/image_reader_type.rs:1111,1
    - Dst: Ok
      Src: /src/image/src/io/image_reader_type.rs:1122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1100
    functionDepth: 12
    functionLinenumber: 1100
    functionLinenumberEnd: 1123
    functionName: tests::unsupported_error_repeats
    functionSourceFile: /src/image/src/io/image_reader_type.rs
    functionUses: 0
    functionsReached:
    - Ok
    - ImageReader::from_decoder
    - Box::new
    - FormatAttributes::default
    - Result::decode
    - InjectedXmp::default
    linkageType: ''
    returnType: Result
    signature: fn unsupported_error_repeats() -> Result<(), ImageError>
  - 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: 9
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: ImageEncoder::set_icc_profile
    functionSourceFile: /src/image/src/io/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    - '&str::into'
    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: 9
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: ImageEncoder::set_exif_metadata
    functionSourceFile: /src/image/src/io/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    - '&str::into'
    linkageType: ''
    returnType: Result
    signature: 'fn set_exif_metadata(&mut self, exif: Vec<u8>) -> Result<(), UnsupportedError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/io/encoder.rs:95,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/io/encoder.rs:95,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/io/encoder.rs:97,1
    - Dst: '&str::into'
      Src: /src/image/src/io/encoder.rs:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - xmp
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 9
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: ImageEncoder::set_xmp_metadata
    functionSourceFile: /src/image/src/io/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    - '&str::into'
    linkageType: ''
    returnType: Result
    signature: 'fn set_xmp_metadata(&mut self, xmp: 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: 115
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 115
    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:135,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: 136
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 136
    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:145,1
    - Dst: Some
      Src: /src/image/src/io/encoder.rs:147,1
    - Dst: Option::to_luma8
      Src: /src/image/src/io/encoder.rs:147,1
    - Dst: GrayImage::into
      Src: /src/image/src/io/encoder.rs:147,1
    - Dst: Some
      Src: /src/image/src/io/encoder.rs:148,1
    - Dst: Option::to_luma_alpha8
      Src: /src/image/src/io/encoder.rs:148,1
    - Dst: GrayAlphaImage::into
      Src: /src/image/src/io/encoder.rs:148,1
    - Dst: Some
      Src: /src/image/src/io/encoder.rs:149,1
    - Dst: Option::to_rgb8
      Src: /src/image/src/io/encoder.rs:149,1
    - Dst: into
      Src: /src/image/src/io/encoder.rs:149,1
    - Dst: Some
      Src: /src/image/src/io/encoder.rs:150,1
    - Dst: Option::to_rgba8
      Src: /src/image/src/io/encoder.rs:150,1
    - Dst: Result::into
      Src: /src/image/src/io/encoder.rs:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - img
    argTypes:
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 9
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: dynimage_conversion_8bit
    functionSourceFile: /src/image/src/io/encoder.rs
    functionUses: 3
    functionsReached:
    - Option::to_luma8
    - Option::to_luma_alpha8
    - GrayImage::into
    - Result::into
    - Some
    - into
    - GrayAlphaImage::into
    - Option::color
    - Option::to_rgb8
    - Option::to_rgba8
    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:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: Limits::default
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 9
    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: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    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:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _supported
    argTypes:
    - '&LimitSupport'
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Limits::check_support
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 6
    functionsReached:
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn check_support(&self, _supported: &LimitSupport) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_dimensions
      Src: /src/image/src/io/limits.rs:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - layout
    argTypes:
    - '&crate::io::DecoderPreparedImage'
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: Limits::check_layout_dimensions
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 3
    functionsReached:
    - Limits::check_dimensions
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn check_layout_dimensions(&self,layout: &crate::io::DecoderPreparedImage,)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/io/limits.rs:86,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/limits.rs:86,1
    - Dst: error::LimitError::from_kind
      Src: /src/image/src/io/limits.rs:86,1
    - Dst: Err
      Src: /src/image/src/io/limits.rs:94,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/limits.rs:94,1
    - Dst: error::LimitError::from_kind
      Src: /src/image/src/io/limits.rs:94,1
    - Dst: Ok
      Src: /src/image/src/io/limits.rs:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 101
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: Limits::check_dimensions
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 4
    functionsReached:
    - error::LimitError::from_kind
    - Err
    - Ok
    - 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:106,1
    - Dst: Err
      Src: /src/image/src/io/limits.rs:108,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/limits.rs:108,1
    - Dst: error::LimitError::from_kind
      Src: /src/image/src/io/limits.rs:108,1
    - Dst: Ok
      Src: /src/image/src/io/limits.rs:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - amount
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 117
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 117
    functionName: Limits::reserve
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 3
    functionsReached:
    - as_mut
    - Err
    - ImageError::Limits
    - Ok
    - error::LimitError::from_kind
    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:123,1
    - Dst: Limits::reserve
      Src: /src/image/src/io/limits.rs:124,1
    - Dst: is_some
      Src: /src/image/src/io/limits.rs:125,1
    - Dst: Err
      Src: /src/image/src/io/limits.rs:125,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/limits.rs:125,1
    - Dst: error::LimitError::from_kind
      Src: /src/image/src/io/limits.rs:126,1
    - Dst: Ok
      Src: /src/image/src/io/limits.rs:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - amount
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: Limits::reserve_usize
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 2
    functionsReached:
    - Err
    - u64::try_from
    - ImageError::Limits
    - Ok
    - is_some
    - Limits::reserve
    - error::LimitError::from_kind
    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:146,1
    - Dst: u64::from
      Src: /src/image/src/io/limits.rs:147,1
    - Dst: Self::saturating_mul
      Src: /src/image/src/io/limits.rs:147,1
    - Dst: u64::from
      Src: /src/image/src/io/limits.rs:148,1
    - Dst: saturating_mul
      Src: /src/image/src/io/limits.rs:147,1
    - Dst: Option::bytes_per_pixel
      Src: /src/image/src/io/limits.rs:149,1
    - Dst: u8::into
      Src: /src/image/src/io/limits.rs:149,1
    - Dst: Limits::reserve
      Src: /src/image/src/io/limits.rs:150,1
    - Dst: Ok
      Src: /src/image/src/io/limits.rs:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - width
    - height
    - color_type
    argTypes:
    - u32
    - u32
    - ColorType
    constantsTouched: []
    func_position:
      end: 152
      start: 140
    functionDepth: 9
    functionLinenumber: 140
    functionLinenumberEnd: 152
    functionName: Limits::reserve_buffer
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Self::saturating_mul
    - saturating_mul
    - u64::from
    - Limits::reserve
    - Option::bytes_per_pixel
    - Limits::check_dimensions
    - u8::into
    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:159,1
    - Dst: saturating_add
      Src: /src/image/src/io/limits.rs:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - amount
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 162
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 162
    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:168,1
    - Dst: Limits::free
      Src: /src/image/src/io/limits.rs:169,1
    - Dst: is_some
      Src: /src/image/src/io/limits.rs:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - amount
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 177
    functionName: Limits::free_usize
    functionSourceFile: /src/image/src/io/limits.rs
    functionUses: 1
    functionsReached:
    - Limits::free
    - u64::try_from
    - is_some
    linkageType: ''
    returnType: void
    signature: 'pub fn free_usize(&mut self, amount: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_support
      Src: /src/image/src/io/decoder.rs:45,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/io/decoder.rs:45,1
    - Dst: ImageDecoder::prepare_image
      Src: /src/image/src/io/decoder.rs:46,1
    - Dst: Limits::check_layout_dimensions
      Src: /src/image/src/io/decoder.rs:47,1
    - Dst: Ok
      Src: /src/image/src/io/decoder.rs:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - limits
    argTypes:
    - crate::Limits
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 3
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: ImageDecoder::set_limits
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - crate::LimitSupport::default
    - ImageDecoder::prepare_image
    - Limits::check_support
    - Limits::check_layout_dimensions
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: crate::Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FormatAttributes::default
      Src: /src/image/src/io/decoder.rs:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: ImageDecoder::format_attributes
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - FormatAttributes::default
    linkageType: ''
    returnType: FormatAttributes
    signature: fn format_attributes(&self) -> FormatAttributes
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: ImageDecoder::animation_attributes
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: fn animation_attributes(&mut self) -> Option<DecodedAnimationAttributes>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/io/decoder.rs:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    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:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: ImageDecoder::exif_metadata
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn exif_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/io/decoder.rs:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    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:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    functionName: ImageDecoder::more_images
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SequenceControl
    signature: fn more_images(&self) -> SequenceControl
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/io/decoder.rs:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 176
    functionName: ImageDecoder::finish
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn finish(&mut self) -> ImageResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: DecodedAnimationAttributes::default
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: format_attributes
      Src: /src/image/src/io/decoder.rs:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: Box::format_attributes
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - format_attributes
    linkageType: ''
    returnType: FormatAttributes
    signature: fn format_attributes(&self) -> FormatAttributes
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prepare_image
      Src: /src/image/src/io/decoder.rs:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 299
    functionName: Box::prepare_image
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - prepare_image
    linkageType: ''
    returnType: ImageResult
    signature: fn prepare_image(&mut self) -> ImageResult<DecoderPreparedImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: animation_attributes
      Src: /src/image/src/io/decoder.rs:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: Box::animation_attributes
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - animation_attributes
    linkageType: ''
    returnType: Option
    signature: fn animation_attributes(&mut self) -> Option<DecodedAnimationAttributes>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: icc_profile
      Src: /src/image/src/io/decoder.rs:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 13
    functionLinenumber: 303
    functionLinenumberEnd: 305
    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:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 306
    functionDepth: 5
    functionLinenumber: 306
    functionLinenumberEnd: 308
    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:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 5
    functionLinenumber: 309
    functionLinenumberEnd: 311
    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:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 5
    functionLinenumber: 312
    functionLinenumberEnd: 314
    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: read_image
      Src: /src/image/src/io/decoder.rs:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 317
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 317
    functionName: Box::read_image
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - read_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(&mut self, buf: &mut [u8]) -> ImageResult<DecodedImageAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_limits
      Src: /src/image/src/io/decoder.rs:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - limits
    argTypes:
    - crate::Limits
    constantsTouched: []
    func_position:
      end: 320
      start: 318
    functionDepth: 3
    functionLinenumber: 318
    functionLinenumberEnd: 320
    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: more_images
      Src: /src/image/src/io/decoder.rs:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 323
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 323
    functionName: Box::more_images
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - more_images
    linkageType: ''
    returnType: SequenceControl
    signature: fn more_images(&self) -> SequenceControl
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: finish
      Src: /src/image/src/io/decoder.rs:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 326
    functionName: Box::finish
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - finish
    linkageType: ''
    returnType: ImageResult
    signature: fn finish(&mut self) -> ImageResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::DynamicImage::from_decoder
      Src: /src/image/src/io/decoder.rs:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 355
      start: 335
    functionDepth: 10
    functionLinenumber: 335
    functionLinenumberEnd: 355
    functionName: tests::total_bytes_overflow
    functionSourceFile: /src/image/src/io/decoder.rs
    functionUses: 0
    functionsReached:
    - crate::DynamicImage::from_decoder
    linkageType: ''
    returnType: void
    signature: fn total_bytes_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReaderOptions::new
      Src: /src/image/src/io/free_functions.rs:23,1
    - Dst: Result::set_format
      Src: /src/image/src/io/free_functions.rs:24,1
    - Dst: Result::decode
      Src: /src/image/src/io/free_functions.rs:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - r
    - format
    argTypes:
    - R
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 12
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: load
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 2
    functionsReached:
    - Result::set_format
    - ImageReaderOptions::new
    - Result::decode
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn load<R: BufRead + Seek>(r: R, format: ImageFormat) -> ImageResult<DynamicImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageFormat::from_path
      Src: /src/image/src/io/free_functions.rs:40,1
    - Dst: ImageResult::as_ref
      Src: /src/image/src/io/free_functions.rs:40,1
    - Dst: save_buffer_with_format
      Src: /src/image/src/io/free_functions.rs:41,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: 42
      start: 33
    functionDepth: 9
    functionLinenumber: 33
    functionLinenumberEnd: 42
    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:56,1
    - Dst: File::create
      Src: /src/image/src/io/free_functions.rs:56,1
    - Dst: encoder_for_format
      Src: /src/image/src/io/free_functions.rs:57,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/io/free_functions.rs:58,1
    - Dst: bool::into
      Src: /src/image/src/io/free_functions.rs:58,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: 59
      start: 48
    functionDepth: 9
    functionLinenumber: 48
    functionLinenumberEnd: 59
    functionName: save_buffer_with_format
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 2
    functionsReached:
    - ImageResult::write_image
    - File::create
    - bool::into
    - encoder_for_format
    - BufWriter::new
    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:65,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:67,1
    - Dst: png::PngEncoder::new
      Src: /src/image/src/io/free_functions.rs:67,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:69,1
    - Dst: jpeg::JpegEncoder::new
      Src: /src/image/src/io/free_functions.rs:69,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:71,1
    - Dst: pnm::PnmEncoder::new
      Src: /src/image/src/io/free_functions.rs:71,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:73,1
    - Dst: gif::GifEncoder::new
      Src: /src/image/src/io/free_functions.rs:73,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:75,1
    - Dst: ico::IcoEncoder::new
      Src: /src/image/src/io/free_functions.rs:75,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:77,1
    - Dst: bmp::BmpEncoder::new
      Src: /src/image/src/io/free_functions.rs:77,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:79,1
    - Dst: farbfeld::FarbfeldEncoder::new
      Src: /src/image/src/io/free_functions.rs:79,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:81,1
    - Dst: tga::TgaEncoder::new
      Src: /src/image/src/io/free_functions.rs:81,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:83,1
    - Dst: openexr::OpenExrEncoder::new
      Src: /src/image/src/io/free_functions.rs:83,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:85,1
    - Dst: tiff::TiffEncoder::new
      Src: /src/image/src/io/free_functions.rs:85,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:87,1
    - Dst: avif::AvifEncoder::new
      Src: /src/image/src/io/free_functions.rs:87,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:89,1
    - Dst: qoi::QoiEncoder::new
      Src: /src/image/src/io/free_functions.rs:89,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:91,1
    - Dst: webp::WebPEncoder::new_lossless
      Src: /src/image/src/io/free_functions.rs:91,1
    - Dst: Box::new
      Src: /src/image/src/io/free_functions.rs:93,1
    - Dst: hdr::HdrEncoder::new
      Src: /src/image/src/io/free_functions.rs:93,1
    - Dst: Err
      Src: /src/image/src/io/free_functions.rs:96,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/free_functions.rs:96,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/io/free_functions.rs:97,1
    - Dst: UnsupportedErrorKind::Format
      Src: /src/image/src/io/free_functions.rs:99,1
    - Dst: ImageFormatHint::Name
      Src: /src/image/src/io/free_functions.rs:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 2
    argNames:
    - format
    - buffered_write
    argTypes:
    - ImageFormat
    - '&''a mut W'
    constantsTouched: []
    func_position:
      end: 104
      start: 61
    functionDepth: 5
    functionLinenumber: 61
    functionLinenumberEnd: 104
    functionName: encoder_for_format
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 4
    functionsReached:
    - gif::GifEncoder::new
    - Err
    - ImageFormatHint::Name
    - webp::WebPEncoder::new_lossless
    - avif::AvifEncoder::new
    - png::PngEncoder::new
    - ico::IcoEncoder::new
    - UnsupportedErrorKind::Format
    - Box::new
    - ImageError::Unsupported
    - UnsupportedError::from_format_and_kind
    - bmp::BmpEncoder::new
    - tiff::TiffEncoder::new
    - hdr::HdrEncoder::new
    - jpeg::JpegEncoder::new
    - qoi::QoiEncoder::new
    - Ok
    - farbfeld::FarbfeldEncoder::new
    - openexr::OpenExrEncoder::new
    - tga::TgaEncoder::new
    - pnm::PnmEncoder::new
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn encoder_for_format<''a, W: Write + Seek>(format: ImageFormat,buffered_write:
      &''a mut W,) -> ImageResult<Box<dyn ImageEncoderBoxed + ''a>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: guess_format_impl
      Src: /src/image/src/io/free_functions.rs:140,1
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:141,1
    - Dst: Err
      Src: /src/image/src/io/free_functions.rs:142,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/io/free_functions.rs:142,1
    - Dst: into
      Src: /src/image/src/io/free_functions.rs:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 144
      start: 139
    functionDepth: 12
    functionLinenumber: 139
    functionLinenumberEnd: 144
    functionName: guess_format
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 1
    functionsReached:
    - Err
    - Ok
    - guess_format_impl
    - ImageError::Unsupported
    - into
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn guess_format(buffer: &[u8]) -> ImageResult<ImageFormat>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::is_empty
      Src: /src/image/src/io/free_functions.rs:148,1
    - Dst: '&RgbaImage::starts_with'
      Src: /src/image/src/io/free_functions.rs:149,1
    - Dst: Some
      Src: /src/image/src/io/free_functions.rs:150,1
    - Dst: '&RgbaImage::len'
      Src: /src/image/src/io/free_functions.rs:152,1
    - Dst: len
      Src: /src/image/src/io/free_functions.rs:152,1
    - Dst: '&RgbaImage::iter'
      Src: /src/image/src/io/free_functions.rs:153,1
    - Dst: zip
      Src: /src/image/src/io/free_functions.rs:153,1
    - Dst: std::iter
      Src: /src/image/src/io/free_functions.rs:155,1
    - Dst: zip
      Src: /src/image/src/io/free_functions.rs:153,1
    - Dst: ImageResult::iter
      Src: /src/image/src/io/free_functions.rs:156,1
    - Dst: chain
      Src: /src/image/src/io/free_functions.rs:156,1
    - Dst: iter::repeat
      Src: /src/image/src/io/free_functions.rs:156,1
    - Dst: all
      Src: /src/image/src/io/free_functions.rs:153,1
    - Dst: Some
      Src: /src/image/src/io/free_functions.rs:159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 164
      start: 146
    functionDepth: 11
    functionLinenumber: 146
    functionLinenumberEnd: 164
    functionName: guess_format_impl
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 3
    functionsReached:
    - len
    - chain
    - '&RgbaImage::iter'
    - ImageResult::iter
    - std::iter
    - iter::repeat
    - '&RgbaImage::len'
    - zip
    - Some
    - all
    - ImageResult::is_empty
    - '&RgbaImage::starts_with'
    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:176,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/io/free_functions.rs:176,1
    - Dst: total_bytes
      Src: /src/image/src/io/free_functions.rs:176,1
    - Dst: u64::is_err
      Src: /src/image/src/io/free_functions.rs:177,1
    - Dst: u64::unwrap
      Src: /src/image/src/io/free_functions.rs:177,1
    - Dst: Err
      Src: /src/image/src/io/free_functions.rs:178,1
    - Dst: ImageError::Limits
      Src: /src/image/src/io/free_functions.rs:178,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/io/free_functions.rs:178,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/io/free_functions.rs:184,1
    - Dst: bytemuck::cast_slice_mut
      Src: /src/image/src/io/free_functions.rs:184,1
    - Dst: std::io::Result::as_mut_slice
      Src: /src/image/src/io/free_functions.rs:184,1
    - Dst: Ok
      Src: /src/image/src/io/free_functions.rs:185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - '&mut (impl ImageDecoder + ?Sized)'
    constantsTouched: []
    func_position:
      end: 186
      start: 170
    functionDepth: 4
    functionLinenumber: 170
    functionLinenumberEnd: 186
    functionName: decoder_to_vec
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 4
    functionsReached:
    - u64::is_err
    - Err
    - ImageError::Limits
    - ImageResult::read_image
    - Ok
    - LimitError::from_kind
    - bytemuck::cast_slice_mut
    - total_bytes
    - ImageResult::prepare_image
    - u64::unwrap
    - std::io::Result::as_mut_slice
    - usize::try_from
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn decoder_to_vec<T>(decoder: &mut (impl ImageDecoder +
      ?Sized),) -> ImageResult<(Vec<T>, DecodedImageAttributes)>whereT: crate::traits::Primitive
      + bytemuck::Pod,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::iter
      Src: /src/image/src/io/free_functions.rs:210,1
    - Dst: any
      Src: /src/image/src/io/free_functions.rs:210,1
    - Dst: ImageResult::display
      Src: /src/image/src/io/free_functions.rs:212,1
    - Dst: ImageFormat::from_path
      Src: /src/image/src/io/free_functions.rs:213,1
    - Dst: ImageResult::as_path
      Src: /src/image/src/io/free_functions.rs:213,1
    - Dst: is_supported
      Src: /src/image/src/io/free_functions.rs:214,1
    - Dst: std::fs::read
      Src: /src/image/src/io/free_functions.rs:215,1
    - Dst: ImageResult::as_path
      Src: /src/image/src/io/free_functions.rs:215,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/src/io/free_functions.rs:215,1
    - Dst: guess_format_impl
      Src: /src/image/src/io/free_functions.rs:216,1
    - Dst: Some
      Src: /src/image/src/io/free_functions.rs:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::path::PathBuf
    constantsTouched: []
    func_position:
      end: 229
      start: 209
    functionDepth: 9
    functionLinenumber: 209
    functionLinenumberEnd: 229
    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:
    - ImageResult::display
    - ImageResult::as_path
    - is_supported
    - ImageFormat::from_path
    - std::iter
    - guess_format_impl
    - Some
    - std::fs::read
    - std::io::Result::unwrap
    - any
    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:190,1
    - Dst: unwrap
      Src: /src/image/src/io/free_functions.rs:190,1
    - Dst: filter_map
      Src: /src/image/src/io/free_functions.rs:190,1
    - Dst: test_file
      Src: /src/image/src/io/free_functions.rs:192,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/io/free_functions.rs:192,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:190,1
    - Dst: ImageFormat::all
      Src: /src/image/src/io/free_functions.rs:196,1
    - Dst: contains
      Src: /src/image/src/io/free_functions.rs:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 189
    functionDepth: 10
    functionLinenumber: 189
    functionLinenumberEnd: 230
    functionName: test_guess_format_agrees_with_extension
    functionSourceFile: /src/image/src/io/free_functions.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - "*\")\n        .unwrap()\n        .filter_map(|path| test_file(path.unwrap()))\n\
      \        .collect::<std::collections::HashSet<_>>"
    - unwrap
    - glob::glob
    - filter_map
    - ImageFormat::all
    - test_file
    - contains
    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:
    - Some
    - to_ascii_lowercase
    - Option::as_str
    - Option::to_str
    linkageType: ''
    returnType: Option
    signature: 'fn inner(ext: &OsStr) -> Option<ImageFormat>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inner
      Src: /src/image/src/io/format.rs: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: 8
    functionLinenumber: 67
    functionLinenumberEnd: 95
    functionName: ImageFormat::from_extension
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 2
    functionsReached:
    - inner
    - Option::as_ref
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_extension<S>(ext: S) -> Option<Self>whereS: AsRef<OsStr>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::extension
      Src: /src/image/src/io/format.rs: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: 12
    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:
    - Option::and_then
    - ImageResult::extension
    - ImageFormatHint::PathExtension
    - ok_or_else
    - ImageError::Unsupported
    - into
    - ImageFormatHint::into
    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: 8
    functionLinenumber: 110
    functionLinenumberEnd: 129
    functionName: ImageFormat::from_path
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 5
    functionsReached:
    - inner
    - ImageResult::as_ref
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn from_path<P>(path: P) -> ImageResult<Self>whereP: AsRef<Path>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::as_ref
      Src: /src/image/src/io/format.rs: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:
    - Some
    - Option::as_ref
    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: 5
    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: 9
    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: 9
    functionLinenumber: 398
    functionLinenumberEnd: 413
    functionName: tests::image_formats_are_recognized
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached:
    - Self::extensions_str
    - ImageFormat::from_path
    - Path::new
    - 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: 6
    functionLinenumber: 416
    functionLinenumberEnd: 423
    functionName: tests::all
    functionSourceFile: /src/image/src/io/format.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::collect
    - ImageFormat::all
    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:31,1
    - Dst: Err
      Src: /src/image/src/codecs/farbfeld.rs:35,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/farbfeld.rs:35,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/farbfeld.rs:35,1
    - Dst: into
      Src: /src/image/src/codecs/farbfeld.rs:36,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: u32::from_be_bytes
      Src: /src/image/src/codecs/farbfeld.rs:42,1
    - Dst: try_into
      Src: /src/image/src/codecs/farbfeld.rs:42,1
    - Dst: unwrap
      Src: /src/image/src/codecs/farbfeld.rs:42,1
    - Dst: crate::ImageLayout::new
      Src: /src/image/src/codecs/farbfeld.rs:45,1
    - Dst: ImageResult::total_bytes_overflows_u64
      Src: /src/image/src/codecs/farbfeld.rs:47,1
    - Dst: Err
      Src: /src/image/src/codecs/farbfeld.rs:48,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/farbfeld.rs:48,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/farbfeld.rs:49,1
    - Dst: into
      Src: /src/image/src/codecs/farbfeld.rs:50,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/farbfeld.rs:51,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut dyn Read'
    constantsTouched: []
    func_position:
      end: 60
      start: 29
    functionDepth: 10
    functionLinenumber: 29
    functionLinenumberEnd: 60
    functionName: parse_header
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 1
    functionsReached:
    - u32::from_be_bytes
    - ImageError::Decoding
    - try_into
    - Result::read_exact
    - Err
    - crate::ImageLayout::new
    - UnsupportedError::from_format_and_kind
    - Ok
    - ImageError::Unsupported
    - unwrap
    - into
    - ImageResult::total_bytes_overflows_u64
    - DecodingError::new
    - UnsupportedErrorKind::GenericFeature
    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:65,1
    - Dst: std::mem::swap
      Src: /src/image/src/codecs/farbfeld.rs:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 69
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 69
    functionName: u16_swap_be_ne
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 2
    functionsReached:
    - std::mem::swap
    - as_chunks_mut::<2>
    linkageType: ''
    returnType: void
    signature: 'fn u16_swap_be_ne(data: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_header
      Src: /src/image/src/codecs/farbfeld.rs:81,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 11
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: FarbfeldDecoder::new
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 1
    functionsReached:
    - parse_header
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(mut r: R) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:94,1
    - Dst: DecoderPreparedImage::new
      Src: /src/image/src/codecs/farbfeld.rs:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: FarbfeldDecoder::prepare_image
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 1
    functionsReached:
    - Ok
    - DecoderPreparedImage::new
    linkageType: ''
    returnType: ImageResult
    signature: fn prepare_image(&mut self) -> ImageResult<DecoderPreparedImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FarbfeldDecoder::prepare_image
      Src: /src/image/src/codecs/farbfeld.rs:98,1
    - Dst: read_exact
      Src: /src/image/src/codecs/farbfeld.rs:100,1
    - Dst: u16_swap_be_ne
      Src: /src/image/src/codecs/farbfeld.rs:101,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:102,1
    - Dst: DecodedImageAttributes::default
      Src: /src/image/src/codecs/farbfeld.rs:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 103
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 103
    functionName: FarbfeldDecoder::read_image
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - read_exact
    - Ok
    - FarbfeldDecoder::prepare_image
    - DecodedImageAttributes::default
    - u16_swap_be_ne
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(&mut self, buf: &mut [u8]) -> ImageResult<DecodedImageAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: FarbfeldEncoder::new
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: FarbfeldEncoder
    signature: 'pub fn new(w: W) -> FarbfeldEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/image/src/codecs/farbfeld.rs:124,1
    - Dst: u64::from
      Src: /src/image/src/codecs/farbfeld.rs:124,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/farbfeld.rs:124,1
    - Dst: FarbfeldEncoder::encode_impl
      Src: /src/image/src/codecs/farbfeld.rs:131,1
    - Dst: Ok
      Src: /src/image/src/codecs/farbfeld.rs:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - data
    - width
    - height
    argTypes:
    - '&[u8]'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 12
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: FarbfeldEncoder::encode
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 1
    functionsReached:
    - saturating_mul
    - Ok
    - u64::from
    - FarbfeldEncoder::encode_impl
    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:136,1
    - Dst: write_all
      Src: /src/image/src/codecs/farbfeld.rs:138,1
    - Dst: u32::to_be_bytes
      Src: /src/image/src/codecs/farbfeld.rs:138,1
    - Dst: write_all
      Src: /src/image/src/codecs/farbfeld.rs:139,1
    - Dst: u32::to_be_bytes
      Src: /src/image/src/codecs/farbfeld.rs:139,1
    - Dst: ImageResult::chunks
      Src: /src/image/src/codecs/farbfeld.rs:142,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/farbfeld.rs:142,1
    - Dst: Option::len
      Src: /src/image/src/codecs/farbfeld.rs:143,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/farbfeld.rs:144,1
    - Dst: u16_swap_be_ne
      Src: /src/image/src/codecs/farbfeld.rs:145,1
    - Dst: write_all
      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: 45
    argCount: 3
    argNames:
    - data
    - width
    - height
    argTypes:
    - '&[u8]'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 150
      start: 135
    functionDepth: 11
    functionLinenumber: 135
    functionLinenumberEnd: 150
    functionName: FarbfeldEncoder::encode_impl
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 1
    functionsReached:
    - std::io::Result::copy_from_slice
    - Ok
    - u16_swap_be_ne
    - ImageResult::chunks
    - u32::to_be_bytes
    - std::io::Result::len
    - Option::len
    - write_all
    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: 9
    functionLinenumber: 155
    functionLinenumberEnd: 172
    functionName: FarbfeldEncoder::write_image
    functionSourceFile: /src/image/src/codecs/farbfeld.rs
    functionUses: 0
    functionsReached:
    - Err
    - UnsupportedErrorKind::Color
    - ImageError::Unsupported
    - FarbfeldEncoder::encode
    - into
    - UnsupportedError::from_format_and_kind
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1507
    functionDepth: 0
    functionLinenumber: 1507
    functionLinenumberEnd: 1519
    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:66,1
    - Dst: Self::set_color_output
      Src: /src/image/src/codecs/gif.rs:67,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:69,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:71,1
    - Dst: Limits::no_limits
      Src: /src/image/src/codecs/gif.rs:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 76
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 76
    functionName: GifDecoder::new
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 5
    functionsReached:
    - gif::DecodeOptions::new
    - Self::set_color_output
    - Ok
    - Limits::no_limits
    - Some
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(r: R) -> ImageResult<GifDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/image/src/codecs/gif.rs:86,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:87,1
    - Dst: as_mut
      Src: /src/image/src/codecs/gif.rs:87,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:87,1
    - Dst: take
      Src: /src/image/src/codecs/gif.rs:90,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:91,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/gif.rs:91,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/gif.rs:91,1
    - Dst: clone
      Src: /src/image/src/codecs/gif.rs:96,1
    - Dst: read_info
      Src: /src/image/src/codecs/gif.rs:96,1
    - Dst: map_err
      Src: /src/image/src/codecs/gif.rs:96,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:102,1
    - Dst: insert
      Src: /src/image/src/codecs/gif.rs:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 103
    functionName: GifDecoder::ensure_decoder
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 5
    functionsReached:
    - as_mut
    - Err
    - take
    - Ok
    - is_some
    - unwrap
    - ParameterError::from_kind
    - read_info
    - map_err
    - insert
    - ImageError::Parameter
    - clone
    linkageType: ''
    returnType: ImageResult
    signature: fn ensure_decoder(&mut self) -> ImageResult<&mut gif::Decoder<R>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::ImageLayout::new
      Src: /src/image/src/codecs/gif.rs:106,1
    - Dst: ImageResult::width
      Src: /src/image/src/codecs/gif.rs:107,1
    - Dst: u32::into
      Src: /src/image/src/codecs/gif.rs:107,1
    - Dst: ImageResult::height
      Src: /src/image/src/codecs/gif.rs:108,1
    - Dst: u32::into
      Src: /src/image/src/codecs/gif.rs:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - '&gif::Decoder<R>'
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 9
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: GifDecoder::layout_from_decoder
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - crate::ImageLayout::new
    - ImageResult::width
    - ImageResult::height
    - u32::into
    linkageType: ''
    returnType: crate::ImageLayout
    signature: 'fn layout_from_decoder(decoder: &gif::Decoder<R>) -> crate::ImageLayout'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FormatAttributes::default
      Src: /src/image/src/codecs/gif.rs:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 126
    functionName: GifDecoder::format_attributes
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - FormatAttributes::default
    linkageType: ''
    returnType: FormatAttributes
    signature: fn format_attributes(&self) -> FormatAttributes
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GifDecoder::ensure_decoder
      Src: /src/image/src/codecs/gif.rs:129,1
    - Dst: ImageResult::ok
      Src: /src/image/src/codecs/gif.rs:129,1
    - Dst: ImageResult::repeat
      Src: /src/image/src/codecs/gif.rs:130,1
    - Dst: LoopCount::Finite
      Src: /src/image/src/codecs/gif.rs:132,1
    - Dst: NonZeroU32::new
      Src: /src/image/src/codecs/gif.rs:132,1
    - Dst: into
      Src: /src/image/src/codecs/gif.rs:132,1
    - Dst: Self::expect
      Src: /src/image/src/codecs/gif.rs:132,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 8
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: GifDecoder::animation_attributes
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - LoopCount::Finite
    - Self::expect
    - ImageResult::repeat
    - GifDecoder::ensure_decoder
    - Some
    - into
    - NonZeroU32::new
    - ImageResult::ok
    linkageType: ''
    returnType: Option
    signature: fn animation_attributes(&mut self) -> Option<DecodedAnimationAttributes>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GifDecoder::ensure_decoder
      Src: /src/image/src/codecs/gif.rs:141,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:142,1
    - Dst: Self::layout_from_decoder
      Src: /src/image/src/codecs/gif.rs:142,1
    - Dst: crate::ImageLayout::into
      Src: /src/image/src/codecs/gif.rs:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 10
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: GifDecoder::prepare_image
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 1
    functionsReached:
    - GifDecoder::ensure_decoder
    - crate::ImageLayout::into
    - Self::layout_from_decoder
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn prepare_image(&mut self) -> ImageResult<DecoderPreparedImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_support
      Src: /src/image/src/codecs/gif.rs:146,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/gif.rs:146,1
    - Dst: GifDecoder::prepare_image
      Src: /src/image/src/codecs/gif.rs:148,1
    - Dst: Limits::check_layout_dimensions
      Src: /src/image/src/codecs/gif.rs:149,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - limits
    argTypes:
    - Limits
    constantsTouched: []
    func_position:
      end: 154
      start: 145
    functionDepth: 11
    functionLinenumber: 145
    functionLinenumberEnd: 154
    functionName: GifDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - GifDecoder::prepare_image
    - Ok
    - crate::LimitSupport::default
    - Limits::check_support
    - Limits::check_layout_dimensions
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GifDecoder::ensure_decoder
      Src: /src/image/src/codecs/gif.rs:157,1
    - Dst: Self::layout_from_decoder
      Src: /src/image/src/codecs/gif.rs:163,1
    - Dst: is_none
      Src: /src/image/src/codecs/gif.rs:168,1
    - Dst: reserve_buffer
      Src: /src/image/src/codecs/gif.rs:169,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:171,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/codecs/gif.rs:171,1
    - Dst: color::Rgba
      Src: /src/image/src/codecs/gif.rs:171,1
    - Dst: as_mut
      Src: /src/image/src/codecs/gif.rs:175,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:175,1
    - Dst: ImageResult::next_frame_info
      Src: /src/image/src/codecs/gif.rs:178,1
    - Dst: map_err
      Src: /src/image/src/codecs/gif.rs:178,1
    - Dst: FrameInfo::new_from_frame
      Src: /src/image/src/codecs/gif.rs:182,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:184,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/gif.rs:184,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/gif.rs:184,1
    - Dst: u64::from
      Src: /src/image/src/codecs/gif.rs:191,1
    - Dst: u64::from
      Src: /src/image/src/codecs/gif.rs:191,1
    - Dst: u64::from
      Src: /src/image/src/codecs/gif.rs:191,1
    - Dst: usize::try_from
      Src: /src/image/src/codecs/gif.rs:196,1
    - Dst: Result::unwrap
      Src: /src/image/src/codecs/gif.rs:196,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/gif.rs:196,1
    - Dst: bytes_per_pixel
      Src: /src/image/src/codecs/gif.rs:198,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:196,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/gif.rs:201,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:201,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/gif.rs:202,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:202,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:203,1
    - Dst: std::io::Result::split_at_mut
      Src: /src/image/src/codecs/gif.rs:211,1
    - Dst: Option::split_at_mut
      Src: /src/image/src/codecs/gif.rs:212,1
    - Dst: ImageResult::read_into_buffer
      Src: /src/image/src/codecs/gif.rs:222,1
    - Dst: map_err
      Src: /src/image/src/codecs/gif.rs:222,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/gif.rs:233,1
    - Dst: and_then
      Src: /src/image/src/codecs/gif.rs:233,1
    - Dst: Result::checked_mul
      Src: /src/image/src/codecs/gif.rs:235,1
    - Dst: ok_or
      Src: /src/image/src/codecs/gif.rs:233,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/gif.rs:236,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/gif.rs:236,1
    - Dst: reserve_usize
      Src: /src/image/src/codecs/gif.rs:240,1
    - Dst: free_usize
      Src: /src/image/src/codecs/gif.rs:242,1
    - Dst: GifDecoder::ensure_decoder
      Src: /src/image/src/codecs/gif.rs:244,1
    - Dst: ImageResult::read_into_buffer
      Src: /src/image/src/codecs/gif.rs:246,1
    - Dst: map_err
      Src: /src/image/src/codecs/gif.rs:246,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/gif.rs:250,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/gif.rs:251,1
    - Dst: Option::is_none
      Src: /src/image/src/codecs/gif.rs:256,1
    - Dst: Option::is_none
      Src: /src/image/src/codecs/gif.rs:256,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:257,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/gif.rs:257,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/gif.rs:258,1
    - Dst: into
      Src: /src/image/src/codecs/gif.rs:259,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/gif.rs:260,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/gif.rs:268,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/gif.rs:269,1
    - Dst: Option::enumerate_pixels_mut
      Src: /src/image/src/codecs/gif.rs:271,1
    - Dst: wrapping_sub
      Src: /src/image/src/codecs/gif.rs:272,1
    - Dst: Option::wrapping_sub
      Src: /src/image/src/codecs/gif.rs:273,1
    - Dst: Option::get_pixel
      Src: /src/image/src/codecs/gif.rs:276,1
    - Dst: color::Rgba
      Src: /src/image/src/codecs/gif.rs:279,1
    - Dst: as_mut
      Src: /src/image/src/codecs/gif.rs:285,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:285,1
    - Dst: subpixels_mut
      Src: /src/image/src/codecs/gif.rs:293,1
    - Dst: blend_and_dispose_region
      Src: /src/image/src/codecs/gif.rs:295,1
    - Dst: min
      Src: /src/image/src/codecs/gif.rs:298,1
    - Dst: min
      Src: /src/image/src/codecs/gif.rs:299,1
    - Dst: bytes_per_pixel
      Src: /src/image/src/codecs/gif.rs:301,1
    - Dst: bytes_per_pixel
      Src: /src/image/src/codecs/gif.rs:302,1
    - Dst: bytes_per_pixel
      Src: /src/image/src/codecs/gif.rs:303,1
    - Dst: subpixels_mut
      Src: /src/image/src/codecs/gif.rs:313,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/gif.rs:315,1
    - Dst: subpixels_mut
      Src: /src/image/src/codecs/gif.rs:325,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/gif.rs:328,1
    - Dst: blend_and_dispose_region
      Src: /src/image/src/codecs/gif.rs:330,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/gif.rs:337,1
    - Dst: subpixels_mut
      Src: /src/image/src/codecs/gif.rs:346,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/gif.rs:348,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:352,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:353,1
    - Dst: Default::default
      Src: /src/image/src/codecs/gif.rs:354,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 353
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 356
      start: 156
    functionDepth: 10
    functionLinenumber: 156
    functionLinenumberEnd: 356
    functionName: GifDecoder::read_image
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - Err
    - std::io::Result::split_at_mut
    - free_usize
    - LimitError::from_kind
    - checked_mul
    - u64::from
    - Some
    - ImageResult::next_frame_info
    - into
    - ImageBuffer::from_pixel
    - ImageResult::read_into_buffer
    - Self::layout_from_decoder
    - ImageBuffer::from_raw
    - ok_or
    - min
    - ImageError::Unsupported
    - unwrap
    - reserve_buffer
    - map_err
    - blend_and_dispose_region
    - UnsupportedError::from_format_and_kind
    - Option::unwrap
    - Default::default
    - wrapping_sub
    - and_then
    - Option::get_pixel
    - is_none
    - GifDecoder::ensure_decoder
    - copy_from_slice
    - ParameterError::from_kind
    - Option::wrapping_sub
    - reserve_usize
    - subpixels_mut
    - bytes_per_pixel
    - Result::unwrap
    - usize::try_from
    - as_mut
    - Option::is_none
    - UnsupportedErrorKind::GenericFeature
    - color::Rgba
    - ImageError::Limits
    - Option::enumerate_pixels_mut
    - FrameInfo::new_from_frame
    - Result::checked_mul
    - Ok
    - ImageError::Parameter
    - Option::split_at_mut
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(&mut self, buf: &mut [u8]) -> ImageResult<DecodedImageAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GifDecoder::ensure_decoder
      Src: /src/image/src/codecs/gif.rs:359,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:361,1
    - Dst: ImageResult::icc_profile
      Src: /src/image/src/codecs/gif.rs:361,1
    - Dst: map
      Src: /src/image/src/codecs/gif.rs:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 13
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: GifDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - map
    - GifDecoder::ensure_decoder
    - ImageResult::icc_profile
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GifDecoder::ensure_decoder
      Src: /src/image/src/codecs/gif.rs:365,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:367,1
    - Dst: ImageResult::xmp_metadata
      Src: /src/image/src/codecs/gif.rs:367,1
    - Dst: ImageResult::map
      Src: /src/image/src/codecs/gif.rs:367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 7
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: GifDecoder::xmp_metadata
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - GifDecoder::ensure_decoder
    - ImageResult::xmp_metadata
    - Ok
    - ImageResult::map
    linkageType: ''
    returnType: ImageResult
    signature: fn xmp_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image/src/codecs/gif.rs:376,1
    - Dst: zip
      Src: /src/image/src/codecs/gif.rs:376,1
    - Dst: '&mut [u8]::chunks_exact_mut'
      Src: /src/image/src/codecs/gif.rs:378,1
    - Dst: Rgba::<u8>::from_slice_mut
      Src: /src/image/src/codecs/gif.rs:382,1
    - Dst: Rgba::<u8>::from_slice_mut
      Src: /src/image/src/codecs/gif.rs:383,1
    - Dst: blend_and_dispose_pixel
      Src: /src/image/src/codecs/gif.rs:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - dispose
    - non_disposed_data
    - frame_data
    argTypes:
    - DisposalMethod
    - '&mut [u8]'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 386
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 386
    functionName: blend_and_dispose_region
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 1
    functionsReached:
    - '&mut [u8]::chunks_exact_mut'
    - zip
    - blend_and_dispose_pixel
    - Rgba::<u8>::from_slice_mut
    linkageType: ''
    returnType: void
    signature: 'fn blend_and_dispose_region(dispose: DisposalMethod,non_disposed_data:
      &mut [u8],frame_data: &mut [u8],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from_ne_bytes
      Src: /src/image/src/codecs/gif.rs:400,1
    - Dst: color::Rgba
      Src: /src/image/src/codecs/gif.rs:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - dispose
    - previous
    - current
    argTypes:
    - DisposalMethod
    - '&mut Rgba<u8>'
    - '&mut Rgba<u8>'
    constantsTouched: []
    func_position:
      end: 423
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 423
    functionName: blend_and_dispose_pixel
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 1
    functionsReached:
    - color::Rgba
    - u32::from_ne_bytes
    linkageType: ''
    returnType: void
    signature: 'fn blend_and_dispose_pixel(dispose: DisposalMethod,previous: &mut
      Rgba<u8>,current: &mut Rgba<u8>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/image/src/codecs/gif.rs:437,1
    - Dst: u32::from
      Src: /src/image/src/codecs/gif.rs:438,1
    - Dst: u32::from
      Src: /src/image/src/codecs/gif.rs:439,1
    - Dst: u32::from
      Src: /src/image/src/codecs/gif.rs:440,1
    - Dst: animation::Delay::from_ratio
      Src: /src/image/src/codecs/gif.rs:443,1
    - Dst: Ratio::new
      Src: /src/image/src/codecs/gif.rs:443,1
    - Dst: u32::from
      Src: /src/image/src/codecs/gif.rs:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - frame
    argTypes:
    - '&Frame'
    constantsTouched: []
    func_position:
      end: 445
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 445
    functionName: FrameInfo::new_from_frame
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 1
    functionsReached:
    - Ratio::new
    - animation::Delay::from_ratio
    - u32::from
    linkageType: ''
    returnType: FrameInfo
    signature: 'fn new_from_frame(frame: &Frame) -> FrameInfo'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gif::Repeat::Finite
      Src: /src/image/src/codecs/gif.rs:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 463
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 463
    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:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 478
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 478
    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:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - w
    - speed
    argTypes:
    - W
    - i32
    constantsTouched: []
    func_position:
      end: 493
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 493
    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:498,1
    - Dst: ImageResult::to_gif_enum
      Src: /src/image/src/codecs/gif.rs:499,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/gif.rs:498,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:502,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - repeat
    argTypes:
    - Repeat
    constantsTouched: []
    func_position:
      end: 504
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 504
    functionName: GifEncoder::set_repeat
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - Ok
    - ImageResult::set_repeat
    - Some
    - ImageResult::map_err
    - ImageResult::to_gif_enum
    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:514,1
    - Dst: GifEncoder::encode_gif
      Src: /src/image/src/codecs/gif.rs:517,1
    - Dst: Frame::from_rgb_speed
      Src: /src/image/src/codecs/gif.rs:517,1
    - Dst: GifEncoder::encode_gif
      Src: /src/image/src/codecs/gif.rs:519,1
    - Dst: Frame::from_rgba_speed
      Src: /src/image/src/codecs/gif.rs:519,1
    - Dst: ImageResult::to_owned
      Src: /src/image/src/codecs/gif.rs:522,1
    - Dst: flat_map
      Src: /src/image/src/codecs/gif.rs:526,1
    - Dst: collect
      Src: /src/image/src/codecs/gif.rs:526,1
    - Dst: GifEncoder::encode_gif
      Src: /src/image/src/codecs/gif.rs:528,1
    - Dst: Frame::from_palette_pixels
      Src: /src/image/src/codecs/gif.rs:528,1
    - Dst: GifEncoder::encode_gif
      Src: /src/image/src/codecs/gif.rs:533,1
    - Dst: Frame::from_grayscale_with_alpha
      Src: /src/image/src/codecs/gif.rs:533,1
    - Dst: Err
      Src: /src/image/src/codecs/gif.rs:535,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/gif.rs:535,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/gif.rs:536,1
    - Dst: into
      Src: /src/image/src/codecs/gif.rs:537,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/gif.rs:538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 4
    argNames:
    - data
    - width
    - height
    - color
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 542
      start: 507
    functionDepth: 10
    functionLinenumber: 507
    functionLinenumberEnd: 542
    functionName: GifEncoder::encode
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 1
    functionsReached:
    - Err
    - ImageResult::to_owned
    - GifEncoder::encode_gif
    - UnsupportedError::from_format_and_kind
    - UnsupportedErrorKind::Color
    - GifEncoder::gif_dimensions
    - Frame::from_grayscale_with_alpha
    - ImageError::Unsupported
    - into
    - Frame::from_palette_pixels
    - Frame::from_rgba_speed
    - Frame::from_rgb_speed
    - flat_map
    - collect
    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:546,1
    - Dst: GifEncoder::encode_gif
      Src: /src/image/src/codecs/gif.rs:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - img_frame
    argTypes:
    - animation::Frame
    constantsTouched: []
    func_position:
      end: 548
      start: 545
    functionDepth: 11
    functionLinenumber: 545
    functionLinenumberEnd: 548
    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:557,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - frames
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 560
      start: 552
    functionDepth: 12
    functionLinenumber: 552
    functionLinenumberEnd: 560
    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:570,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:572,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - frames
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 573
      start: 565
    functionDepth: 12
    functionLinenumber: 565
    functionLinenumberEnd: 573
    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:580,1
    - Dst: Delay::into_ratio
      Src: /src/image/src/codecs/gif.rs:580,1
    - Dst: Ratio::to_integer
      Src: /src/image/src/codecs/gif.rs:580,1
    - Dst: animation::Frame::into_buffer
      Src: /src/image/src/codecs/gif.rs:582,1
    - Dst: GifEncoder::gif_dimensions
      Src: /src/image/src/codecs/gif.rs:583,1
    - Dst: RgbaImage::width
      Src: /src/image/src/codecs/gif.rs:583,1
    - Dst: RgbaImage::height
      Src: /src/image/src/codecs/gif.rs:583,1
    - Dst: Frame::from_rgba_speed
      Src: /src/image/src/codecs/gif.rs:586,1
    - Dst: try_into
      Src: /src/image/src/codecs/gif.rs:591,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/gif.rs:591,1
    - Dst: Ok
      Src: /src/image/src/codecs/gif.rs:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - img_frame
    argTypes:
    - animation::Frame
    constantsTouched: []
    func_position:
      end: 594
      start: 575
    functionDepth: 10
    functionLinenumber: 575
    functionLinenumberEnd: 594
    functionName: GifEncoder::convert_frame
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 1
    functionsReached:
    - try_into
    - Ratio::to_integer
    - animation::Frame::delay
    - RgbaImage::height
    - RgbaImage::width
    - Ok
    - GifEncoder::gif_dimensions
    - animation::Frame::into_buffer
    - Delay::into_ratio
    - Frame::from_rgba_speed
    - 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:598,1
    - Dst: Result::ok
      Src: /src/image/src/codecs/gif.rs:598,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/gif.rs:599,1
    - Dst: Result::ok
      Src: /src/image/src/codecs/gif.rs:599,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 601
      start: 597
    functionDepth: 8
    functionLinenumber: 597
    functionLinenumberEnd: 601
    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:
    - u16::try_from
    - Some
    - Result::ok
    linkageType: ''
    returnType: Option
    signature: 'fn inner_dimensions(width: u32, height: u32) -> Option<(u16, u16)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: inner_dimensions
      Src: /src/image/src/codecs/gif.rs:604,1
    - Dst: Option::ok_or_else
      Src: /src/image/src/codecs/gif.rs:604,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/gif.rs:605,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/gif.rs:605,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 609
      start: 596
    functionDepth: 9
    functionLinenumber: 596
    functionLinenumberEnd: 609
    functionName: GifEncoder::gif_dimensions
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 2
    functionsReached:
    - Option::ok_or_else
    - ImageError::Parameter
    - ParameterError::from_kind
    - inner_dimensions
    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:616,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:616,1
    - Dst: gif::Encoder::new
      Src: /src/image/src/codecs/gif.rs:617,1
    - Dst: FarbfeldEncoder::map_err
      Src: /src/image/src/codecs/gif.rs:617,1
    - Dst: ImageResult::set_repeat
      Src: /src/image/src/codecs/gif.rs:620,1
    - Dst: ImageResult::to_gif_enum
      Src: /src/image/src/codecs/gif.rs:621,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/gif.rs:620,1
    - Dst: Some
      Src: /src/image/src/codecs/gif.rs:624,1
    - Dst: as_mut
      Src: /src/image/src/codecs/gif.rs:625,1
    - Dst: unwrap
      Src: /src/image/src/codecs/gif.rs:625,1
    - Dst: write_frame
      Src: /src/image/src/codecs/gif.rs:630,1
    - Dst: map_err
      Src: /src/image/src/codecs/gif.rs:630,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 1
    argNames:
    - frame
    argTypes:
    - Frame
    constantsTouched: []
    func_position:
      end: 633
      start: 611
    functionDepth: 2
    functionLinenumber: 611
    functionLinenumberEnd: 633
    functionName: GifEncoder::encode_gif
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 2
    functionsReached:
    - as_mut
    - take
    - ImageResult::set_repeat
    - write_frame
    - unwrap
    - Some
    - map_err
    - FarbfeldEncoder::map_err
    - gif::Encoder::new
    - ImageResult::map_err
    - ImageResult::to_gif_enum
    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:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 644
      start: 636
    functionDepth: 11
    functionLinenumber: 636
    functionLinenumberEnd: 644
    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:651,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/gif.rs:652,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/gif.rs:652,1
    - Dst: into
      Src: /src/image/src/codecs/gif.rs:652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - err
    argTypes:
    - gif::DecodingError
    constantsTouched: []
    func_position:
      end: 654
      start: 648
    functionDepth: 10
    functionLinenumber: 648
    functionLinenumberEnd: 654
    functionName: ImageError::from_decoding
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - ImageError::Decoding
    - ImageError::IoError
    - DecodingError::new
    - into
    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:659,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/gif.rs:660,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/gif.rs:660,1
    - Dst: into
      Src: /src/image/src/codecs/gif.rs:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - err
    argTypes:
    - gif::EncodingError
    constantsTouched: []
    func_position:
      end: 662
      start: 656
    functionDepth: 10
    functionLinenumber: 656
    functionLinenumberEnd: 662
    functionName: ImageError::from_encoding
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - ImageError::Encoding
    - ImageError::IoError
    - EncodingError::new
    - into
    linkageType: ''
    returnType: ImageError
    signature: 'fn from_encoding(err: gif::EncodingError) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GifDecoder::new
      Src: /src/image/src/codecs/gif.rs:682,1
    - Dst: io::Cursor::new
      Src: /src/image/src/codecs/gif.rs:682,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/gif.rs:682,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/gif.rs:683,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/gif.rs:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 687
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 687
    functionName: test::frames_exceeding_logical_screen_size
    functionSourceFile: /src/image/src/codecs/gif.rs
    functionUses: 0
    functionsReached:
    - GifDecoder::new
    - ImageResult::prepare_image
    - io::Cursor::new
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn frames_exceeding_logical_screen_size()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Decoder::new
      Src: /src/image/src/codecs/tiff.rs:61,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/tiff.rs:61,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:63,1
    - Dst: tiff::decoder::Limits::default
      Src: /src/image/src/codecs/tiff.rs:65,1
    - Dst: Some
      Src: /src/image/src/codecs/tiff.rs:66,1
    - Dst: DecodingResult::U8
      Src: /src/image/src/codecs/tiff.rs:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 12
    functionLinenumber: 60
    functionLinenumberEnd: 69
    functionName: TiffDecoder::new
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 8
    functionsReached:
    - Decoder::new
    - tiff::decoder::Limits::default
    - Ok
    - DecodingResult::U8
    - Some
    - ImageResult::map_err
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(r: R) -> Result<TiffDecoder<R>, ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:73,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/tiff.rs:73,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/tiff.rs:73,1
    - Dst: Result::next_image
      Src: /src/image/src/codecs/tiff.rs:80,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:80,1
    - Dst: TiffDecoder::reset_info_from_current_image
      Src: /src/image/src/codecs/tiff.rs:85,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:89,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/tiff.rs:89,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/tiff.rs:89,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 71
    functionDepth: 11
    functionLinenumber: 71
    functionLinenumberEnd: 95
    functionName: TiffDecoder::peek_info
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 2
    functionsReached:
    - Err
    - Ok
    - Result::next_image
    - ParameterError::from_kind
    - map_err
    - ImageError::Parameter
    - TiffDecoder::reset_info_from_current_image
    linkageType: ''
    returnType: ImageResult
    signature: fn peek_info(&mut self) -> ImageResult<ImageInfo>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:99,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/tiff.rs:99,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/tiff.rs:99,1
    - Dst: Result::dimensions
      Src: /src/image/src/codecs/tiff.rs:104,1
    - Dst: (u32, u32)::map_err
      Src: /src/image/src/codecs/tiff.rs:104,1
    - Dst: Result::colortype
      Src: /src/image/src/codecs/tiff.rs:105,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:105,1
    - Dst: find_tag_unsigned_vec::<u16>
      Src: /src/image/src/codecs/tiff.rs:107,1
    - Dst: check_sample_format
      Src: /src/image/src/codecs/tiff.rs:110,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:114,1
    - Dst: ImageError::from_tiff_decode
      Src: /src/image/src/codecs/tiff.rs:114,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:134,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:134,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:136,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:136,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:136,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:137,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:137,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:137,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:138,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:138,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:138,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:140,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:140,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:140,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:146,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:146,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:147,1
    - Dst: min
      Src: /src/image/src/codecs/tiff.rs:147,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:150,1
    - Dst: err_unknown_color_type
      Src: /src/image/src/codecs/tiff.rs:150,1
    - Dst: Option::into
      Src: /src/image/src/codecs/tiff.rs:158,1
    - Dst: check_ycbcr_subsampling
      Src: /src/image/src/codecs/tiff.rs:163,1
    - Dst: read_ycbcr_coefficients
      Src: /src/image/src/codecs/tiff.rs:164,1
    - Dst: ImageState::At
      Src: /src/image/src/codecs/tiff.rs:167,1
    - Dst: TiffDecoder::redistribute_limits
      Src: /src/image/src/codecs/tiff.rs:174,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:176,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 97
    functionDepth: 10
    functionLinenumber: 97
    functionLinenumberEnd: 177
    functionName: TiffDecoder::reset_info_from_current_image
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - check_sample_format
    - Err
    - err_unknown_color_type
    - ImageError::from_tiff_decode
    - Result::dimensions
    - find_tag_unsigned_vec::<u16>
    - TiffDecoder::redistribute_limits
    - check_ycbcr_subsampling
    - Option::into
    - min
    - map_err
    - Result::colortype
    - ParameterError::from_kind
    - read_ycbcr_coefficients
    - Ok
    - saturating_mul
    - ImageState::At
    - (u32, u32)::map_err
    - ImageError::Parameter
    linkageType: ''
    returnType: ImageResult
    signature: fn reset_info_from_current_image(&mut self) -> ImageResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/image/src/codecs/tiff.rs:184,1
    - Dst: saturating_add
      Src: /src/image/src/codecs/tiff.rs:188,1
    - Dst: saturating_sub
      Src: /src/image/src/codecs/tiff.rs:191,1
    - Dst: ImageResult::total_bytes_buffer
      Src: /src/image/src/codecs/tiff.rs:191,1
    - Dst: Default::default
      Src: /src/image/src/codecs/tiff.rs:192,1
    - Dst: usize::try_from
      Src: /src/image/src/codecs/tiff.rs:194,1
    - Dst: Result::unwrap_or
      Src: /src/image/src/codecs/tiff.rs:194,1
    - Dst: usize::try_from
      Src: /src/image/src/codecs/tiff.rs:196,1
    - Dst: Result::unwrap_or
      Src: /src/image/src/codecs/tiff.rs:196,1
    - Dst: Some
      Src: /src/image/src/codecs/tiff.rs:199,1
    - Dst: take
      Src: /src/image/src/codecs/tiff.rs:199,1
    - Dst: unwrap
      Src: /src/image/src/codecs/tiff.rs:199,1
    - Dst: with_limits
      Src: /src/image/src/codecs/tiff.rs:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 179
    functionDepth: 4
    functionLinenumber: 179
    functionLinenumberEnd: 200
    functionName: TiffDecoder::redistribute_limits
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 2
    functionsReached:
    - ImageResult::total_bytes_buffer
    - take
    - Result::unwrap_or
    - is_none
    - saturating_sub
    - Some
    - unwrap
    - with_limits
    - saturating_add
    - usize::try_from
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn redistribute_limits(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:209,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:210,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:210,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:211,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:212,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:213,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/tiff.rs:214,1
    - Dst: map_or
      Src: /src/image/src/codecs/tiff.rs:237,1
    - Dst: get
      Src: /src/image/src/codecs/tiff.rs:237,1
    - Dst: as_buffer
      Src: /src/image/src/codecs/tiff.rs:238,1
    - Dst: '&[u8]::as_bytes'
      Src: /src/image/src/codecs/tiff.rs:240,1
    - Dst: '&[u8]::chunks_exact'
      Src: /src/image/src/codecs/tiff.rs:240,1
    - Dst: "as_bytes()\n            .chunks_exact(plane_stride)\n            .collect::<Vec<_>>"
      Src: /src/image/src/codecs/tiff.rs:240,1
    - Dst: ImageResult::len
      Src: /src/image/src/codecs/tiff.rs:247,1
    - Dst: usize::from
      Src: /src/image/src/codecs/tiff.rs:247,1
    - Dst: channel_count
      Src: /src/image/src/codecs/tiff.rs:247,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:248,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tiff.rs:248,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tiff.rs:248,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:249,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/tiff.rs:250,1
    - Dst: utils::interleave_planes
      Src: /src/image/src/codecs/tiff.rs:254,1
    - Dst: usize::from
      Src: /src/image/src/codecs/tiff.rs:257,1
    - Dst: channel_count
      Src: /src/image/src/codecs/tiff.rs:257,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 62
    argCount: 3
    argNames:
    - info
    - layout
    - output
    argTypes:
    - ImageInfo
    - tiff::decoder::BufferLayoutPreference
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 261
      start: 203
    functionDepth: 9
    functionLinenumber: 203
    functionLinenumberEnd: 261
    functionName: TiffDecoder::interleave_planes
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - Err
    - utils::interleave_planes
    - get
    - into
    - ImageError::Decoding
    - '&[u8]::chunks_exact'
    - '&[u8]::as_bytes'
    - ImageError::Unsupported
    - map_or
    - channel_count
    - UnsupportedError::from_format_and_kind
    - ImageResult::len
    - '&str::to_string'
    - UnsupportedErrorKind::GenericFeature
    - Ok
    - usize::from
    - "as_bytes()\n            .chunks_exact(plane_stride)\n            .collect::<Vec<_>>"
    - as_buffer
    - DecodingError::new
    linkageType: ''
    returnType: ImageResult
    signature: 'fn interleave_planes(&mut self,info: ImageInfo,layout: tiff::decoder::BufferLayoutPreference,output:
      &mut [u8],) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/image/src/codecs/tiff.rs:268,1
    - Dst: u64::from
      Src: /src/image/src/codecs/tiff.rs:268,1
    - Dst: u64::from
      Src: /src/image/src/codecs/tiff.rs:273,1
    - Dst: bytes_per_pixel
      Src: /src/image/src/codecs/tiff.rs:273,1
    - Dst: saturating_mul
      Src: /src/image/src/codecs/tiff.rs:276,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 277
    functionName: ImageInfo::total_bytes_buffer
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - saturating_mul
    - u64::from
    - bytes_per_pixel
    linkageType: ''
    returnType: u64
    signature: fn total_bytes_buffer(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::find_tag
      Src: /src/image/src/codecs/tiff.rs:281,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:281,1
    - Dst: and_then
      Src: /src/image/src/codecs/tiff.rs:281,1
    - Dst: DynamicImage::into_u16
      Src: /src/image/src/codecs/tiff.rs:284,1
    - Dst: ok
      Src: /src/image/src/codecs/tiff.rs:284,1
    - Dst: Some
      Src: /src/image/src/codecs/tiff.rs:287,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:288,1
    - Dst: ImageResult::find_tag
      Src: /src/image/src/codecs/tiff.rs:291,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:291,1
    - Dst: map
      Src: /src/image/src/codecs/tiff.rs:291,1
    - Dst: ImageResult::into_u16_vec
      Src: /src/image/src/codecs/tiff.rs:294,1
    - Dst: transpose
      Src: /src/image/src/codecs/tiff.rs:291,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:291,1
    - Dst: ImageResult::as_deref
      Src: /src/image/src/codecs/tiff.rs:298,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/tiff.rs:298,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:301,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:301,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:302,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:303,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:304,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:312,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 55
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - '&mut Decoder<R>'
    constantsTouched: []
    func_position:
      end: 313
      start: 280
    functionDepth: 8
    functionLinenumber: 280
    functionLinenumberEnd: 313
    functionName: check_ycbcr_subsampling
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - ImageResult::find_tag
    - Err
    - ImageResult::as_deref
    - Ok
    - map
    - DynamicImage::into_u16
    - and_then
    - ImageResult::into_u16_vec
    - ok
    - Some
    - transpose
    - map_err
    - ImageError::Unsupported
    - into
    - unwrap_or
    - UnsupportedError::from_format_and_kind
    - UnsupportedErrorKind::GenericFeature
    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:316,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:316,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:322,1
    - Dst: len
      Src: /src/image/src/codecs/tiff.rs:326,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:328,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:329,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/tiff.rs:330,1
    - Dst: iter
      Src: /src/image/src/codecs/tiff.rs:336,1
    - Dst: enumerate
      Src: /src/image/src/codecs/tiff.rs:336,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:342,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tiff.rs:342,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tiff.rs:342,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:343,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/tiff.rs:344,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - '&mut Decoder<R>'
    constantsTouched: []
    func_position:
      end: 351
      start: 315
    functionDepth: 11
    functionLinenumber: 315
    functionLinenumberEnd: 351
    functionName: read_ycbcr_coefficients
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - ImageResult::find_tag
    - len
    - ImageError::Decoding
    - Err
    - iter
    - enumerate
    - Ok
    - '&str::to_string'
    - map_err
    - into
    - DecodingError::new
    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:363,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:363,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:364,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:365,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:366,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:373,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:373,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:374,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:375,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:376,1
    - Dst: SampleFormat::from_u16
      Src: /src/image/src/codecs/tiff.rs:384,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:385,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:386,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:387,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:387,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:388,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:389,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - sample_format
    - color_type
    argTypes:
    - u16
    - tiff::ColorType
    constantsTouched: []
    func_position:
      end: 396
      start: 353
    functionDepth: 9
    functionLinenumber: 353
    functionLinenumberEnd: 396
    functionName: check_sample_format
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - Err
    - Ok
    - SampleFormat::from_u16
    - ImageError::Unsupported
    - into
    - UnsupportedError::from_format_and_kind
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: Result
    signature: 'fn check_sample_format(sample_format: u16, color_type: tiff::ColorType)
      -> Result<(), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:399,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:399,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:400,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/tiff.rs:401,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/tiff.rs:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 403
      start: 398
    functionDepth: 9
    functionLinenumber: 398
    functionLinenumberEnd: 403
    functionName: err_unknown_color_type
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - UnsupportedErrorKind::Color
    - ImageError::Unsupported
    - into
    - ExtendedColorType::Unknown
    - UnsupportedError::from_format_and_kind
    linkageType: ''
    returnType: ImageError
    signature: 'fn err_unknown_color_type(value: u8) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/tiff.rs:408,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tiff.rs:412,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tiff.rs:412,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:412,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:415,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:415,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:416,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:417,1
    - Dst: to_string
      Src: /src/image/src/codecs/tiff.rs:417,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/tiff.rs:421,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/tiff.rs:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - err
    argTypes:
    - tiff::TiffError
    constantsTouched: []
    func_position:
      end: 424
      start: 406
    functionDepth: 10
    functionLinenumber: 406
    functionLinenumberEnd: 424
    functionName: ImageError::from_tiff_decode
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 2
    functionsReached:
    - ImageError::Decoding
    - to_string
    - ImageError::Limits
    - UnsupportedError::from_format_and_kind
    - ImageError::IoError
    - LimitError::from_kind
    - ImageError::Unsupported
    - into
    - DecodingError::new
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: ImageError
    signature: 'fn from_tiff_decode(err: tiff::TiffError) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/tiff.rs:428,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/tiff.rs:432,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/tiff.rs:432,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:432,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:435,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:435,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:436,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tiff.rs:437,1
    - Dst: to_string
      Src: /src/image/src/codecs/tiff.rs:437,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/tiff.rs:441,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/tiff.rs:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - err
    argTypes:
    - tiff::TiffError
    constantsTouched: []
    func_position:
      end: 444
      start: 426
    functionDepth: 10
    functionLinenumber: 426
    functionLinenumberEnd: 444
    functionName: ImageError::from_tiff_encode
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - to_string
    - ImageError::Limits
    - ImageError::IoError
    - LimitError::from_kind
    - EncodingError::new
    - ImageError::Unsupported
    - into
    - ImageError::Encoding
    - UnsupportedError::from_format_and_kind
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: ImageError
    signature: 'fn from_tiff_encode(err: tiff::TiffError) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FormatAttributes::default
      Src: /src/image/src/codecs/tiff.rs:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 459
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 459
    functionName: TiffDecoder::format_attributes
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - FormatAttributes::default
    linkageType: ''
    returnType: FormatAttributes
    signature: fn format_attributes(&self) -> FormatAttributes
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TiffDecoder::peek_info
      Src: /src/image/src/codecs/tiff.rs:462,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:465,1
    - Dst: DecoderPreparedImage::new
      Src: /src/image/src/codecs/tiff.rs:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 461
    functionDepth: 12
    functionLinenumber: 461
    functionLinenumberEnd: 466
    functionName: TiffDecoder::prepare_image
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - Ok
    - TiffDecoder::peek_info
    - DecoderPreparedImage::new
    linkageType: ''
    returnType: ImageResult
    signature: fn prepare_image(&mut self) -> ImageResult<DecoderPreparedImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:470,1
    - Dst: ImageResult::get_tag_u8_vec
      Src: /src/image/src/codecs/tiff.rs:470,1
    - Dst: ok
      Src: /src/image/src/codecs/tiff.rs:470,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 474
      start: 468
    functionDepth: 8
    functionLinenumber: 468
    functionLinenumberEnd: 474
    functionName: TiffDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - Ok
    - ok
    - ImageResult::get_tag_u8_vec
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:478,1
    - Dst: ImageResult::get_tag
      Src: /src/image/src/codecs/tiff.rs:481,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:484,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:486,1
    - Dst: ImageError::from_tiff_decode
      Src: /src/image/src/codecs/tiff.rs:486,1
    - Dst: ImageResult::into_u8_vec
      Src: /src/image/src/codecs/tiff.rs:488,1
    - Dst: map
      Src: /src/image/src/codecs/tiff.rs:488,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 492
      start: 476
    functionDepth: 11
    functionLinenumber: 476
    functionLinenumberEnd: 492
    functionName: TiffDecoder::xmp_metadata
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - ImageResult::into_u8_vec
    - Err
    - Ok
    - map
    - ImageResult::get_tag
    - ImageError::from_tiff_decode
    - map_err
    linkageType: ''
    returnType: ImageResult
    signature: fn xmp_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_support
      Src: /src/image/src/codecs/tiff.rs:495,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/tiff.rs:495,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/codecs/tiff.rs:509,1
    - Dst: and_then
      Src: /src/image/src/codecs/tiff.rs:511,1
    - Dst: usize::try_from
      Src: /src/image/src/codecs/tiff.rs:513,1
    - Dst: Result::ok
      Src: /src/image/src/codecs/tiff.rs:513,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/tiff.rs:511,1
    - Dst: TiffDecoder::redistribute_limits
      Src: /src/image/src/codecs/tiff.rs:518,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 1
    argNames:
    - limits
    argTypes:
    - crate::Limits
    constantsTouched: []
    func_position:
      end: 521
      start: 494
    functionDepth: 8
    functionLinenumber: 494
    functionLinenumberEnd: 521
    functionName: TiffDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - Result::ok
    - TiffDecoder::redistribute_limits
    - Ok
    - and_then
    - crate::LimitSupport::default
    - Limits::check_support
    - unwrap_or
    - Limits::check_dimensions
    - usize::try_from
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: crate::Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TiffDecoder::peek_info
      Src: /src/image/src/codecs/tiff.rs:524,1
    - Dst: TiffDecoder::prepare_image
      Src: /src/image/src/codecs/tiff.rs:525,1
    - Dst: Some
      Src: /src/image/src/codecs/tiff.rs:527,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:531,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/tiff.rs:531,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/tiff.rs:531,1
    - Dst: Result::read_image_to_buffer
      Src: /src/image/src/codecs/tiff.rs:536,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:536,1
    - Dst: as_buffer
      Src: /src/image/src/codecs/tiff.rs:541,1
    - Dst: as_bytes
      Src: /src/image/src/codecs/tiff.rs:541,1
    - Dst: len
      Src: /src/image/src/codecs/tiff.rs:541,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:542,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/tiff.rs:542,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/tiff.rs:542,1
    - Dst: TiffDecoder::interleave_planes
      Src: /src/image/src/codecs/tiff.rs:550,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:551,1
    - Dst: DecodedImageAttributes::default
      Src: /src/image/src/codecs/tiff.rs:551,1
    - Dst: as_chunks_mut::<3>
      Src: /src/image/src/codecs/tiff.rs:556,1
    - Dst: as_chunks::<4>
      Src: /src/image/src/codecs/tiff.rs:557,1
    - Dst: iter
      Src: /src/image/src/codecs/tiff.rs:557,1
    - Dst: zip
      Src: /src/image/src/codecs/tiff.rs:557,1
    - Dst: cmyk_to_rgb
      Src: /src/image/src/codecs/tiff.rs:558,1
    - Dst: as_chunks_mut::<6>
      Src: /src/image/src/codecs/tiff.rs:562,1
    - Dst: as_chunks::<4>
      Src: /src/image/src/codecs/tiff.rs:563,1
    - Dst: iter
      Src: /src/image/src/codecs/tiff.rs:563,1
    - Dst: zip
      Src: /src/image/src/codecs/tiff.rs:563,1
    - Dst: bytemuck::cast
      Src: /src/image/src/codecs/tiff.rs:564,1
    - Dst: cmyk_to_rgb16
      Src: /src/image/src/codecs/tiff.rs:564,1
    - Dst: u32::div_ceil
      Src: /src/image/src/codecs/tiff.rs:569,1
    - Dst: DynamicImage::chunks_exact
      Src: /src/image/src/codecs/tiff.rs:571,1
    - Dst: zip
      Src: /src/image/src/codecs/tiff.rs:571,1
    - Dst: std::io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/tiff.rs:573,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:575,1
    - Dst: utils::expand_bits
      Src: /src/image/src/codecs/tiff.rs:575,1
    - Dst: as_chunks::<3>
      Src: /src/image/src/codecs/tiff.rs:580,1
    - Dst: as_chunks_mut::<3>
      Src: /src/image/src/codecs/tiff.rs:581,1
    - Dst: ycbcr_to_rgb8
      Src: /src/image/src/codecs/tiff.rs:583,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:586,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:589,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:589,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:592,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:592,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:595,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:595,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:598,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:598,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:601,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:601,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:604,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:604,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:607,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:607,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:610,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:610,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/tiff.rs:613,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/tiff.rs:613,1
    - Dst: Result::find_tag
      Src: /src/image/src/codecs/tiff.rs:618,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:618,1
    - Dst: and_then
      Src: /src/image/src/codecs/tiff.rs:618,1
    - Dst: Orientation::from_exif
      Src: /src/image/src/codecs/tiff.rs:621,1
    - Dst: DynamicImage::into_u16
      Src: /src/image/src/codecs/tiff.rs:621,1
    - Dst: ok
      Src: /src/image/src/codecs/tiff.rs:621,1
    - Dst: min
      Src: /src/image/src/codecs/tiff.rs:621,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:626,1
    - Dst: DecodedImageAttributes::default
      Src: /src/image/src/codecs/tiff.rs:629,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 186
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 631
      start: 523
    functionDepth: 12
    functionLinenumber: 523
    functionLinenumberEnd: 631
    functionName: TiffDecoder::read_image
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - Err
    - std::io::Result::copy_from_slice
    - as_bytes
    - std::io::Result::chunks_exact_mut
    - Orientation::from_exif
    - LimitError::from_kind
    - Some
    - Result::read_image_to_buffer
    - cmyk_to_rgb
    - as_chunks::<3>
    - iter
    - len
    - cmyk_to_rgb16
    - DynamicImage::into_u16
    - u32::div_ceil
    - ycbcr_to_rgb8
    - min
    - as_chunks_mut::<3>
    - map_err
    - as_chunks_mut::<6>
    - and_then
    - TiffDecoder::prepare_image
    - copy_from_slice
    - ok
    - ParameterError::from_kind
    - utils::expand_bits
    - DecodedImageAttributes::default
    - bytemuck::cast_slice
    - bytemuck::cast
    - ImageError::Limits
    - Ok
    - DynamicImage::chunks_exact
    - TiffDecoder::peek_info
    - zip
    - Result::find_tag
    - as_buffer
    - ImageError::Parameter
    - TiffDecoder::interleave_planes
    - as_chunks::<4>
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(&mut self, buf: &mut [u8]) -> ImageResult<DecodedImageAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 635
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 635
    functionName: TiffDecoder::exif_metadata
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn exif_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 639
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 639
    functionName: TiffDecoder::iptc_metadata
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: fn iptc_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/image/src/codecs/tiff.rs:642,1
    - Dst: and_then
      Src: /src/image/src/codecs/tiff.rs:642,1
    - Dst: Result::more_images
      Src: /src/image/src/codecs/tiff.rs:645,1
    - Dst: SequenceControl::then_some
      Src: /src/image/src/codecs/tiff.rs:645,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/tiff.rs:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 650
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 650
    functionName: TiffDecoder::more_images
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - SequenceControl::then_some
    - Result::more_images
    - and_then
    - unwrap_or
    - as_ref
    linkageType: ''
    returnType: crate::io::SequenceControl
    signature: fn more_images(&self) -> crate::io::SequenceControl
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::iter
      Src: /src/image/src/codecs/tiff.rs:665,1
    - Dst: zip
      Src: /src/image/src/codecs/tiff.rs:665,1
    - Dst: ImageResult::iter_mut
      Src: /src/image/src/codecs/tiff.rs:665,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:666,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:667,1
    - Dst: f32::from
      Src: /src/image/src/codecs/tiff.rs:668,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: 678
      start: 660
    functionDepth: 5
    functionLinenumber: 660
    functionLinenumberEnd: 678
    functionName: ycbcr_to_rgb8
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached:
    - Result::iter
    - zip
    - f32::from
    - ImageResult::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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 1
    argNames:
    - cmyk
    argTypes:
    - '&[u8; 4]'
    constantsTouched: []
    func_position:
      end: 692
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 692
    functionName: cmyk_to_rgb
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '[u8; 3]'
    signature: 'fn cmyk_to_rgb(cmyk: &[u8; 4]) -> [u8; 3]'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 1
    argNames:
    - cmyk
    argTypes:
    - '&[u16; 4]'
    constantsTouched: []
    func_position:
      end: 706
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 706
    functionName: cmyk_to_rgb16
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 1
    functionsReached: []
    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:710,1
    - Dst: map
      Src: /src/image/src/codecs/tiff.rs:710,1
    - Dst: or_else
      Src: /src/image/src/codecs/tiff.rs:710,1
    - Dst: bytemuck::allocation::pod_collect_to_vec
      Src: /src/image/src/codecs/tiff.rs:718,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:719,1
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/tiff.rs:719,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:726,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/tiff.rs:726,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/tiff.rs:726,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/tiff.rs:727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 734
      start: 709
    functionDepth: 7
    functionLinenumber: 709
    functionLinenumberEnd: 734
    functionName: u8_slice_as_pod
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - Err
    - map
    - Ok
    - ParameterErrorKind::Generic
    - ParameterError::from_kind
    - bytemuck::try_cast_slice
    - std::borrow::Cow::Owned
    - ImageError::Parameter
    - or_else
    - bytemuck::allocation::pod_collect_to_vec
    linkageType: ''
    returnType: ImageResult
    signature: 'fn u8_slice_as_pod<P: bytemuck::Pod>(buf: &[u8]) -> ImageResult<std::borrow::Cow<''_,
      [P]>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 744
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 744
    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:757,1
    - Dst: TiffEncoder::map_err
      Src: /src/image/src/codecs/tiff.rs:757,1
    - Dst: u8_slice_as_pod::<C::Inner>
      Src: /src/image/src/codecs/tiff.rs:758,1
    - Dst: new_image::<C>
      Src: /src/image/src/codecs/tiff.rs:759,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:759,1
    - Dst: is_some
      Src: /src/image/src/codecs/tiff.rs:762,1
    - Dst: is_some
      Src: /src/image/src/codecs/tiff.rs:762,1
    - Dst: encoder
      Src: /src/image/src/codecs/tiff.rs:763,1
    - Dst: write_tag
      Src: /src/image/src/codecs/tiff.rs:765,1
    - Dst: as_slice
      Src: /src/image/src/codecs/tiff.rs:766,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:765,1
    - Dst: write_tag
      Src: /src/image/src/codecs/tiff.rs:770,1
    - Dst: as_slice
      Src: /src/image/src/codecs/tiff.rs:771,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:770,1
    - Dst: write_data
      Src: /src/image/src/codecs/tiff.rs:775,1
    - Dst: map_err
      Src: /src/image/src/codecs/tiff.rs:775,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 3
    argNames:
    - width
    - height
    - data
    argTypes:
    - u32
    - u32
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 778
      start: 747
    functionDepth: 11
    functionLinenumber: 747
    functionLinenumberEnd: 778
    functionName: TiffEncoder::write_tiff
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - write_tag
    - write_data
    - u8_slice_as_pod::<C::Inner>
    - as_slice
    - is_some
    - TiffEncoder::map_err
    - tiff::encoder::TiffEncoder::new
    - map_err
    - new_image::<C>
    - 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:802,1
    - Dst: write_tiff::<Gray8>
      Src: /src/image/src/codecs/tiff.rs:810,1
    - Dst: write_tiff::<RGB8>
      Src: /src/image/src/codecs/tiff.rs:811,1
    - Dst: write_tiff::<RGBA8>
      Src: /src/image/src/codecs/tiff.rs:812,1
    - Dst: write_tiff::<Gray16>
      Src: /src/image/src/codecs/tiff.rs:813,1
    - Dst: write_tiff::<RGB16>
      Src: /src/image/src/codecs/tiff.rs:814,1
    - Dst: write_tiff::<RGBA16>
      Src: /src/image/src/codecs/tiff.rs:815,1
    - Dst: write_tiff::<RGB32Float>
      Src: /src/image/src/codecs/tiff.rs:816,1
    - Dst: write_tiff::<RGBA32Float>
      Src: /src/image/src/codecs/tiff.rs:817,1
    - Dst: Err
      Src: /src/image/src/codecs/tiff.rs:818,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tiff.rs:818,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tiff.rs:819,1
    - Dst: into
      Src: /src/image/src/codecs/tiff.rs:820,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/tiff.rs:821,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 825
      start: 792
    functionDepth: 9
    functionLinenumber: 792
    functionLinenumberEnd: 825
    functionName: TiffEncoder::write_image
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - write_tiff::<RGB8>
    - write_tiff::<RGBA8>
    - Err
    - Option::buffer_size
    - UnsupportedErrorKind::Color
    - write_tiff::<RGB32Float>
    - write_tiff::<Gray16>
    - write_tiff::<RGBA32Float>
    - ImageError::Unsupported
    - write_tiff::<Gray8>
    - write_tiff::<RGB16>
    - into
    - UnsupportedError::from_format_and_kind
    - write_tiff::<RGBA16>
    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:828,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - icc_profile
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 830
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 830
    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: Some
      Src: /src/image/src/codecs/tiff.rs:833,1
    - Dst: Ok
      Src: /src/image/src/codecs/tiff.rs:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - xmp
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 835
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 835
    functionName: TiffEncoder::set_xmp_metadata
    functionSourceFile: /src/image/src/codecs/tiff.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Some
    linkageType: ''
    returnType: Result
    signature: 'fn set_xmp_metadata(&mut self, xmp: Vec<u8>) -> Result<(), UnsupportedError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::from_raw
      Src: /src/image/src/codecs/webp/encoder.rs:158,1
    - Dst: collect
      Src: /src/image/src/codecs/webp/encoder.rs:158,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/webp/encoder.rs:158,1
    - Dst: '&str::to_vec'
      Src: /src/image/src/codecs/webp/encoder.rs:159,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/webp/encoder.rs:161,1
    - Dst: super::WebPEncoder::new_lossless
      Src: /src/image/src/codecs/webp/encoder.rs:163,1
    - Dst: ImageResult::set_xmp_metadata
      Src: /src/image/src/codecs/webp/encoder.rs:164,1
    - Dst: clone
      Src: /src/image/src/codecs/webp/encoder.rs:164,1
    - Dst: Result::unwrap
      Src: /src/image/src/codecs/webp/encoder.rs:164,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/codecs/webp/encoder.rs:165,1
    - Dst: Option::subpixels
      Src: /src/image/src/codecs/webp/encoder.rs:167,1
    - Dst: Option::width
      Src: /src/image/src/codecs/webp/encoder.rs:168,1
    - Dst: Option::height
      Src: /src/image/src/codecs/webp/encoder.rs:169,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/webp/encoder.rs:165,1
    - Dst: crate::codecs::webp::WebPDecoder::new
      Src: /src/image/src/codecs/webp/encoder.rs:175,1
    - Dst: std::io::Cursor::new
      Src: /src/image/src/codecs/webp/encoder.rs:175,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/webp/encoder.rs:175,1
    - Dst: ImageResult::xmp_metadata
      Src: /src/image/src/codecs/webp/encoder.rs:177,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/webp/encoder.rs:177,1
    - Dst: expect
      Src: /src/image/src/codecs/webp/encoder.rs:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 157
    functionDepth: 10
    functionLinenumber: 157
    functionLinenumberEnd: 182
    functionName: tests::roundtrip_xmp
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::write_image
    - Option::width
    - crate::codecs::webp::WebPDecoder::new
    - super::WebPEncoder::new_lossless
    - Option::height
    - '&str::to_vec'
    - std::io::Cursor::new
    - ImageResult::unwrap
    - ImageResult::expect
    - expect
    - Option::subpixels
    - Result::unwrap
    - Vec::new
    - ImageResult::xmp_metadata
    - RgbaImage::from_raw
    - collect
    - ImageResult::set_xmp_metadata
    - clone
    linkageType: ''
    returnType: void
    signature: fn roundtrip_xmp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_limits
      Src: /src/image/src/codecs/png.rs:49,1
    - Dst: Limits::no_limits
      Src: /src/image/src/codecs/png.rs:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: PngDecoder::new
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 6
    functionsReached:
    - Limits::no_limits
    - Self::with_limits
    linkageType: ''
    returnType: PngDecoder
    signature: 'pub fn new(r: R) -> PngDecoder<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::try_from
      Src: /src/image/src/codecs/png.rs:54,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/png.rs:54,1
    - Dst: Result::unwrap_or
      Src: /src/image/src/codecs/png.rs:54,1
    - Dst: png::Decoder::new_with_limits
      Src: /src/image/src/codecs/png.rs:55,1
    - Dst: ImageResult::set_ignore_text_chunk
      Src: /src/image/src/codecs/png.rs:56,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - r
    - limits
    argTypes:
    - R
    - Limits
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: PngDecoder::with_limits
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - ImageResult::set_ignore_text_chunk
    - png::Decoder::new_with_limits
    - Result::unwrap_or
    - Some
    - unwrap_or
    - usize::try_from
    linkageType: ''
    returnType: PngDecoder
    signature: 'pub fn with_limits(r: R, limits: Limits) -> PngDecoder<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/image/src/codecs/png.rs:68,1
    - Dst: as_mut
      Src: /src/image/src/codecs/png.rs:71,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/png.rs:71,1
    - Dst: take
      Src: /src/image/src/codecs/png.rs:74,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:75,1
    - Dst: reader_finished_already
      Src: /src/image/src/codecs/png.rs:75,1
    - Dst: check_support
      Src: /src/image/src/codecs/png.rs:78,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/png.rs:78,1
    - Dst: ImageResult::read_header_info
      Src: /src/image/src/codecs/png.rs:80,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:80,1
    - Dst: check_dimensions
      Src: /src/image/src/codecs/png.rs:81,1
    - Dst: ImageResult::set_transformations
      Src: /src/image/src/codecs/png.rs:86,1
    - Dst: ImageResult::read_info
      Src: /src/image/src/codecs/png.rs:87,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:87,1
    - Dst: Result::output_color_type
      Src: /src/image/src/codecs/png.rs:88,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: Err
      Src: /src/image/src/codecs/png.rs:117,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:117,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:120,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:120,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:123,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:123,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:127,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:127,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:130,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:130,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:133,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:133,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:136,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:136,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:140,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:140,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/png.rs:140,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:145,1
    - Dst: insert
      Src: /src/image/src/codecs/png.rs:145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 99
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 67
    functionDepth: 10
    functionLinenumber: 67
    functionLinenumberEnd: 146
    functionName: PngDecoder::ensure_reader_and_header
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 6
    functionsReached:
    - as_mut
    - Err
    - take
    - check_support
    - check_dimensions
    - Ok
    - ImageResult::set_transformations
    - Result::output_color_type
    - reader_finished_already
    - is_some
    - ok_or_else
    - crate::LimitSupport::default
    - ImageResult::read_header_info
    - map_err
    - insert
    - ImageResult::read_info
    - ExtendedColorType::Unknown
    - unsupported_color
    linkageType: ''
    returnType: ImageResult
    signature: fn ensure_reader_and_header(&mut self) -> ImageResult<&mut png::Reader<R>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:158,1
    - Dst: decoding_not_yet_started
      Src: /src/image/src/codecs/png.rs:158,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:161,1
    - Dst: Result::info
      Src: /src/image/src/codecs/png.rs:161,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:161,1
    - Dst: f64::from
      Src: /src/image/src/codecs/png.rs:164,1
    - Dst: into_scaled
      Src: /src/image/src/codecs/png.rs:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 12
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: PngDecoder::gamma_value
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - decoding_not_yet_started
    - Err
    - map
    - Ok
    - into_scaled
    - f64::from
    - Result::info
    linkageType: ''
    returnType: ImageResult
    signature: pub fn gamma_value(&self) -> ImageResult<Option<f64>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ApngDecoder::read_sequence_data
      Src: /src/image/src/codecs/png.rs:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 12
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: PngDecoder::apng
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - ApngDecoder::read_sequence_data
    linkageType: ''
    returnType: ImageResult
    signature: pub fn apng(self) -> ImageResult<ApngDecoder<R>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:189,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/png.rs:189,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/png.rs:189,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:194,1
    - Dst: Result::info
      Src: /src/image/src/codecs/png.rs:194,1
    - Dst: is_some
      Src: /src/image/src/codecs/png.rs:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 187
    functionDepth: 12
    functionLinenumber: 187
    functionLinenumberEnd: 195
    functionName: PngDecoder::is_apng
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - ImageError::Parameter
    - is_some
    - ParameterError::from_kind
    - Result::info
    linkageType: ''
    returnType: ImageResult
    signature: pub fn is_apng(&self) -> ImageResult<bool>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/png.rs:219,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/png.rs:220,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/png.rs:221,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/png.rs:222,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/png.rs:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - info
    argTypes:
    - '&png::Info<''_>'
    constantsTouched: []
    func_position:
      end: 225
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 225
    functionName: PngDecoder::color_type_info
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - ExtendedColorType::Unknown
    linkageType: ''
    returnType: ExtendedColorType
    signature: 'fn color_type_info(info: &png::Info<''_>) -> ExtendedColorType'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::frame_control
      Src: /src/image/src/codecs/png.rs:229,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:229,1
    - Dst: u32::from
      Src: /src/image/src/codecs/png.rs:231,1
    - Dst: u32::from
      Src: /src/image/src/codecs/png.rs:235,1
    - Dst: Delay::from_ratio
      Src: /src/image/src/codecs/png.rs:238,1
    - Dst: Ratio::new
      Src: /src/image/src/codecs/png.rs:238,1
    - Dst: DecodedImageAttributes::default
      Src: /src/image/src/codecs/png.rs:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - info
    argTypes:
    - '&png::Info<''_>'
    constantsTouched: []
    func_position:
      end: 247
      start: 228
    functionDepth: 7
    functionLinenumber: 228
    functionLinenumberEnd: 247
    functionName: attributes_from_info
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - Ratio::new
    - Delay::from_ratio
    - map
    - ImageResult::frame_control
    - DecodedImageAttributes::default
    - u32::from
    linkageType: ''
    returnType: DecodedImageAttributes
    signature: 'fn attributes_from_info(info: &png::Info<''_>) -> DecodedImageAttributes'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/png.rs:250,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/png.rs:250,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:251,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/png.rs:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ect
    argTypes:
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 254
      start: 249
    functionDepth: 9
    functionLinenumber: 249
    functionLinenumberEnd: 254
    functionName: unsupported_color
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 2
    functionsReached:
    - ImageError::Unsupported
    - UnsupportedError::from_format_and_kind
    - into
    - UnsupportedErrorKind::Color
    linkageType: ''
    returnType: ImageError
    signature: 'fn unsupported_color(ect: ExtendedColorType) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/png.rs:257,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/png.rs:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: decoding_not_yet_started
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - ImageError::Parameter
    - ParameterError::from_kind
    linkageType: ''
    returnType: ImageError
    signature: fn decoding_not_yet_started() -> ImageError
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/png.rs:261,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/png.rs:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 262
    functionName: decoding_started_already
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - ImageError::Parameter
    - ParameterError::from_kind
    linkageType: ''
    returnType: ImageError
    signature: fn decoding_started_already() -> ImageError
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/png.rs:265,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/png.rs:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 266
    functionName: reader_finished_already
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - ImageError::Parameter
    - ParameterError::from_kind
    linkageType: ''
    returnType: ImageError
    signature: fn reader_finished_already() -> ImageError
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PngDecoder::ensure_reader_and_header
      Src: /src/image/src/codecs/png.rs:270,1
    - Dst: Result::info
      Src: /src/image/src/codecs/png.rs:271,1
    - Dst: ImageResult::size
      Src: /src/image/src/codecs/png.rs:271,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:272,1
    - Dst: DecoderPreparedImage::new
      Src: /src/image/src/codecs/png.rs:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 11
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: PngDecoder::prepare_image
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 4
    functionsReached:
    - ImageResult::size
    - Ok
    - PngDecoder::ensure_reader_and_header
    - Result::info
    - DecoderPreparedImage::new
    linkageType: ''
    returnType: ImageResult
    signature: fn prepare_image(&mut self) -> ImageResult<DecoderPreparedImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FormatAttributes::default
      Src: /src/image/src/codecs/png.rs:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 289
    functionName: PngDecoder::format_attributes
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - FormatAttributes::default
    linkageType: ''
    returnType: FormatAttributes
    signature: fn format_attributes(&self) -> FormatAttributes
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    functionName: PngDecoder::animation_attributes
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: fn animation_attributes(&mut self) -> Option<DecodedAnimationAttributes>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PngDecoder::ensure_reader_and_header
      Src: /src/image/src/codecs/png.rs:297,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:298,1
    - Dst: Result::info
      Src: /src/image/src/codecs/png.rs:298,1
    - Dst: as_ref
      Src: /src/image/src/codecs/png.rs:298,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:298,1
    - Dst: to_vec
      Src: /src/image/src/codecs/png.rs:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 11
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: PngDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - map
    - Ok
    - PngDecoder::ensure_reader_and_header
    - to_vec
    - Result::info
    - as_ref
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PngDecoder::ensure_reader_and_header
      Src: /src/image/src/codecs/png.rs:302,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:303,1
    - Dst: Result::info
      Src: /src/image/src/codecs/png.rs:303,1
    - Dst: as_ref
      Src: /src/image/src/codecs/png.rs:303,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:303,1
    - Dst: to_vec
      Src: /src/image/src/codecs/png.rs:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 11
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: PngDecoder::exif_metadata
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - map
    - Ok
    - PngDecoder::ensure_reader_and_header
    - to_vec
    - Result::info
    - as_ref
    linkageType: ''
    returnType: ImageResult
    signature: fn exif_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PngDecoder::ensure_reader_and_header
      Src: /src/image/src/codecs/png.rs:307,1
    - Dst: Result::info
      Src: /src/image/src/codecs/png.rs:309,1
    - Dst: iter
      Src: /src/image/src/codecs/png.rs:309,1
    - Dst: find
      Src: /src/image/src/codecs/png.rs:309,1
    - Dst: contains
      Src: /src/image/src/codecs/png.rs:313,1
    - Dst: cloned
      Src: /src/image/src/codecs/png.rs:309,1
    - Dst: decompress_text
      Src: /src/image/src/codecs/png.rs:316,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:316,1
    - Dst: get_text
      Src: /src/image/src/codecs/png.rs:317,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:317,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:319,1
    - Dst: into_bytes
      Src: /src/image/src/codecs/png.rs:319,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:317,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:323,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 306
    functionDepth: 11
    functionLinenumber: 306
    functionLinenumberEnd: 324
    functionName: PngDecoder::xmp_metadata
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - iter
    - find
    - map
    - decompress_text
    - PngDecoder::ensure_reader_and_header
    - Ok
    - get_text
    - cloned
    - Some
    - map_err
    - into_bytes
    - Result::info
    - contains
    linkageType: ''
    returnType: ImageResult
    signature: fn xmp_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PngDecoder::ensure_reader_and_header
      Src: /src/image/src/codecs/png.rs:327,1
    - Dst: Result::info
      Src: /src/image/src/codecs/png.rs:329,1
    - Dst: iter
      Src: /src/image/src/codecs/png.rs:329,1
    - Dst: find
      Src: /src/image/src/codecs/png.rs:329,1
    - Dst: iter
      Src: /src/image/src/codecs/png.rs:333,1
    - Dst: any
      Src: /src/image/src/codecs/png.rs:333,1
    - Dst: contains
      Src: /src/image/src/codecs/png.rs:333,1
    - Dst: cloned
      Src: /src/image/src/codecs/png.rs:329,1
    - Dst: decompress_text
      Src: /src/image/src/codecs/png.rs:336,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:336,1
    - Dst: get_text
      Src: /src/image/src/codecs/png.rs:337,1
    - Dst: map
      Src: /src/image/src/codecs/png.rs:337,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:339,1
    - Dst: into_bytes
      Src: /src/image/src/codecs/png.rs:339,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:337,1
    - Dst: Result::info
      Src: /src/image/src/codecs/png.rs:343,1
    - Dst: iter
      Src: /src/image/src/codecs/png.rs:343,1
    - Dst: find
      Src: /src/image/src/codecs/png.rs:343,1
    - Dst: iter
      Src: /src/image/src/codecs/png.rs:347,1
    - Dst: any
      Src: /src/image/src/codecs/png.rs:347,1
    - Dst: contains
      Src: /src/image/src/codecs/png.rs:347,1
    - Dst: cloned
      Src: /src/image/src/codecs/png.rs:343,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:350,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:350,1
    - Dst: into_bytes
      Src: /src/image/src/codecs/png.rs:350,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 326
    functionDepth: 11
    functionLinenumber: 326
    functionLinenumberEnd: 353
    functionName: PngDecoder::iptc_metadata
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - iter
    - any
    - find
    - map
    - decompress_text
    - PngDecoder::ensure_reader_and_header
    - Ok
    - get_text
    - cloned
    - Some
    - map_err
    - into_bytes
    - Result::info
    - contains
    linkageType: ''
    returnType: ImageResult
    signature: fn iptc_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PngDecoder::prepare_image
      Src: /src/image/src/codecs/png.rs:356,1
    - Dst: PngDecoder::ensure_reader_and_header
      Src: /src/image/src/codecs/png.rs:359,1
    - Dst: Self::color_type_info
      Src: /src/image/src/codecs/png.rs:360,1
    - Dst: Result::info
      Src: /src/image/src/codecs/png.rs:360,1
    - Dst: Result::next_frame
      Src: /src/image/src/codecs/png.rs:361,1
    - Dst: Result::map_err
      Src: /src/image/src/codecs/png.rs:361,1
    - Dst: bytes_per_pixel
      Src: /src/image/src/codecs/png.rs:366,1
    - Dst: channel_count
      Src: /src/image/src/codecs/png.rs:366,1
    - Dst: as_chunks_mut::<2>
      Src: /src/image/src/codecs/png.rs:370,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/png.rs:370,1
    - Dst: for_each
      Src: /src/image/src/codecs/png.rs:370,1
    - Dst: u16::from_be_bytes
      Src: /src/image/src/codecs/png.rs:371,1
    - Dst: to_ne_bytes
      Src: /src/image/src/codecs/png.rs:371,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:376,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:377,1
    - Dst: DecodedImageAttributes::default
      Src: /src/image/src/codecs/png.rs:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 380
      start: 355
    functionDepth: 12
    functionLinenumber: 355
    functionLinenumberEnd: 380
    functionName: PngDecoder::read_image
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - as_chunks_mut::<2>
    - to_ne_bytes
    - Ok
    - PngDecoder::ensure_reader_and_header
    - iter_mut
    - u16::from_be_bytes
    - Some
    - Result::map_err
    - channel_count
    - Result::next_frame
    - DecodedImageAttributes::default
    - bytes_per_pixel
    - Result::info
    - Self::color_type_info
    - PngDecoder::prepare_image
    - for_each
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(&mut self, buf: &mut [u8]) -> ImageResult<DecodedImageAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_support
      Src: /src/image/src/codecs/png.rs:383,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/png.rs:383,1
    - Dst: ImageResult::set_limits
      Src: /src/image/src/codecs/png.rs:386,1
    - Dst: try_into
      Src: /src/image/src/codecs/png.rs:389,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/png.rs:389,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:394,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:396,1
    - Dst: decoding_started_already
      Src: /src/image/src/codecs/png.rs:396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - limits
    argTypes:
    - Limits
    constantsTouched: []
    func_position:
      end: 398
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 398
    functionName: PngDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - try_into
    - Err
    - Ok
    - crate::LimitSupport::default
    - decoding_started_already
    - ImageResult::set_limits
    - Limits::check_support
    - unwrap_or
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::ensure_reader_and_header
      Src: /src/image/src/codecs/png.rs:425,1
    - Dst: Result::info
      Src: /src/image/src/codecs/png.rs:426,1
    - Dst: ImageResult::animation_control
      Src: /src/image/src/codecs/png.rs:426,1
    - Dst: Result::info
      Src: /src/image/src/codecs/png.rs:434,1
    - Dst: is_none
      Src: /src/image/src/codecs/png.rs:434,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - inner
    argTypes:
    - PngDecoder<R>
    constantsTouched: []
    func_position:
      end: 446
      start: 424
    functionDepth: 11
    functionLinenumber: 424
    functionLinenumberEnd: 446
    functionName: ApngDecoder::read_sequence_data
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - Option::ensure_reader_and_header
    - Ok
    - is_none
    - ImageResult::animation_control
    - Result::info
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_sequence_data(mut inner: PngDecoder<R>) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: checked_sub
      Src: /src/image/src/codecs/png.rs:454,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:455,1
    - Dst: prepare_image
      Src: /src/image/src/codecs/png.rs:460,1
    - Dst: ensure_reader_and_header
      Src: /src/image/src/codecs/png.rs:475,1
    - Dst: Result::next_frame
      Src: /src/image/src/codecs/png.rs:476,1
    - Dst: Result::map_err
      Src: /src/image/src/codecs/png.rs:476,1
    - Dst: is_none
      Src: /src/image/src/codecs/png.rs:483,1
    - Dst: Limits::reserve_buffer
      Src: /src/image/src/codecs/png.rs:484,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:485,1
    - Dst: DynamicImage::new
      Src: /src/image/src/codecs/png.rs:485,1
    - Dst: is_none
      Src: /src/image/src/codecs/png.rs:488,1
    - Dst: Limits::reserve_buffer
      Src: /src/image/src/codecs/png.rs:489,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:490,1
    - Dst: DynamicImage::new
      Src: /src/image/src/codecs/png.rs:490,1
    - Dst: ApngDecoder::animatable_color_type
      Src: /src/image/src/codecs/png.rs:494,1
    - Dst: as_mut
      Src: /src/image/src/codecs/png.rs:497,1
    - Dst: unwrap
      Src: /src/image/src/codecs/png.rs:497,1
    - Dst: as_mut
      Src: /src/image/src/codecs/png.rs:498,1
    - Dst: unwrap
      Src: /src/image/src/codecs/png.rs:498,1
    - Dst: clone_from
      Src: /src/image/src/codecs/png.rs:503,1
    - Dst: clone_from
      Src: /src/image/src/codecs/png.rs:506,1
    - Dst: sub_image
      Src: /src/image/src/codecs/png.rs:508,1
    - Dst: pixels
      Src: /src/image/src/codecs/png.rs:511,1
    - Dst: collect
      Src: /src/image/src/codecs/png.rs:511,1
    - Dst: put_pixel
      Src: /src/image/src/codecs/png.rs:514,1
    - Dst: Rgba::from
      Src: /src/image/src/codecs/png.rs:514,1
    - Dst: as_mut_bytes
      Src: /src/image/src/codecs/png.rs:518,1
    - Dst: fill
      Src: /src/image/src/codecs/png.rs:518,1
    - Dst: expect
      Src: /src/image/src/codecs/png.rs:522,1
    - Dst: sub_image
      Src: /src/image/src/codecs/png.rs:525,1
    - Dst: copy_from
      Src: /src/image/src/codecs/png.rs:526,1
    - Dst: to_image
      Src: /src/image/src/codecs/png.rs:527,1
    - Dst: unwrap
      Src: /src/image/src/codecs/png.rs:526,1
    - Dst: clone
      Src: /src/image/src/codecs/png.rs:535,1
    - Dst: ensure_reader_and_header
      Src: /src/image/src/codecs/png.rs:536,1
    - Dst: Result::output_buffer_size
      Src: /src/image/src/codecs/png.rs:539,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/png.rs:539,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/png.rs:540,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/png.rs:540,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/png.rs:545,1
    - Dst: len
      Src: /src/image/src/codecs/png.rs:547,1
    - Dst: Limits::free_usize
      Src: /src/image/src/codecs/png.rs:550,1
    - Dst: len
      Src: /src/image/src/codecs/png.rs:550,1
    - Dst: Limits::reserve_usize
      Src: /src/image/src/codecs/png.rs:551,1
    - Dst: resize
      Src: /src/image/src/codecs/png.rs:552,1
    - Dst: Result::next_frame
      Src: /src/image/src/codecs/png.rs:558,1
    - Dst: Result::map_err
      Src: /src/image/src/codecs/png.rs:558,1
    - Dst: Result::info
      Src: /src/image/src/codecs/png.rs:561,1
    - Dst: attributes_from_info
      Src: /src/image/src/codecs/png.rs:562,1
    - Dst: ImageResult::frame_control
      Src: /src/image/src/codecs/png.rs:565,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:589,1
    - Dst: copy_pixel_bytes
      Src: /src/image/src/codecs/png.rs:593,1
    - Dst: as_mut_bytes
      Src: /src/image/src/codecs/png.rs:594,1
    - Dst: blend_pixel_bytes
      Src: /src/image/src/codecs/png.rs:602,1
    - Dst: as_mut_bytes
      Src: /src/image/src/codecs/png.rs:603,1
    - Dst: std::io::Result::copy_from_slice
      Src: /src/image/src/codecs/png.rs:615,1
    - Dst: as_bytes
      Src: /src/image/src/codecs/png.rs:615,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:617,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:617,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 248
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 618
      start: 449
    functionDepth: 11
    functionLinenumber: 449
    functionLinenumberEnd: 618
    functionName: ApngDecoder::mix_next_frame
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - std::io::Result::copy_from_slice
    - fill
    - as_bytes
    - expect
    - Limits::reserve_buffer
    - LimitError::from_kind
    - clone_from
    - as_mut_bytes
    - Some
    - Result::map_err
    - Result::output_buffer_size
    - pixels
    - Limits::free_usize
    - resize
    - len
    - put_pixel
    - sub_image
    - checked_sub
    - ImageResult::frame_control
    - to_image
    - prepare_image
    - unwrap
    - Result::info
    - clone
    - DynamicImage::new
    - copy_pixel_bytes
    - ok_or_else
    - is_none
    - Result::next_frame
    - std::io::Result::len
    - ApngDecoder::animatable_color_type
    - Rgba::from
    - collect
    - copy_from
    - as_mut
    - attributes_from_info
    - ImageError::Limits
    - Limits::reserve_usize
    - ensure_reader_and_header
    - Ok
    - blend_pixel_bytes
    linkageType: ''
    returnType: Result
    signature: 'fn mix_next_frame(&mut self,buf: &mut [u8],) -> Result<Option<DecodedImageAttributes>,
      ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:629,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:632,1
    - Dst: unsupported_color
      Src: /src/image/src/codecs/png.rs:632,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 635
      start: 620
    functionDepth: 10
    functionLinenumber: 620
    functionLinenumberEnd: 635
    functionName: ApngDecoder::animatable_color_type
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Err
    - unsupported_color
    - into
    linkageType: ''
    returnType: Result
    signature: fn animatable_color_type(&self) -> Result<(), ImageError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: format_attributes
      Src: /src/image/src/codecs/png.rs:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 644
      start: 639
    functionDepth: 2
    functionLinenumber: 639
    functionLinenumberEnd: 644
    functionName: ApngDecoder::format_attributes
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - format_attributes
    linkageType: ''
    returnType: FormatAttributes
    signature: fn format_attributes(&self) -> FormatAttributes
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ensure_reader_and_header
      Src: /src/image/src/codecs/png.rs:647,1
    - Dst: Result::info
      Src: /src/image/src/codecs/png.rs:648,1
    - Dst: ImageResult::animation_control
      Src: /src/image/src/codecs/png.rs:648,1
    - Dst: LoopCount::Finite
      Src: /src/image/src/codecs/png.rs:656,1
    - Dst: NonZeroU32::new
      Src: /src/image/src/codecs/png.rs:657,1
    - Dst: Self::expect
      Src: /src/image/src/codecs/png.rs:657,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:661,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 662
      start: 646
    functionDepth: 11
    functionLinenumber: 646
    functionLinenumberEnd: 662
    functionName: ApngDecoder::animation_attributes
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - LoopCount::Finite
    - Self::expect
    - ensure_reader_and_header
    - ImageResult::animation_control
    - Some
    - Result::info
    - NonZeroU32::new
    linkageType: ''
    returnType: Option
    signature: fn animation_attributes(&mut self) -> Option<DecodedAnimationAttributes>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: prepare_image
      Src: /src/image/src/codecs/png.rs:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 666
      start: 664
    functionDepth: 2
    functionLinenumber: 664
    functionLinenumberEnd: 666
    functionName: ApngDecoder::prepare_image
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - prepare_image
    linkageType: ''
    returnType: ImageResult
    signature: fn prepare_image(&mut self) -> ImageResult<DecoderPreparedImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ApngDecoder::mix_next_frame
      Src: /src/image/src/codecs/png.rs:669,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/png.rs:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 671
      start: 668
    functionDepth: 12
    functionLinenumber: 668
    functionLinenumberEnd: 671
    functionName: ApngDecoder::read_image
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - ApngDecoder::mix_next_frame
    - ok_or_else
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(&mut self, buf: &mut [u8]) -> ImageResult<DecodedImageAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 679
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 679
    functionName: ApngDecoder::more_images
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SequenceControl
    signature: fn more_images(&self) -> SequenceControl
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CompressionType::default
      Src: /src/image/src/codecs/png.rs:739,1
    - Dst: FilterType::default
      Src: /src/image/src/codecs/png.rs:740,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/png.rs:741,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/png.rs:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 745
      start: 736
    functionDepth: 2
    functionLinenumber: 736
    functionLinenumberEnd: 745
    functionName: PngEncoder::new
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 2
    functionsReached:
    - Vec::new
    - FilterType::default
    - CompressionType::default
    linkageType: ''
    returnType: PngEncoder
    signature: 'pub fn new(w: W) -> PngEncoder<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/png.rs:768,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/png.rs:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - w
    - compression
    - filter
    argTypes:
    - W
    - CompressionType
    - FilterType
    constantsTouched: []
    func_position:
      end: 772
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 772
    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:791,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/png.rs:791,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/png.rs:792,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:793,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/png.rs:794,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:812,1
    - Dst: DeflateCompression::Level
      Src: /src/image/src/codecs/png.rs:812,1
    - Dst: png::Info::with_size
      Src: /src/image/src/codecs/png.rs:825,1
    - Dst: is_empty
      Src: /src/image/src/codecs/png.rs:827,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:828,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/png.rs:828,1
    - Dst: is_empty
      Src: /src/image/src/codecs/png.rs:830,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:831,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/png.rs:831,1
    - Dst: png::Encoder::with_info
      Src: /src/image/src/codecs/png.rs:835,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:835,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/png.rs:835,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:835,1
    - Dst: ImageResult::add_itxt_chunk
      Src: /src/image/src/codecs/png.rs:838,1
    - Dst: to_string
      Src: /src/image/src/codecs/png.rs:839,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:838,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/png.rs:840,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:840,1
    - Dst: ImageResult::set_color
      Src: /src/image/src/codecs/png.rs:843,1
    - Dst: ImageResult::set_depth
      Src: /src/image/src/codecs/png.rs:844,1
    - Dst: ImageResult::set_compression
      Src: /src/image/src/codecs/png.rs:845,1
    - Dst: ImageResult::set_deflate_compression
      Src: /src/image/src/codecs/png.rs:847,1
    - Dst: ImageResult::set_filter
      Src: /src/image/src/codecs/png.rs:849,1
    - Dst: ImageResult::write_header
      Src: /src/image/src/codecs/png.rs:850,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/png.rs:850,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/png.rs:852,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:852,1
    - Dst: write_image_data
      Src: /src/image/src/codecs/png.rs:853,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:853,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/png.rs:855,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:855,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 109
    argCount: 4
    argNames:
    - data
    - width
    - height
    - color
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 856
      start: 774
    functionDepth: 9
    functionLinenumber: 774
    functionLinenumberEnd: 856
    functionName: PngEncoder::encode_inner
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - Err
    - UnsupportedErrorKind::Color
    - ImageError::IoError
    - ImageResult::set_filter
    - Some
    - into
    - ImageError::Unsupported
    - ImageResult::set_depth
    - Cow::Borrowed
    - map_err
    - UnsupportedError::from_format_and_kind
    - ImageResult::set_color
    - DeflateCompression::Level
    - is_empty
    - png::Encoder::with_info
    - ImageResult::set_deflate_compression
    - ImageResult::add_itxt_chunk
    - ImageResult::write_header
    - to_string
    - ImageResult::map_err
    - write_image_data
    - ImageResult::set_compression
    - png::Info::with_size
    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:875,1
    - Dst: PngEncoder::encode_inner
      Src: /src/image/src/codecs/png.rs:890,1
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/codecs/png.rs:898,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/png.rs:898,1
    - Dst: extend
      Src: /src/image/src/codecs/png.rs:899,1
    - Dst: as_chunks::<2>
      Src: /src/image/src/codecs/png.rs:899,1
    - Dst: iter
      Src: /src/image/src/codecs/png.rs:899,1
    - Dst: flat_map
      Src: /src/image/src/codecs/png.rs:899,1
    - Dst: PngEncoder::encode_inner
      Src: /src/image/src/codecs/png.rs:904,1
    - Dst: Err
      Src: /src/image/src/codecs/png.rs:906,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/png.rs:906,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/png.rs:907,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:908,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/png.rs:909,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 913
      start: 866
    functionDepth: 10
    functionLinenumber: 866
    functionLinenumberEnd: 913
    functionName: PngEncoder::write_image
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - iter
    - Err
    - Option::buffer_size
    - UnsupportedErrorKind::Color
    - PngEncoder::encode_inner
    - as_chunks::<2>
    - ImageError::Unsupported
    - extend
    - into
    - std::io::Result::len
    - UnsupportedError::from_format_and_kind
    - flat_map
    - utils::vec_try_with_capacity
    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:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - icc_profile
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 918
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 918
    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:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - exif
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 923
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 923
    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: Some
      Src: /src/image/src/codecs/png.rs:926,1
    - Dst: String::from_utf8
      Src: /src/image/src/codecs/png.rs:926,1
    - Dst: map_err
      Src: /src/image/src/codecs/png.rs:926,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/png.rs:927,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:928,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/png.rs:929,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/png.rs:929,1
    - Dst: Ok
      Src: /src/image/src/codecs/png.rs:932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - xmp
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 933
      start: 925
    functionDepth: 9
    functionLinenumber: 925
    functionLinenumberEnd: 933
    functionName: PngEncoder::set_xmp_metadata
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - Ok
    - '&str::to_string'
    - String::from_utf8
    - Some
    - map_err
    - into
    - UnsupportedError::from_format_and_kind
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: Result
    signature: 'fn set_xmp_metadata(&mut self, xmp: Vec<u8>) -> Result<(), UnsupportedError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::color
      Src: /src/image/src/codecs/png.rs:941,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:942,1
    - Dst: Option::to_rgb16
      Src: /src/image/src/codecs/png.rs:942,1
    - Dst: '[u16; 3]::into'
      Src: /src/image/src/codecs/png.rs:942,1
    - Dst: Some
      Src: /src/image/src/codecs/png.rs:943,1
    - Dst: Option::to_rgba16
      Src: /src/image/src/codecs/png.rs:943,1
    - Dst: Rgba16Image::into
      Src: /src/image/src/codecs/png.rs:943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - img
    argTypes:
    - crate::io::encoder::MethodSealedToImage
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 946
      start: 935
    functionDepth: 9
    functionLinenumber: 935
    functionLinenumberEnd: 946
    functionName: PngEncoder::make_compatible_img
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - Option::color
    - Some
    - Option::to_rgba16
    - '[u16; 3]::into'
    - Option::to_rgb16
    - Rgba16Image::into
    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/png.rs:953,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/png.rs:956,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/png.rs:956,1
    - Dst: into
      Src: /src/image/src/codecs/png.rs:956,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/png.rs:962,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/png.rs:962,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/png.rs:963,1
    - Dst: ImageError::to_string
      Src: /src/image/src/codecs/png.rs:963,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/png.rs:966,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/png.rs:966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - err
    argTypes:
    - png::DecodingError
    constantsTouched: []
    func_position:
      end: 969
      start: 950
    functionDepth: 10
    functionLinenumber: 950
    functionLinenumberEnd: 969
    functionName: ImageError::from_png
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - ImageError::Decoding
    - ImageError::Limits
    - ImageError::IoError
    - LimitError::from_kind
    - ParameterErrorKind::Generic
    - ParameterError::from_kind
    - into
    - ImageError::to_string
    - ImageError::Parameter
    - DecodingError::new
    linkageType: ''
    returnType: ImageError
    signature: 'fn from_png(err: png::DecodingError) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::from
      Src: /src/image/src/codecs/png.rs:973,1
    - Dst: bytes_per_pixel
      Src: /src/image/src/codecs/png.rs:973,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/png.rs:981,1
    - Dst: zip
      Src: /src/image/src/codecs/png.rs:981,1
    - Dst: Self::chunks_exact
      Src: /src/image/src/codecs/png.rs:983,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/png.rs:985,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 4
    argNames:
    - bytes
    - layout
    - from
    - region
    argTypes:
    - '&mut [u8]'
    - '&ImageLayout'
    - '&[u8]'
    - '&Rect'
    constantsTouched: []
    func_position:
      end: 987
      start: 972
    functionDepth: 3
    functionLinenumber: 972
    functionLinenumberEnd: 987
    functionName: copy_pixel_bytes
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - Self::chunks_exact
    - usize::from
    - zip
    - copy_from_slice
    - chunks_exact_mut
    - bytes_per_pixel
    linkageType: ''
    returnType: void
    signature: 'fn copy_pixel_bytes(bytes: &mut [u8], layout: &ImageLayout, from:
      &[u8], region: &Rect)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytemuck::cast_slice_mut::<_, P::Subpixel>
      Src: /src/image/src/codecs/png.rs:994,1
    - Dst: bytemuck::cast_slice::<_, P::Subpixel>
      Src: /src/image/src/codecs/png.rs:995,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/png.rs:997,1
    - Dst: usize::from
      Src: /src/image/src/codecs/png.rs:998,1
    - Dst: zip
      Src: /src/image/src/codecs/png.rs:997,1
    - Dst: Option::chunks_exact
      Src: /src/image/src/codecs/png.rs:999,1
    - Dst: usize::from
      Src: /src/image/src/codecs/png.rs:999,1
    - Dst: P::from_slice_mut
      Src: /src/image/src/codecs/png.rs:1001,1
    - Dst: blend
      Src: /src/image/src/codecs/png.rs:1001,1
    - Dst: P::from_slice
      Src: /src/image/src/codecs/png.rs:1001,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - bytes
    - region
    argTypes:
    - '&mut [u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1003
      start: 990
    functionDepth: 3
    functionLinenumber: 990
    functionLinenumberEnd: 1003
    functionName: b::l::e::n::d::_::p::i::x::e::l::_::b::y::t::e::s::inner
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - P::from_slice
    - bytemuck::cast_slice::<_, P::Subpixel>
    - usize::from
    - zip
    - bytemuck::cast_slice_mut::<_, P::Subpixel>
    - Option::chunks_exact
    - chunks_exact_mut
    - P::from_slice_mut
    - blend
    linkageType: ''
    returnType: void
    signature: 'fn inner<P: crate::Pixel>(bytes: &mut [u8], region: &[u8])whereP::Subpixel:
      bytemuck::Pod,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::from
      Src: /src/image/src/codecs/png.rs:1017,1
    - Dst: bytes_per_pixel
      Src: /src/image/src/codecs/png.rs:1017,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/png.rs:1025,1
    - Dst: zip
      Src: /src/image/src/codecs/png.rs:1025,1
    - Dst: Self::chunks_exact
      Src: /src/image/src/codecs/png.rs:1027,1
    - Dst: row_transformer
      Src: /src/image/src/codecs/png.rs:1029,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 57
    argCount: 4
    argNames:
    - bytes
    - layout
    - from
    - region
    argTypes:
    - '&mut [u8]'
    - '&ImageLayout'
    - '&[u8]'
    - '&Rect'
    constantsTouched: []
    func_position:
      end: 1031
      start: 989
    functionDepth: 3
    functionLinenumber: 989
    functionLinenumberEnd: 1031
    functionName: blend_pixel_bytes
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 1
    functionsReached:
    - row_transformer
    - Self::chunks_exact
    - usize::from
    - zip
    - chunks_exact_mut
    - bytes_per_pixel
    linkageType: ''
    returnType: void
    signature: 'fn blend_pixel_bytes(bytes: &mut [u8], layout: &ImageLayout, from:
      &[u8], region: &Rect)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PngDecoder::new
      Src: /src/image/src/codecs/png.rs:1041,1
    - Dst: BufReader::new
      Src: /src/image/src/codecs/png.rs:1041,1
    - Dst: std::fs::File::open
      Src: /src/image/src/codecs/png.rs:1042,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/png.rs:1042,1
    - Dst: PngDecoder::prepare_image
      Src: /src/image/src/codecs/png.rs:1046,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/png.rs:1046,1
    - Dst: decoder_to_vec
      Src: /src/image/src/codecs/png.rs:1058,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/png.rs:1058,1
    - Dst: ImageResult::bytes
      Src: /src/image/src/codecs/png.rs:1060,1
    - Dst: '&[u8]::map'
      Src: /src/image/src/codecs/png.rs:1060,1
    - Dst: expect
      Src: /src/image/src/codecs/png.rs:1062,1
    - Dst: "bytes()\n            .map(|x| x.expect(\"Unable to read byte\"))\n   \
        \         .collect::<Vec<u8>>"
      Src: /src/image/src/codecs/png.rs:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1040
    functionDepth: 12
    functionLinenumber: 1040
    functionLinenumberEnd: 1066
    functionName: tests::ensure_no_decoder_off_by_one
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - '&[u8]::map'
    - decoder_to_vec
    - expect
    - BufReader::new
    - PngDecoder::prepare_image
    - ImageResult::expect
    - ImageResult::bytes
    - std::fs::File::open
    - PngDecoder::new
    - io::Result::unwrap
    - "bytes()\n            .map(|x| x.expect(\"Unable to read byte\"))\n        \
      \    .collect::<Vec<u8>>"
    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:1073,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/src/codecs/png.rs:1073,1
    - Dst: PngDecoder::new
      Src: /src/image/src/codecs/png.rs:1077,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/png.rs:1077,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/png.rs:1078,1
    - Dst: ImageResult::err
      Src: /src/image/src/codecs/png.rs:1078,1
    - Dst: ImageError::unwrap
      Src: /src/image/src/codecs/png.rs:1078,1
    - Dst: source
      Src: /src/image/src/codecs/png.rs:1080,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/png.rs:1080,1
    - Dst: "source()\n            .unwrap()\n            .downcast_ref::<png::DecodingError>"
      Src: /src/image/src/codecs/png.rs:1080,1
    - Dst: expect
      Src: /src/image/src/codecs/png.rs:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1069
    functionDepth: 11
    functionLinenumber: 1069
    functionLinenumberEnd: 1085
    functionName: tests::underlying_error
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - ImageError::unwrap
    - expect
    - "source()\n            .unwrap()\n            .downcast_ref::<png::DecodingError>"
    - ImageResult::prepare_image
    - std::fs::read
    - Cursor::new
    - std::io::Result::unwrap
    - ImageResult::err
    - PngDecoder::new
    - Option::unwrap
    - source
    linkageType: ''
    returnType: void
    signature: fn underlying_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::new_rgb32f
      Src: /src/image/src/codecs/png.rs:1090,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/png.rs:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1088
    functionDepth: 3
    functionLinenumber: 1088
    functionLinenumberEnd: 1093
    functionName: tests::encode_bad_color_type
    functionSourceFile: /src/image/src/codecs/png.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - DynamicImage::new_rgb32f
    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:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - source
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 12
    functionLinenumber: 58
    functionLinenumberEnd: 60
    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:70,1
    - Dst: std::io::Result::map_err
      Src: /src/image/src/codecs/openexr.rs:70,1
    - Dst: headers
      Src: /src/image/src/codecs/openexr.rs:72,1
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:72,1
    - Dst: position
      Src: /src/image/src/codecs/openexr.rs:72,1
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:77,1
    - Dst: all
      Src: /src/image/src/codecs/openexr.rs:77,1
    - Dst: find_index_of_channel
      Src: /src/image/src/codecs/openexr.rs:80,1
    - Dst: Text::from
      Src: /src/image/src/codecs/openexr.rs:80,1
    - Dst: is_some
      Src: /src/image/src/codecs/openexr.rs:80,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/openexr.rs:72,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/openexr.rs:86,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/openexr.rs:86,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/openexr.rs:87,1
    - Dst: headers
      Src: /src/image/src/codecs/openexr.rs:92,1
    - Dst: find_index_of_channel
      Src: /src/image/src/codecs/openexr.rs:92,1
    - Dst: Text::from
      Src: /src/image/src/codecs/openexr.rs:94,1
    - Dst: is_some
      Src: /src/image/src/codecs/openexr.rs:92,1
    - Dst: Ok
      Src: /src/image/src/codecs/openexr.rs:97,1
    - Dst: Some
      Src: /src/image/src/codecs/openexr.rs:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 47
    argCount: 2
    argNames:
    - source
    - alpha_preference
    argTypes:
    - R
    - Option<bool>
    constantsTouched: []
    func_position:
      end: 103
      start: 68
    functionDepth: 11
    functionLinenumber: 68
    functionLinenumberEnd: 103
    functionName: OpenExrDecoder::with_alpha_preference
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 3
    functionsReached:
    - exr::block::read
    - iter
    - find_index_of_channel
    - ImageError::Decoding
    - position
    - DecodingError::new
    - Ok
    - Text::from
    - is_some
    - ok_or_else
    - ImageFormatHint::Exact
    - Some
    - all
    - headers
    - std::io::Result::map_err
    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:110,1
    - Dst: u64::width
      Src: /src/image/src/codecs/openexr.rs:112,1
    - Dst: u64::height
      Src: /src/image/src/codecs/openexr.rs:112,1
    - Dst: Err
      Src: /src/image/src/codecs/openexr.rs:116,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/openexr.rs:116,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/openexr.rs:116,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/openexr.rs:122,1
    - Dst: Ok
      Src: /src/image/src/codecs/openexr.rs:130,1
    - Dst: DecoderPreparedImage::new
      Src: /src/image/src/codecs/openexr.rs:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 131
    functionName: OpenExrDecoder::prepare_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 1
    functionsReached:
    - Err
    - Ok
    - u64::width
    - unwrap_or
    - meta_data
    - u64::height
    - ParameterError::from_kind
    - ImageError::Parameter
    - DecoderPreparedImage::new
    linkageType: ''
    returnType: ImageResult
    signature: fn prepare_image(&mut self) -> ImageResult<DecoderPreparedImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenExrDecoder::prepare_image
      Src: /src/image/src/codecs/openexr.rs:135,1
    - Dst: dimensions
      Src: /src/image/src/codecs/openexr.rs:136,1
    - Dst: take
      Src: /src/image/src/codecs/openexr.rs:144,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/openexr.rs:144,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/openexr.rs:145,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/openexr.rs:145,1
    - Dst: Result::headers
      Src: /src/image/src/codecs/openexr.rs:148,1
    - Dst: channel_count
      Src: /src/image/src/codecs/openexr.rs:149,1
    - Dst: Result::headers
      Src: /src/image/src/codecs/openexr.rs:151,1
    - Dst: Result::headers
      Src: /src/image/src/codecs/openexr.rs:155,1
    - Dst: usize::from
      Src: /src/image/src/codecs/openexr.rs:162,1
    - Dst: bytes_per_pixel
      Src: /src/image/src/codecs/openexr.rs:162,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/openexr.rs:163,1
    - Dst: and_then
      Src: /src/image/src/codecs/openexr.rs:163,1
    - Dst: u64::checked_mul
      Src: /src/image/src/codecs/openexr.rs:165,1
    - Dst: map
      Src: /src/image/src/codecs/openexr.rs:168,1
    - Dst: '&mut [u8]::len'
      Src: /src/image/src/codecs/openexr.rs:169,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/openexr.rs:168,1
    - Dst: read
      Src: /src/image/src/codecs/openexr.rs:180,1
    - Dst: std::io::Result::no_deep_data
      Src: /src/image/src/codecs/openexr.rs:180,1
    - Dst: largest_resolution_level
      Src: /src/image/src/codecs/openexr.rs:180,1
    - Dst: rgba_channels
      Src: /src/image/src/codecs/openexr.rs:180,1
    - Dst: to_i32
      Src: /src/image/src/codecs/openexr.rs:187,1
    - Dst: x
      Src: /src/image/src/codecs/openexr.rs:191,1
    - Dst: y
      Src: /src/image/src/codecs/openexr.rs:192,1
    - Dst: x
      Src: /src/image/src/codecs/openexr.rs:193,1
    - Dst: width
      Src: /src/image/src/codecs/openexr.rs:193,1
    - Dst: y
      Src: /src/image/src/codecs/openexr.rs:194,1
    - Dst: height
      Src: /src/image/src/codecs/openexr.rs:194,1
    - Dst: to_usize
      Src: /src/image/src/codecs/openexr.rs:197,1
    - Dst: unwrap
      Src: /src/image/src/codecs/openexr.rs:197,1
    - Dst: flat_index_for_size
      Src: /src/image/src/codecs/openexr.rs:199,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/openexr.rs:201,1
    - Dst: first_valid_layer
      Src: /src/image/src/codecs/openexr.rs:180,1
    - Dst: all_attributes
      Src: /src/image/src/codecs/openexr.rs:180,1
    - Dst: from_chunks
      Src: /src/image/src/codecs/openexr.rs:180,1
    - Dst: map_err
      Src: /src/image/src/codecs/openexr.rs:180,1
    - Dst: '&mut [u8]::copy_from_slice'
      Src: /src/image/src/codecs/openexr.rs:218,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/openexr.rs:218,1
    - Dst: as_slice
      Src: /src/image/src/codecs/openexr.rs:219,1
    - Dst: Ok
      Src: /src/image/src/codecs/openexr.rs:222,1
    - Dst: Some
      Src: /src/image/src/codecs/openexr.rs:223,1
    - Dst: DecodedImageAttributes::default
      Src: /src/image/src/codecs/openexr.rs:224,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 146
    argCount: 1
    argNames:
    - unaligned_bytes
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 226
      start: 134
    functionDepth: 11
    functionLinenumber: 134
    functionLinenumberEnd: 226
    functionName: OpenExrDecoder::read_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - as_slice
    - checked_mul
    - flat_index_for_size
    - from_chunks
    - Some
    - read
    - Result::headers
    - height
    - '&mut [u8]::copy_from_slice'
    - y
    - OpenExrDecoder::prepare_image
    - rgba_channels
    - ImageError::Parameter
    - std::io::Result::no_deep_data
    - unwrap
    - channel_count
    - map_err
    - to_usize
    - dimensions
    - '&mut [u8]::len'
    - all_attributes
    - map
    - to_i32
    - and_then
    - ok_or_else
    - u64::checked_mul
    - copy_from_slice
    - ParameterError::from_kind
    - DecodedImageAttributes::default
    - bytemuck::cast_slice
    - bytes_per_pixel
    - take
    - Ok
    - usize::from
    - first_valid_layer
    - width
    - unwrap_or
    - largest_resolution_level
    - x
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(&mut self, unaligned_bytes: &mut [u8]) -> ImageResult<DecodedImageAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::bits_per_pixel
      Src: /src/image/src/codecs/openexr.rs:244,1
    - Dst: "Image // TODO compression method zip??\n                ::from_channels"
      Src: /src/image/src/codecs/openexr.rs:248,1
    - Dst: SpecificChannels::rgb
      Src: /src/image/src/codecs/openexr.rs:251,1
    - Dst: u8::flat_index_for_size
      Src: /src/image/src/codecs/openexr.rs:252,1
    - Dst: Vec2
      Src: /src/image/src/codecs/openexr.rs:252,1
    - Dst: bytemuck::pod_read_unaligned
      Src: /src/image/src/codecs/openexr.rs:255,1
    - Dst: write
      Src: /src/image/src/codecs/openexr.rs:248,1
    - Dst: to_buffered
      Src: /src/image/src/codecs/openexr.rs:248,1
    - Dst: map_err
      Src: /src/image/src/codecs/openexr.rs:248,1
    - Dst: "Image // TODO compression method zip??\n                ::from_channels"
      Src: /src/image/src/codecs/openexr.rs:269,1
    - Dst: SpecificChannels::rgba
      Src: /src/image/src/codecs/openexr.rs:272,1
    - Dst: u8::flat_index_for_size
      Src: /src/image/src/codecs/openexr.rs:273,1
    - Dst: Vec2
      Src: /src/image/src/codecs/openexr.rs:273,1
    - Dst: bytemuck::pod_read_unaligned
      Src: /src/image/src/codecs/openexr.rs:276,1
    - Dst: write
      Src: /src/image/src/codecs/openexr.rs:269,1
    - Dst: to_buffered
      Src: /src/image/src/codecs/openexr.rs:269,1
    - Dst: map_err
      Src: /src/image/src/codecs/openexr.rs:269,1
    - Dst: Err
      Src: /src/image/src/codecs/openexr.rs:291,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/openexr.rs:291,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/openexr.rs:292,1
    - Dst: into
      Src: /src/image/src/codecs/openexr.rs:293,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/openexr.rs:294,1
    - Dst: Ok
      Src: /src/image/src/codecs/openexr.rs:300,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: 301
      start: 235
    functionDepth: 9
    functionLinenumber: 235
    functionLinenumberEnd: 301
    functionName: write_buffer
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 3
    functionsReached:
    - to_buffered
    - bytemuck::pod_read_unaligned
    - "Image // TODO compression method zip??\n                ::from_channels"
    - u8::flat_index_for_size
    - Err
    - UnsupportedErrorKind::Color
    - Ok
    - SpecificChannels::rgba
    - ImageError::Unsupported
    - map_err
    - into
    - Vec2
    - SpecificChannels::rgb
    - UnsupportedError::from_format_and_kind
    - Option::bits_per_pixel
    - write
    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:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - write
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    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:332,1
    - Dst: write_buffer
      Src: /src/image/src/codecs/openexr.rs:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 341
      start: 325
    functionDepth: 10
    functionLinenumber: 325
    functionLinenumberEnd: 341
    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:345,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/openexr.rs:345,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/openexr.rs:346,1
    - Dst: Error::to_string
      Src: /src/image/src/codecs/openexr.rs:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - exr_error
    argTypes:
    - Error
    constantsTouched: []
    func_position:
      end: 349
      start: 344
    functionDepth: 10
    functionLinenumber: 344
    functionLinenumberEnd: 349
    functionName: to_image_err
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - ImageError::Decoding
    - Error::to_string
    - DecodingError::new
    - ImageFormatHint::Exact
    linkageType: ''
    returnType: ImageError
    signature: 'fn to_image_err(exr_error: Error) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_buffer
      Src: /src/image/src/codecs/openexr.rs:370,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/openexr.rs:372,1
    - Dst: Vec::subpixels
      Src: /src/image/src/codecs/openexr.rs:372,1
    - Dst: Vec::width
      Src: /src/image/src/codecs/openexr.rs:373,1
    - Dst: Vec::height
      Src: /src/image/src/codecs/openexr.rs:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - write
    - image
    argTypes:
    - impl Write + Seek
    - '&Rgb32FImage'
    constantsTouched: []
    func_position:
      end: 377
      start: 369
    functionDepth: 10
    functionLinenumber: 369
    functionLinenumberEnd: 377
    functionName: test::write_rgb_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - Vec::height
    - write_buffer
    - Vec::subpixels
    - Vec::width
    - bytemuck::cast_slice
    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:383,1
    - Dst: bytemuck::cast_slice
      Src: /src/image/src/codecs/openexr.rs:385,1
    - Dst: Vec::subpixels
      Src: /src/image/src/codecs/openexr.rs:385,1
    - Dst: Vec::width
      Src: /src/image/src/codecs/openexr.rs:386,1
    - Dst: Vec::height
      Src: /src/image/src/codecs/openexr.rs:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - write
    - image
    argTypes:
    - impl Write + Seek
    - '&Rgba32FImage'
    constantsTouched: []
    func_position:
      end: 390
      start: 382
    functionDepth: 10
    functionLinenumber: 382
    functionLinenumberEnd: 390
    functionName: test::write_rgba_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - Vec::height
    - write_buffer
    - Vec::subpixels
    - Vec::width
    - bytemuck::cast_slice
    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:394,1
    - Dst: BufReader::new
      Src: /src/image/src/codecs/openexr.rs:394,1
    - Dst: File::open
      Src: /src/image/src/codecs/openexr.rs:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - impl AsRef<Path>
    constantsTouched: []
    func_position:
      end: 395
      start: 393
    functionDepth: 13
    functionLinenumber: 393
    functionLinenumberEnd: 395
    functionName: test::read_as_rgba_image_from_file
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - File::open
    - BufReader::new
    - read_as_rgba_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_as_rgba_image_from_file(path: impl AsRef<Path>) -> ImageResult<Rgba32FImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_as_rgb_image
      Src: /src/image/src/codecs/openexr.rs:399,1
    - Dst: BufReader::new
      Src: /src/image/src/codecs/openexr.rs:399,1
    - Dst: File::open
      Src: /src/image/src/codecs/openexr.rs:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - impl AsRef<Path>
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 13
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: test::read_as_rgb_image_from_file
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - File::open
    - BufReader::new
    - read_as_rgb_image
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_as_rgb_image_from_file(path: impl AsRef<Path>) -> ImageResult<Rgb32FImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OpenExrDecoder::with_alpha_preference
      Src: /src/image/src/codecs/openexr.rs:404,1
    - Dst: Some
      Src: /src/image/src/codecs/openexr.rs:404,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/openexr.rs:405,1
    - Dst: dimensions
      Src: /src/image/src/codecs/openexr.rs:405,1
    - Dst: decoder_to_vec
      Src: /src/image/src/codecs/openexr.rs:406,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/openexr.rs:408,1
    - Dst: Option::ok_or_else
      Src: /src/image/src/codecs/openexr.rs:408,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/openexr.rs:412,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/openexr.rs:412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - read
    argTypes:
    - impl BufRead + Seek
    constantsTouched: []
    func_position:
      end: 414
      start: 403
    functionDepth: 12
    functionLinenumber: 403
    functionLinenumberEnd: 414
    functionName: test::read_as_rgb_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - Option::ok_or_else
    - ImageError::Limits
    - ImageBuffer::from_raw
    - decoder_to_vec
    - OpenExrDecoder::with_alpha_preference
    - LimitError::from_kind
    - Some
    - ImageResult::prepare_image
    - dimensions
    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:418,1
    - Dst: Some
      Src: /src/image/src/codecs/openexr.rs:418,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/openexr.rs:419,1
    - Dst: dimensions
      Src: /src/image/src/codecs/openexr.rs:419,1
    - Dst: decoder_to_vec
      Src: /src/image/src/codecs/openexr.rs:420,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/codecs/openexr.rs:422,1
    - Dst: Option::ok_or_else
      Src: /src/image/src/codecs/openexr.rs:422,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/openexr.rs:426,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/openexr.rs:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - read
    argTypes:
    - impl BufRead + Seek
    constantsTouched: []
    func_position:
      end: 428
      start: 417
    functionDepth: 12
    functionLinenumber: 417
    functionLinenumberEnd: 428
    functionName: test::read_as_rgba_image
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - Option::ok_or_else
    - ImageError::Limits
    - ImageBuffer::from_raw
    - decoder_to_vec
    - OpenExrDecoder::with_alpha_preference
    - LimitError::from_kind
    - Some
    - ImageResult::prepare_image
    - dimensions
    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:440,1
    - Dst: iter().collect::<PathBuf>
      Src: /src/image/src/codecs/openexr.rs:440,1
    - Dst: join
      Src: /src/image/src/codecs/openexr.rs:441,1
    - Dst: join
      Src: /src/image/src/codecs/openexr.rs:443,1
    - Dst: HdrDecoder::new
      Src: /src/image/src/codecs/openexr.rs:446,1
    - Dst: BufReader::new
      Src: /src/image/src/codecs/openexr.rs:446,1
    - Dst: File::open
      Src: /src/image/src/codecs/openexr.rs:446,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/openexr.rs:446,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:446,1
    - Dst: DynamicImage::from_decoder
      Src: /src/image/src/codecs/openexr.rs:447,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:447,1
    - Dst: read_as_rgb_image_from_file
      Src: /src/image/src/codecs/openexr.rs:452,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:452,1
    - Dst: pixels
      Src: /src/image/src/codecs/openexr.rs:455,1
    - Dst: ImageResult::iter
      Src: /src/image/src/codecs/openexr.rs:455,1
    - Dst: zip
      Src: /src/image/src/codecs/openexr.rs:455,1
    - Dst: pixels
      Src: /src/image/src/codecs/openexr.rs:455,1
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:455,1
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:456,1
    - Dst: zip
      Src: /src/image/src/codecs/openexr.rs:456,1
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 431
    functionDepth: 10
    functionLinenumber: 431
    functionLinenumberEnd: 466
    functionName: test::compare_exr_hdr
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - iter
    - iter().collect::<PathBuf>
    - join
    - ImageResult::iter
    - BufReader::new
    - ImageResult::unwrap
    - DynamicImage::from_decoder
    - File::open
    - zip
    - HdrDecoder::new
    - pixels
    - read_as_rgb_image_from_file
    - 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:470,1
    - Dst: cycle
      Src: /src/image/src/codecs/openexr.rs:470,1
    - Dst: next
      Src: /src/image/src/codecs/openexr.rs:473,1
    - Dst: unwrap
      Src: /src/image/src/codecs/openexr.rs:473,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/codecs/openexr.rs:475,1
    - Dst: Rgba
      Src: /src/image/src/codecs/openexr.rs:476,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:476,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:476,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:476,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:476,1
    - Dst: write_rgba_image
      Src: /src/image/src/codecs/openexr.rs:480,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/openexr.rs:480,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:480,1
    - Dst: read_as_rgba_image
      Src: /src/image/src/codecs/openexr.rs:481,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/openexr.rs:481,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 484
      start: 469
    functionDepth: 14
    functionLinenumber: 469
    functionLinenumberEnd: 484
    functionName: test::roundtrip_rgba
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - next_random
    - cycle
    - write_rgba_image
    - ImageResult::unwrap
    - ImageBuffer::from_fn
    - read_as_rgba_image
    - unwrap
    - next
    - Cursor::new
    - into_iter
    linkageType: ''
    returnType: void
    signature: fn roundtrip_rgba()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/image/src/codecs/openexr.rs:488,1
    - Dst: cycle
      Src: /src/image/src/codecs/openexr.rs:488,1
    - Dst: next
      Src: /src/image/src/codecs/openexr.rs:491,1
    - Dst: unwrap
      Src: /src/image/src/codecs/openexr.rs:491,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/codecs/openexr.rs:493,1
    - Dst: Rgb
      Src: /src/image/src/codecs/openexr.rs:494,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:494,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:494,1
    - Dst: next_random
      Src: /src/image/src/codecs/openexr.rs:494,1
    - Dst: write_rgb_image
      Src: /src/image/src/codecs/openexr.rs:498,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/openexr.rs:498,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:498,1
    - Dst: read_as_rgb_image
      Src: /src/image/src/codecs/openexr.rs:499,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/openexr.rs:499,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 502
      start: 487
    functionDepth: 14
    functionLinenumber: 487
    functionLinenumberEnd: 502
    functionName: test::roundtrip_rgb
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - next_random
    - write_rgb_image
    - cycle
    - ImageResult::unwrap
    - ImageBuffer::from_fn
    - unwrap
    - next
    - Cursor::new
    - read_as_rgb_image
    - Rgb
    - into_iter
    linkageType: ''
    returnType: void
    signature: fn roundtrip_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:506,1
    - Dst: "iter()\n            .collect::<PathBuf>"
      Src: /src/image/src/codecs/openexr.rs:506,1
    - Dst: join
      Src: /src/image/src/codecs/openexr.rs:506,1
    - Dst: read_as_rgb_image_from_file
      Src: /src/image/src/codecs/openexr.rs:511,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:511,1
    - Dst: read_as_rgba_image_from_file
      Src: /src/image/src/codecs/openexr.rs:512,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:512,1
    - Dst: pixels
      Src: /src/image/src/codecs/openexr.rs:516,1
    - Dst: ImageResult::iter
      Src: /src/image/src/codecs/openexr.rs:516,1
    - Dst: zip
      Src: /src/image/src/codecs/openexr.rs:516,1
    - Dst: pixels
      Src: /src/image/src/codecs/openexr.rs:516,1
    - Dst: ImageResult::iter
      Src: /src/image/src/codecs/openexr.rs:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 519
      start: 505
    functionDepth: 12
    functionLinenumber: 505
    functionLinenumberEnd: 519
    functionName: test::compare_rgba_rgb
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - iter
    - join
    - ImageResult::iter
    - ImageResult::unwrap
    - "iter()\n            .collect::<PathBuf>"
    - zip
    - read_as_rgba_image_from_file
    - pixels
    - read_as_rgb_image_from_file
    linkageType: ''
    returnType: void
    signature: fn compare_rgba_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/codecs/openexr.rs:532,1
    - Dst: iter().collect::<PathBuf>
      Src: /src/image/src/codecs/openexr.rs:532,1
    - Dst: join
      Src: /src/image/src/codecs/openexr.rs:533,1
    - Dst: join
      Src: /src/image/src/codecs/openexr.rs:534,1
    - Dst: read_first_flat_layer_from_file
      Src: /src/image/src/codecs/openexr.rs:538,1
    - Dst: unwrap
      Src: /src/image/src/codecs/openexr.rs:538,1
    - Dst: read_first_flat_layer_from_file
      Src: /src/image/src/codecs/openexr.rs:539,1
    - Dst: unwrap
      Src: /src/image/src/codecs/openexr.rs:539,1
    - Dst: read_as_rgba_image_from_file
      Src: /src/image/src/codecs/openexr.rs:552,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:552,1
    - Dst: read_as_rgba_image_from_file
      Src: /src/image/src/codecs/openexr.rs:553,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/openexr.rs:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 522
    functionDepth: 12
    functionLinenumber: 522
    functionLinenumberEnd: 559
    functionName: test::compare_cropped
    functionSourceFile: /src/image/src/codecs/openexr.rs
    functionUses: 0
    functionsReached:
    - iter
    - iter().collect::<PathBuf>
    - join
    - read_first_flat_layer_from_file
    - ImageResult::unwrap
    - unwrap
    - read_as_rgba_image_from_file
    linkageType: ''
    returnType: void
    signature: fn compare_cropped()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: qoi::Decoder::from_stream
      Src: /src/image/src/codecs/qoi.rs:21,1
    - Dst: map_err
      Src: /src/image/src/codecs/qoi.rs:21,1
    - Dst: Ok
      Src: /src/image/src/codecs/qoi.rs:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    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:28,1
    - Dst: Ok
      Src: /src/image/src/codecs/qoi.rs:34,1
    - Dst: DecoderPreparedImage::new
      Src: /src/image/src/codecs/qoi.rs:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 27
    functionDepth: 11
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: QoiDecoder::prepare_image
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - Ok
    - header
    - DecoderPreparedImage::new
    linkageType: ''
    returnType: ImageResult
    signature: fn prepare_image(&mut self) -> ImageResult<DecoderPreparedImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: decode_to_buf
      Src: /src/image/src/codecs/qoi.rs:42,1
    - Dst: map_err
      Src: /src/image/src/codecs/qoi.rs:42,1
    - Dst: Ok
      Src: /src/image/src/codecs/qoi.rs:43,1
    - Dst: DecodedImageAttributes::default
      Src: /src/image/src/codecs/qoi.rs:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: QoiDecoder::read_image
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - Ok
    - decode_to_buf
    - map_err
    - DecodedImageAttributes::default
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(&mut self, buf: &mut [u8]) -> ImageResult<DecodedImageAttributes>'
  - 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: 10
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: decoding_error
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - ImageError::Decoding
    - DecodingError::new
    - into
    linkageType: ''
    returnType: ImageError
    signature: 'fn decoding_error(error: qoi::Error) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/qoi.rs:52,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/qoi.rs:52,1
    - Dst: into
      Src: /src/image/src/codecs/qoi.rs:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - error
    argTypes:
    - qoi::Error
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 10
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: encoding_error
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - ImageError::Encoding
    - EncodingError::new
    - into
    linkageType: ''
    returnType: ImageError
    signature: 'fn encoding_error(error: qoi::Error) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - writer
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: QoiEncoder::new
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(writer: W) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/qoi.rs:80,1
    - Dst: ImageError::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: 9
    functionLinenumber: 69
    functionLinenumberEnd: 104
    functionName: QoiEncoder::write_image
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - flush
    - Err
    - Option::buffer_size
    - UnsupportedErrorKind::Color
    - Ok
    - ImageError::Unsupported
    - into
    - map_err
    - qoi::encode_to_vec
    - write_all
    - UnsupportedError::from_format_and_kind
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_image(mut self,buf: &[u8],width: u32,height: u32,color_type:
      ExtendedColorType,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: QoiDecoder::new
      Src: /src/image/src/codecs/qoi.rs:114,1
    - Dst: File::open
      Src: /src/image/src/codecs/qoi.rs:114,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/qoi.rs:114,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/qoi.rs:114,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/qoi.rs:117,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/qoi.rs:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 14
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: tests::decode_test_image
    functionSourceFile: /src/image/src/codecs/qoi.rs
    functionUses: 0
    functionsReached:
    - ImageResult::expect
    - ImageResult::unwrap
    - File::open
    - ImageResult::prepare_image
    - QoiDecoder::new
    - io::Result::unwrap
    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: 7
    functionLinenumber: 15
    functionLinenumberEnd: 39
    functionName: HdrEncoder::write_image
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - HdrEncoder::encode_pixels
    - bytemuck::pod_read_unaligned
    - Err
    - '&[u8]::chunks_exact'
    - UnsupportedErrorKind::Color
    - map
    - Rgb::<f32>
    - ImageError::Unsupported
    - into
    - UnsupportedError::from_format_and_kind
    - Option::bits_per_pixel
    - 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: 7
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: HdrEncoder::encode
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - HdrEncoder::encode_pixels
    - map
    - to_rgbe8
    - iter
    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:
    - as_bytes
    - Self::write_all
    - Ok
    - iter_mut
    - write_rgbe8
    - codecs::hdr::rgbe8
    - zip
    - clear
    - rle_compress
    - contains
    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: 11
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: RunIterator::next
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - iter
    - len
    - take
    - take_while
    - self::RunOrNot::Norun
    - Some
    - self::RunOrNot::Run
    - 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::Norun
    - Some
    - next
    - self::RunOrNot::Run
    - cmp
    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: ImageResult::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::extend_from_slice
    - ImageResult::is_empty
    - ImageResult::push
    - NorunCombineIterator::new
    - ImageResult::clear
    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: 5
    functionLinenumber: 280
    functionLinenumberEnd: 298
    functionName: to_rgbe8
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 3
    functionsReached:
    - f32::trunc
    - log2
    - iter_mut
    - f32::powi
    - Rgb<f32>::iter
    - floor
    - f32::max
    - 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: 5
    functionLinenumber: 327
    functionLinenumberEnd: 342
    functionName: t::o::_::r::g::b::e::8::_::t::e::s::t::relative_dist
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - iter
    - fold
    - chain
    - abs
    - zip
    - f32::max
    linkageType: ''
    returnType: f32
    signature: 'fn relative_dist(a: Rgb<f32>, b: Rgb<f32>) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: codecs::hdr::rgbe8
      Src: /src/image/src/codecs/hdr/encoder.rs: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: 6
    functionLinenumber: 301
    functionLinenumberEnd: 361
    functionName: to_rgbe8_test
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - relative_dist
    - codecs::hdr::rgbe8
    - Rgbe8Pixel::to_hdr
    - color::Rgb
    - to_rgbe8
    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: 15
    functionLinenumber: 418
    functionLinenumberEnd: 480
    functionName: noruncombine_test
    functionSourceFile: /src/image/src/codecs/hdr/encoder.rs
    functionUses: 0
    functionsReached:
    - a
    - take
    - std::iter::repeat
    - ImageResult::flat_map
    - NorunCombineIterator::new
    - collect
    linkageType: ''
    returnType: void
    signature: fn noruncombine_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:51,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:53,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:55,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:59,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:61,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/ico/decoder.rs:63,1
    - Dst: Result::write_fmt
      Src: /src/image/src/codecs/ico/decoder.rs:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 73
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 73
    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:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 171
    functionName: DecoderError::source
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn source(&self) -> Option<&(dyn error::Error + 'static)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::write_str
      Src: /src/image/src/codecs/hdr/decoder.rs:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 124
    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: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    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:173,1
    - Dst: Rgb
      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
    - Dst: <f32 as From<_>>::from
      Src: /src/image/src/codecs/hdr/decoder.rs:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 184
    functionName: Rgbe8Pixel::to_hdr
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - <f32 as From<_>>::from
    - f32::from_bits
    - Rgb
    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:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 10
    functionLinenumber: 191
    functionLinenumberEnd: 193
    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:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 10
    functionLinenumber: 197
    functionLinenumberEnd: 199
    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:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - reader
    - spec
    argTypes:
    - R
    - SpecCompliance
    constantsTouched: []
    func_position:
      end: 204
      start: 202
    functionDepth: 10
    functionLinenumber: 202
    functionLinenumberEnd: 204
    functionName: HdrDecoder::with_spec_compliance
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - Self::with_strictness
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn with_spec_compliance(reader: R, spec: SpecCompliance)
      -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HdrMetadata::new
      Src: /src/image/src/codecs/hdr/decoder.rs:214,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/hdr/decoder.rs:228,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:230,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:230,1
    - Dst: read_line_u8
      Src: /src/image/src/codecs/hdr/decoder.rs:233,1
    - Dst: read_line_u8
      Src: /src/image/src/codecs/hdr/decoder.rs:240,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:243,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:243,1
    - Dst: MAX_HEADER_LENGTH::saturating_sub
      Src: /src/image/src/codecs/hdr/decoder.rs:246,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/hdr/decoder.rs:246,1
    - Dst: std::io::Result::is_empty
      Src: /src/image/src/codecs/hdr/decoder.rs:248,1
    - Dst: String::from_utf8_lossy
      Src: /src/image/src/codecs/hdr/decoder.rs:257,1
    - Dst: Option::update_header_info
      Src: /src/image/src/codecs/hdr/decoder.rs:258,1
    - Dst: read_line_u8
      Src: /src/image/src/codecs/hdr/decoder.rs:264,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:267,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:267,1
    - Dst: String::from_utf8_lossy
      Src: /src/image/src/codecs/hdr/decoder.rs:270,1
    - Dst: parse_dimensions_line
      Src: /src/image/src/codecs/hdr/decoder.rs:271,1
    - Dst: crate::ImageLayout::new
      Src: /src/image/src/codecs/hdr/decoder.rs:276,1
    - Dst: ImageResult::total_bytes_overflows_u64
      Src: /src/image/src/codecs/hdr/decoder.rs:278,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:279,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/hdr/decoder.rs:279,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/hdr/decoder.rs:280,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:281,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/hdr/decoder.rs:282,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:289,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 92
    argCount: 2
    argNames:
    - reader
    - strict
    argTypes:
    - R
    - bool
    constantsTouched: []
    func_position:
      end: 298
      start: 213
    functionDepth: 9
    functionLinenumber: 213
    functionLinenumberEnd: 298
    functionName: HdrDecoder::with_strictness
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - crate::ImageLayout::new
    - Result::read_exact
    - Err
    - std::io::Result::is_empty
    - Ok
    - HdrMetadata::new
    - String::from_utf8_lossy
    - ImageError::Unsupported
    - parse_dimensions_line
    - into
    - MAX_HEADER_LENGTH::saturating_sub
    - std::io::Result::len
    - ImageResult::total_bytes_overflows_u64
    - UnsupportedError::from_format_and_kind
    - Option::update_header_info
    - UnsupportedErrorKind::GenericFeature
    - read_line_u8
    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:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 303
    functionName: HdrDecoder::metadata
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: HdrMetadata
    signature: pub fn metadata(&self) -> HdrMetadata
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:309,1
    - Dst: DecoderPreparedImage::new
      Src: /src/image/src/codecs/hdr/decoder.rs:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: HdrDecoder::prepare_image
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - DecoderPreparedImage::new
    linkageType: ''
    returnType: ImageResult
    signature: fn prepare_image(&mut self) -> ImageResult<DecoderPreparedImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_support
      Src: /src/image/src/codecs/hdr/decoder.rs:313,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/hdr/decoder.rs:313,1
    - Dst: Limits::check_dimensions
      Src: /src/image/src/codecs/hdr/decoder.rs:314,1
    - Dst: size_of::<Rgbe8Pixel>
      Src: /src/image/src/codecs/hdr/decoder.rs:316,1
    - Dst: Limits::reserve
      Src: /src/image/src/codecs/hdr/decoder.rs:317,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - limits
    argTypes:
    - Limits
    constantsTouched: []
    func_position:
      end: 319
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 319
    functionName: HdrDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Limits::reserve
    - size_of::<Rgbe8Pixel>
    - crate::LimitSupport::default
    - Limits::check_support
    - Limits::check_dimensions
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, mut limits: Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HdrDecoder::prepare_image
      Src: /src/image/src/codecs/hdr/decoder.rs:322,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:327,1
    - Dst: DecodedImageAttributes::default
      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: io::Result::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
    - Dst: DecodedImageAttributes::default
      Src: /src/image/src/codecs/hdr/decoder.rs:346,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 55
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 347
      start: 321
    functionDepth: 12
    functionLinenumber: 321
    functionLinenumberEnd: 347
    functionName: HdrDecoder::read_image
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - io::Result::iter
    - std::io::Result::chunks_exact_mut
    - Ok
    - iter_mut
    - HdrDecoder::prepare_image
    - zip
    - copy_from_slice
    - read_scanline
    - DecodedImageAttributes::default
    - to_hdr
    - bytemuck::cast_slice
    - as_chunks_mut::<PIXEL_SIZE>
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(&mut self, buf: &mut [u8]) -> ImageResult<DecodedImageAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::stream_position
      Src: /src/image/src/codecs/bmp/decoder.rs:721,1
    - Dst: Result::seek
      Src: /src/image/src/codecs/bmp/decoder.rs:722,1
    - Dst: SeekFrom::End
      Src: /src/image/src/codecs/bmp/decoder.rs:722,1
    - Dst: Result::seek
      Src: /src/image/src/codecs/bmp/decoder.rs:723,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:723,1
    - Dst: std::io::Result::split_last_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:725,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:727,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:730,1
    - Dst: len
      Src: /src/image/src/codecs/bmp/decoder.rs:730,1
    - Dst: usize::try_from
      Src: /src/image/src/codecs/bmp/decoder.rs:730,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:731,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:733,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:737,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 5
    argNames:
    - reader
    - buf
    - current_file_row
    - last_row
    - spec_strictness
    argTypes:
    - '&mut (impl io::Read + Seek)'
    - '&mut [u8]'
    - '&mut u32'
    - u32
    - SpecCompliance
    constantsTouched: []
    func_position:
      end: 738
      start: 710
    functionDepth: 11
    functionLinenumber: 710
    functionLinenumberEnd: 738
    functionName: read_scanline
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 5
    functionsReached:
    - len
    - SeekFrom::Start
    - Result::read_exact
    - Ok
    - std::io::Result::split_last_mut
    - Result::stream_position
    - usize::try_from
    - SeekFrom::End
    - Result::seek
    linkageType: ''
    returnType: io::Result
    signature: 'fn read_scanline(reader: &mut (impl io::Read + Seek),buf: &mut [u8],current_file_row:
      &mut u32,last_row: u32,spec_strictness: SpecCompliance,) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/hdr/decoder.rs:374,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut R'
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 376
    functionName: read_byte
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 2
    functionsReached:
    - Ok
    - Result::read_exact
    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:390,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:394,1
    - Dst: DecoderError::WrongScanlineLength
      Src: /src/image/src/codecs/hdr/decoder.rs:394,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:394,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/hdr/decoder.rs:397,1
    - Dst: iter
      Src: /src/image/src/codecs/hdr/decoder.rs:398,1
    - Dst: enumerate
      Src: /src/image/src/codecs/hdr/decoder.rs:398,1
    - Dst: set_component
      Src: /src/image/src/codecs/hdr/decoder.rs:399,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:407,1
    - Dst: DecoderError::WrongScanlineLength
      Src: /src/image/src/codecs/hdr/decoder.rs:407,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:407,1
    - Dst: read_byte
      Src: /src/image/src/codecs/hdr/decoder.rs:410,1
    - Dst: set_component
      Src: /src/image/src/codecs/hdr/decoder.rs:412,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:419,1
    - Dst: DecoderError::WrongScanlineLength
      Src: /src/image/src/codecs/hdr/decoder.rs:419,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:419,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:421,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 79
    argCount: 3
    argNames:
    - r
    - width
    - set_component
    argTypes:
    - '&mut R'
    - usize
    - S
    constantsTouched: []
    func_position:
      end: 422
      start: 380
    functionDepth: 9
    functionLinenumber: 380
    functionLinenumberEnd: 422
    functionName: decode_component
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - iter
    - Result::read_exact
    - Err
    - enumerate
    - Ok
    - into
    - read_byte
    - set_component
    - DecoderError::WrongScanlineLength
    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:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pix
    argTypes:
    - Rgbe8Pixel
    constantsTouched: []
    func_position:
      end: 439
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 439
    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:429,1
    - Dst: rl_marker
      Src: /src/image/src/codecs/hdr/decoder.rs:442,1
    - Dst: Option::is_some
      Src: /src/image/src/codecs/hdr/decoder.rs:442,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:443,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:443,1
    - Dst: read_rgbe
      Src: /src/image/src/codecs/hdr/decoder.rs:451,1
    - Dst: rl_marker
      Src: /src/image/src/codecs/hdr/decoder.rs:454,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:458,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:458,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:472,1
    - Dst: DecoderError::WrongScanlineLength
      Src: /src/image/src/codecs/hdr/decoder.rs:472,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:472,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:485,1
    - Dst: DecoderError::WrongScanlineLength
      Src: /src/image/src/codecs/hdr/decoder.rs:485,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:485,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:487,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 84
    argCount: 3
    argNames:
    - r
    - fb
    - buf
    argTypes:
    - '&mut R'
    - Rgbe8Pixel
    - '&mut [Rgbe8Pixel]'
    constantsTouched: []
    func_position:
      end: 488
      start: 427
    functionDepth: 9
    functionLinenumber: 427
    functionLinenumberEnd: 488
    functionName: decode_old_rle
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - read_rgbe
    - Ok
    - Option::is_some
    - rl_marker
    - into
    - std::io::Result::len
    - DecoderError::WrongScanlineLength
    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:492,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut R'
    constantsTouched: []
    func_position:
      end: 497
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 497
    functionName: read_rgbe
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Result::read_exact
    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: 540
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 540
    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:547,1
    - Dst: Option::map
      Src: /src/image/src/codecs/hdr/decoder.rs:547,1
    - Dst: trim
      Src: /src/image/src/codecs/hdr/decoder.rs:547,1
    - Dst: push
      Src: /src/image/src/codecs/hdr/decoder.rs:550,1
    - Dst: to_owned
      Src: /src/image/src/codecs/hdr/decoder.rs:552,1
    - Dst: S::Larger::to_owned
      Src: /src/image/src/codecs/hdr/decoder.rs:552,1
    - Dst: push
      Src: /src/image/src/codecs/hdr/decoder.rs:553,1
    - Dst: String::new
      Src: /src/image/src/codecs/hdr/decoder.rs:555,1
    - Dst: std::io::Result::to_owned
      Src: /src/image/src/codecs/hdr/decoder.rs:555,1
    - Dst: S::Larger::trim
      Src: /src/image/src/codecs/hdr/decoder.rs:561,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:563,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/hdr/decoder.rs:563,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/hdr/decoder.rs:564,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:565,1
    - Dst: UnsupportedErrorKind::Format
      Src: /src/image/src/codecs/hdr/decoder.rs:566,1
    - Dst: ImageFormatHint::Name
      Src: /src/image/src/codecs/hdr/decoder.rs:566,1
    - Dst: limit_string_len
      Src: /src/image/src/codecs/hdr/decoder.rs:566,1
    - Dst: S::Larger::trim
      Src: /src/image/src/codecs/hdr/decoder.rs:574,1
    - Dst: trim().parse::<f32>
      Src: /src/image/src/codecs/hdr/decoder.rs:574,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/decoder.rs:576,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/hdr/decoder.rs:576,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:580,1
    - Dst: DecoderError::UnparsableF32
      Src: /src/image/src/codecs/hdr/decoder.rs:580,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:580,1
    - Dst: S::Larger::trim
      Src: /src/image/src/codecs/hdr/decoder.rs:590,1
    - Dst: trim().parse::<f32>
      Src: /src/image/src/codecs/hdr/decoder.rs:590,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/decoder.rs:592,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/hdr/decoder.rs:592,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:597,1
    - Dst: DecoderError::UnparsableF32
      Src: /src/image/src/codecs/hdr/decoder.rs:597,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:597,1
    - Dst: parse_space_separated_f32
      Src: /src/image/src/codecs/hdr/decoder.rs:608,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:611,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:611,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/hdr/decoder.rs:613,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/decoder.rs:615,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:619,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:632,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 120
    argCount: 2
    argNames:
    - line
    - strict
    argTypes:
    - '&str'
    - bool
    constantsTouched: []
    func_position:
      end: 633
      start: 544
    functionDepth: 12
    functionLinenumber: 544
    functionLinenumberEnd: 633
    functionName: HdrMetadata::update_header_info
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - split_at_first
    - Err
    - ImageFormatHint::Name
    - Some
    - into
    - to_owned
    - DecoderError::UnparsableF32
    - UnsupportedErrorKind::Format
    - ImageError::Unsupported
    - limit_string_len
    - UnsupportedError::from_format_and_kind
    - std::io::Result::to_owned
    - trim().parse::<f32>
    - parse_space_separated_f32
    - Option::map
    - String::new
    - Ok
    - push
    - S::Larger::to_owned
    - trim
    - unwrap_or
    - S::Larger::trim
    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:637,1
    - Dst: '&mut [f32]::iter_mut'
      Src: /src/image/src/codecs/hdr/decoder.rs:638,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:639,1
    - Dst: parse::<f32>
      Src: /src/image/src/codecs/hdr/decoder.rs:640,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:642,1
    - Dst: DecoderError::UnparsableF32
      Src: /src/image/src/codecs/hdr/decoder.rs:642,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:642,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:646,1
    - Dst: DecoderError::LineTooShort
      Src: /src/image/src/codecs/hdr/decoder.rs:646,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:646,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:649,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:649,1
    - Dst: is_some
      Src: /src/image/src/codecs/hdr/decoder.rs:649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 3
    argNames:
    - line
    - vals
    - line_tp
    argTypes:
    - '&str'
    - '&mut [f32]'
    - LineType
    constantsTouched: []
    func_position:
      end: 650
      start: 636
    functionDepth: 9
    functionLinenumber: 636
    functionLinenumberEnd: 650
    functionName: parse_space_separated_f32
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - std::io::Result::split_whitespace
    - DecoderError::UnparsableF32
    - Err
    - DecoderError::LineTooShort
    - Ok
    - is_some
    - into
    - next
    - parse::<f32>
    - '&mut [f32]::iter_mut'
    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:657,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:658,1
    - Dst: ok_or
      Src: /src/image/src/codecs/hdr/decoder.rs:658,1
    - Dst: DecoderError::DimensionsLineTooShort
      Src: /src/image/src/codecs/hdr/decoder.rs:660,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:661,1
    - Dst: ok_or
      Src: /src/image/src/codecs/hdr/decoder.rs:661,1
    - Dst: DecoderError::DimensionsLineTooShort
      Src: /src/image/src/codecs/hdr/decoder.rs:663,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:664,1
    - Dst: ok_or
      Src: /src/image/src/codecs/hdr/decoder.rs:664,1
    - Dst: DecoderError::DimensionsLineTooShort
      Src: /src/image/src/codecs/hdr/decoder.rs:666,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:667,1
    - Dst: ok_or
      Src: /src/image/src/codecs/hdr/decoder.rs:667,1
    - Dst: DecoderError::DimensionsLineTooShort
      Src: /src/image/src/codecs/hdr/decoder.rs:669,1
    - Dst: next
      Src: /src/image/src/codecs/hdr/decoder.rs:670,1
    - Dst: is_some
      Src: /src/image/src/codecs/hdr/decoder.rs:670,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:672,1
    - Dst: DecoderError::DimensionsLineTooLong
      Src: /src/image/src/codecs/hdr/decoder.rs:672,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:672,1
    - Dst: parse::<u32>
      Src: /src/image/src/codecs/hdr/decoder.rs:680,1
    - Dst: map_err
      Src: /src/image/src/codecs/hdr/decoder.rs:680,1
    - Dst: DecoderError::UnparsableU32
      Src: /src/image/src/codecs/hdr/decoder.rs:682,1
    - Dst: parse::<u32>
      Src: /src/image/src/codecs/hdr/decoder.rs:683,1
    - Dst: map_err
      Src: /src/image/src/codecs/hdr/decoder.rs:683,1
    - Dst: DecoderError::UnparsableU32
      Src: /src/image/src/codecs/hdr/decoder.rs:685,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:686,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:688,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/hdr/decoder.rs:688,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/hdr/decoder.rs:689,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:690,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/hdr/decoder.rs:691,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 64
    argCount: 2
    argNames:
    - line
    - strict
    argTypes:
    - '&str'
    - bool
    constantsTouched: []
    func_position:
      end: 699
      start: 654
    functionDepth: 9
    functionLinenumber: 654
    functionLinenumberEnd: 699
    functionName: parse_dimensions_line
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - std::io::Result::split_whitespace
    - Err
    - DecoderError::UnparsableU32
    - Ok
    - parse::<u32>
    - ok_or
    - is_some
    - ImageError::Unsupported
    - into
    - next
    - map_err
    - UnsupportedError::from_format_and_kind
    - DecoderError::DimensionsLineTooShort
    - UnsupportedErrorKind::GenericFeature
    - DecoderError::DimensionsLineTooLong
    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:703,1
    - Dst: count
      Src: /src/image/src/codecs/hdr/decoder.rs:703,1
    - Dst: Result::chars
      Src: /src/image/src/codecs/hdr/decoder.rs:705,1
    - Dst: take
      Src: /src/image/src/codecs/hdr/decoder.rs:705,1
    - Dst: chain
      Src: /src/image/src/codecs/hdr/decoder.rs:705,1
    - Dst: '&str::chars'
      Src: /src/image/src/codecs/hdr/decoder.rs:705,1
    - Dst: collect
      Src: /src/image/src/codecs/hdr/decoder.rs:705,1
    - Dst: Result::into
      Src: /src/image/src/codecs/hdr/decoder.rs:707,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - '&str'
    - usize
    constantsTouched: []
    func_position:
      end: 709
      start: 702
    functionDepth: 10
    functionLinenumber: 702
    functionLinenumberEnd: 709
    functionName: limit_string_len
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - chain
    - take
    - Result::chars
    - Result::into
    - '&str::chars'
    - count
    - collect
    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:714,1
    - Dst: Result::len
      Src: /src/image/src/codecs/hdr/decoder.rs:716,1
    - Dst: '&str::len'
      Src: /src/image/src/codecs/hdr/decoder.rs:716,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/decoder.rs:717,1
    - Dst: '&str::len'
      Src: /src/image/src/codecs/hdr/decoder.rs:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - s
    - separator
    argTypes:
    - '&''a str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 719
      start: 713
    functionDepth: 11
    functionLinenumber: 713
    functionLinenumberEnd: 719
    functionName: split_at_first
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 1
    functionsReached:
    - '&str::len'
    - Some
    - Result::find
    - Result::len
    linkageType: ''
    returnType: Option
    signature: 'fn split_at_first<''a>(s: &''a str, separator: &str) -> Option<(&''a
      str, &''a str)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::with_capacity
      Src: /src/image/src/codecs/hdr/decoder.rs:728,1
    - Dst: Result::read
      Src: /src/image/src/codecs/hdr/decoder.rs:731,1
    - Dst: Result::is_empty
      Src: /src/image/src/codecs/hdr/decoder.rs:732,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:733,1
    - Dst: Ok
      Src: /src/image/src/codecs/hdr/decoder.rs:735,1
    - Dst: Some
      Src: /src/image/src/codecs/hdr/decoder.rs:735,1
    - Dst: Result::len
      Src: /src/image/src/codecs/hdr/decoder.rs:738,1
    - Dst: Err
      Src: /src/image/src/codecs/hdr/decoder.rs:739,1
    - Dst: into
      Src: /src/image/src/codecs/hdr/decoder.rs:739,1
    - Dst: Result::push
      Src: /src/image/src/codecs/hdr/decoder.rs:741,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 2
    argNames:
    - r
    - max_len
    argTypes:
    - '&mut R'
    - usize
    constantsTouched: []
    func_position:
      end: 743
      start: 725
    functionDepth: 11
    functionLinenumber: 725
    functionLinenumberEnd: 743
    functionName: read_line_u8
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 2
    functionsReached:
    - Err
    - Ok
    - Result::is_empty
    - Result::read
    - Vec::with_capacity
    - Some
    - into
    - Result::len
    - Result::push
    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: 773
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 773
    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:777,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/hdr/decoder.rs:778,1
    - Dst: read_line_u8
      Src: /src/image/src/codecs/hdr/decoder.rs:780,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/hdr/decoder.rs:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 790
      start: 776
    functionDepth: 9
    functionLinenumber: 776
    functionLinenumberEnd: 790
    functionName: tests::read_line_u8_test
    functionSourceFile: /src/image/src/codecs/hdr/decoder.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - ImageResult::unwrap
    - into
    - read_line_u8
    linkageType: ''
    returnType: void
    signature: fn read_line_u8_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - w
    argTypes:
    - 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: 7
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(w: W) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpEncoder::encode_with_palette
      Src: /src/image/src/codecs/bmp/encoder.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - image
    - width
    - height
    - c
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 41
      start: 33
    functionDepth: 9
    functionLinenumber: 33
    functionLinenumberEnd: 41
    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:60,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/encoder.rs:65,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/bmp/encoder.rs:65,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/bmp/encoder.rs:65,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/bmp/encoder.rs:66,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/bmp/encoder.rs:67,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/encoder.rs:75,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/bmp/encoder.rs:75,1
    - Dst: crate::error::LimitError::from_kind
      Src: /src/image/src/codecs/bmp/encoder.rs:75,1
    - Dst: Option::buffer_size
      Src: /src/image/src/codecs/bmp/encoder.rs:80,1
    - Dst: written_pixel_info
      Src: /src/image/src/codecs/bmp/encoder.rs:91,1
    - Dst: div_ceil
      Src: /src/image/src/codecs/bmp/encoder.rs:93,1
    - Dst: next_multiple_of
      Src: /src/image/src/codecs/bmp/encoder.rs:94,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/bmp/encoder.rs:97,1
    - Dst: and_then
      Src: /src/image/src/codecs/bmp/encoder.rs:97,1
    - Dst: u32::try_from
      Src: /src/image/src/codecs/bmp/encoder.rs:99,1
    - Dst: Result::ok
      Src: /src/image/src/codecs/bmp/encoder.rs:99,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/bmp/encoder.rs:97,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/bmp/encoder.rs:101,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/bmp/encoder.rs:101,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/bmp/encoder.rs:107,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/bmp/encoder.rs:107,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/bmp/encoder.rs:108,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/bmp/encoder.rs:108,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/bmp/encoder.rs:109,1
    - Dst: BITMAPFILEHEADER_SIZE::checked_add
      Src: /src/image/src/codecs/bmp/encoder.rs:114,1
    - Dst: and_then
      Src: /src/image/src/codecs/bmp/encoder.rs:114,1
    - Dst: DynamicImage::checked_add
      Src: /src/image/src/codecs/bmp/encoder.rs:116,1
    - Dst: and_then
      Src: /src/image/src/codecs/bmp/encoder.rs:114,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:114,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: BITMAPFILEHEADER_SIZE::checked_add
      Src: /src/image/src/codecs/bmp/encoder.rs:125,1
    - Dst: and_then
      Src: /src/image/src/codecs/bmp/encoder.rs:125,1
    - Dst: DynamicImage::checked_add
      Src: /src/image/src/codecs/bmp/encoder.rs:127,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/bmp/encoder.rs:125,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/bmp/encoder.rs:129,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/bmp/encoder.rs:129,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/bmp/encoder.rs:130,1
    - Dst: write_u8
      Src: /src/image/src/codecs/bmp/encoder.rs:136,1
    - Dst: write_u8
      Src: /src/image/src/codecs/bmp/encoder.rs:137,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:138,1
    - Dst: writer.write_u16::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:139,1
    - Dst: writer.write_u16::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:140,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:141,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:144,1
    - Dst: writer.write_i32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:145,1
    - Dst: writer.write_i32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:146,1
    - Dst: writer.write_u16::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:147,1
    - Dst: writer.write_u16::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:148,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:151,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:155,1
    - Dst: writer.write_i32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:156,1
    - Dst: writer.write_i32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:157,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:158,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:159,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:162,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:163,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:164,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:165,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:166,1
    - Dst: writer.write_u32::<LittleEndian>
      Src: /src/image/src/codecs/bmp/encoder.rs:170,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:176,1
    - Dst: BmpEncoder::encode_rgb
      Src: /src/image/src/codecs/bmp/encoder.rs:181,1
    - Dst: BmpEncoder::encode_rgba
      Src: /src/image/src/codecs/bmp/encoder.rs:182,1
    - Dst: BmpEncoder::encode_1bit_palette
      Src: /src/image/src/codecs/bmp/encoder.rs:184,1
    - Dst: BmpEncoder::encode_gray
      Src: /src/image/src/codecs/bmp/encoder.rs:187,1
    - Dst: BmpEncoder::encode_gray
      Src: /src/image/src/codecs/bmp/encoder.rs:190,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/encoder.rs:193,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/encoder.rs:193,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/encoder.rs:194,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/encoder.rs:195,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/bmp/encoder.rs:196,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:202,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 276
    argCount: 5
    argNames:
    - image
    - width
    - height
    - color_type
    - palette
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    - Option<&[[u8; 3]]>
    constantsTouched: []
    func_position:
      end: 203
      start: 52
    functionDepth: 8
    functionLinenumber: 52
    functionLinenumberEnd: 203
    functionName: BmpEncoder::encode_with_palette
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - UnsupportedErrorKind::Color
    - writer.write_i32::<LittleEndian>
    - written_pixel_info
    - BmpEncoder::encode_rgb
    - EncodingError::new
    - checked_mul
    - ParameterErrorKind::Generic
    - div_ceil
    - into
    - ImageError::Encoding
    - BmpEncoder::encode_rgba
    - write_u8
    - writer.write_u16::<LittleEndian>
    - ImageError::Unsupported
    - ImageResult::is_some
    - UnsupportedError::from_format_and_kind
    - next_multiple_of
    - Option::buffer_size
    - BITMAPFILEHEADER_SIZE::checked_add
    - '&str::to_string'
    - DynamicImage::checked_add
    - and_then
    - ok_or_else
    - ParameterError::from_kind
    - writer.write_u32::<LittleEndian>
    - ImageError::Limits
    - crate::error::LimitError::from_kind
    - Result::ok
    - BmpEncoder::encode_1bit_palette
    - Ok
    - u32::try_from
    - ImageFormatHint::Exact
    - BmpEncoder::encode_gray
    - ImageError::Parameter
    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:217,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/bmp/encoder.rs:220,1
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:225,1
    - Dst: BmpEncoder::write_row_pad
      Src: /src/image/src/codecs/bmp/encoder.rs:227,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:230,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: 231
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 231
    functionName: BmpEncoder::encode_rgb
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached:
    - chunks_exact
    - Ok
    - rev
    - write_all
    - BmpEncoder::write_row_pad
    linkageType: ''
    returnType: io::Result
    signature: 'fn encode_rgb(&mut self,image: &[u8],width: u32,height: u32,row_padding:
      u32,bytes_per_pixel: u32,) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rev
      Src: /src/image/src/codecs/bmp/encoder.rs:245,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/bmp/encoder.rs:248,1
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:254,1
    - Dst: BmpEncoder::write_row_pad
      Src: /src/image/src/codecs/bmp/encoder.rs:256,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:259,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: 260
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 260
    functionName: BmpEncoder::encode_rgba
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached:
    - chunks_exact
    - Ok
    - rev
    - write_all
    - BmpEncoder::write_row_pad
    linkageType: ''
    returnType: io::Result
    signature: 'fn encode_rgba(&mut self,image: &[u8],width: u32,height: u32,row_padding:
      u32,bytes_per_pixel: u32,) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:275,1
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:280,1
    - Dst: rev
      Src: /src/image/src/codecs/bmp/encoder.rs:287,1
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:294,1
    - Dst: write_u8
      Src: /src/image/src/codecs/bmp/encoder.rs:299,1
    - Dst: BmpEncoder::write_row_pad
      Src: /src/image/src/codecs/bmp/encoder.rs:304,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:307,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: 308
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 308
    functionName: BmpEncoder::encode_gray
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached:
    - write_u8
    - Ok
    - rev
    - write_all
    - BmpEncoder::write_row_pad
    linkageType: ''
    returnType: io::Result
    signature: 'fn encode_gray(&mut self,image: &[u8],width: u32,height: u32,row_padding:
      u32,bytes_per_pixel: u32,palette: Option<&[[u8; 3]]>,) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::iter
      Src: /src/image/src/codecs/bmp/encoder.rs:321,1
    - Dst: take
      Src: /src/image/src/codecs/bmp/encoder.rs:321,1
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:323,1
    - Dst: ImageResult::len
      Src: /src/image/src/codecs/bmp/encoder.rs:326,1
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:327,1
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:331,1
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:332,1
    - Dst: u32::div_ceil
      Src: /src/image/src/codecs/bmp/encoder.rs:338,1
    - Dst: Vec::chunks_exact
      Src: /src/image/src/codecs/bmp/encoder.rs:339,1
    - Dst: rev
      Src: /src/image/src/codecs/bmp/encoder.rs:339,1
    - Dst: write_all
      Src: /src/image/src/codecs/bmp/encoder.rs:341,1
    - Dst: BmpEncoder::write_row_pad
      Src: /src/image/src/codecs/bmp/encoder.rs:342,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:345,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 64
    argCount: 5
    argNames:
    - image
    - width
    - _height
    - row_padding
    - palette
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - u32
    - Option<&[[u8; 3]]>
    constantsTouched: []
    func_position:
      end: 346
      start: 310
    functionDepth: 9
    functionLinenumber: 310
    functionLinenumberEnd: 346
    functionName: BmpEncoder::encode_1bit_palette
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached:
    - take
    - Ok
    - ImageResult::iter
    - u32::div_ceil
    - Vec::chunks_exact
    - rev
    - write_all
    - BmpEncoder::write_row_pad
    - ImageResult::len
    linkageType: ''
    returnType: io::Result
    signature: 'fn encode_1bit_palette(&mut self,image: &[u8],width: u32,_height:
      u32,row_padding: u32,palette: Option<&[[u8; 3]]>,) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_u8
      Src: /src/image/src/codecs/bmp/encoder.rs:350,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - row_pad_size
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 354
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 354
    functionName: BmpEncoder::write_row_pad
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 4
    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:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 367
      start: 359
    functionDepth: 10
    functionLinenumber: 359
    functionLinenumberEnd: 367
    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:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - img
    argTypes:
    - crate::io::encoder::MethodSealedToImage
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 375
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 375
    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:384,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/encoder.rs:385,1
    - Dst: u32::try_from
      Src: /src/image/src/codecs/bmp/encoder.rs:389,1
    - Dst: ImageResult::map
      Src: /src/image/src/codecs/bmp/encoder.rs:389,1
    - Dst: Result::len
      Src: /src/image/src/codecs/bmp/encoder.rs:389,1
    - Dst: ImageResult::unwrap_or
      Src: /src/image/src/codecs/bmp/encoder.rs:389,1
    - Dst: Result::ok
      Src: /src/image/src/codecs/bmp/encoder.rs:389,1
    - Dst: u32::try_from
      Src: /src/image/src/codecs/bmp/encoder.rs:394,1
    - Dst: ImageResult::map
      Src: /src/image/src/codecs/bmp/encoder.rs:394,1
    - Dst: Result::len
      Src: /src/image/src/codecs/bmp/encoder.rs:394,1
    - Dst: ImageResult::unwrap_or
      Src: /src/image/src/codecs/bmp/encoder.rs:394,1
    - Dst: Result::ok
      Src: /src/image/src/codecs/bmp/encoder.rs:394,1
    - Dst: u32::try_from
      Src: /src/image/src/codecs/bmp/encoder.rs:399,1
    - Dst: ImageResult::map
      Src: /src/image/src/codecs/bmp/encoder.rs:399,1
    - Dst: Result::len
      Src: /src/image/src/codecs/bmp/encoder.rs:399,1
    - Dst: ImageResult::unwrap_or
      Src: /src/image/src/codecs/bmp/encoder.rs:399,1
    - Dst: Result::ok
      Src: /src/image/src/codecs/bmp/encoder.rs:399,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/encoder.rs:402,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/encoder.rs:402,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/encoder.rs:403,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/encoder.rs:404,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/bmp/encoder.rs:405,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/bmp/encoder.rs:411,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/bmp/encoder.rs:412,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/bmp/encoder.rs:412,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/bmp/encoder.rs:413,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/encoder.rs:418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 55
    argCount: 2
    argNames:
    - c
    - palette
    argTypes:
    - ExtendedColorType
    - Option<&[[u8; 3]]>
    constantsTouched: []
    func_position:
      end: 419
      start: 379
    functionDepth: 7
    functionLinenumber: 379
    functionLinenumberEnd: 419
    functionName: written_pixel_info
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 1
    functionsReached:
    - ImageResult::unwrap_or
    - Err
    - UnsupportedError::from_format_and_kind
    - Result::ok
    - UnsupportedErrorKind::Color
    - Ok
    - u32::try_from
    - EncodingError::new
    - ok_or_else
    - ImageFormatHint::Exact
    - ImageError::Unsupported
    - Some
    - into
    - Result::len
    - ImageError::Encoding
    - ImageResult::map
    linkageType: ''
    returnType: Result
    signature: 'fn written_pixel_info(c: ExtendedColorType,palette: Option<&[[u8;
      3]]>,) -> Result<(u32, u16, u32), ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/encoder.rs:478,1
    - Dst: TgaEncoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:480,1
    - Dst: TgaEncoder::disable_rle
      Src: /src/image/src/codecs/tga/encoder.rs:480,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/tga/encoder.rs:481,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/tga/encoder.rs:481,1
    - Dst: TgaDecoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:487,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/tga/encoder.rs:487,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/tga/encoder.rs:487,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/tga/encoder.rs:488,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:488,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/tga/encoder.rs:490,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/tga/encoder.rs:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 4
    argNames:
    - image
    - width
    - height
    - c
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 492
      start: 472
    functionDepth: 13
    functionLinenumber: 472
    functionLinenumberEnd: 492
    functionName: tests::round_trip_image
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - TgaEncoder::disable_rle
    - ImageResult::read_image
    - ImageResult::expect
    - ImageResult::encode
    - ImageResult::unwrap
    - TgaEncoder::new
    - ImageResult::prepare_image
    - Vec::new
    - Cursor::new
    - TgaDecoder::new
    linkageType: ''
    returnType: Vec
    signature: 'fn round_trip_image(image: &[u8],width: u32,height: u32,c: ExtendedColorType,)
      -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/tga/encoder.rs:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 495
    functionDepth: 14
    functionLinenumber: 495
    functionLinenumberEnd: 500
    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:459,1
    - Dst: BmpEncoder::new
      Src: /src/image/src/codecs/bmp/encoder.rs:461,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/bmp/encoder.rs:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 464
      start: 458
    functionDepth: 13
    functionLinenumber: 458
    functionLinenumberEnd: 464
    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:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 508
      start: 503
    functionDepth: 14
    functionLinenumber: 503
    functionLinenumberEnd: 508
    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:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 532
      start: 527
    functionDepth: 14
    functionLinenumber: 527
    functionLinenumberEnd: 532
    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:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 516
      start: 511
    functionDepth: 14
    functionLinenumber: 511
    functionLinenumberEnd: 516
    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:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 524
      start: 519
    functionDepth: 14
    functionLinenumber: 519
    functionLinenumberEnd: 524
    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:516,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/bmp/encoder.rs:517,1
    - Dst: ImageResult::unwrap_err
      Src: /src/image/src/codecs/bmp/encoder.rs:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 520
      start: 514
    functionDepth: 13
    functionLinenumber: 514
    functionLinenumberEnd: 520
    functionName: tests::regression_issue_2604
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap_err
    - BmpEncoder::new
    - ImageResult::encode
    linkageType: ''
    returnType: void
    signature: fn regression_issue_2604()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/bmp/encoder.rs:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 538
      start: 523
    functionDepth: 14
    functionLinenumber: 523
    functionLinenumberEnd: 538
    functionName: tests::round_trip_1bit
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - round_trip_image
    linkageType: ''
    returnType: void
    signature: fn round_trip_1bit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/bmp/encoder.rs:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 553
      start: 541
    functionDepth: 14
    functionLinenumber: 541
    functionLinenumberEnd: 553
    functionName: tests::round_trip_1bit_non_multiple_of_8
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - round_trip_image
    linkageType: ''
    returnType: void
    signature: fn round_trip_1bit_non_multiple_of_8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/bmp/encoder.rs:560,1
    - Dst: round_trip_image
      Src: /src/image/src/codecs/bmp/encoder.rs:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 569
      start: 556
    functionDepth: 14
    functionLinenumber: 556
    functionLinenumberEnd: 569
    functionName: tests::round_trip_1bit_single_pixel
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - round_trip_image
    linkageType: ''
    returnType: void
    signature: fn round_trip_1bit_single_pixel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/bmp/encoder.rs:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 586
      start: 572
    functionDepth: 14
    functionLinenumber: 572
    functionLinenumberEnd: 586
    functionName: tests::round_trip_1bit_9px
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - round_trip_image
    linkageType: ''
    returnType: void
    signature: fn round_trip_1bit_9px()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/bmp/encoder.rs:599,1
    - Dst: BmpEncoder::new
      Src: /src/image/src/codecs/bmp/encoder.rs:601,1
    - Dst: ImageResult::encode_with_palette
      Src: /src/image/src/codecs/bmp/encoder.rs:602,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/encoder.rs:603,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/bmp/encoder.rs:602,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/encoder.rs:608,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/encoder.rs:608,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/bmp/encoder.rs:608,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/bmp/encoder.rs:609,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/encoder.rs:609,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/bmp/encoder.rs:611,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/bmp/encoder.rs:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 619
      start: 589
    functionDepth: 9
    functionLinenumber: 589
    functionLinenumberEnd: 619
    functionName: tests::round_trip_1bit_with_custom_palette
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::encode_with_palette
    - ImageResult::read_image
    - ImageResult::expect
    - ImageResult::unwrap
    - BmpDecoder::new
    - Some
    - ImageResult::prepare_image
    - Vec::new
    - Cursor::new
    - BmpEncoder::new
    linkageType: ''
    returnType: void
    signature: fn round_trip_1bit_with_custom_palette()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/bmp/encoder.rs:626,1
    - Dst: width::min
      Src: /src/image/src/codecs/bmp/encoder.rs:629,1
    - Dst: Vec::push
      Src: /src/image/src/codecs/bmp/encoder.rs:636,1
    - Dst: round_trip_image
      Src: /src/image/src/codecs/bmp/encoder.rs:640,1
    - Dst: RowsDecoded::chunks
      Src: /src/image/src/codecs/bmp/encoder.rs:643,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 647
      start: 622
    functionDepth: 14
    functionLinenumber: 622
    functionLinenumberEnd: 647
    functionName: tests::round_trip_1bit_various_widths
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - RowsDecoded::chunks
    - round_trip_image
    - width::min
    - Vec::new
    - Vec::push
    linkageType: ''
    returnType: void
    signature: fn round_trip_1bit_various_widths()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/bmp/encoder.rs:654,1
    - Dst: BmpEncoder::new
      Src: /src/image/src/codecs/bmp/encoder.rs:655,1
    - Dst: ImageResult::encode_with_palette
      Src: /src/image/src/codecs/bmp/encoder.rs:658,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/encoder.rs:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 661
      start: 650
    functionDepth: 9
    functionLinenumber: 650
    functionLinenumberEnd: 661
    functionName: tests::encode_1bit_invalid_palette_type
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - ImageResult::encode_with_palette
    - Some
    - BmpEncoder::new
    linkageType: ''
    returnType: void
    signature: fn encode_1bit_invalid_palette_type()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/bmp/encoder.rs:669,1
    - Dst: Vec::push
      Src: /src/image/src/codecs/bmp/encoder.rs:676,1
    - Dst: round_trip_image
      Src: /src/image/src/codecs/bmp/encoder.rs:679,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 694
      start: 664
    functionDepth: 14
    functionLinenumber: 664
    functionLinenumberEnd: 694
    functionName: tests::round_trip_1bit_checkerboard
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - Vec::push
    - round_trip_image
    linkageType: ''
    returnType: void
    signature: fn round_trip_1bit_checkerboard()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/bmp/encoder.rs:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 735
      start: 697
    functionDepth: 14
    functionLinenumber: 697
    functionLinenumberEnd: 735
    functionName: tests::round_trip_1bit_13x3
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - round_trip_image
    linkageType: ''
    returnType: void
    signature: fn round_trip_1bit_13x3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpEncoder::new
      Src: /src/image/src/codecs/bmp/encoder.rs:741,1
    - Dst: std::io::sink
      Src: /src/image/src/codecs/bmp/encoder.rs:741,1
    - Dst: Self::encode
      Src: /src/image/src/codecs/bmp/encoder.rs:741,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/bmp/encoder.rs:741,1
    - Dst: BmpEncoder::new
      Src: /src/image/src/codecs/bmp/encoder.rs:746,1
    - Dst: std::io::sink
      Src: /src/image/src/codecs/bmp/encoder.rs:746,1
    - Dst: Self::encode
      Src: /src/image/src/codecs/bmp/encoder.rs:746,1
    - Dst: ImageResult::expect_err
      Src: /src/image/src/codecs/bmp/encoder.rs:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 749
      start: 739
    functionDepth: 13
    functionLinenumber: 739
    functionLinenumberEnd: 749
    functionName: tests::dimensions_i32
    functionSourceFile: /src/image/src/codecs/bmp/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::expect_err
    - Self::encode
    - ImageResult::expect
    - std::io::sink
    - BmpEncoder::new
    linkageType: ''
    returnType: void
    signature: fn dimensions_i32()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    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:116,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:116,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:116,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:116,1
    - Dst: i32::from
      Src: /src/image/src/codecs/bmp/decoder.rs:117,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:117,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:117,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:117,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:119,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:119,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:119,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:121,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:121,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: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:129,1
    - Dst: DecoderError::InvalidChannelWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:130,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:130,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 2
    argNames:
    - buffer
    - spec_strictness
    argTypes:
    - '&[u8; 8]'
    - SpecCompliance
    constantsTouched: []
    func_position:
      end: 141
      start: 115
    functionDepth: 9
    functionLinenumber: 115
    functionLinenumberEnd: 141
    functionName: ParsedCoreHeader::parse
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - DecoderError::InvalidChannelWidth
    - try_into
    - i32::from
    - Err
    - Ok
    - unwrap
    - into
    - u16::from_le_bytes
    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:157,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:157,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:157,1
    - Dst: i32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:158,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:158,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:158,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:162,1
    - Dst: DecoderError::NegativeWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:162,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:162,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:164,1
    - Dst: DecoderError::ImageTooLarge
      Src: /src/image/src/codecs/bmp/decoder.rs:164,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:164,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:168,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:168,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:179,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:179,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:179,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:181,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:181,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:184,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:184,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:184,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:185,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:185,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:185,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:195,1
    - Dst: DecoderError::ImageTypeInvalidForTopDown
      Src: /src/image/src/codecs/bmp/decoder.rs:195,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:195,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:199,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:199,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:199,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:201,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 102
    argCount: 2
    argNames:
    - buffer
    - spec_strictness
    argTypes:
    - '&[u8; 36]'
    - SpecCompliance
    constantsTouched: []
    func_position:
      end: 209
      start: 156
    functionDepth: 9
    functionLinenumber: 156
    functionLinenumberEnd: 209
    functionName: ParsedInfoHeader::parse
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 2
    functionsReached:
    - try_into
    - Err
    - DecoderError::ImageTooLarge
    - u32::from_le_bytes
    - DecoderError::NegativeWidth
    - Ok
    - unwrap
    - into
    - DecoderError::ImageTypeInvalidForTopDown
    - i32::from_le_bytes
    - u16::from_le_bytes
    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:226,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:226,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:226,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:227,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:227,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:227,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:228,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:228,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:228,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:230,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:230,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 2
    argNames:
    - buffer
    - has_alpha
    argTypes:
    - '&[u8]'
    - bool
    constantsTouched: []
    func_position:
      end: 241
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 241
    functionName: ParsedBitfields::parse
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - unwrap
    - try_into
    - u32::from_le_bytes
    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:259,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:259,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:259,1
    - 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:270,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:270,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:270,1
    - Dst: u64::from
      Src: /src/image/src/codecs/bmp/decoder.rs:277,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 2
    argNames:
    - buffer
    - bmp_header_offset
    argTypes:
    - '&[u8]'
    - u64
    constantsTouched: []
    func_position:
      end: 283
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 283
    functionName: ParsedIccProfile::parse
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - try_into
    - u32::from_le_bytes
    - unwrap
    - u64::from
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn parse(buffer: &[u8], bmp_header_offset: u64) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:305,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:305,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:305,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:310,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:310,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:310,1
    - Dst: fxpt2dot30
      Src: /src/image/src/codecs/bmp/decoder.rs:323,1
    - Dst: read_u32
      Src: /src/image/src/codecs/bmp/decoder.rs:323,1
    - Dst: fxpt2dot30
      Src: /src/image/src/codecs/bmp/decoder.rs:324,1
    - Dst: read_u32
      Src: /src/image/src/codecs/bmp/decoder.rs:324,1
    - Dst: fxpt2dot30
      Src: /src/image/src/codecs/bmp/decoder.rs:325,1
    - Dst: read_u32
      Src: /src/image/src/codecs/bmp/decoder.rs:325,1
    - Dst: fxpt2dot30
      Src: /src/image/src/codecs/bmp/decoder.rs:326,1
    - Dst: read_u32
      Src: /src/image/src/codecs/bmp/decoder.rs:326,1
    - Dst: fxpt2dot30
      Src: /src/image/src/codecs/bmp/decoder.rs:327,1
    - Dst: read_u32
      Src: /src/image/src/codecs/bmp/decoder.rs:327,1
    - Dst: fxpt2dot30
      Src: /src/image/src/codecs/bmp/decoder.rs:328,1
    - Dst: read_u32
      Src: /src/image/src/codecs/bmp/decoder.rs:328,1
    - Dst: fxpt16dot16
      Src: /src/image/src/codecs/bmp/decoder.rs:331,1
    - Dst: read_u32
      Src: /src/image/src/codecs/bmp/decoder.rs:331,1
    - Dst: fxpt16dot16
      Src: /src/image/src/codecs/bmp/decoder.rs:332,1
    - Dst: read_u32
      Src: /src/image/src/codecs/bmp/decoder.rs:332,1
    - Dst: fxpt16dot16
      Src: /src/image/src/codecs/bmp/decoder.rs:333,1
    - Dst: read_u32
      Src: /src/image/src/codecs/bmp/decoder.rs:333,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:341,1
    - Dst: ColorSpaceInfo::CalibratedRgb
      Src: /src/image/src/codecs/bmp/decoder.rs:341,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:353,1
    - Dst: ParsedIccProfile::parse
      Src: /src/image/src/codecs/bmp/decoder.rs:355,1
    - Dst: Option::map
      Src: /src/image/src/codecs/bmp/decoder.rs:355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 64
    argCount: 3
    argNames:
    - buffer
    - bmp_header_size
    - bmp_header_offset
    argTypes:
    - '&[u8]'
    - u32
    - u64
    constantsTouched: []
    func_position:
      end: 359
      start: 303
    functionDepth: 7
    functionLinenumber: 303
    functionLinenumberEnd: 359
    functionName: ColorSpaceInfo::parse
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - try_into
    - Option::map
    - u32::from_le_bytes
    - ColorSpaceInfo::CalibratedRgb
    - unwrap
    - Some
    - ParsedIccProfile::parse
    - fxpt2dot30
    - fxpt16dot16
    - read_u32
    linkageType: ''
    returnType: Option
    signature: 'fn parse(buffer: &[u8], bmp_header_size: u32, bmp_header_offset: u64)
      -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: moxcms::Chromaticity::new
      Src: /src/image/src/codecs/bmp/decoder.rs:394,1
    - Dst: moxcms::Chromaticity::new
      Src: /src/image/src/codecs/bmp/decoder.rs:395,1
    - Dst: moxcms::Chromaticity::new
      Src: /src/image/src/codecs/bmp/decoder.rs:396,1
    - Dst: moxcms::ColorProfile::new_srgb
      Src: /src/image/src/codecs/bmp/decoder.rs:399,1
    - Dst: update_rgb_colorimetry
      Src: /src/image/src/codecs/bmp/decoder.rs:400,1
    - Dst: moxcms::ToneReprCurve::Parametric
      Src: /src/image/src/codecs/bmp/decoder.rs:409,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:410,1
    - Dst: parametric_trc
      Src: /src/image/src/codecs/bmp/decoder.rs:410,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:411,1
    - Dst: parametric_trc
      Src: /src/image/src/codecs/bmp/decoder.rs:411,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:412,1
    - Dst: parametric_trc
      Src: /src/image/src/codecs/bmp/decoder.rs:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 414
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 414
    functionName: CalibratedRgb::to_color_profile
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - parametric_trc
    - moxcms::ToneReprCurve::Parametric
    - Some
    - moxcms::Chromaticity::new
    - update_rgb_colorimetry
    - moxcms::ColorProfile::new_srgb
    linkageType: ''
    returnType: moxcms::ColorProfile
    signature: fn to_color_profile(self) -> moxcms::ColorProfile
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MetadataProgress::default
      Src: /src/image/src/codecs/bmp/decoder.rs:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 507
    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:553,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 556
    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:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 680
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 680
    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: 687
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 687
    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:691,1
    - Dst: Result::map_err
      Src: /src/image/src/codecs/bmp/decoder.rs:691,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/decoder.rs:692,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/decoder.rs:692,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:693,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/bmp/decoder.rs:694,1
    - Dst: '&RgbaImage::resize'
      Src: /src/image/src/codecs/bmp/decoder.rs:700,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - size
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 702
      start: 690
    functionDepth: 9
    functionLinenumber: 690
    functionLinenumberEnd: 702
    functionName: allocate_row_buffer
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 3
    functionsReached:
    - '&RgbaImage::resize'
    - Ok
    - ImageError::Unsupported
    - Result::map_err
    - into
    - UnsupportedErrorKind::GenericFeature
    - UnsupportedError::from_format_and_kind
    - utils::vec_try_with_capacity
    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:743,1
    - Dst: Option::map
      Src: /src/image/src/codecs/bmp/decoder.rs:743,1
    - Dst: ImageResult::ok_or_else
      Src: /src/image/src/codecs/bmp/decoder.rs:743,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/decoder.rs:746,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/decoder.rs:746,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:747,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/bmp/decoder.rs:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - width
    - length
    - channels
    argTypes:
    - i32
    - i32
    - usize
    constantsTouched: []
    func_position:
      end: 753
      start: 742
    functionDepth: 7
    functionLinenumber: 742
    functionLinenumberEnd: 753
    functionName: check_for_overflow
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 3
    functionsReached:
    - ImageResult::ok_or_else
    - Option::map
    - UnsupportedError::from_format_and_kind
    - ImageError::Unsupported
    - into
    - num_bytes
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: ImageResult
    signature: 'fn check_for_overflow(width: i32, length: i32, channels: usize) ->
      ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::checked_mul
      Src: /src/image/src/codecs/bmp/decoder.rs:761,1
    - Dst: checked_mul
      Src: /src/image/src/codecs/bmp/decoder.rs:762,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - width
    - length
    - channels
    argTypes:
    - i32
    - i32
    - usize
    constantsTouched: []
    func_position:
      end: 766
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 766
    functionName: num_bytes
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - checked_mul
    - usize::checked_mul
    linkageType: ''
    returnType: Option
    signature: 'fn num_bytes(width: i32, length: i32, channels: usize) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - file_row
    - height
    - top_down
    argTypes:
    - u32
    - u32
    - bool
    constantsTouched: []
    func_position:
      end: 802
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 802
    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: 809
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 809
    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:789,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:789,1
    - Dst: output_row_index
      Src: /src/image/src/codecs/bmp/decoder.rs:812,1
    - Dst: get_row_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:813,1
    - Dst: func
      Src: /src/image/src/codecs/bmp/decoder.rs:815,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:816,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:819,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: 820
      start: 775
    functionDepth: 3
    functionLinenumber: 775
    functionLinenumberEnd: 820
    functionName: with_rows_resumable
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 4
    functionsReached:
    - Err
    - usize::checked_mul
    - Ok
    - get_row_mut
    - unwrap
    - output_row_index
    - func
    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:828,1
    - Dst: '&mut ChunksExactMut<u8>::next'
      Src: /src/image/src/codecs/bmp/decoder.rs:829,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: 839
      start: 822
    functionDepth: 2
    functionLinenumber: 822
    functionLinenumberEnd: 839
    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: 868
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 868
    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: 900
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 900
    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:910,1
    - Dst: usize::from
      Src: /src/image/src/codecs/bmp/decoder.rs:911,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: 925
      start: 902
    functionDepth: 3
    functionLinenumber: 902
    functionLinenumberEnd: 925
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - len
    - shift
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 959
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 959
    functionName: Bitfield::from_len_shift
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'const fn from_len_shift(len: u32, shift: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:963,1
    - Dst: Bitfield::from_len_shift
      Src: /src/image/src/codecs/bmp/decoder.rs:963,1
    - Dst: ImageResult::trailing_zeros
      Src: /src/image/src/codecs/bmp/decoder.rs:965,1
    - Dst: trailing_zeros
      Src: /src/image/src/codecs/bmp/decoder.rs:966,1
    - Dst: ImageResult::count_ones
      Src: /src/image/src/codecs/bmp/decoder.rs:967,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:968,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:968,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:971,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:971,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:977,1
    - Dst: Bitfield::from_len_shift
      Src: /src/image/src/codecs/bmp/decoder.rs:977,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 2
    argNames:
    - mask
    - max_len
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 978
      start: 961
    functionDepth: 9
    functionLinenumber: 961
    functionLinenumberEnd: 978
    functionName: Bitfield::from_mask
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - ImageResult::trailing_zeros
    - Ok
    - Bitfield::from_len_shift
    - into
    - ImageResult::count_ones
    - trailing_zeros
    linkageType: ''
    returnType: ImageResult
    signature: 'fn from_mask(mask: u32, max_len: u32) -> ImageResult<Bitfield>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - data
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 990
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 990
    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:1011,1
    - Dst: Bitfield::from_mask
      Src: /src/image/src/codecs/bmp/decoder.rs:1012,1
    - Dst: Bitfield::from_mask
      Src: /src/image/src/codecs/bmp/decoder.rs:1013,1
    - Dst: Bitfield::from_mask
      Src: /src/image/src/codecs/bmp/decoder.rs:1014,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1021,1
    - Dst: DecoderError::BitfieldMaskMissing
      Src: /src/image/src/codecs/bmp/decoder.rs:1021,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1021,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1023,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: 1024
      start: 1002
    functionDepth: 10
    functionLinenumber: 1002
    functionLinenumberEnd: 1024
    functionName: Bitfields::from_mask
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - Bitfield::from_mask
    - Ok
    - DecoderError::BitfieldMaskMissing
    - into
    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: 1040
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1040
    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: 1045
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1045
    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:1048,1
    - Dst: std::io::Result::is_empty
      Src: /src/image/src/codecs/bmp/decoder.rs:1049,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1050,1
    - Dst: io::Error::new
      Src: /src/image/src/codecs/bmp/decoder.rs:1050,1
    - Dst: consume
      Src: /src/image/src/codecs/bmp/decoder.rs:1056,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1058,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1047
    functionDepth: 10
    functionLinenumber: 1047
    functionLinenumberEnd: 1059
    functionName: RleReader::read_byte
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - fill_buf
    - Err
    - std::io::Result::is_empty
    - Ok
    - io::Error::new
    - consume
    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:1062,1
    - Dst: fill_buf
      Src: /src/image/src/codecs/bmp/decoder.rs:1066,1
    - Dst: is_empty
      Src: /src/image/src/codecs/bmp/decoder.rs:1067,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1068,1
    - Dst: io::Error::new
      Src: /src/image/src/codecs/bmp/decoder.rs:1068,1
    - Dst: String::min
      Src: /src/image/src/codecs/bmp/decoder.rs:1074,1
    - Dst: len
      Src: /src/image/src/codecs/bmp/decoder.rs:1074,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/bmp/decoder.rs:1075,1
    - Dst: consume
      Src: /src/image/src/codecs/bmp/decoder.rs:1076,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1082,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1083
      start: 1061
    functionDepth: 10
    functionLinenumber: 1061
    functionLinenumberEnd: 1083
    functionName: RleReader::read_exact
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - len
    - fill_buf
    - Err
    - is_empty
    - Ok
    - io::Error::new
    - String::min
    - copy_from_slice
    - std::io::Result::len
    - consume
    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:1133,1
    - Dst: DecoderState::default
      Src: /src/image/src/codecs/bmp/decoder.rs:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 1136
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1136
    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:1140,1
    - Dst: ImageResult::read_metadata
      Src: /src/image/src/codecs/bmp/decoder.rs:1141,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 1143
      start: 1139
    functionDepth: 13
    functionLinenumber: 1139
    functionLinenumberEnd: 1143
    functionName: BmpDecoder::new
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 11
    functionsReached:
    - Ok
    - Self::new_decoder
    - 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:1150,1
    - Dst: ImageResult::read_metadata
      Src: /src/image/src/codecs/bmp/decoder.rs:1152,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - reader
    - spec
    argTypes:
    - R
    - SpecCompliance
    constantsTouched: []
    func_position:
      end: 1154
      start: 1146
    functionDepth: 13
    functionLinenumber: 1146
    functionLinenumberEnd: 1154
    functionName: BmpDecoder::with_spec_compliance
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 3
    functionsReached:
    - Ok
    - Self::new_decoder
    - ImageResult::read_metadata
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn 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:1207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 1208
      start: 1206
    functionDepth: 3
    functionLinenumber: 1206
    functionLinenumberEnd: 1208
    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:1214,1
    - Dst: ImageResult::read_metadata
      Src: /src/image/src/codecs/bmp/decoder.rs:1216,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 1218
      start: 1213
    functionDepth: 13
    functionLinenumber: 1213
    functionLinenumberEnd: 1218
    functionName: BmpDecoder::new_without_file_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 2
    functionsReached:
    - Ok
    - Self::new_decoder
    - 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:1222,1
    - Dst: ImageResult::read_metadata_in_ico_format
      Src: /src/image/src/codecs/bmp/decoder.rs:1223,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 1225
      start: 1221
    functionDepth: 14
    functionLinenumber: 1221
    functionLinenumberEnd: 1225
    functionName: BmpDecoder::new_with_ico_format
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Self::new_decoder
    - ImageResult::read_metadata_in_ico_format
    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: 1231
      start: 1229
    functionDepth: 0
    functionLinenumber: 1229
    functionLinenumberEnd: 1231
    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: 1236
      start: 1234
    functionDepth: 0
    functionLinenumber: 1234
    functionLinenumberEnd: 1236
    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:1240,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1245,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1249,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1249,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:1254,1
    - Dst: u64::from
      Src: /src/image/src/codecs/bmp/decoder.rs:1255,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1238
    functionDepth: 9
    functionLinenumber: 1238
    functionLinenumberEnd: 1258
    functionName: BmpDecoder::read_file_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - u32::from_le_bytes
    - read_exact
    - Ok
    - u64::from
    - into
    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:1269,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1270,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1271,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1272,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1273,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1275,1
    - Dst: DecoderError::InvalidChannelWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:1275,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1275,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1279,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1280,1
    - Dst: DecoderError::InvalidChannelWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:1281,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1281,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1285,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1286,1
    - Dst: DecoderError::InvalidChannelWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:1287,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1287,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1291,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1292,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1293,1
    - Dst: DecoderError::InvalidChannelWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:1293,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1293,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1300,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1303,1
    - Dst: DecoderError::InvalidChannelWidth
      Src: /src/image/src/codecs/bmp/decoder.rs:1303,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1303,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1305,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/decoder.rs:1305,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/decoder.rs:1306,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1307,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/bmp/decoder.rs:1308,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/bmp/decoder.rs:1308,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1311,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/decoder.rs:1311,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/decoder.rs:1312,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1313,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/bmp/decoder.rs:1314,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/bmp/decoder.rs:1314,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1317,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/decoder.rs:1317,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/decoder.rs:1318,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1319,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/bmp/decoder.rs:1320,1
    - Dst: '&str::to_owned'
      Src: /src/image/src/codecs/bmp/decoder.rs:1320,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1323,1
    - Dst: DecoderError::ImageTypeUnknown
      Src: /src/image/src/codecs/bmp/decoder.rs:1323,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1323,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: 1325
      start: 1261
    functionDepth: 9
    functionLinenumber: 1261
    functionLinenumberEnd: 1325
    functionName: BmpDecoder::image_type_from_compression
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - DecoderError::InvalidChannelWidth
    - Err
    - '&str::to_owned'
    - Ok
    - DecoderError::ImageTypeUnknown
    - ImageError::Unsupported
    - into
    - UnsupportedError::from_format_and_kind
    - UnsupportedErrorKind::GenericFeature
    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:1333,1
    - Dst: ParsedCoreHeader::parse
      Src: /src/image/src/codecs/bmp/decoder.rs:1335,1
    - Dst: check_for_overflow
      Src: /src/image/src/codecs/bmp/decoder.rs:1342,1
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:1342,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1330
    functionDepth: 10
    functionLinenumber: 1330
    functionLinenumberEnd: 1345
    functionName: BmpDecoder::read_bitmap_core_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - check_for_overflow
    - read_exact
    - Ok
    - ParsedCoreHeader::parse
    - BmpDecoder::num_channels
    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:1354,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1355,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1361,1
    - Dst: ParsedInfoHeader::parse
      Src: /src/image/src/codecs/bmp/decoder.rs:1364,1
    - Dst: Self::image_type_from_compression
      Src: /src/image/src/codecs/bmp/decoder.rs:1371,1
    - Dst: check_for_overflow
      Src: /src/image/src/codecs/bmp/decoder.rs:1378,1
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:1378,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1380,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 70
    argCount: 1
    argNames:
    - header_size
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 1381
      start: 1349
    functionDepth: 10
    functionLinenumber: 1349
    functionLinenumberEnd: 1381
    functionName: BmpDecoder::read_bitmap_os2v2_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - check_for_overflow
    - ParsedInfoHeader::parse
    - read_exact
    - Ok
    - usize::min
    - Self::image_type_from_compression
    - BmpDecoder::num_channels
    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:1390,1
    - Dst: ParsedInfoHeader::parse
      Src: /src/image/src/codecs/bmp/decoder.rs:1392,1
    - Dst: Self::image_type_from_compression
      Src: /src/image/src/codecs/bmp/decoder.rs:1399,1
    - Dst: check_for_overflow
      Src: /src/image/src/codecs/bmp/decoder.rs:1406,1
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:1406,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1412,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1387
    functionDepth: 10
    functionLinenumber: 1387
    functionLinenumberEnd: 1413
    functionName: BmpDecoder::read_bitmap_info_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - check_for_overflow
    - ParsedInfoHeader::parse
    - read_exact
    - Ok
    - Self::image_type_from_compression
    - BmpDecoder::num_channels
    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:1427,1
    - Dst: ParsedBitfields::parse
      Src: /src/image/src/codecs/bmp/decoder.rs:1430,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:1440,1
    - Dst: Bitfields::from_mask
      Src: /src/image/src/codecs/bmp/decoder.rs:1440,1
    - Dst: is_some
      Src: /src/image/src/codecs/bmp/decoder.rs:1452,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1456,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 1
    argNames:
    - compression
    argTypes:
    - BitfieldCompression
    constantsTouched: []
    func_position:
      end: 1457
      start: 1415
    functionDepth: 11
    functionLinenumber: 1415
    functionLinenumberEnd: 1457
    functionName: BmpDecoder::read_bitmasks
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - read_exact
    - Ok
    - Bitfields::from_mask
    - is_some
    - Some
    - ParsedBitfields::parse
    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:1461,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1461,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1463,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:1464,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - icc
    argTypes:
    - '&ParsedIccProfile'
    constantsTouched: []
    func_position:
      end: 1466
      start: 1460
    functionDepth: 2
    functionLinenumber: 1460
    functionLinenumberEnd: 1466
    functionName: BmpDecoder::read_icc_profile
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - SeekFrom::Start
    - read_exact
    - Ok
    - seek
    - Some
    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:1482,1
    - Dst: BmpDecoder::read_metadata_impl
      Src: /src/image/src/codecs/bmp/decoder.rs:1485,1
    - Dst: BmpDecoder::is_rle
      Src: /src/image/src/codecs/bmp/decoder.rs:1488,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1495,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1479
    functionDepth: 12
    functionLinenumber: 1479
    functionLinenumberEnd: 1499
    functionName: BmpDecoder::read_metadata
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Err
    - BmpDecoder::is_rle
    - BmpDecoder::read_metadata_impl
    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:1512,1
    - Dst: BmpDecoder::read_metadata_impl
      Src: /src/image/src/codecs/bmp/decoder.rs:1515,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1519,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1519,1
    - Dst: BmpDecoder::read_headers
      Src: /src/image/src/codecs/bmp/decoder.rs:1522,1
    - Dst: BmpDecoder::read_metadata_impl
      Src: /src/image/src/codecs/bmp/decoder.rs:1527,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1532,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1532,1
    - Dst: BmpDecoder::read_palette
      Src: /src/image/src/codecs/bmp/decoder.rs:1539,1
    - Dst: stream_position
      Src: /src/image/src/codecs/bmp/decoder.rs:1548,1
    - Dst: BmpDecoder::read_metadata_impl
      Src: /src/image/src/codecs/bmp/decoder.rs:1559,1
    - Dst: BmpDecoder::read_icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:1564,1
    - Dst: BmpDecoder::read_metadata_impl
      Src: /src/image/src/codecs/bmp/decoder.rs:1571,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1573,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 88
    argCount: 1
    argNames:
    - progress
    argTypes:
    - MetadataProgress
    constantsTouched: []
    func_position:
      end: 1575
      start: 1508
    functionDepth: 11
    functionLinenumber: 1508
    functionLinenumberEnd: 1575
    functionName: BmpDecoder::read_metadata_impl
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 2
    functionsReached:
    - SeekFrom::Start
    - stream_position
    - BmpDecoder::read_metadata_impl
    - BmpDecoder::read_icc_profile
    - Ok
    - seek
    - BmpDecoder::read_headers
    - BmpDecoder::read_palette
    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:1580,1
    - Dst: stream_position
      Src: /src/image/src/codecs/bmp/decoder.rs:1581,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1585,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:1586,1
    - Dst: u64::from
      Src: /src/image/src/codecs/bmp/decoder.rs:1588,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1599,1
    - Dst: DecoderError::HeaderTooSmall
      Src: /src/image/src/codecs/bmp/decoder.rs:1599,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1599,1
    - Dst: contains
      Src: /src/image/src/codecs/bmp/decoder.rs:1606,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1612,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/bmp/decoder.rs:1612,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/bmp/decoder.rs:1613,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1614,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/bmp/decoder.rs:1615,1
    - Dst: BmpDecoder::read_bitmap_core_header
      Src: /src/image/src/codecs/bmp/decoder.rs:1625,1
    - Dst: BmpDecoder::read_bitmap_os2v2_header
      Src: /src/image/src/codecs/bmp/decoder.rs:1629,1
    - Dst: BmpDecoder::read_bitmap_info_header
      Src: /src/image/src/codecs/bmp/decoder.rs:1636,1
    - Dst: BmpDecoder::read_bitmasks
      Src: /src/image/src/codecs/bmp/decoder.rs:1644,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1665,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:1666,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:1666,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1666,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1674,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1674,1
    - Dst: stream_position
      Src: /src/image/src/codecs/bmp/decoder.rs:1687,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1688,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1688,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1689,1
    - Dst: ColorSpaceInfo::parse
      Src: /src/image/src/codecs/bmp/decoder.rs:1692,1
    - Dst: to_color_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:1696,1
    - Dst: encode
      Src: /src/image/src/codecs/bmp/decoder.rs:1696,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:1697,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:1701,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1709,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1709,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1715,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 158
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1579
    functionDepth: 10
    functionLinenumber: 1579
    functionLinenumberEnd: 1720
    functionName: BmpDecoder::read_headers
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - encode
    - try_into
    - Err
    - u32::from_le_bytes
    - seek
    - u64::from
    - Some
    - into
    - to_color_profile
    - ColorSpaceInfo::parse
    - read_exact
    - ImageError::Unsupported
    - BmpDecoder::read_bitmap_os2v2_header
    - unwrap
    - UnsupportedError::from_format_and_kind
    - SeekFrom::Start
    - stream_position
    - BmpDecoder::read_bitmap_info_header
    - BmpDecoder::read_bitmasks
    - UnsupportedErrorKind::GenericFeature
    - BmpDecoder::read_file_header
    - Ok
    - DecoderError::HeaderTooSmall
    - BmpDecoder::read_bitmap_core_header
    - contains
    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:1727,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1724
    functionDepth: 13
    functionLinenumber: 1724
    functionLinenumberEnd: 1733
    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:1737,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:1742,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:1742,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1750,1
    - Dst: min
      Src: /src/image/src/codecs/bmp/decoder.rs:1750,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1735
    functionDepth: 9
    functionLinenumber: 1735
    functionLinenumberEnd: 1753
    functionName: BmpDecoder::get_palette_size
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Err
    - into
    - 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: 1760
      start: 1755
    functionDepth: 0
    functionLinenumber: 1755
    functionLinenumberEnd: 1760
    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:1765,1
    - Dst: BmpDecoder::get_palette_size
      Src: /src/image/src/codecs/bmp/decoder.rs:1766,1
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/codecs/bmp/decoder.rs:1770,1
    - Dst: std::io::Result::resize
      Src: /src/image/src/codecs/bmp/decoder.rs:1775,1
    - Dst: cmp::min
      Src: /src/image/src/codecs/bmp/decoder.rs:1775,1
    - Dst: by_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:1776,1
    - Dst: read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:1776,1
    - Dst: Option::cmp
      Src: /src/image/src/codecs/bmp/decoder.rs:1780,1
    - Dst: seek_relative
      Src: /src/image/src/codecs/bmp/decoder.rs:1781,1
    - Dst: std::io::Result::resize
      Src: /src/image/src/codecs/bmp/decoder.rs:1782,1
    - Dst: map
      Src: /src/image/src/codecs/bmp/decoder.rs:1786,1
    - Dst: collect
      Src: /src/image/src/codecs/bmp/decoder.rs:1786,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:1795,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1797,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1762
    functionDepth: 10
    functionLinenumber: 1762
    functionLinenumberEnd: 1798
    functionName: BmpDecoder::read_palette
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - by_ref
    - read_exact
    - map
    - BmpDecoder::get_palette_size
    - Ok
    - std::io::Result::resize
    - seek_relative
    - cmp::min
    - Some
    - collect
    - Option::cmp
    - utils::vec_try_with_capacity
    - BmpDecoder::bytes_per_color
    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:1802,1
    - Dst: map
      Src: /src/image/src/codecs/bmp/decoder.rs:1802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1801
    functionDepth: 7
    functionLinenumber: 1801
    functionLinenumberEnd: 1803
    functionName: BmpDecoder::get_palette
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - map
    - as_ref
    linkageType: ''
    returnType: Option
    signature: pub fn get_palette(&self) -> Option<&[[u8; 3]]>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1813
      start: 1805
    functionDepth: 0
    functionLinenumber: 1805
    functionLinenumberEnd: 1813
    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:1816,1
    - Dst: Chunker::FromTop
      Src: /src/image/src/codecs/bmp/decoder.rs:1819,1
    - Dst: ImageResult::chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1819,1
    - Dst: Chunker::FromBottom
      Src: /src/image/src/codecs/bmp/decoder.rs:1823,1
    - Dst: ImageResult::chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1823,1
    - Dst: rev
      Src: /src/image/src/codecs/bmp/decoder.rs:1823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - pixel_data
    argTypes:
    - '&''a mut [u8]'
    constantsTouched: []
    func_position:
      end: 1826
      start: 1815
    functionDepth: 1
    functionLinenumber: 1815
    functionLinenumberEnd: 1826
    functionName: BmpDecoder::rows
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - rev
    - Chunker::FromTop
    - ImageResult::chunks_exact_mut
    - BmpDecoder::num_channels
    - Chunker::FromBottom
    linkageType: ''
    returnType: RowIterator
    signature: 'fn rows<''a>(&self, pixel_data: &''a mut [u8]) -> RowIterator<''a>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:1829,1
    - Dst: i32::from
      Src: /src/image/src/codecs/bmp/decoder.rs:1830,1
    - Dst: as_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:1832,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1832,1
    - Dst: BmpDecoder::rows_decoded
      Src: /src/image/src/codecs/bmp/decoder.rs:1837,1
    - Dst: RowsDecoded::rows
      Src: /src/image/src/codecs/bmp/decoder.rs:1838,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1842,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1842,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/codecs/bmp/decoder.rs:1846,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1846,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:1846,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:1853,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1853,1
    - Dst: with_rows_resumable
      Src: /src/image/src/codecs/bmp/decoder.rs:1856,1
    - Dst: read_scanline
      Src: /src/image/src/codecs/bmp/decoder.rs:1864,1
    - Dst: Result::clone_from_slice
      Src: /src/image/src/codecs/bmp/decoder.rs:1872,1
    - Dst: Result::chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1874,1
    - Dst: set_1bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1877,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1877,1
    - Dst: set_2bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1880,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1880,1
    - Dst: set_4bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1883,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1883,1
    - Dst: set_8bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:1886,1
    - Dst: Option::iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1886,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1891,1
    - Dst: BmpDecoder::finish_row_decode
      Src: /src/image/src/codecs/bmp/decoder.rs:1895,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 108
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 1896
      start: 1828
    functionDepth: 12
    functionLinenumber: 1828
    functionLinenumberEnd: 1896
    functionName: BmpDecoder::read_palettized_pixel_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::chunks_exact_mut
    - try_into
    - RowsDecoded::rows
    - Option::iter
    - BmpDecoder::finish_row_decode
    - seek
    - as_chunks_mut::<4>
    - set_2bit_pixel_run
    - set_4bit_pixel_run
    - with_rows_resumable
    - unwrap
    - BmpDecoder::num_channels
    - for_each
    - as_ref
    - SeekFrom::Start
    - BmpDecoder::rows_decoded
    - read_scanline
    - i32::from
    - set_1bit_pixel_run
    - set_8bit_pixel_run
    - Ok
    - iter_mut
    - Result::clone_from_slice
    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:1903,1
    - Dst: as_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:1906,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1906,1
    - Dst: calculate_row_padding
      Src: /src/image/src/codecs/bmp/decoder.rs:1910,1
    - Dst: BmpDecoder::rows_decoded
      Src: /src/image/src/codecs/bmp/decoder.rs:1913,1
    - Dst: RowsDecoded::rows
      Src: /src/image/src/codecs/bmp/decoder.rs:1914,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1920,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1920,1
    - Dst: allocate_row_buffer
      Src: /src/image/src/codecs/bmp/decoder.rs:1922,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:1925,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1925,1
    - Dst: with_rows_resumable
      Src: /src/image/src/codecs/bmp/decoder.rs:1928,1
    - Dst: read_scanline
      Src: /src/image/src/codecs/bmp/decoder.rs:1936,1
    - Dst: as_chunks::<2>
      Src: /src/image/src/codecs/bmp/decoder.rs:1943,1
    - Dst: iter
      Src: /src/image/src/codecs/bmp/decoder.rs:1943,1
    - Dst: zip
      Src: /src/image/src/codecs/bmp/decoder.rs:1944,1
    - Dst: Result::chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:1944,1
    - Dst: u32::from
      Src: /src/image/src/codecs/bmp/decoder.rs:1946,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:1946,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1947,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1948,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1949,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:1952,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:1958,1
    - Dst: BmpDecoder::finish_row_decode
      Src: /src/image/src/codecs/bmp/decoder.rs:1962,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 97
    argCount: 2
    argNames:
    - buf
    - bitfields
    argTypes:
    - '&mut [u8]'
    - Option<&Bitfields>
    constantsTouched: []
    func_position:
      end: 1963
      start: 1898
    functionDepth: 10
    functionLinenumber: 1898
    functionLinenumberEnd: 1963
    functionName: BmpDecoder::read_16_bit_pixel_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::chunks_exact_mut
    - try_into
    - RowsDecoded::rows
    - BmpDecoder::finish_row_decode
    - seek
    - calculate_row_padding
    - read
    - u16::from_le_bytes
    - iter
    - with_rows_resumable
    - unwrap
    - BmpDecoder::num_channels
    - u32::from
    - as_ref
    - SeekFrom::Start
    - as_chunks::<2>
    - BmpDecoder::rows_decoded
    - read_scanline
    - Ok
    - zip
    - allocate_row_buffer
    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:1967,1
    - Dst: as_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:1968,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1968,1
    - Dst: BmpDecoder::rows_decoded
      Src: /src/image/src/codecs/bmp/decoder.rs:1972,1
    - Dst: RowsDecoded::rows
      Src: /src/image/src/codecs/bmp/decoder.rs:1973,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:1979,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:1979,1
    - Dst: allocate_row_buffer
      Src: /src/image/src/codecs/bmp/decoder.rs:1981,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:1984,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:1984,1
    - Dst: with_rows_resumable
      Src: /src/image/src/codecs/bmp/decoder.rs:1987,1
    - Dst: read_scanline
      Src: /src/image/src/codecs/bmp/decoder.rs:1995,1
    - Dst: as_chunks::<4>
      Src: /src/image/src/codecs/bmp/decoder.rs:2002,1
    - Dst: iter
      Src: /src/image/src/codecs/bmp/decoder.rs:2002,1
    - Dst: zip
      Src: /src/image/src/codecs/bmp/decoder.rs:2003,1
    - Dst: Result::chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:2003,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:2005,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:2006,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:2007,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:2008,1
    - Dst: read
      Src: /src/image/src/codecs/bmp/decoder.rs:2011,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:2017,1
    - Dst: BmpDecoder::finish_row_decode
      Src: /src/image/src/codecs/bmp/decoder.rs:2021,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 93
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 2022
      start: 1966
    functionDepth: 10
    functionLinenumber: 1966
    functionLinenumberEnd: 2022
    functionName: BmpDecoder::read_32_bit_pixel_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::chunks_exact_mut
    - try_into
    - u32::from_le_bytes
    - RowsDecoded::rows
    - BmpDecoder::finish_row_decode
    - seek
    - read
    - iter
    - with_rows_resumable
    - unwrap
    - BmpDecoder::num_channels
    - as_ref
    - SeekFrom::Start
    - BmpDecoder::rows_decoded
    - read_scanline
    - Ok
    - zip
    - allocate_row_buffer
    - as_chunks::<4>
    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:2030,1
    - Dst: calculate_row_padding
      Src: /src/image/src/codecs/bmp/decoder.rs:2037,1
    - Dst: BmpDecoder::rows_decoded
      Src: /src/image/src/codecs/bmp/decoder.rs:2042,1
    - Dst: RowsDecoded::rows
      Src: /src/image/src/codecs/bmp/decoder.rs:2043,1
    - Dst: seek
      Src: /src/image/src/codecs/bmp/decoder.rs:2049,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:2049,1
    - Dst: allocate_row_buffer
      Src: /src/image/src/codecs/bmp/decoder.rs:2051,1
    - Dst: try_into
      Src: /src/image/src/codecs/bmp/decoder.rs:2054,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2054,1
    - Dst: with_rows_resumable
      Src: /src/image/src/codecs/bmp/decoder.rs:2057,1
    - Dst: read_scanline
      Src: /src/image/src/codecs/bmp/decoder.rs:2065,1
    - Dst: Result::chunks_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:2073,1
    - Dst: enumerate
      Src: /src/image/src/codecs/bmp/decoder.rs:2073,1
    - Dst: copy_from_slice
      Src: /src/image/src/codecs/bmp/decoder.rs:2085,1
    - Dst: reverse
      Src: /src/image/src/codecs/bmp/decoder.rs:2086,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:2095,1
    - Dst: BmpDecoder::finish_row_decode
      Src: /src/image/src/codecs/bmp/decoder.rs:2099,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 98
    argCount: 2
    argNames:
    - buf
    - format
    argTypes:
    - '&mut [u8]'
    - '&FormatFullBytes'
    constantsTouched: []
    func_position:
      end: 2100
      start: 2025
    functionDepth: 10
    functionLinenumber: 2025
    functionLinenumberEnd: 2100
    functionName: BmpDecoder::read_full_byte_pixel_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - allocate_row_buffer
    - try_into
    - SeekFrom::Start
    - with_rows_resumable
    - RowsDecoded::rows
    - enumerate
    - reverse
    - Ok
    - BmpDecoder::finish_row_decode
    - BmpDecoder::rows_decoded
    - seek
    - copy_from_slice
    - unwrap
    - calculate_row_padding
    - read_scanline
    - Result::chunks_mut
    - BmpDecoder::num_channels
    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:2113,1
    - Dst: SeekFrom::Start
      Src: /src/image/src/codecs/bmp/decoder.rs:2113,1
    - Dst: BmpDecoder::num_channels
      Src: /src/image/src/codecs/bmp/decoder.rs:2115,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:2117,1
    - Dst: as_ref
      Src: /src/image/src/codecs/bmp/decoder.rs:2117,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2117,1
    - Dst: BmpDecoder::rows
      Src: /src/image/src/codecs/bmp/decoder.rs:2122,1
    - Dst: RowIterator::skip
      Src: /src/image/src/codecs/bmp/decoder.rs:2122,1
    - Dst: RleReader::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2130,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:2132,1
    - Dst: Result::chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:2133,1
    - Dst: nth
      Src: /src/image/src/codecs/bmp/decoder.rs:2137,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2145,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2149,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:2152,1
    - Dst: Result::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:2152,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:2158,1
    - Dst: Result::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:2158,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:2159,1
    - Dst: Result::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:2159,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:2160,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2163,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2164,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:2169,1
    - Dst: Result::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:2169,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:2172,1
    - Dst: Result::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:2173,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:2175,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:2175,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:2177,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:2182,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/bmp/decoder.rs:2183,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:2185,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:2185,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:2187,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:2191,1
    - Dst: u8::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:2192,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:2194,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:2194,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:2202,1
    - Dst: u8::fill
      Src: /src/image/src/codecs/bmp/decoder.rs:2203,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:2205,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:2205,1
    - Dst: Self::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:2219,1
    - Dst: set_8bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:2221,1
    - Dst: Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2223,1
    - Dst: iter
      Src: /src/image/src/codecs/bmp/decoder.rs:2224,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:2230,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:2230,1
    - Dst: u8::div_ceil
      Src: /src/image/src/codecs/bmp/decoder.rs:2234,1
    - Dst: Self::read_exact
      Src: /src/image/src/codecs/bmp/decoder.rs:2236,1
    - Dst: set_4bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:2238,1
    - Dst: Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2240,1
    - Dst: iter
      Src: /src/image/src/codecs/bmp/decoder.rs:2241,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:2247,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:2247,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2252,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2253,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2254,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:2255,1
    - Dst: is_multiple_of
      Src: /src/image/src/codecs/bmp/decoder.rs:2262,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2263,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2279,1
    - Dst: Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2280,1
    - Dst: take
      Src: /src/image/src/codecs/bmp/decoder.rs:2281,1
    - Dst: for_each
      Src: /src/image/src/codecs/bmp/decoder.rs:2281,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2288,1
    - Dst: set_4bit_pixel_run
      Src: /src/image/src/codecs/bmp/decoder.rs:2291,1
    - Dst: Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2293,1
    - Dst: std::iter::repeat
      Src: /src/image/src/codecs/bmp/decoder.rs:2294,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:2298,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:2298,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2302,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2303,1
    - Dst: Self::read_byte
      Src: /src/image/src/codecs/bmp/decoder.rs:2304,1
    - Dst: next
      Src: /src/image/src/codecs/bmp/decoder.rs:2306,1
    - Dst: Self::bytes_read
      Src: /src/image/src/codecs/bmp/decoder.rs:2325,1
    - Dst: Self::bytes_read
      Src: /src/image/src/codecs/bmp/decoder.rs:2335,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:2340,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 380
    argCount: 2
    argNames:
    - buf
    - image_type
    argTypes:
    - '&mut [u8]'
    - ImageType
    constantsTouched: []
    func_position:
      end: 2341
      start: 2102
    functionDepth: 12
    functionLinenumber: 2102
    functionLinenumberEnd: 2341
    functionName: BmpDecoder::read_rle_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::chunks_exact_mut
    - RleReader::new
    - Err
    - u8::div_ceil
    - seek
    - std::iter::repeat
    - set_4bit_pixel_run
    - Some
    - into
    - RowIterator::skip
    - iter
    - BmpDecoder::rows
    - unwrap
    - Result::fill
    - chunks_exact_mut
    - for_each
    - BmpDecoder::num_channels
    - as_ref
    - SeekFrom::Start
    - Self::read_byte
    - is_multiple_of
    - u8::fill
    - Self::read_exact
    - Result::unwrap
    - take
    - set_8bit_pixel_run
    - Self::bytes_read
    - Ok
    - nth
    - next
    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: 2349
      start: 2344
    functionDepth: 0
    functionLinenumber: 2344
    functionLinenumberEnd: 2349
    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: 2370
      start: 2354
    functionDepth: 0
    functionLinenumber: 2354
    functionLinenumberEnd: 2370
    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:2377,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:2378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - result
    argTypes:
    - Result<u32, (u32, io::Error)>
    constantsTouched: []
    func_position:
      end: 2380
      start: 2373
    functionDepth: 0
    functionLinenumber: 2373
    functionLinenumberEnd: 2380
    functionName: BmpDecoder::finish_row_decode
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 4
    functionsReached:
    - Ok
    - Err
    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:2393,1
    - Dst: BmpDecoder::read_image_data_impl
      Src: /src/image/src/codecs/bmp/decoder.rs:2394,1
    - Dst: ImageResult::map
      Src: /src/image/src/codecs/bmp/decoder.rs:2394,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:2397,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:2397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 2399
      start: 2391
    functionDepth: 14
    functionLinenumber: 2391
    functionLinenumberEnd: 2399
    functionName: BmpDecoder::read_image_data
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - Ok
    - BmpDecoder::read_image_data_impl
    - into
    - 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:2404,1
    - Dst: BmpDecoder::read_16_bit_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2405,1
    - Dst: Some
      Src: /src/image/src/codecs/bmp/decoder.rs:2405,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2406,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2407,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2408,1
    - Dst: BmpDecoder::read_rle_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2409,1
    - Dst: BmpDecoder::read_rle_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2410,1
    - Dst: BmpDecoder::read_rle_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2411,1
    - Dst: BmpDecoder::read_16_bit_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2413,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:2414,1
    - Dst: DecoderError::BitfieldMasksMissing
      Src: /src/image/src/codecs/bmp/decoder.rs:2414,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:2414,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2418,1
    - Dst: BmpDecoder::read_full_byte_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2421,1
    - Dst: BmpDecoder::read_32_bit_pixel_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2423,1
    - Dst: Err
      Src: /src/image/src/codecs/bmp/decoder.rs:2424,1
    - Dst: DecoderError::BitfieldMasksMissing
      Src: /src/image/src/codecs/bmp/decoder.rs:2424,1
    - Dst: into
      Src: /src/image/src/codecs/bmp/decoder.rs:2424,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 2427
      start: 2402
    functionDepth: 13
    functionLinenumber: 2402
    functionLinenumberEnd: 2427
    functionName: BmpDecoder::read_image_data_impl
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - DecoderError::BitfieldMasksMissing
    - Err
    - BmpDecoder::read_rle_data
    - BmpDecoder::read_32_bit_pixel_data
    - BmpDecoder::read_full_byte_pixel_data
    - BmpDecoder::read_palettized_pixel_data
    - Some
    - into
    - 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:
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:2440,1
    - Dst: DecoderPreparedImage::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2440,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2431
    functionDepth: 2
    functionLinenumber: 2431
    functionLinenumberEnd: 2445
    functionName: BmpDecoder::prepare_image
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - DecoderPreparedImage::new
    linkageType: ''
    returnType: ImageResult
    signature: fn prepare_image(&mut self) -> ImageResult<DecoderPreparedImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:2448,1
    - Dst: clone
      Src: /src/image/src/codecs/bmp/decoder.rs:2448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2449
      start: 2447
    functionDepth: 2
    functionLinenumber: 2447
    functionLinenumberEnd: 2449
    functionName: BmpDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - clone
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::prepare_image
      Src: /src/image/src/codecs/bmp/decoder.rs:2452,1
    - Dst: BmpDecoder::read_image_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2454,1
    - Dst: Ok
      Src: /src/image/src/codecs/bmp/decoder.rs:2455,1
    - Dst: DecodedImageAttributes::default
      Src: /src/image/src/codecs/bmp/decoder.rs:2455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 2456
      start: 2451
    functionDepth: 15
    functionLinenumber: 2451
    functionLinenumberEnd: 2456
    functionName: BmpDecoder::read_image
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - BmpDecoder::read_image_data
    - Ok
    - BmpDecoder::prepare_image
    - DecodedImageAttributes::default
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(&mut self, buf: &mut [u8]) -> ImageResult<DecodedImageAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Bitfield::from_len_shift
      Src: /src/image/src/codecs/bmp/decoder.rs:2468,1
    - Dst: Self::read
      Src: /src/image/src/codecs/bmp/decoder.rs:2470,1
    - Dst: f64::from
      Src: /src/image/src/codecs/bmp/decoder.rs:2471,1
    - Dst: f64::from
      Src: /src/image/src/codecs/bmp/decoder.rs:2471,1
    - Dst: round
      Src: /src/image/src/codecs/bmp/decoder.rs:2471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2478
      start: 2466
    functionDepth: 5
    functionLinenumber: 2466
    functionLinenumberEnd: 2478
    functionName: test::test_bitfield_len
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - Bitfield::from_len_shift
    - f64::from
    - Self::read
    - round
    linkageType: ''
    returnType: void
    signature: fn test_bitfield_len()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2503,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2503,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2503,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/bmp/decoder.rs:2504,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2507
      start: 2481
    functionDepth: 14
    functionLinenumber: 2481
    functionLinenumberEnd: 2507
    functionName: test::read_rle_too_short
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::prepare_image
    - Cursor::new
    - ImageResult::unwrap
    - BmpDecoder::new
    linkageType: ''
    returnType: void
    signature: fn read_rle_too_short()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/codecs/bmp/decoder.rs:2521,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2521,1
    - Dst: std::fs::read
      Src: /src/image/src/codecs/bmp/decoder.rs:2522,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2522,1
    - Dst: BmpDecoder::new_without_file_header
      Src: /src/image/src/codecs/bmp/decoder.rs:2525,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2525,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2525,1
    - Dst: crate::DynamicImage::from_decoder
      Src: /src/image/src/codecs/bmp/decoder.rs:2526,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2529
      start: 2510
    functionDepth: 14
    functionLinenumber: 2510
    functionLinenumberEnd: 2529
    functionName: test::test_no_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - crate::DynamicImage::from_decoder
    - ImageResult::unwrap
    - BmpDecoder::new_without_file_header
    - std::fs::read
    - std::io::Result::unwrap
    - crate::open
    - Cursor::new
    - 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:2539,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2546,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: 2557
      start: 2533
    functionDepth: 0
    functionLinenumber: 2533
    functionLinenumberEnd: 2557
    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:2563,1
    - Dst: std::fs::File::open
      Src: /src/image/src/codecs/bmp/decoder.rs:2563,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2563,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2564,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2564,1
    - Dst: ImageResult::icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:2565,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2565,1
    - Dst: BufReader::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2570,1
    - Dst: std::fs::File::open
      Src: /src/image/src/codecs/bmp/decoder.rs:2570,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2570,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2571,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2571,1
    - Dst: ImageResult::icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:2572,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2572,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2574,1
    - Dst: validate_icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:2576,1
    - Dst: BufReader::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2584,1
    - Dst: std::fs::File::open
      Src: /src/image/src/codecs/bmp/decoder.rs:2584,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2584,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2585,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2585,1
    - Dst: ImageResult::icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:2586,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2586,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2588,1
    - Dst: validate_icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:2590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2596
      start: 2560
    functionDepth: 14
    functionLinenumber: 2560
    functionLinenumberEnd: 2596
    functionName: test::test_icc_profile
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::icc_profile
    - ImageResult::unwrap
    - BufReader::new
    - BmpDecoder::new
    - validate_icc_profile
    - unwrap
    - std::fs::File::open
    - io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_icc_profile()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/image/src/codecs/bmp/decoder.rs:2601,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2601,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2602,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2602,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2602,1
    - Dst: ImageResult::icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:2603,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2603,1
    - Dst: validate_icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:2608,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2609,1
    - Dst: std::fs::read
      Src: /src/image/src/codecs/bmp/decoder.rs:2616,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2616,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2617,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2617,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2622
      start: 2599
    functionDepth: 14
    functionLinenumber: 2599
    functionLinenumberEnd: 2622
    functionName: test::test_calibrated_rgb_icc_profile
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::icc_profile
    - ImageResult::unwrap
    - BmpDecoder::new
    - validate_icc_profile
    - unwrap
    - std::fs::read
    - std::io::Result::unwrap
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn test_calibrated_rgb_icc_profile()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - err
    argTypes:
    - '&ImageError'
    constantsTouched: []
    func_position:
      end: 2706
      start: 2704
    functionDepth: 0
    functionLinenumber: 2704
    functionLinenumberEnd: 2706
    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:2799,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2799,1
    - Dst: ImageResult::len
      Src: /src/image/src/codecs/bmp/decoder.rs:2800,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2803,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2803,1
    - Dst: ImageResult::clone
      Src: /src/image/src/codecs/bmp/decoder.rs:2803,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2803,1
    - Dst: prepare_image
      Src: /src/image/src/codecs/bmp/decoder.rs:2804,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2804,1
    - Dst: total_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:2804,1
    - Dst: icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:2806,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2806,1
    - Dst: map
      Src: /src/image/src/codecs/bmp/decoder.rs:2806,1
    - Dst: Result::len
      Src: /src/image/src/codecs/bmp/decoder.rs:2806,1
    - Dst: read_image
      Src: /src/image/src/codecs/bmp/decoder.rs:2807,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2807,1
    - Dst: PartialReader::new
      Src: /src/image/src/codecs/bmp/decoder.rs:2810,1
    - Dst: BmpDecoder::new_resumable
      Src: /src/image/src/codecs/bmp/decoder.rs:2811,1
    - Dst: set_available
      Src: /src/image/src/codecs/bmp/decoder.rs:2820,1
    - Dst: ImageResult::read_metadata
      Src: /src/image/src/codecs/bmp/decoder.rs:2821,1
    - Dst: is_unexpected_eof
      Src: /src/image/src/codecs/bmp/decoder.rs:2823,1
    - Dst: min
      Src: /src/image/src/codecs/bmp/decoder.rs:2837,1
    - Dst: ImageResult::icc_profile
      Src: /src/image/src/codecs/bmp/decoder.rs:2859,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2859,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/bmp/decoder.rs:2868,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:2868,1
    - Dst: dimensions
      Src: /src/image/src/codecs/bmp/decoder.rs:2869,1
    - Dst: set_available
      Src: /src/image/src/codecs/bmp/decoder.rs:2881,1
    - Dst: ImageResult::read_image_data
      Src: /src/image/src/codecs/bmp/decoder.rs:2882,1
    - Dst: ImageResult::rows_decoded
      Src: /src/image/src/codecs/bmp/decoder.rs:2885,1
    - Dst: is_unexpected_eof
      Src: /src/image/src/codecs/bmp/decoder.rs:2904,1
    - Dst: ImageResult::rows_decoded
      Src: /src/image/src/codecs/bmp/decoder.rs:2906,1
    - Dst: RowsDecoded::rows
      Src: /src/image/src/codecs/bmp/decoder.rs:2907,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 137
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2713
    functionDepth: 12
    functionLinenumber: 2713
    functionLinenumberEnd: 2968
    functionName: test::test_resumable_decoding
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - BmpDecoder::new_resumable
    - RowsDecoded::rows
    - PartialReader::new
    - ImageResult::unwrap
    - read_image
    - ImageResult::prepare_image
    - is_unexpected_eof
    - ImageResult::rows_decoded
    - ImageResult::icc_profile
    - prepare_image
    - icc_profile
    - ImageResult::read_metadata
    - min
    - unwrap
    - std::io::Result::unwrap
    - dimensions
    - ImageResult::read_image_data
    - ImageResult::len
    - map
    - total_bytes
    - set_available
    - BmpDecoder::new
    - ImageResult::clone
    - std::fs::read
    - Result::len
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn test_resumable_decoding()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/image/src/codecs/bmp/decoder.rs:3010,1
    - Dst: std::io::Result::unwrap_or_else
      Src: /src/image/src/codecs/bmp/decoder.rs:3010,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:3014,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:3014,1
    - Dst: ImageResult::unwrap_or_else
      Src: /src/image/src/codecs/bmp/decoder.rs:3014,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/bmp/decoder.rs:3017,1
    - Dst: ImageResult::unwrap_or_else
      Src: /src/image/src/codecs/bmp/decoder.rs:3017,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/bmp/decoder.rs:3021,1
    - Dst: std::io::Result::as_mut_slice
      Src: /src/image/src/codecs/bmp/decoder.rs:3021,1
    - Dst: ImageResult::unwrap_or_else
      Src: /src/image/src/codecs/bmp/decoder.rs:3021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3032
      start: 2981
    functionDepth: 14
    functionLinenumber: 2981
    functionLinenumberEnd: 3032
    functionName: test::test_strict_vs_lenient_spec_validation
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap_or_else
    - ImageResult::read_image
    - BmpDecoder::new
    - std::fs::read
    - ImageResult::prepare_image
    - Cursor::new
    - std::io::Result::as_mut_slice
    - std::io::Result::unwrap_or_else
    linkageType: ''
    returnType: void
    signature: fn test_strict_vs_lenient_spec_validation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::clone
      Src: /src/image/src/codecs/bmp/decoder.rs:3048,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:3052,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:3052,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:3052,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/bmp/decoder.rs:3053,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:3053,1
    - Dst: total_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:3053,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/bmp/decoder.rs:3055,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:3055,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:3057,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:3057,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:3057,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/bmp/decoder.rs:3058,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:3058,1
    - Dst: total_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:3058,1
    - Dst: read_image
      Src: /src/image/src/codecs/bmp/decoder.rs:3060,1
    - Dst: unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:3060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3066
      start: 3038
    functionDepth: 14
    functionLinenumber: 3038
    functionLinenumberEnd: 3066
    functionName: test::test_invalid_data_offset_into_dib_header
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::read_image
    - ImageResult::unwrap
    - BmpDecoder::new
    - ImageResult::clone
    - read_image
    - unwrap
    - ImageResult::prepare_image
    - total_bytes
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn test_invalid_data_offset_into_dib_header()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/image/src/codecs/bmp/decoder.rs:3082,1
    - Dst: std::io::Result::expect
      Src: /src/image/src/codecs/bmp/decoder.rs:3082,1
    - Dst: BmpDecoder::with_spec_compliance
      Src: /src/image/src/codecs/bmp/decoder.rs:3086,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:3086,1
    - Dst: ImageResult::and_then
      Src: /src/image/src/codecs/bmp/decoder.rs:3086,1
    - Dst: prepare_image
      Src: /src/image/src/codecs/bmp/decoder.rs:3088,1
    - Dst: total_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:3088,1
    - Dst: read_image
      Src: /src/image/src/codecs/bmp/decoder.rs:3090,1
    - Dst: std::io::Result::as_mut_slice
      Src: /src/image/src/codecs/bmp/decoder.rs:3090,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3097
      start: 3075
    functionDepth: 14
    functionLinenumber: 3075
    functionLinenumberEnd: 3097
    functionName: test::test_strict_mode_fails_on_rle_errors
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::and_then
    - std::io::Result::expect
    - prepare_image
    - read_image
    - std::fs::read
    - total_bytes
    - Cursor::new
    - std::io::Result::as_mut_slice
    - BmpDecoder::with_spec_compliance
    linkageType: ''
    returnType: void
    signature: fn test_strict_mode_fails_on_rle_errors()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/image/src/codecs/bmp/decoder.rs:3101,1
    - Dst: std::io::Result::expect
      Src: /src/image/src/codecs/bmp/decoder.rs:3101,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:3103,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:3103,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:3103,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/bmp/decoder.rs:3104,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:3104,1
    - Dst: total_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:3104,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/bmp/decoder.rs:3106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3108
      start: 3100
    functionDepth: 14
    functionLinenumber: 3100
    functionLinenumberEnd: 3108
    functionName: test::test_decode_bmp_rle_overflow
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::expect
    - ImageResult::read_image
    - ImageResult::unwrap
    - BmpDecoder::new
    - std::fs::read
    - ImageResult::prepare_image
    - total_bytes
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn test_decode_bmp_rle_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read
      Src: /src/image/src/codecs/bmp/decoder.rs:3112,1
    - Dst: std::io::Result::expect
      Src: /src/image/src/codecs/bmp/decoder.rs:3112,1
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:3114,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:3114,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:3114,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/bmp/decoder.rs:3115,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:3115,1
    - Dst: total_bytes
      Src: /src/image/src/codecs/bmp/decoder.rs:3115,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/bmp/decoder.rs:3117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3119
      start: 3111
    functionDepth: 14
    functionLinenumber: 3111
    functionLinenumberEnd: 3119
    functionName: test::test_decode_bmp_badrle
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - std::io::Result::expect
    - ImageResult::read_image
    - ImageResult::unwrap
    - BmpDecoder::new
    - std::fs::read
    - ImageResult::prepare_image
    - total_bytes
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn test_decode_bmp_badrle()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpDecoder::new
      Src: /src/image/src/codecs/bmp/decoder.rs:3134,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:3134,1
    - Dst: ImageResult::clone
      Src: /src/image/src/codecs/bmp/decoder.rs:3134,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:3134,1
    - Dst: crate::ImageReader::from_decoder
      Src: /src/image/src/codecs/bmp/decoder.rs:3135,1
    - Dst: Box::new
      Src: /src/image/src/codecs/bmp/decoder.rs:3135,1
    - Dst: ImageResult::decode
      Src: /src/image/src/codecs/bmp/decoder.rs:3136,1
    - Dst: BmpDecoder::with_spec_compliance
      Src: /src/image/src/codecs/bmp/decoder.rs:3144,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/bmp/decoder.rs:3144,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/bmp/decoder.rs:3144,1
    - Dst: crate::ImageReader::from_decoder
      Src: /src/image/src/codecs/bmp/decoder.rs:3145,1
    - Dst: Box::new
      Src: /src/image/src/codecs/bmp/decoder.rs:3145,1
    - Dst: ImageResult::decode
      Src: /src/image/src/codecs/bmp/decoder.rs:3146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3152
      start: 3122
    functionDepth: 14
    functionLinenumber: 3122
    functionLinenumberEnd: 3152
    functionName: test::test_decode_truncated_bmp
    functionSourceFile: /src/image/src/codecs/bmp/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - ImageResult::clone
    - BmpDecoder::new
    - crate::ImageReader::from_decoder
    - Box::new
    - ImageResult::decode
    - Cursor::new
    - BmpDecoder::with_spec_compliance
    linkageType: ''
    returnType: void
    signature: fn test_decode_truncated_bmp()
  - 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: 9
    functionLinenumber: 83
    functionLinenumberEnd: 120
    functionName: Header::from_pixel_info
    functionSourceFile: /src/image/src/codecs/tga/header.rs
    functionUses: 1
    functionsReached:
    - Err
    - UnsupportedErrorKind::Color
    - Ok
    - Self::default
    - ImageError::Unsupported
    - into
    - UnsupportedError::from_format_and_kind
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn from_pixel_info(color_type: ExtendedColorType,width:
      u16,height: u16,use_rle: bool,) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 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
    - read_u16::<LittleEndian>
    - std::io::Result::as_slice
    - Ok
    - Result::read_u8
    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:
    - Ok
    - Self::write_u8
    - std::io::Result::as_mut_slice
    - write_u16::<LittleEndian>
    - '&mut dyn Write::write_all'
    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:
    - TgaEncoder::write_rle_encoded_packet
    - vec_try_with_capacity
    - std::io::Result::clear
    - Ok
    - None::unwrap
    - usize::from
    - Some
    - TgaEncoder::write_raw_packet
    - std::io::Result::extend_from_slice
    - Option::bits_per_pixel
    - Vec::chunks
    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:173,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/encoder.rs:183,1
    - Dst: ImageError::from
      Src: /src/image/src/codecs/tga/encoder.rs:183,1
    - Dst: EncoderError::Empty
      Src: /src/image/src/codecs/tga/encoder.rs:183,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/tga/encoder.rs:186,1
    - Dst: Result::map_err
      Src: /src/image/src/codecs/tga/encoder.rs:186,1
    - Dst: ImageError::from
      Src: /src/image/src/codecs/tga/encoder.rs:187,1
    - Dst: EncoderError::WidthInvalid
      Src: /src/image/src/codecs/tga/encoder.rs:187,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/tga/encoder.rs:189,1
    - Dst: Result::map_err
      Src: /src/image/src/codecs/tga/encoder.rs:189,1
    - Dst: ImageError::from
      Src: /src/image/src/codecs/tga/encoder.rs:190,1
    - Dst: EncoderError::HeightInvalid
      Src: /src/image/src/codecs/tga/encoder.rs:190,1
    - Dst: Header::from_pixel_info
      Src: /src/image/src/codecs/tga/encoder.rs:193,1
    - Dst: ImageResult::write_to
      Src: /src/image/src/codecs/tga/encoder.rs:194,1
    - Dst: ImageType::new
      Src: /src/image/src/codecs/tga/encoder.rs:196,1
    - Dst: Vec::from
      Src: /src/image/src/codecs/tga/encoder.rs:205,1
    - Dst: Vec::chunks_mut
      Src: /src/image/src/codecs/tga/encoder.rs:207,1
    - Dst: usize::from
      Src: /src/image/src/codecs/tga/encoder.rs:207,1
    - Dst: Option::bits_per_pixel
      Src: /src/image/src/codecs/tga/encoder.rs:207,1
    - Dst: u8::swap
      Src: /src/image/src/codecs/tga/encoder.rs:209,1
    - Dst: TgaEncoder::run_length_encode
      Src: /src/image/src/codecs/tga/encoder.rs:212,1
    - Dst: TgaEncoder::run_length_encode
      Src: /src/image/src/codecs/tga/encoder.rs:215,1
    - Dst: Vec::from
      Src: /src/image/src/codecs/tga/encoder.rs:224,1
    - Dst: Vec::chunks_mut
      Src: /src/image/src/codecs/tga/encoder.rs:226,1
    - Dst: usize::from
      Src: /src/image/src/codecs/tga/encoder.rs:226,1
    - Dst: Option::bits_per_pixel
      Src: /src/image/src/codecs/tga/encoder.rs:226,1
    - Dst: u8::swap
      Src: /src/image/src/codecs/tga/encoder.rs:228,1
    - Dst: write_all
      Src: /src/image/src/codecs/tga/encoder.rs:231,1
    - Dst: write_all
      Src: /src/image/src/codecs/tga/encoder.rs:234,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/encoder.rs:240,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 90
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 241
      start: 166
    functionDepth: 11
    functionLinenumber: 166
    functionLinenumberEnd: 241
    functionName: TgaEncoder::encode
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - u8::swap
    - Vec::chunks_mut
    - Result::map_err
    - ImageType::new
    - Option::bits_per_pixel
    - Vec::from
    - Option::buffer_size
    - ImageError::from
    - EncoderError::HeightInvalid
    - Header::from_pixel_info
    - TgaEncoder::run_length_encode
    - write_all
    - ImageResult::write_to
    - EncoderError::Empty
    - EncoderError::WidthInvalid
    - Ok
    - usize::from
    - u16::try_from
    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:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 254
      start: 246
    functionDepth: 12
    functionLinenumber: 246
    functionLinenumberEnd: 254
    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:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - img
    argTypes:
    - crate::io::encoder::MethodSealedToImage
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 262
    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:275,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/encoder.rs:280,1
    - Dst: TgaEncoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:281,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/tga/encoder.rs:282,1
    - Dst: ImageError::source
      Src: /src/image/src/codecs/tga/encoder.rs:286,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:286,1
    - Dst: "source()\n                    .unwrap()\n                    .downcast_ref::<EncoderError>"
      Src: /src/image/src/codecs/tga/encoder.rs:286,1
    - Dst: unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 272
    functionDepth: 13
    functionLinenumber: 272
    functionLinenumberEnd: 298
    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
    - ImageResult::encode
    - unwrap
    - TgaEncoder::new
    - Vec::new
    - ImageError::source
    - Option::unwrap
    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:304,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/encoder.rs:309,1
    - Dst: TgaEncoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:310,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/tga/encoder.rs:311,1
    - Dst: ImageError::source
      Src: /src/image/src/codecs/tga/encoder.rs:315,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:315,1
    - Dst: "source()\n                    .unwrap()\n                    .downcast_ref::<EncoderError>"
      Src: /src/image/src/codecs/tga/encoder.rs:315,1
    - Dst: unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 327
      start: 301
    functionDepth: 13
    functionLinenumber: 301
    functionLinenumberEnd: 327
    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
    - ImageResult::encode
    - unwrap
    - TgaEncoder::new
    - Vec::new
    - ImageError::source
    - Option::unwrap
    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:334,1
    - Dst: TgaEncoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:335,1
    - Dst: TgaEncoder::disable_rle
      Src: /src/image/src/codecs/tga/encoder.rs:335,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/tga/encoder.rs:336,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/tga/encoder.rs:336,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/encoder.rs:344,1
    - Dst: TgaEncoder::new
      Src: /src/image/src/codecs/tga/encoder.rs:345,1
    - Dst: ImageResult::encode
      Src: /src/image/src/codecs/tga/encoder.rs:346,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/tga/encoder.rs:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 354
      start: 330
    functionDepth: 13
    functionLinenumber: 330
    functionLinenumberEnd: 354
    functionName: tests::test_compression_diff
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - TgaEncoder::disable_rle
    - ImageResult::expect
    - ImageResult::encode
    - TgaEncoder::new
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_compression_diff()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: round_trip_image
      Src: /src/image/src/codecs/tga/encoder.rs:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 382
    functionDepth: 14
    functionLinenumber: 382
    functionLinenumberEnd: 389
    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:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 421
      start: 416
    functionDepth: 14
    functionLinenumber: 416
    functionLinenumberEnd: 421
    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:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 437
      start: 432
    functionDepth: 14
    functionLinenumber: 432
    functionLinenumberEnd: 437
    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:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 445
      start: 440
    functionDepth: 14
    functionLinenumber: 440
    functionLinenumberEnd: 445
    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:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 453
      start: 448
    functionDepth: 14
    functionLinenumber: 448
    functionLinenumberEnd: 453
    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:459,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:459,1
    - Dst: Vec::width
      Src: /src/image/src/codecs/tga/encoder.rs:460,1
    - Dst: Vec::height
      Src: /src/image/src/codecs/tga/encoder.rs:460,1
    - Dst: Vec::as_rgb8
      Src: /src/image/src/codecs/tga/encoder.rs:461,1
    - Dst: Option::unwrap
      Src: /src/image/src/codecs/tga/encoder.rs:461,1
    - Dst: to_vec
      Src: /src/image/src/codecs/tga/encoder.rs:461,1
    - Dst: round_trip_image
      Src: /src/image/src/codecs/tga/encoder.rs:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 466
      start: 456
    functionDepth: 14
    functionLinenumber: 456
    functionLinenumberEnd: 466
    functionName: tests::round_trip_bw
    functionSourceFile: /src/image/src/codecs/tga/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::height
    - Vec::as_rgb8
    - to_vec
    - Vec::width
    - crate::open
    - Option::unwrap
    - io::Result::unwrap
    - round_trip_image
    linkageType: ''
    returnType: void
    signature: fn round_trip_bw()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::checked_sub
      Src: /src/image/src/codecs/tga/decoder.rs:24,1
    - Dst: get
      Src: /src/image/src/codecs/tga/decoder.rs:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - index
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 26
    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: 77
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 77
    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: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    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:91,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
    - Dst: unorm5_to_unorm8
      Src: /src/image/src/codecs/tga/decoder.rs:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - data
    argTypes:
    - '[u8; 2]'
    constantsTouched: []
    func_position:
      end: 97
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 97
    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:103,1
    - Dst: ImageType::new
      Src: /src/image/src/codecs/tga/decoder.rs:104,1
    - Dst: div_ceil
      Src: /src/image/src/codecs/tga/decoder.rs:107,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:111,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:111,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:111,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:112,1
    - Dst: ImageType::is_color_mapped
      Src: /src/image/src/codecs/tga/decoder.rs:117,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:119,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:119,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:119,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:120,1
    - Dst: contains
      Src: /src/image/src/codecs/tga/decoder.rs:123,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:124,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:124,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:124,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:125,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:129,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tga/decoder.rs:129,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tga/decoder.rs:130,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:131,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tga/decoder.rs:132,1
    - Dst: '&str::into'
      Src: /src/image/src/codecs/tga/decoder.rs:133,1
    - Dst: ImageType::is_color_mapped
      Src: /src/image/src/codecs/tga/decoder.rs:141,1
    - Dst: checked_sub
      Src: /src/image/src/codecs/tga/decoder.rs:146,1
    - Dst: ok_or_else
      Src: /src/image/src/codecs/tga/decoder.rs:146,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:149,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:149,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:150,1
    - Dst: ImageType::is_color
      Src: /src/image/src/codecs/tga/decoder.rs:158,1
    - Dst: Some
      Src: /src/image/src/codecs/tga/decoder.rs:169,1
    - Dst: Some
      Src: /src/image/src/codecs/tga/decoder.rs:176,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:179,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tga/decoder.rs:179,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tga/decoder.rs:180,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:181,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/tga/decoder.rs:182,1
    - Dst: ExtendedColorType::Unknown
      Src: /src/image/src/codecs/tga/decoder.rs:182,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/tga/decoder.rs:192,1
    - Dst: contains
      Src: /src/image/src/codecs/tga/decoder.rs:197,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:198,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/tga/decoder.rs:198,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/tga/decoder.rs:199,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:200,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/tga/decoder.rs:201,1
    - Dst: '&str::into'
      Src: /src/image/src/codecs/tga/decoder.rs:202,1
    - Dst: div_ceil
      Src: /src/image/src/codecs/tga/decoder.rs:207,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/decoder.rs:209,1
    - Dst: Result::read_exact_vec
      Src: /src/image/src/codecs/tga/decoder.rs:210,1
    - Dst: ImageType::is_color_mapped
      Src: /src/image/src/codecs/tga/decoder.rs:214,1
    - Dst: contains
      Src: /src/image/src/codecs/tga/decoder.rs:216,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/tga/decoder.rs:217,1
    - Dst: as_chunks::<2>
      Src: /src/image/src/codecs/tga/decoder.rs:218,1
    - Dst: iter
      Src: /src/image/src/codecs/tga/decoder.rs:218,1
    - Dst: Self::extend_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:219,1
    - Dst: expand_rgb15_to_rgb24
      Src: /src/image/src/codecs/tga/decoder.rs:219,1
    - Dst: Some
      Src: /src/image/src/codecs/tga/decoder.rs:225,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/decoder.rs:233,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 197
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 247
      start: 101
    functionDepth: 10
    functionLinenumber: 101
    functionLinenumberEnd: 247
    functionName: TgaDecoder::new
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 3
    functionsReached:
    - ImageType::is_color
    - Err
    - UnsupportedErrorKind::Color
    - div_ceil
    - Some
    - ImageType::new
    - into
    - expand_rgb15_to_rgb24
    - iter
    - ImageError::Decoding
    - checked_sub
    - Self::extend_from_slice
    - ImageType::is_color_mapped
    - ImageError::Unsupported
    - Vec::new
    - ExtendedColorType::Unknown
    - UnsupportedError::from_format_and_kind
    - Result::read_exact
    - Header::from_reader
    - as_chunks::<2>
    - ok_or_else
    - '&str::into'
    - UnsupportedErrorKind::GenericFeature
    - Result::read_exact_vec
    - Ok
    - DecodingError::new
    - contains
    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:256,1
    - Dst: read_u8
      Src: /src/image/src/codecs/tga/decoder.rs:257,1
    - Dst: read_exact
      Src: /src/image/src/codecs/tga/decoder.rs:265,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:267,1
    - Dst: take
      Src: /src/image/src/codecs/tga/decoder.rs:267,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:271,1
    - Dst: min
      Src: /src/image/src/codecs/tga/decoder.rs:277,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/tga/decoder.rs:277,1
    - Dst: read_exact
      Src: /src/image/src/codecs/tga/decoder.rs:279,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/decoder.rs:284,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 70
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 285
      start: 250
    functionDepth: 2
    functionLinenumber: 250
    functionLinenumberEnd: 285
    functionName: TgaDecoder::read_encoded_data
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 1
    functionsReached:
    - Option::copy_from_slice
    - take
    - read_exact
    - Ok
    - min
    - read_u8
    - std::io::Result::len
    - 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:295,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:295,1
    - Dst: bool::chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:297,1
    - Dst: ImageResult::get
      Src: /src/image/src/codecs/tga/decoder.rs:299,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:300,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:302,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:302,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:302,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:303,1
    - Dst: as_chunks::<2>
      Src: /src/image/src/codecs/tga/decoder.rs:309,1
    - Dst: iter
      Src: /src/image/src/codecs/tga/decoder.rs:309,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:310,1
    - Dst: bool::chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:310,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/tga/decoder.rs:311,1
    - Dst: ImageResult::get
      Src: /src/image/src/codecs/tga/decoder.rs:312,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/tga/decoder.rs:313,1
    - Dst: Err
      Src: /src/image/src/codecs/tga/decoder.rs:315,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/tga/decoder.rs:315,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/tga/decoder.rs:315,1
    - Dst: into
      Src: /src/image/src/codecs/tga/decoder.rs:316,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/decoder.rs:325,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 62
    argCount: 3
    argNames:
    - input
    - output
    - color_map
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&ColorMap'
    constantsTouched: []
    func_position:
      end: 326
      start: 288
    functionDepth: 6
    functionLinenumber: 288
    functionLinenumberEnd: 326
    functionName: TgaDecoder::expand_color_map
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 1
    functionsReached:
    - iter
    - Option::copy_from_slice
    - bool::chunks_exact_mut
    - Err
    - ImageResult::get
    - ImageError::Decoding
    - Ok
    - as_chunks::<2>
    - zip
    - '&[u8]::iter'
    - into
    - DecodingError::new
    - u16::from_le_bytes
    linkageType: ''
    returnType: ImageResult
    signature: 'fn expand_color_map(&self,input: &[u8],output: &mut [u8],color_map:
      &ColorMap,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BgraSwizzle::swizzle_rgb_bgr
      Src: /src/image/src/codecs/tga/decoder.rs:335,1
    - Dst: BgraSwizzle::swizzle_rgba_bgra
      Src: /src/image/src/codecs/tga/decoder.rs:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pixels
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 339
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 339
    functionName: TgaDecoder::reverse_encoding_in_output
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 1
    functionsReached:
    - BgraSwizzle::swizzle_rgb_bgr
    - BgraSwizzle::swizzle_rgba_bgra
    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:348,1
    - Dst: ImageResult::split_at_mut
      Src: /src/image/src/codecs/tga/decoder.rs:356,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:358,1
    - Dst: zip
      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: rev
      Src: /src/image/src/codecs/tga/decoder.rs:360,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/tga/decoder.rs:362,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:362,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/tga/decoder.rs:362,1
    - Dst: std::mem::swap
      Src: /src/image/src/codecs/tga/decoder.rs:363,1
    - Dst: ImageResult::chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:372,1
    - Dst: Result::split_at_mut
      Src: /src/image/src/codecs/tga/decoder.rs:374,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:375,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:375,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/tga/decoder.rs:377,1
    - Dst: rev
      Src: /src/image/src/codecs/tga/decoder.rs:377,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/tga/decoder.rs:379,1
    - Dst: zip
      Src: /src/image/src/codecs/tga/decoder.rs:379,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/tga/decoder.rs:379,1
    - Dst: std::mem::swap
      Src: /src/image/src/codecs/tga/decoder.rs:380,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 85
    argCount: 1
    argNames:
    - pixels
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 385
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 385
    functionName: TgaDecoder::fixup_orientation
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 1
    functionsReached:
    - ImageResult::chunks_exact_mut
    - iter_mut
    - TgaOrientation::from_image_desc_byte
    - zip
    - ImageResult::split_at_mut
    - rev
    - Result::split_at_mut
    - std::mem::swap
    - chunks_exact_mut
    linkageType: ''
    returnType: void
    signature: 'fn fixup_orientation(&mut self, pixels: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::try_into
      Src: /src/image/src/codecs/tga/decoder.rs:391,1
    - Dst: map_err
      Src: /src/image/src/codecs/tga/decoder.rs:391,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/tga/decoder.rs:393,1
    - Dst: map_err
      Src: /src/image/src/codecs/tga/decoder.rs:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 395
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 395
    functionName: T::g::a::D::e::c::o::d::e::r::::::::p::r::e::p::a::r::e::_::i::m::a::g::e::try_dimensions
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::try_into
    - LimitError::from_kind
    - map_err
    linkageType: ''
    returnType: ImageResult
    signature: 'fn try_dimensions(value: usize) -> ImageResult<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_dimensions
      Src: /src/image/src/codecs/tga/decoder.rs:397,1
    - Dst: try_dimensions
      Src: /src/image/src/codecs/tga/decoder.rs:398,1
    - Dst: Ok
      Src: /src/image/src/codecs/tga/decoder.rs:400,1
    - Dst: DecoderPreparedImage::new
      Src: /src/image/src/codecs/tga/decoder.rs:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 401
    functionName: TgaDecoder::prepare_image
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 1
    functionsReached:
    - try_dimensions
    - Ok
    - DecoderPreparedImage::new
    linkageType: ''
    returnType: ImageResult
    signature: fn prepare_image(&mut self) -> ImageResult<DecoderPreparedImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TgaDecoder::prepare_image
      Src: /src/image/src/codecs/tga/decoder.rs:404,1
    - 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
    - Dst: DecodedImageAttributes::default
      Src: /src/image/src/codecs/tga/decoder.rs:459,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 108
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 461
      start: 403
    functionDepth: 9
    functionLinenumber: 403
    functionLinenumberEnd: 461
    functionName: TgaDecoder::read_image
    functionSourceFile: /src/image/src/codecs/tga/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - TgaDecoder::reverse_encoding_in_output
    - TgaDecoder::prepare_image
    - Some
    - into
    - iter
    - read_exact
    - ImageError::Unsupported
    - as_chunks_mut::<3>
    - is_encoded
    - UnsupportedError::from_format_and_kind
    - utils::vec_try_with_capacity
    - as_chunks::<2>
    - TgaDecoder::read_encoded_data
    - TgaDecoder::expand_color_map
    - '&str::into'
    - DecodedImageAttributes::default
    - UnsupportedErrorKind::GenericFeature
    - bytes_per_pixel
    - Ok
    - iter_mut
    - TgaDecoder::fixup_orientation
    - zip
    - extend_from_slice
    - expand_rgb15_to_rgb24
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(&mut self, buf: &mut [u8]) -> ImageResult<DecodedImageAttributes>'
  - 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:
    - Ok
    - '&mut dyn io::Write::write_all'
    - PnmSubtype::magic_constant
    - 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:
    - u16::from_ne_bytes
    - map
    - PnmEncoder::encode_impl
    - ImageResult::chunks
    - Vec::into
    - bytemuck::try_cast_slice
    - collect
    - FlatSamples::U16
    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: 11
    functionLinenumber: 197
    functionLinenumberEnd: 213
    functionName: PnmEncoder::encode_impl
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 1
    functionsReached:
    - Self::write_with_header
    - PnmEncoder::write_subtyped_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: 10
    functionLinenumber: 218
    functionLinenumberEnd: 259
    functionName: PnmEncoder::write_dynamic_header
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 2
    functionsReached:
    - HeaderRecord::Arbitrary
    - Err
    - UnsupportedErrorKind::Color
    - ImageError::Unsupported
    - bool::channel_count
    - Some
    - into
    - Self::write_with_header
    - UnsupportedError::from_format_and_kind
    - u32::from
    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: 11
    functionLinenumber: 262
    functionLinenumberEnd: 313
    functionName: PnmEncoder::write_subtyped_header
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - UnsupportedErrorKind::Color
    - HeaderRecord::Bitmap
    - HeaderRecord::Graymap
    - HeaderRecord::Pixmap
    - ImageError::Unsupported
    - into
    - Self::write_with_header
    - UnsupportedError::from_format_and_kind
    - PnmEncoder::write_dynamic_header
    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: 11
    functionLinenumber: 318
    functionLinenumberEnd: 334
    functionName: PnmEncoder::write_with_header
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - Range::check_header_dimensions
    - write_header
    - check_sample_values
    - check_header_color
    - write_image
    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: 13
    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: 10
    functionLinenumber: 359
    functionLinenumberEnd: 383
    functionName: CheckedImageBuffer::check
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - usize::checked_mul
    - Ok
    - and_then
    - ImageError::Parameter
    - Some
    - bool::channel_count
    - ParameterError::from_kind
    - DynamicImage::checked_mul
    - Vec::len
    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
    - Ok
    - ParameterError::from_kind
    - width
    - height
    - ImageError::Parameter
    linkageType: ''
    returnType: ImageResult
    signature: 'fn check_header_dimensions(self,width: u32,height: u32,) -> ImageResult<CheckedDimensions<''a>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/image/src/codecs/pnm/encoder.rs: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: 10
    functionLinenumber: 411
    functionLinenumberEnd: 499
    functionName: CheckedDimensions::check_header_color
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - '&str::to_owned'
    - Ok
    - ParameterErrorKind::Generic
    - bool::channel_count
    - ParameterError::from_kind
    - ImageError::Parameter
    - u32::from
    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: 9
    functionLinenumber: 503
    functionLinenumberEnd: 563
    functionName: CheckedHeaderColor::check_sample_values
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Vec::encoding_for
    - '&str::to_owned'
    - UnsupportedErrorKind::Color
    - Ok
    - ImageError::Unsupported
    - into
    - Vec::all_smaller
    - UnsupportedError::from_format_and_kind
    - UnsupportedErrorKind::GenericFeature
    - 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:
    - CheckedHeader::header
    - Ok
    - '&PnmHeader::write'
    linkageType: ''
    returnType: ImageResult
    signature: 'fn write_header(self, writer: &mut dyn Write) -> ImageResult<TupleEncoding<''a>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 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: 13
    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: Ok
      Src: /src/image/src/codecs/pnm/encoder.rs:598,1
    - Dst: u32::div_ceil
      Src: /src/image/src/codecs/pnm/encoder.rs:602,1
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/codecs/pnm/encoder.rs:605,1
    - Dst: ImageResult::chunks
      Src: /src/image/src/codecs/pnm/encoder.rs:607,1
    - Dst: std::io::Result::chunks
      Src: /src/image/src/codecs/pnm/encoder.rs:608,1
    - Dst: get
      Src: /src/image/src/codecs/pnm/encoder.rs:612,1
    - Dst: V::default
      Src: /src/image/src/codecs/pnm/encoder.rs:613,1
    - Dst: push
      Src: /src/image/src/codecs/pnm/encoder.rs:618,1
    - Dst: write_all
      Src: /src/image/src/codecs/pnm/encoder.rs:620,1
    - Dst: as_slice
      Src: /src/image/src/codecs/pnm/encoder.rs:620,1
    - Dst: clear
      Src: /src/image/src/codecs/pnm/encoder.rs:621,1
    - Dst: flush
      Src: /src/image/src/codecs/pnm/encoder.rs:624,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 2
    argNames:
    - samples
    - width
    argTypes:
    - '&[V]'
    - u32
    constantsTouched: []
    func_position:
      end: 625
      start: 592
    functionDepth: 13
    functionLinenumber: 592
    functionLinenumberEnd: 625
    functionName: SampleWriter::write_pbm_bits
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - flush
    - Ok
    - get
    - as_slice
    - u32::div_ceil
    - ImageResult::chunks
    - push
    - std::io::Result::chunks
    - V::default
    - write_all
    - clear
    - utils::vec_try_with_capacity
    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:631,1
    - Dst: len
      Src: /src/image/src/codecs/pnm/encoder.rs:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 634
      start: 629
    functionDepth: 11
    functionLinenumber: 629
    functionLinenumberEnd: 634
    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:638,1
    - Dst: all
      Src: /src/image/src/codecs/pnm/encoder.rs:638,1
    - Dst: u32::from
      Src: /src/image/src/codecs/pnm/encoder.rs:638,1
    - Dst: iter
      Src: /src/image/src/codecs/pnm/encoder.rs:639,1
    - Dst: all
      Src: /src/image/src/codecs/pnm/encoder.rs:639,1
    - Dst: u32::from
      Src: /src/image/src/codecs/pnm/encoder.rs:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - max_val
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 641
      start: 636
    functionDepth: 9
    functionLinenumber: 636
    functionLinenumberEnd: 641
    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: 679
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 679
    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:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - samples
    argTypes:
    - '&''a [u16]'
    constantsTouched: []
    func_position:
      end: 691
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 691
    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:700,1
    - Dst: write_pbm_bits
      Src: /src/image/src/codecs/pnm/encoder.rs:700,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:700,1
    - Dst: SampleWriter
      Src: /src/image/src/codecs/pnm/encoder.rs:706,1
    - Dst: write_pbm_bits
      Src: /src/image/src/codecs/pnm/encoder.rs:706,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:706,1
    - Dst: '&mut dyn Write::write_all'
      Src: /src/image/src/codecs/pnm/encoder.rs:712,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:712,1
    - Dst: ImageResult::iter
      Src: /src/image/src/codecs/pnm/encoder.rs:715,1
    - Dst: try_for_each
      Src: /src/image/src/codecs/pnm/encoder.rs:715,1
    - Dst: write_u16::<BigEndian>
      Src: /src/image/src/codecs/pnm/encoder.rs:716,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:716,1
    - Dst: SampleWriter
      Src: /src/image/src/codecs/pnm/encoder.rs:723,1
    - Dst: write_samples_ascii
      Src: /src/image/src/codecs/pnm/encoder.rs:723,1
    - Dst: ImageResult::iter
      Src: /src/image/src/codecs/pnm/encoder.rs:724,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:723,1
    - Dst: SampleWriter
      Src: /src/image/src/codecs/pnm/encoder.rs:728,1
    - Dst: write_samples_ascii
      Src: /src/image/src/codecs/pnm/encoder.rs:728,1
    - Dst: ImageResult::iter
      Src: /src/image/src/codecs/pnm/encoder.rs:729,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/encoder.rs:728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut dyn Write'
    constantsTouched: []
    func_position:
      end: 732
      start: 695
    functionDepth: 14
    functionLinenumber: 695
    functionLinenumberEnd: 732
    functionName: TupleEncoding::write_image
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - write_pbm_bits
    - try_for_each
    - ImageResult::iter
    - write_samples_ascii
    - write_u16::<BigEndian>
    - SampleWriter
    - map_err
    - '&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:737,1
    - Dst: PnmEncoder::new
      Src: /src/image/src/codecs/pnm/encoder.rs:741,1
    - Dst: Self::with_subtype
      Src: /src/image/src/codecs/pnm/encoder.rs:741,1
    - Dst: PnmSubtype::Bitmap
      Src: /src/image/src/codecs/pnm/encoder.rs:741,1
    - Dst: DynamicImage::write_with_encoder
      Src: /src/image/src/codecs/pnm/encoder.rs:743,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/pnm/encoder.rs:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 746
      start: 736
    functionDepth: 11
    functionLinenumber: 736
    functionLinenumberEnd: 746
    functionName: pbm_allows_black
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - Self::with_subtype
    - ImageResult::expect
    - DynamicImage::write_with_encoder
    - PnmEncoder::new
    - crate::DynamicImage::new_luma8
    - PnmSubtype::Bitmap
    linkageType: ''
    returnType: void
    signature: fn pbm_allows_black()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::DynamicImage::ImageLuma8
      Src: /src/image/src/codecs/pnm/encoder.rs:751,1
    - Dst: crate::ImageBuffer::from_pixel
      Src: /src/image/src/codecs/pnm/encoder.rs:751,1
    - Dst: crate::Luma
      Src: /src/image/src/codecs/pnm/encoder.rs:751,1
    - Dst: PnmEncoder::new
      Src: /src/image/src/codecs/pnm/encoder.rs:755,1
    - Dst: Self::with_subtype
      Src: /src/image/src/codecs/pnm/encoder.rs:755,1
    - Dst: PnmSubtype::Bitmap
      Src: /src/image/src/codecs/pnm/encoder.rs:755,1
    - Dst: write_with_encoder
      Src: /src/image/src/codecs/pnm/encoder.rs:757,1
    - Dst: expect
      Src: /src/image/src/codecs/pnm/encoder.rs:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 760
      start: 749
    functionDepth: 11
    functionLinenumber: 749
    functionLinenumberEnd: 760
    functionName: pbm_allows_white
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - Self::with_subtype
    - crate::ImageBuffer::from_pixel
    - expect
    - write_with_encoder
    - crate::Luma
    - PnmEncoder::new
    - crate::DynamicImage::ImageLuma8
    - PnmSubtype::Bitmap
    linkageType: ''
    returnType: void
    signature: fn pbm_allows_white()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::DynamicImage::ImageLuma8
      Src: /src/image/src/codecs/pnm/encoder.rs:765,1
    - Dst: crate::ImageBuffer::from_pixel
      Src: /src/image/src/codecs/pnm/encoder.rs:765,1
    - Dst: crate::Luma
      Src: /src/image/src/codecs/pnm/encoder.rs:765,1
    - Dst: PnmEncoder::new
      Src: /src/image/src/codecs/pnm/encoder.rs:769,1
    - Dst: Self::with_subtype
      Src: /src/image/src/codecs/pnm/encoder.rs:769,1
    - Dst: PnmSubtype::Bitmap
      Src: /src/image/src/codecs/pnm/encoder.rs:769,1
    - Dst: write_with_encoder
      Src: /src/image/src/codecs/pnm/encoder.rs:771,1
    - Dst: expect_err
      Src: /src/image/src/codecs/pnm/encoder.rs:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 774
      start: 763
    functionDepth: 11
    functionLinenumber: 763
    functionLinenumberEnd: 774
    functionName: pbm_verifies_pixels
    functionSourceFile: /src/image/src/codecs/pnm/encoder.rs
    functionUses: 0
    functionsReached:
    - Self::with_subtype
    - crate::ImageBuffer::from_pixel
    - write_with_encoder
    - crate::Luma
    - PnmEncoder::new
    - expect_err
    - crate::DynamicImage::ImageLuma8
    - PnmSubtype::Bitmap
    linkageType: ''
    returnType: void
    signature: fn pbm_verifies_pixels()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::write_str
      Src: /src/image/src/codecs/pnm/decoder.rs:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: PnmHeaderLine::fmt
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Result::write_str
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/image/src/codecs/pnm/decoder.rs:212,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/pnm/decoder.rs:213,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/pnm/decoder.rs:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: ErrorDataSource::fmt
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Result::write_str
    - fmt
    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: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 250
    functionName: TupleType::expanded_color
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ColorType
    signature: fn expanded_color(self) -> ColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 266
    functionName: TupleType::original_color
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ExtendedColorType
    signature: fn original_color(self) -> ExtendedColorType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size_of::<Self::Representation>
      Src: /src/image/src/codecs/pnm/decoder.rs:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    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:305,1
    - Dst: PnmSubtype::Bitmap
      Src: /src/image/src/codecs/pnm/decoder.rs:308,1
    - Dst: PnmSubtype::Graymap
      Src: /src/image/src/codecs/pnm/decoder.rs:309,1
    - Dst: PnmSubtype::Pixmap
      Src: /src/image/src/codecs/pnm/decoder.rs:310,1
    - Dst: PnmSubtype::Bitmap
      Src: /src/image/src/codecs/pnm/decoder.rs:311,1
    - Dst: PnmSubtype::Graymap
      Src: /src/image/src/codecs/pnm/decoder.rs:312,1
    - Dst: PnmSubtype::Pixmap
      Src: /src/image/src/codecs/pnm/decoder.rs:313,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:315,1
    - Dst: DecoderError::PnmMagicInvalid
      Src: /src/image/src/codecs/pnm/decoder.rs:315,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:315,1
    - Dst: PnmDecoder::read_bitmap_header
      Src: /src/image/src/codecs/pnm/decoder.rs:323,1
    - Dst: PnmDecoder::read_graymap_header
      Src: /src/image/src/codecs/pnm/decoder.rs:324,1
    - Dst: PnmDecoder::read_pixmap_header
      Src: /src/image/src/codecs/pnm/decoder.rs:325,1
    - Dst: PnmDecoder::read_arbitrary_header
      Src: /src/image/src/codecs/pnm/decoder.rs:326,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:329,1
    - Dst: total_bytes_overflows_u64
      Src: /src/image/src/codecs/pnm/decoder.rs:331,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:332,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/decoder.rs:332,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/decoder.rs:333,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:334,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/pnm/decoder.rs:335,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:343,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - buffered_read
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 344
      start: 304
    functionDepth: 9
    functionLinenumber: 304
    functionLinenumberEnd: 344
    functionName: PnmDecoder::new
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 22
    functionsReached:
    - Err
    - DecoderError::PnmMagicInvalid
    - PnmDecoder::read_bitmap_header
    - PnmDecoder::read_graymap_header
    - R::read_magic_constant
    - Ok
    - PnmDecoder::read_arbitrary_header
    - total_bytes_overflows_u64
    - ImageError::Unsupported
    - PnmSubtype::Pixmap
    - ImageResult::prepare_image
    - PnmSubtype::Graymap
    - into
    - PnmSubtype::Bitmap
    - UnsupportedError::from_format_and_kind
    - PnmDecoder::read_pixmap_header
    - UnsupportedErrorKind::GenericFeature
    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: 349
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 349
    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: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    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:357,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:358,1
    - Dst: HeaderRecord::Bitmap
      Src: /src/image/src/codecs/pnm/decoder.rs:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - reader
    - encoding
    argTypes:
    - R
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 366
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 366
    functionName: PnmDecoder::read_bitmap_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - HeaderRecord::Bitmap
    - Ok
    - Result::read_bitmap_header
    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:369,1
    - Dst: ImageResult::tuple_type
      Src: /src/image/src/codecs/pnm/decoder.rs:370,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:371,1
    - Dst: HeaderRecord::Graymap
      Src: /src/image/src/codecs/pnm/decoder.rs:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - reader
    - encoding
    argTypes:
    - R
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 379
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 379
    functionName: PnmDecoder::read_graymap_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - HeaderRecord::Graymap
    - Result::read_graymap_header
    - ImageResult::tuple_type
    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:382,1
    - Dst: ImageResult::tuple_type
      Src: /src/image/src/codecs/pnm/decoder.rs:383,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:384,1
    - Dst: HeaderRecord::Pixmap
      Src: /src/image/src/codecs/pnm/decoder.rs:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - reader
    - encoding
    argTypes:
    - R
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 392
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 392
    functionName: PnmDecoder::read_pixmap_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Result::read_pixmap_header
    - HeaderRecord::Pixmap
    - ImageResult::tuple_type
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_pixmap_header(mut reader: R, encoding: SampleEncoding) ->
      ImageResult<PnmDecoder<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::read_arbitrary_header
      Src: /src/image/src/codecs/pnm/decoder.rs:395,1
    - Dst: ImageResult::tuple_type
      Src: /src/image/src/codecs/pnm/decoder.rs:396,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:397,1
    - Dst: HeaderRecord::Arbitrary
      Src: /src/image/src/codecs/pnm/decoder.rs:401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 405
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 405
    functionName: PnmDecoder::read_arbitrary_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - HeaderRecord::Arbitrary
    - Result::read_arbitrary_header
    - ImageResult::tuple_type
    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:412,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 414
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 414
    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:421,1
    - Dst: '&[u8]::scan'
      Src: /src/image/src/codecs/pnm/decoder.rs:421,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:423,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:423,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:429,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:429,1
    - Dst: filter
      Src: /src/image/src/codecs/pnm/decoder.rs:437,1
    - Dst: io::Result::is_ascii
      Src: /src/image/src/codecs/pnm/decoder.rs:444,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:445,1
    - Dst: DecoderError::NonAsciiByteInHeader
      Src: /src/image/src/codecs/pnm/decoder.rs:445,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:445,1
    - Dst: u32::from
      Src: /src/image/src/codecs/pnm/decoder.rs:449,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:451,1
    - Dst: DecoderError::InvalidDigit
      Src: /src/image/src/codecs/pnm/decoder.rs:451,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:451,1
    - Dst: ImageResult::checked_mul
      Src: /src/image/src/codecs/pnm/decoder.rs:454,1
    - Dst: ok_or
      Src: /src/image/src/codecs/pnm/decoder.rs:454,1
    - Dst: DecoderError::Overflow
      Src: /src/image/src/codecs/pnm/decoder.rs:456,1
    - Dst: ImageResult::checked_add
      Src: /src/image/src/codecs/pnm/decoder.rs:457,1
    - Dst: ok_or
      Src: /src/image/src/codecs/pnm/decoder.rs:457,1
    - Dst: DecoderError::Overflow
      Src: /src/image/src/codecs/pnm/decoder.rs:459,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:467,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/pnm/decoder.rs:467,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:467,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:470,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 471
      start: 418
    functionDepth: 9
    functionLinenumber: 418
    functionLinenumberEnd: 471
    functionName: HeaderReader::read_next_u32
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 2
    functionsReached:
    - DecoderError::NonAsciiByteInHeader
    - filter
    - io::Result::is_ascii
    - Err
    - ImageResult::checked_add
    - Ok
    - DecoderError::InvalidDigit
    - ImageError::IoError
    - ok_or
    - ImageResult::checked_mul
    - Some
    - '&[u8]::scan'
    - into
    - DecoderError::Overflow
    - u32::from
    - HeaderReader::bytes
    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:474,1
    - Dst: HeaderReader::read
      Src: /src/image/src/codecs/pnm/decoder.rs:477,1
    - Dst: '&RgbaImage::push'
      Src: /src/image/src/codecs/pnm/decoder.rs:480,1
    - Dst: String::from_utf8
      Src: /src/image/src/codecs/pnm/decoder.rs:483,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:483,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/pnm/decoder.rs:484,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/pnm/decoder.rs:484,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:484,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 473
    functionDepth: 10
    functionLinenumber: 473
    functionLinenumberEnd: 485
    functionName: HeaderReader::read_next_line
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - ImageError::Decoding
    - '&RgbaImage::push'
    - HeaderReader::read
    - String::from_utf8
    - map_err
    - into
    - Vec::new
    - DecodingError::new
    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:488,1
    - Dst: HeaderReader::read_next_u32
      Src: /src/image/src/codecs/pnm/decoder.rs:489,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 495
      start: 487
    functionDepth: 10
    functionLinenumber: 487
    functionLinenumberEnd: 495
    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:498,1
    - Dst: ImageResult::map
      Src: /src/image/src/codecs/pnm/decoder.rs:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 511
      start: 497
    functionDepth: 11
    functionLinenumber: 497
    functionLinenumberEnd: 511
    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:514,1
    - Dst: HeaderReader::read_next_u32
      Src: /src/image/src/codecs/pnm/decoder.rs:515,1
    - Dst: HeaderReader::read_next_u32
      Src: /src/image/src/codecs/pnm/decoder.rs:516,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - encoding
    argTypes:
    - SampleEncoding
    constantsTouched: []
    func_position:
      end: 523
      start: 513
    functionDepth: 10
    functionLinenumber: 513
    functionLinenumberEnd: 523
    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:531,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:532,1
    - Dst: DecoderError::HeaderLineDuplicated
      Src: /src/image/src/codecs/pnm/decoder.rs:532,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:532,1
    - Dst: Option::trim
      Src: /src/image/src/codecs/pnm/decoder.rs:534,1
    - Dst: parse
      Src: /src/image/src/codecs/pnm/decoder.rs:534,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:534,1
    - Dst: DecoderError::UnparsableValue
      Src: /src/image/src/codecs/pnm/decoder.rs:535,1
    - Dst: ErrorDataSource::Line
      Src: /src/image/src/codecs/pnm/decoder.rs:535,1
    - Dst: Option::to_owned
      Src: /src/image/src/codecs/pnm/decoder.rs:535,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:537,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 3
    argNames:
    - line_val
    - rest
    - line
    argTypes:
    - '&mut Option<u32>'
    - '&str'
    - PnmHeaderLine
    constantsTouched: []
    func_position:
      end: 540
      start: 526
    functionDepth: 9
    functionLinenumber: 526
    functionLinenumberEnd: 540
    functionName: H::e::a::d::e::r::R::e::a::d::e::r::::::::r::e::a::d::_::a::r::b::i::t::r::a::r::y::_::h::e::a::d::e::r::parse_single_value_line
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Option::trim
    - parse
    - DecoderError::UnparsableValue
    - Err
    - ErrorDataSource::Line
    - Option::to_owned
    - Ok
    - '&mut Option<u32>::is_some'
    - Some
    - into
    - map_err
    - DecoderError::HeaderLineDuplicated
    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:543,1
    - Dst: '&[u8]::next'
      Src: /src/image/src/codecs/pnm/decoder.rs:543,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:544,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/pnm/decoder.rs:544,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:544,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:545,1
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/pnm/decoder.rs:545,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:547,1
    - Dst: DecoderError::NotNewlineAfterP7Magic
      Src: /src/image/src/codecs/pnm/decoder.rs:547,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:547,1
    - Dst: HeaderReader::read_next_line
      Src: /src/image/src/codecs/pnm/decoder.rs:557,1
    - Dst: std::io::Result::is_empty
      Src: /src/image/src/codecs/pnm/decoder.rs:558,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: std::io::Result::as_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:561,1
    - Dst: std::io::Result::is_ascii
      Src: /src/image/src/codecs/pnm/decoder.rs:564,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:565,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:565,1
    - Dst: std::io::Result::trim_left
      Src: /src/image/src/codecs/pnm/decoder.rs:568,1
    - Dst: split_at
      Src: /src/image/src/codecs/pnm/decoder.rs:568,1
    - Dst: std::io::Result::find
      Src: /src/image/src/codecs/pnm/decoder.rs:570,1
    - Dst: unwrap_or
      Src: /src/image/src/codecs/pnm/decoder.rs:570,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/pnm/decoder.rs:570,1
    - Dst: parse_single_value_line
      Src: /src/image/src/codecs/pnm/decoder.rs:573,1
    - Dst: parse_single_value_line
      Src: /src/image/src/codecs/pnm/decoder.rs:574,1
    - Dst: parse_single_value_line
      Src: /src/image/src/codecs/pnm/decoder.rs:575,1
    - Dst: parse_single_value_line
      Src: /src/image/src/codecs/pnm/decoder.rs:576,1
    - Dst: Option::trim
      Src: /src/image/src/codecs/pnm/decoder.rs:578,1
    - Dst: None::is_some
      Src: /src/image/src/codecs/pnm/decoder.rs:579,1
    - Dst: None::take
      Src: /src/image/src/codecs/pnm/decoder.rs:580,1
    - Dst: map
      Src: /src/image/src/codecs/pnm/decoder.rs:580,1
    - Dst: DynamicImage::push
      Src: /src/image/src/codecs/pnm/decoder.rs:581,1
    - Dst: DynamicImage::push_str
      Src: /src/image/src/codecs/pnm/decoder.rs:582,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:587,1
    - Dst: to_string
      Src: /src/image/src/codecs/pnm/decoder.rs:587,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:590,1
    - Dst: DecoderError::HeaderLineUnknown
      Src: /src/image/src/codecs/pnm/decoder.rs:590,1
    - Dst: to_string
      Src: /src/image/src/codecs/pnm/decoder.rs:590,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:590,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:595,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:595,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:606,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:608,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:610,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:611,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:612,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:613,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:614,1
    - Dst: ArbitraryTuplType::Custom
      Src: /src/image/src/codecs/pnm/decoder.rs:614,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:617,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 160
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 624
      start: 525
    functionDepth: 9
    functionLinenumber: 525
    functionLinenumberEnd: 624
    functionName: HeaderReader::read_arbitrary_header
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - '&[u8]::next'
    - Err
    - split_at
    - ImageError::IoError
    - std::io::Result::find
    - Some
    - None::take
    - into
    - HeaderReader::read_next_line
    - std::io::Result::trim_left
    - std::io::Result::as_bytes
    - HeaderReader::bytes
    - Option::trim
    - std::io::Result::is_empty
    - parse_single_value_line
    - None::is_some
    - map
    - DecoderError::NotNewlineAfterP7Magic
    - std::io::Result::is_ascii
    - std::io::Result::len
    - ArbitraryTuplType::Custom
    - to_string
    - DecoderError::HeaderLineUnknown
    - Ok
    - DynamicImage::push
    - DynamicImage::push_str
    - unwrap_or
    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:631,1
    - Dst: height
      Src: /src/image/src/codecs/pnm/decoder.rs:632,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:634,1
    - Dst: DecoderPreparedImage::new
      Src: /src/image/src/codecs/pnm/decoder.rs:634,1
    - Dst: expanded_color
      Src: /src/image/src/codecs/pnm/decoder.rs:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 639
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 639
    functionName: PnmDecoder::prepare_image
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - width
    - height
    - DecoderPreparedImage::new
    - expanded_color
    linkageType: ''
    returnType: ImageResult
    signature: fn prepare_image(&mut self) -> ImageResult<DecoderPreparedImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:642,1
    - Dst: Some
      Src: /src/image/src/codecs/pnm/decoder.rs:644,1
    - Dst: original_color
      Src: /src/image/src/codecs/pnm/decoder.rs:644,1
    - Dst: read_samples::<PbmBit>
      Src: /src/image/src/codecs/pnm/decoder.rs:647,1
    - Dst: read_samples::<BWBit>
      Src: /src/image/src/codecs/pnm/decoder.rs:648,1
    - Dst: read_samples::<BWBit>
      Src: /src/image/src/codecs/pnm/decoder.rs:649,1
    - Dst: read_samples::<U8>
      Src: /src/image/src/codecs/pnm/decoder.rs:650,1
    - Dst: read_samples::<U8>
      Src: /src/image/src/codecs/pnm/decoder.rs:651,1
    - Dst: read_samples::<U16>
      Src: /src/image/src/codecs/pnm/decoder.rs:652,1
    - Dst: read_samples::<U16>
      Src: /src/image/src/codecs/pnm/decoder.rs:653,1
    - Dst: read_samples::<U8>
      Src: /src/image/src/codecs/pnm/decoder.rs:654,1
    - Dst: read_samples::<U8>
      Src: /src/image/src/codecs/pnm/decoder.rs:655,1
    - Dst: read_samples::<U16>
      Src: /src/image/src/codecs/pnm/decoder.rs:656,1
    - Dst: read_samples::<U16>
      Src: /src/image/src/codecs/pnm/decoder.rs:657,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:660,1
    - Dst: DecodedImageAttributes::default
      Src: /src/image/src/codecs/pnm/decoder.rs:662,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 664
      start: 641
    functionDepth: 3
    functionLinenumber: 641
    functionLinenumberEnd: 664
    functionName: PnmDecoder::read_image
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - read_samples::<PbmBit>
    - Ok
    - original_color
    - read_samples::<U16>
    - Some
    - read_samples::<U8>
    - DecodedImageAttributes::default
    - PnmDecoder::prepare_image
    - read_samples::<BWBit>
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(&mut self, buf: &mut [u8]) -> ImageResult<DecodedImageAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::subtype
      Src: /src/image/src/codecs/pnm/decoder.rs:669,1
    - Dst: PnmSubtype::sample_encoding
      Src: /src/image/src/codecs/pnm/decoder.rs:669,1
    - Dst: S::from_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:671,1
    - Dst: width
      Src: /src/image/src/codecs/pnm/decoder.rs:674,1
    - Dst: height
      Src: /src/image/src/codecs/pnm/decoder.rs:675,1
    - Dst: S::from_ascii
      Src: /src/image/src/codecs/pnm/decoder.rs:680,1
    - Dst: maximal_sample
      Src: /src/image/src/codecs/pnm/decoder.rs:685,1
    - Dst: pow
      Src: /src/image/src/codecs/pnm/decoder.rs:686,1
    - Dst: S::sample_size
      Src: /src/image/src/codecs/pnm/decoder.rs:686,1
    - Dst: S::sample_size
      Src: /src/image/src/codecs/pnm/decoder.rs:691,1
    - Dst: std::io::Result::iter_mut
      Src: /src/image/src/codecs/pnm/decoder.rs:692,1
    - Dst: f32::from
      Src: /src/image/src/codecs/pnm/decoder.rs:693,1
    - Dst: round
      Src: /src/image/src/codecs/pnm/decoder.rs:693,1
    - Dst: S::sample_size
      Src: /src/image/src/codecs/pnm/decoder.rs:695,1
    - Dst: as_chunks_mut::<2>
      Src: /src/image/src/codecs/pnm/decoder.rs:696,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/pnm/decoder.rs:696,1
    - Dst: f32::from
      Src: /src/image/src/codecs/pnm/decoder.rs:697,1
    - Dst: u16::from_ne_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:697,1
    - Dst: round
      Src: /src/image/src/codecs/pnm/decoder.rs:697,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/pnm/decoder.rs:698,1
    - Dst: DynamicImage::to_ne_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:698,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:703,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 79
    argCount: 2
    argNames:
    - components
    - buf
    argTypes:
    - u32
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 704
      start: 668
    functionDepth: 10
    functionLinenumber: 668
    functionLinenumberEnd: 704
    functionName: PnmDecoder::read_samples
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - PnmSubtype::sample_encoding
    - S::sample_size
    - maximal_sample
    - as_chunks_mut::<2>
    - Option::copy_from_slice
    - u16::from_ne_bytes
    - pow
    - DynamicImage::to_ne_bytes
    - Ok
    - S::from_bytes
    - iter_mut
    - width
    - round
    - height
    - f32::from
    - PnmDecoder::subtype
    - S::from_ascii
    - std::io::Result::iter_mut
    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:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 709
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 709
    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:718,1
    - Dst: '&[u8]::skip_while'
      Src: /src/image/src/codecs/pnm/decoder.rs:718,1
    - Dst: DynamicImage::as_ref
      Src: /src/image/src/codecs/pnm/decoder.rs:720,1
    - Dst: FlatSamples::ok
      Src: /src/image/src/codecs/pnm/decoder.rs:720,1
    - Dst: bool::is_some_and
      Src: /src/image/src/codecs/pnm/decoder.rs:720,1
    - Dst: take_while
      Src: /src/image/src/codecs/pnm/decoder.rs:718,1
    - Dst: DynamicImage::as_ref
      Src: /src/image/src/codecs/pnm/decoder.rs:721,1
    - Dst: FlatSamples::ok
      Src: /src/image/src/codecs/pnm/decoder.rs:721,1
    - Dst: bool::is_some_and
      Src: /src/image/src/codecs/pnm/decoder.rs:721,1
    - Dst: is_separator
      Src: /src/image/src/codecs/pnm/decoder.rs:721,1
    - Dst: u16::from
      Src: /src/image/src/codecs/pnm/decoder.rs:725,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:726,1
    - Dst: DecoderError::InvalidDigit
      Src: /src/image/src/codecs/pnm/decoder.rs:726,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:726,1
    - Dst: DynamicImage::checked_mul
      Src: /src/image/src/codecs/pnm/decoder.rs:728,1
    - Dst: ok_or
      Src: /src/image/src/codecs/pnm/decoder.rs:728,1
    - Dst: DecoderError::Overflow
      Src: /src/image/src/codecs/pnm/decoder.rs:730,1
    - Dst: DynamicImage::checked_add
      Src: /src/image/src/codecs/pnm/decoder.rs:731,1
    - Dst: ok_or
      Src: /src/image/src/codecs/pnm/decoder.rs:731,1
    - Dst: DecoderError::Overflow
      Src: /src/image/src/codecs/pnm/decoder.rs:733,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:738,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:738,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:741,1
    - Dst: T::try_from
      Src: /src/image/src/codecs/pnm/decoder.rs:741,1
    - Dst: Result::or
      Src: /src/image/src/codecs/pnm/decoder.rs:741,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:741,1
    - Dst: DecoderError::Overflow
      Src: /src/image/src/codecs/pnm/decoder.rs:741,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 68
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut dyn Read'
    constantsTouched: []
    func_position:
      end: 742
      start: 712
    functionDepth: 8
    functionLinenumber: 712
    functionLinenumberEnd: 742
    functionName: read_separated_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::bytes
    - Err
    - '&[u8]::skip_while'
    - bool::is_some_and
    - FlatSamples::ok
    - take_while
    - DecoderError::Overflow
    - Ok
    - u16::from
    - DynamicImage::checked_add
    - T::try_from
    - ok_or
    - is_separator
    - into
    - DynamicImage::as_ref
    - DynamicImage::checked_mul
    - Result::or
    - DecoderError::InvalidDigit
    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:753,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:754,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: 755
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 755
    functionName: U8::from_bytes
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Result::read_exact
    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:759,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:761,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - reader
    - output_buf
    argTypes:
    - '&mut dyn Read'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 762
      start: 757
    functionDepth: 9
    functionLinenumber: 757
    functionLinenumberEnd: 762
    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:775,1
    - Dst: as_chunks_mut::<2>
      Src: /src/image/src/codecs/pnm/decoder.rs:776,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/pnm/decoder.rs:776,1
    - Dst: u16::from_be_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:777,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/pnm/decoder.rs:778,1
    - Dst: DynamicImage::to_ne_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:778,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:780,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: 781
      start: 768
    functionDepth: 2
    functionLinenumber: 768
    functionLinenumberEnd: 781
    functionName: U16::from_bytes
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Option::copy_from_slice
    - Result::read_exact
    - DynamicImage::to_ne_bytes
    - Ok
    - iter_mut
    - u16::from_be_bytes
    - as_chunks_mut::<2>
    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:784,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/pnm/decoder.rs:784,1
    - Dst: read_separated_ascii::<u16>
      Src: /src/image/src/codecs/pnm/decoder.rs:785,1
    - Dst: Option::copy_from_slice
      Src: /src/image/src/codecs/pnm/decoder.rs:786,1
    - Dst: DynamicImage::to_ne_bytes
      Src: /src/image/src/codecs/pnm/decoder.rs:786,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - reader
    - output_buf
    argTypes:
    - '&mut dyn Read'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 789
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 789
    functionName: U16::from_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Option::copy_from_slice
    - read_separated_ascii::<u16>
    - DynamicImage::to_ne_bytes
    - Ok
    - iter_mut
    - as_chunks_mut::<2>
    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:807,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:807,1
    - Dst: DecoderError::Overflow
      Src: /src/image/src/codecs/pnm/decoder.rs:809,1
    - Dst: u32::try_into
      Src: /src/image/src/codecs/pnm/decoder.rs:810,1
    - Dst: map_err
      Src: /src/image/src/codecs/pnm/decoder.rs:810,1
    - Dst: DecoderError::Overflow
      Src: /src/image/src/codecs/pnm/decoder.rs:812,1
    - Dst: u32::div_ceil
      Src: /src/image/src/codecs/pnm/decoder.rs:815,1
    - Dst: u32::checked_mul
      Src: /src/image/src/codecs/pnm/decoder.rs:816,1
    - Dst: filter
      Src: /src/image/src/codecs/pnm/decoder.rs:816,1
    - Dst: '&mut [u8]::len'
      Src: /src/image/src/codecs/pnm/decoder.rs:818,1
    - Dst: expect
      Src: /src/image/src/codecs/pnm/decoder.rs:816,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/pnm/decoder.rs:821,1
    - Dst: rev
      Src: /src/image/src/codecs/pnm/decoder.rs:827,1
    - Dst: rev
      Src: /src/image/src/codecs/pnm/decoder.rs:828,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:834,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: 835
      start: 798
    functionDepth: 11
    functionLinenumber: 798
    functionLinenumberEnd: 835
    functionName: PbmBit::from_bytes
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - filter
    - Result::read_exact
    - Ok
    - expect
    - u32::div_ceil
    - rev
    - map_err
    - DecoderError::Overflow
    - '&mut [u8]::len'
    - u32::try_into
    - u32::checked_mul
    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:839,1
    - Dst: '&[u8]::next'
      Src: /src/image/src/codecs/pnm/decoder.rs:842,1
    - Dst: "next()\n                    .ok_or_else::<ImageError, _>"
      Src: /src/image/src/codecs/pnm/decoder.rs:842,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:844,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:849,1
    - Dst: DecoderError::UnexpectedByteInRaster
      Src: /src/image/src/codecs/pnm/decoder.rs:849,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:849,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:855,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - reader
    - output_buf
    argTypes:
    - '&mut dyn Read'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 856
      start: 837
    functionDepth: 9
    functionLinenumber: 837
    functionLinenumberEnd: 856
    functionName: PbmBit::from_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Result::bytes
    - '&[u8]::next'
    - Err
    - Ok
    - "next()\n                    .ok_or_else::<ImageError, _>"
    - DecoderError::UnexpectedByteInRaster
    - into
    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:870,1
    - Dst: '&mut [u8]::iter'
      Src: /src/image/src/codecs/pnm/decoder.rs:871,1
    - Dst: find
      Src: /src/image/src/codecs/pnm/decoder.rs:871,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:872,1
    - Dst: DecoderError::SampleOutOfBounds
      Src: /src/image/src/codecs/pnm/decoder.rs:872,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:872,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:874,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: 875
      start: 863
    functionDepth: 7
    functionLinenumber: 863
    functionLinenumberEnd: 875
    functionName: BWBit::from_bytes
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - find
    - Ok
    - DecoderError::SampleOutOfBounds
    - into
    - '&mut [u8]::iter'
    - U8::from_bytes
    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: 879
      start: 877
    functionDepth: 0
    functionLinenumber: 877
    functionLinenumberEnd: 879
    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:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 885
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 885
    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:891,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:891,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:892,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:893,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:894,1
    - Dst: DecoderError::MaxvalTooBig
      Src: /src/image/src/codecs/pnm/decoder.rs:894,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:894,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 896
      start: 889
    functionDepth: 9
    functionLinenumber: 889
    functionLinenumberEnd: 896
    functionName: GraymapHeader::tuple_type
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Err
    - DecoderError::MaxvalTooBig
    - into
    linkageType: ''
    returnType: ImageResult
    signature: fn tuple_type(&self) -> ImageResult<TupleType>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:902,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:902,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:903,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:904,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:905,1
    - Dst: DecoderError::MaxvalTooBig
      Src: /src/image/src/codecs/pnm/decoder.rs:905,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:905,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 907
      start: 900
    functionDepth: 9
    functionLinenumber: 900
    functionLinenumberEnd: 907
    functionName: PixmapHeader::tuple_type
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Err
    - DecoderError::MaxvalTooBig
    - into
    linkageType: ''
    returnType: ImageResult
    signature: fn tuple_type(&self) -> ImageResult<TupleType>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:920,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:920,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:923,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:925,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:925,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:933,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:936,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:938,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:938,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:946,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:949,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:951,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:951,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:958,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:961,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:961,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:970,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:973,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:975,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:975,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:982,1
    - Dst: Ok
      Src: /src/image/src/codecs/pnm/decoder.rs:985,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:987,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:987,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:993,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/pnm/decoder.rs:993,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/pnm/decoder.rs:994,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:995,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/pnm/decoder.rs:996,1
    - Dst: Err
      Src: /src/image/src/codecs/pnm/decoder.rs:999,1
    - Dst: into
      Src: /src/image/src/codecs/pnm/decoder.rs:999,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 110
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 911
    functionDepth: 9
    functionLinenumber: 911
    functionLinenumberEnd: 1001
    functionName: ArbitraryHeader::tuple_type
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - ImageError::Unsupported
    - into
    - UnsupportedError::from_format_and_kind
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: ImageResult
    signature: fn tuple_type(&self) -> ImageResult<TupleType>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1019,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1019,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1020,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1020,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1025,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1025,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1027,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1027,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1037,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1037,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1009
    functionDepth: 10
    functionLinenumber: 1009
    functionLinenumberEnd: 1054
    functionName: tests::pam_blackandwhite
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    - ImageResult::prepare_image
    - PnmDecoder::new
    linkageType: ''
    returnType: void
    signature: fn pam_blackandwhite()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1068,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1068,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1069,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1069,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1074,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1074,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1076,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1076,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1079,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1079,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1079,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1058
    functionDepth: 10
    functionLinenumber: 1058
    functionLinenumberEnd: 1096
    functionName: tests::pam_blackandwhite_alpha
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    - ImageResult::prepare_image
    - PnmDecoder::new
    linkageType: ''
    returnType: void
    signature: fn pam_blackandwhite_alpha()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1110,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1110,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1115,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1115,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1117,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1117,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1125,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1125,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1100
    functionDepth: 10
    functionLinenumber: 1100
    functionLinenumberEnd: 1142
    functionName: tests::pam_grayscale
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    - ImageResult::prepare_image
    - PnmDecoder::new
    linkageType: ''
    returnType: void
    signature: fn pam_grayscale()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1156,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1156,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1157,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1157,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1162,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1162,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1164,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1164,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1176,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1176,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1146
    functionDepth: 10
    functionLinenumber: 1146
    functionLinenumberEnd: 1193
    functionName: tests::pam_grayscale_alpha
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    - ImageResult::prepare_image
    - PnmDecoder::new
    linkageType: ''
    returnType: void
    signature: fn pam_grayscale_alpha()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1207,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1207,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1215,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1215,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1217,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1217,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1222,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1222,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1197
    functionDepth: 10
    functionLinenumber: 1197
    functionLinenumberEnd: 1239
    functionName: tests::pam_rgb
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    - ImageResult::prepare_image
    - PnmDecoder::new
    linkageType: ''
    returnType: void
    signature: fn pam_rgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1253,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1253,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1254,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1254,1
    - Dst: ImageResult::prepare_image
      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:1261,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1261,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1264,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1264,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1243
    functionDepth: 10
    functionLinenumber: 1243
    functionLinenumberEnd: 1281
    functionName: tests::pam_rgb_alpha
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    - ImageResult::prepare_image
    - PnmDecoder::new
    linkageType: ''
    returnType: void
    signature: fn pam_rgb_alpha()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/image/src/codecs/pnm/decoder.rs:1287,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1288,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1288,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1289,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1289,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1297,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1297,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1299,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1299,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1302,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1302,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1284
    functionDepth: 8
    functionLinenumber: 1284
    functionLinenumberEnd: 1317
    functionName: tests::pbm_binary
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    - ImageResult::prepare_image
    - PnmDecoder::new
    - concat
    linkageType: ''
    returnType: void
    signature: fn pbm_binary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufReader::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1337,1
    - Dst: FailRead
      Src: /src/image/src/codecs/pnm/decoder.rs:1337,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1337,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1339,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1339,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1340,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1340,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1342,1
    - Dst: ImageResult::expect_err
      Src: /src/image/src/codecs/pnm/decoder.rs:1342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1321
    functionDepth: 10
    functionLinenumber: 1321
    functionLinenumberEnd: 1345
    functionName: tests::pbm_binary_ascii_termination
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - FailRead
    - ImageResult::expect_err
    - ImageResult::read_image
    - BufReader::new
    - ImageResult::unwrap
    - ImageResult::prepare_image
    - Cursor::new
    - PnmDecoder::new
    linkageType: ''
    returnType: void
    signature: fn pbm_binary_ascii_termination()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1353,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1353,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1354,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1354,1
    - Dst: ImageResult::prepare_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: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1361,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1361,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1364,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1364,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1348
    functionDepth: 10
    functionLinenumber: 1348
    functionLinenumberEnd: 1379
    functionName: tests::pbm_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    - ImageResult::prepare_image
    - PnmDecoder::new
    linkageType: ''
    returnType: void
    signature: fn pbm_ascii()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1387,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1387,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1388,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1388,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1393,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1393,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1395,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1395,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1398,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1398,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1413
      start: 1382
    functionDepth: 10
    functionLinenumber: 1382
    functionLinenumberEnd: 1413
    functionName: tests::pbm_ascii_nospace
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    - ImageResult::prepare_image
    - PnmDecoder::new
    linkageType: ''
    returnType: void
    signature: fn pbm_ascii_nospace()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: .16).collect::<Vec<_>>
      Src: /src/image/src/codecs/pnm/decoder.rs:1419,1
    - Dst: concat
      Src: /src/image/src/codecs/pnm/decoder.rs:1420,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1421,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1421,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1429,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1429,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1431,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1431,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1433,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1433,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1416
    functionDepth: 8
    functionLinenumber: 1416
    functionLinenumberEnd: 1449
    functionName: tests::pgm_binary
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::read_image
    - .16).collect::<Vec<_>>
    - ImageResult::unwrap
    - ImageResult::prepare_image
    - PnmDecoder::new
    - concat
    linkageType: ''
    returnType: void
    signature: fn pgm_binary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1456,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1456,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1464,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1464,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1466,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1466,1
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1468,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1468,1
    - Dst: into_inner
      Src: /src/image/src/codecs/pnm/decoder.rs:1468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1452
    functionDepth: 10
    functionLinenumber: 1452
    functionLinenumberEnd: 1484
    functionName: tests::pgm_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::read_image
    - ImageResult::unwrap
    - ImageResult::prepare_image
    - PnmDecoder::new
    linkageType: ''
    returnType: void
    signature: fn pgm_ascii()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1489,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1489,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1490,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1490,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1492,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1487
    functionDepth: 10
    functionLinenumber: 1487
    functionLinenumberEnd: 1504
    functionName: tests::ppm_ascii
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::prepare_image
    - ImageResult::read_image
    - ImageResult::unwrap
    - PnmDecoder::new
    linkageType: ''
    returnType: void
    signature: fn ppm_ascii()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::load_from_memory
      Src: /src/image/src/codecs/pnm/decoder.rs:1523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1522
    functionDepth: 15
    functionLinenumber: 1522
    functionLinenumberEnd: 1524
    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:1533,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1533,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1534,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1534,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1527
    functionDepth: 10
    functionLinenumber: 1527
    functionLinenumberEnd: 1537
    functionName: tests::issue_1616_overflow
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::prepare_image
    - ImageResult::read_image
    - ImageResult::unwrap
    - PnmDecoder::new
    linkageType: ''
    returnType: void
    signature: fn issue_1616_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PnmDecoder::new
      Src: /src/image/src/codecs/pnm/decoder.rs:1542,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1542,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1543,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1543,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1546,1
    - Dst: ImageResult::unwrap_err
      Src: /src/image/src/codecs/pnm/decoder.rs:1546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1547
      start: 1540
    functionDepth: 10
    functionLinenumber: 1540
    functionLinenumberEnd: 1547
    functionName: tests::data_too_short
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap_err
    - ImageResult::read_image
    - ImageResult::unwrap
    - ImageResult::prepare_image
    - PnmDecoder::new
    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: 1553
      start: 1550
    functionDepth: 0
    functionLinenumber: 1550
    functionLinenumberEnd: 1553
    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: 1559
      start: 1556
    functionDepth: 0
    functionLinenumber: 1556
    functionLinenumberEnd: 1559
    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:1564,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1564,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/pnm/decoder.rs:1565,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1562
    functionDepth: 10
    functionLinenumber: 1562
    functionLinenumberEnd: 1568
    functionName: tests::leading_zeros
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::prepare_image
    - ImageResult::unwrap
    - PnmDecoder::new
    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: 1574
      start: 1571
    functionDepth: 0
    functionLinenumber: 1571
    functionLinenumberEnd: 1574
    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:1579,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/pnm/decoder.rs:1579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1577
    functionDepth: 10
    functionLinenumber: 1577
    functionLinenumberEnd: 1581
    functionName: tests::header_large_dimension
    functionSourceFile: /src/image/src/codecs/pnm/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::unwrap
    - PnmDecoder::new
    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: 11
    functionLinenumber: 28
    functionLinenumberEnd: 57
    functionName: AutoBreak::flush_buf
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 2
    functionsReached:
    - len
    - Err
    - kind
    - Ok
    - io::Error::new
    - write
    - drain
    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: 13
    functionLinenumber: 61
    functionLinenumberEnd: 76
    functionName: AutoBreak::write
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 0
    functionsReached:
    - len
    - is_empty
    - AutoBreak::flush
    - Ok
    - '&RgbaImage::len'
    - push
    - extend_from_slice
    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: 12
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: AutoBreak::flush
    functionSourceFile: /src/image/src/codecs/pnm/autobreak.rs
    functionUses: 1
    functionsReached:
    - flush
    - AutoBreak::flush_buf
    linkageType: ''
    returnType: io::Result
    signature: fn flush(&mut self) -> io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AutoBreak::flush_buf
      Src: /src/image/src/codecs/pnm/autobreak.rs:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 12
    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:
    - unwrap
    - AutoBreak::new
    - Vec::new
    - write_all
    - 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:
    - unwrap
    - AutoBreak::new
    - Vec::new
    - write_all
    - 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::prepare_image
      Src: /src/image/src/codecs/pnm/mod.rs:40,1
    - Dst: ImageResult::unwrap
      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: 40
    argCount: 4
    argNames:
    - buffer
    - width
    - height
    - color
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 53
      start: 28
    functionDepth: 13
    functionLinenumber: 28
    functionLinenumberEnd: 53
    functionName: tests::execute_roundtrip_default
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::read_image
    - ImageResult::expect
    - ImageResult::encode
    - ImageResult::unwrap
    - ImageResult::prepare_image
    - PnmEncoder::new
    - Vec::new
    - PnmDecoder::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::prepare_image
      Src: /src/image/src/codecs/pnm/mod.rs:73,1
    - Dst: ImageResult::unwrap
      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: 43
    argCount: 5
    argNames:
    - buffer
    - width
    - height
    - color
    - subtype
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    - PnmSubtype
    constantsTouched: []
    func_position:
      end: 87
      start: 55
    functionDepth: 13
    functionLinenumber: 55
    functionLinenumberEnd: 87
    functionName: tests::execute_roundtrip_with_subtype
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - Self::with_subtype
    - into_inner
    - ImageResult::read_image
    - ImageResult::expect
    - ImageResult::encode
    - ImageResult::unwrap
    - ImageResult::prepare_image
    - PnmEncoder::new
    - Vec::new
    - PnmDecoder::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::prepare_image
      Src: /src/image/src/codecs/pnm/mod.rs:101,1
    - Dst: ImageResult::unwrap
      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: 45
    argCount: 4
    argNames:
    - buffer
    - width
    - height
    - color
    argTypes:
    - '&[u16]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 117
      start: 89
    functionDepth: 13
    functionLinenumber: 89
    functionLinenumberEnd: 117
    functionName: tests::execute_roundtrip_u16
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - ImageResult::read_image
    - ImageResult::expect
    - ImageResult::encode
    - ImageResult::unwrap
    - ImageResult::prepare_image
    - PnmEncoder::new
    - Vec::new
    - NativeEndian::write_u16_into
    - PnmDecoder::new
    linkageType: ''
    returnType: void
    signature: 'fn execute_roundtrip_u16(buffer: &[u16], width: u32, height: u32,
      color: ExtendedColorType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: execute_roundtrip_default
      Src: /src/image/src/codecs/pnm/mod.rs:129,1
    - Dst: execute_roundtrip_with_subtype
      Src: /src/image/src/codecs/pnm/mod.rs:130,1
    - Dst: execute_roundtrip_with_subtype
      Src: /src/image/src/codecs/pnm/mod.rs:131,1
    - Dst: PnmSubtype::Graymap
      Src: /src/image/src/codecs/pnm/mod.rs:136,1
    - Dst: execute_roundtrip_with_subtype
      Src: /src/image/src/codecs/pnm/mod.rs:138,1
    - Dst: PnmSubtype::Graymap
      Src: /src/image/src/codecs/pnm/mod.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 120
    functionDepth: 14
    functionLinenumber: 120
    functionLinenumberEnd: 145
    functionName: tests::roundtrip_gray
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - PnmSubtype::Graymap
    - execute_roundtrip_with_subtype
    - 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: 14
    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: 14
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: tests::roundtrip_u16
    functionSourceFile: /src/image/src/codecs/pnm/mod.rs
    functionUses: 0
    functionsReached:
    - execute_roundtrip_u16
    linkageType: ''
    returnType: void
    signature: fn roundtrip_u16()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 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:206,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/jpeg/encoder.rs:214,1
    - Dst: u16::try_from
      Src: /src/image/src/codecs/jpeg/encoder.rs:214,1
    - Dst: Err
      Src: /src/image/src/codecs/jpeg/encoder.rs:216,1
    - Dst: EncoderError::InvalidSize
      Src: /src/image/src/codecs/jpeg/encoder.rs:216,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/encoder.rs:216,1
    - Dst: encode
      Src: /src/image/src/codecs/jpeg/encoder.rs:220,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/encoder.rs:220,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/jpeg/encoder.rs:223,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:223,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/jpeg/encoder.rs:224,1
    - Dst: encode_jpeg
      Src: /src/image/src/codecs/jpeg/encoder.rs:233,1
    - Dst: encode_jpeg
      Src: /src/image/src/codecs/jpeg/encoder.rs:237,1
    - Dst: Err
      Src: /src/image/src/codecs/jpeg/encoder.rs:239,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/jpeg/encoder.rs:239,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/jpeg/encoder.rs:240,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/encoder.rs:241,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/jpeg/encoder.rs:242,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 4
    argNames:
    - image
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 246
      start: 199
    functionDepth: 9
    functionLinenumber: 199
    functionLinenumberEnd: 246
    functionName: JpegEncoder::encode
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 1
    functionsReached:
    - encode
    - EncoderError::InvalidSize
    - Err
    - Option::buffer_size
    - encode_jpeg
    - UnsupportedErrorKind::Color
    - EncodingError::new
    - ImageFormatHint::Exact
    - ImageError::Unsupported
    - u16::try_from
    - into
    - map_err
    - ImageError::Encoding
    - UnsupportedError::from_format_and_kind
    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:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 259
      start: 251
    functionDepth: 10
    functionLinenumber: 251
    functionLinenumberEnd: 259
    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:262,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/encoder.rs:262,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/jpeg/encoder.rs:263,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/encoder.rs:264,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/jpeg/encoder.rs:265,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/jpeg/encoder.rs:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - icc_profile
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 9
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: JpegEncoder::set_icc_profile
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - '&str::to_string'
    - into
    - map_err
    - UnsupportedError::from_format_and_kind
    - UnsupportedErrorKind::GenericFeature
    - add_icc_profile
    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:271,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/encoder.rs:271,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/jpeg/encoder.rs:272,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/encoder.rs:273,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/jpeg/encoder.rs:274,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/jpeg/encoder.rs:274,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - exif
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 278
      start: 270
    functionDepth: 9
    functionLinenumber: 270
    functionLinenumberEnd: 278
    functionName: JpegEncoder::set_exif_metadata
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - '&str::to_string'
    - add_exif_metadata
    - map_err
    - into
    - 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:
    - Dst: extend_from_slice
      Src: /src/image/src/codecs/jpeg/encoder.rs:284,1
    - Dst: rotate_right
      Src: /src/image/src/codecs/jpeg/encoder.rs:285,1
    - Dst: len
      Src: /src/image/src/codecs/jpeg/encoder.rs:285,1
    - Dst: add_app_segment
      Src: /src/image/src/codecs/jpeg/encoder.rs:287,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/encoder.rs:287,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/jpeg/encoder.rs:288,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/encoder.rs:289,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/jpeg/encoder.rs:290,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/jpeg/encoder.rs:290,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/encoder.rs:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - xmp
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 294
      start: 280
    functionDepth: 11
    functionLinenumber: 280
    functionLinenumberEnd: 294
    functionName: JpegEncoder::set_xmp_metadata
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - len
    - add_app_segment
    - Ok
    - '&str::to_string'
    - rotate_right
    - map_err
    - extend_from_slice
    - into
    - UnsupportedError::from_format_and_kind
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: Result
    signature: 'fn set_xmp_metadata(&mut self, mut xmp: Vec<u8>) -> Result<(), UnsupportedError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::color
      Src: /src/image/src/codecs/jpeg/encoder.rs:302,1
    - Dst: Some
      Src: /src/image/src/codecs/jpeg/encoder.rs:304,1
    - Dst: Option::to_luma8
      Src: /src/image/src/codecs/jpeg/encoder.rs:304,1
    - Dst: GrayImage::into
      Src: /src/image/src/codecs/jpeg/encoder.rs:304,1
    - Dst: Some
      Src: /src/image/src/codecs/jpeg/encoder.rs:305,1
    - Dst: Option::to_rgb8
      Src: /src/image/src/codecs/jpeg/encoder.rs:305,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/encoder.rs:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - img
    argTypes:
    - crate::io::encoder::MethodSealedToImage
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 307
      start: 296
    functionDepth: 9
    functionLinenumber: 296
    functionLinenumberEnd: 307
    functionName: JpegEncoder::make_compatible_img
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - Option::to_luma8
    - GrayImage::into
    - Some
    - into
    - Option::color
    - Option::to_rgb8
    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:325,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:325,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:326,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/jpeg/encoder.rs:326,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:328,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - encoded
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 332
      start: 324
    functionDepth: 12
    functionLinenumber: 324
    functionLinenumberEnd: 332
    functionName: tests::decode
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - JpegDecoder::new
    - ImageResult::read_image
    - ImageResult::unwrap
    - ImageResult::expect
    - ImageResult::prepare_image
    - Cursor::new
    linkageType: ''
    returnType: Vec
    signature: 'fn decode(encoded: &[u8]) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:340,1
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/src/codecs/jpeg/encoder.rs:342,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:343,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:343,1
    - Dst: decode
      Src: /src/image/src/codecs/jpeg/encoder.rs:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 335
    functionDepth: 5
    functionLinenumber: 335
    functionLinenumberEnd: 358
    functionName: tests::roundtrip_sanity_check
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::write_image
    - JpegEncoder::new_with_quality
    - ImageResult::expect
    - decode
    - 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:366,1
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/src/codecs/jpeg/encoder.rs:368,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:369,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:369,1
    - Dst: decode
      Src: /src/image/src/codecs/jpeg/encoder.rs:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 385
      start: 361
    functionDepth: 5
    functionLinenumber: 361
    functionLinenumberEnd: 385
    functionName: tests::grayscale_roundtrip_sanity_check
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::write_image
    - JpegEncoder::new_with_quality
    - ImageResult::expect
    - decode
    - 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:396,1
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/src/codecs/jpeg/encoder.rs:398,1
    - Dst: ImageResult::set_exif_metadata
      Src: /src/image/src/codecs/jpeg/encoder.rs:400,1
    - Dst: Option::clone
      Src: /src/image/src/codecs/jpeg/encoder.rs:400,1
    - Dst: Result::unwrap
      Src: /src/image/src/codecs/jpeg/encoder.rs:400,1
    - Dst: ImageResult::set_icc_profile
      Src: /src/image/src/codecs/jpeg/encoder.rs:401,1
    - Dst: clone
      Src: /src/image/src/codecs/jpeg/encoder.rs:401,1
    - Dst: Result::unwrap
      Src: /src/image/src/codecs/jpeg/encoder.rs:401,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:403,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:403,1
    - Dst: JpegDecoder::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:408,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:408,1
    - Dst: ImageResult::exif_metadata
      Src: /src/image/src/codecs/jpeg/encoder.rs:409,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:409,1
    - Dst: expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:409,1
    - Dst: ImageResult::icc_profile
      Src: /src/image/src/codecs/jpeg/encoder.rs:414,1
    - Dst: expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:414,1
    - Dst: expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 419
      start: 388
    functionDepth: 11
    functionLinenumber: 388
    functionLinenumberEnd: 419
    functionName: tests::roundtrip_exif_icc
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::exif_metadata
    - ImageResult::write_image
    - ImageResult::icc_profile
    - JpegDecoder::new
    - ImageResult::set_icc_profile
    - JpegEncoder::new_with_quality
    - expect
    - ImageResult::expect
    - ImageResult::set_exif_metadata
    - Vec::new
    - Option::clone
    - Cursor::new
    - Result::unwrap
    - clone
    linkageType: ''
    returnType: void
    signature: fn roundtrip_exif_icc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:450,1
    - Dst: JpegEncoder::new_with_quality
      Src: /src/image/src/codecs/jpeg/encoder.rs:451,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/codecs/jpeg/encoder.rs:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 462
    functionName: tests::test_image_too_large
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - ImageResult::write_image
    - JpegEncoder::new_with_quality
    linkageType: ''
    returnType: void
    signature: fn test_image_too_large()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:480,1
    - Dst: Vec::write_to
      Src: /src/image/src/codecs/jpeg/encoder.rs:482,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:483,1
    - Dst: ImageResult::expect
      Src: /src/image/src/codecs/jpeg/encoder.rs:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 486
      start: 465
    functionDepth: 4
    functionLinenumber: 465
    functionLinenumberEnd: 486
    functionName: tests::check_color_types
    functionSourceFile: /src/image/src/codecs/jpeg/encoder.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - DynamicImage::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:491,1
    - Dst: JpegEncoder::new
      Src: /src/image/src/codecs/jpeg/encoder.rs:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 5
    functionLinenumber: 490
    functionLinenumberEnd: 495
    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: Self::with_spec_compliance
      Src: /src/image/src/codecs/jpeg/decoder.rs:30,1
    - Dst: SpecCompliance::default
      Src: /src/image/src/codecs/jpeg/decoder.rs:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 11
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: JpegDecoder::new
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 8
    functionsReached:
    - SpecCompliance::default
    - Self::with_spec_compliance
    linkageType: ''
    returnType: JpegDecoder
    signature: 'pub fn new(r: R) -> JpegDecoder<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zune_core::options::DecoderOptions::default
      Src: /src/image/src/codecs/jpeg/decoder.rs:35,1
    - Dst: Self::set_strict_mode
      Src: /src/image/src/codecs/jpeg/decoder.rs:35,1
    - Dst: set_max_width
      Src: /src/image/src/codecs/jpeg/decoder.rs:35,1
    - Dst: set_max_height
      Src: /src/image/src/codecs/jpeg/decoder.rs:35,1
    - Dst: zune_jpeg::JpegDecoder::new_with_options
      Src: /src/image/src/codecs/jpeg/decoder.rs:40,1
    - Dst: Limits::no_limits
      Src: /src/image/src/codecs/jpeg/decoder.rs:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - r
    - spec
    argTypes:
    - R
    - SpecCompliance
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 49
    functionName: JpegDecoder::with_spec_compliance
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 2
    functionsReached:
    - set_max_width
    - set_max_height
    - zune_core::options::DecoderOptions::default
    - zune_jpeg::JpegDecoder::new_with_options
    - Self::set_strict_mode
    - Limits::no_limits
    linkageType: ''
    returnType: JpegDecoder
    signature: 'pub(crate) fn with_spec_compliance(r: R, spec: SpecCompliance) ->
      JpegDecoder<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/image/src/codecs/jpeg/decoder.rs:52,1
    - Dst: decode_headers
      Src: /src/image/src/codecs/jpeg/decoder.rs:54,1
    - Dst: map_err
      Src: /src/image/src/codecs/jpeg/decoder.rs:54,1
    - Dst: dimensions
      Src: /src/image/src/codecs/jpeg/decoder.rs:60,1
    - Dst: unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:60,1
    - Dst: u32::try_into
      Src: /src/image/src/codecs/jpeg/decoder.rs:62,1
    - Dst: unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:62,1
    - Dst: u32::try_into
      Src: /src/image/src/codecs/jpeg/decoder.rs:63,1
    - Dst: unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:63,1
    - Dst: input_colorspace
      Src: /src/image/src/codecs/jpeg/decoder.rs:65,1
    - Dst: expect
      Src: /src/image/src/codecs/jpeg/decoder.rs:65,1
    - Dst: set_options
      Src: /src/image/src/codecs/jpeg/decoder.rs:73,1
    - Dst: options
      Src: /src/image/src/codecs/jpeg/decoder.rs:83,1
    - Dst: jpeg_set_out_colorspace
      Src: /src/image/src/codecs/jpeg/decoder.rs:83,1
    - Dst: Some
      Src: /src/image/src/codecs/jpeg/decoder.rs:88,1
    - Dst: as_ref
      Src: /src/image/src/codecs/jpeg/decoder.rs:97,1
    - Dst: unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:97,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:99,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 100
    functionName: JpegDecoder::ensure_headers
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 6
    functionsReached:
    - as_ref
    - options
    - Ok
    - expect
    - jpeg_set_out_colorspace
    - decode_headers
    - set_options
    - is_none
    - unwrap
    - input_colorspace
    - Some
    - map_err
    - dimensions
    - u32::try_into
    linkageType: ''
    returnType: ImageResult
    signature: fn ensure_headers(&mut self) -> ImageResult<(&mut zune_jpeg::JpegDecoder<R>,
      &HeaderData)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FormatAttributes::default
      Src: /src/image/src/codecs/jpeg/decoder.rs:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 115
    functionName: JpegDecoder::format_attributes
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - FormatAttributes::default
    linkageType: ''
    returnType: FormatAttributes
    signature: fn format_attributes(&self) -> FormatAttributes
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JpegDecoder::ensure_headers
      Src: /src/image/src/codecs/jpeg/decoder.rs:118,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:119,1
    - Dst: DecoderPreparedImage::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:119,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/decoder.rs:120,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/decoder.rs:121,1
    - Dst: ColorType::from_jpeg
      Src: /src/image/src/codecs/jpeg/decoder.rs:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 9
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: JpegDecoder::prepare_image
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 2
    functionsReached:
    - ColorType::from_jpeg
    - Ok
    - JpegDecoder::ensure_headers
    - into
    - DecoderPreparedImage::new
    linkageType: ''
    returnType: ImageResult
    signature: fn prepare_image(&mut self) -> ImageResult<DecoderPreparedImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JpegDecoder::ensure_headers
      Src: /src/image/src/codecs/jpeg/decoder.rs:127,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:128,1
    - Dst: ImageResult::icc_profile
      Src: /src/image/src/codecs/jpeg/decoder.rs:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 13
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: JpegDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - ImageResult::icc_profile
    - JpegDecoder::ensure_headers
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JpegDecoder::ensure_headers
      Src: /src/image/src/codecs/jpeg/decoder.rs:132,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:133,1
    - Dst: ImageResult::exif
      Src: /src/image/src/codecs/jpeg/decoder.rs:133,1
    - Dst: Option::cloned
      Src: /src/image/src/codecs/jpeg/decoder.rs:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 134
    functionName: JpegDecoder::exif_metadata
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Option::cloned
    - ImageResult::exif
    - JpegDecoder::ensure_headers
    linkageType: ''
    returnType: ImageResult
    signature: fn exif_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JpegDecoder::ensure_headers
      Src: /src/image/src/codecs/jpeg/decoder.rs:137,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: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 11
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: JpegDecoder::xmp_metadata
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - cloned
    - ImageResult::xmp
    - JpegDecoder::ensure_headers
    linkageType: ''
    returnType: ImageResult
    signature: fn xmp_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JpegDecoder::ensure_headers
      Src: /src/image/src/codecs/jpeg/decoder.rs:142,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:143,1
    - Dst: ImageResult::iptc
      Src: /src/image/src/codecs/jpeg/decoder.rs:143,1
    - Dst: cloned
      Src: /src/image/src/codecs/jpeg/decoder.rs:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: JpegDecoder::iptc_metadata
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - cloned
    - ImageResult::iptc
    - JpegDecoder::ensure_headers
    linkageType: ''
    returnType: ImageResult
    signature: fn iptc_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JpegDecoder::prepare_image
      Src: /src/image/src/codecs/jpeg/decoder.rs:147,1
    - Dst: ImageResult::total_bytes
      Src: /src/image/src/codecs/jpeg/decoder.rs:149,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/jpeg/decoder.rs:150,1
    - Dst: Err
      Src: /src/image/src/codecs/jpeg/decoder.rs:153,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/jpeg/decoder.rs:153,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:153,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/decoder.rs:154,1
    - Dst: JpegDecoder::ensure_headers
      Src: /src/image/src/codecs/jpeg/decoder.rs:163,1
    - Dst: ImageResult::decode_into
      Src: /src/image/src/codecs/jpeg/decoder.rs:164,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/jpeg/decoder.rs:164,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/jpeg/decoder.rs:165,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:165,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/decoder.rs:165,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:168,1
    - Dst: DecodedImageAttributes::default
      Src: /src/image/src/codecs/jpeg/decoder.rs:169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 171
      start: 146
    functionDepth: 10
    functionLinenumber: 146
    functionLinenumberEnd: 171
    functionName: JpegDecoder::read_image
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageError::Decoding
    - JpegDecoder::prepare_image
    - Err
    - ImageResult::total_bytes
    - Ok
    - JpegDecoder::ensure_headers
    - ImageResult::decode_into
    - into
    - std::io::Result::len
    - DecodedImageAttributes::default
    - DecodingError::new
    - ImageResult::map_err
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(&mut self, buf: &mut [u8]) -> ImageResult<DecodedImageAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Limits::check_support
      Src: /src/image/src/codecs/jpeg/decoder.rs:174,1
    - Dst: crate::LimitSupport::default
      Src: /src/image/src/codecs/jpeg/decoder.rs:174,1
    - Dst: JpegDecoder::prepare_image
      Src: /src/image/src/codecs/jpeg/decoder.rs:175,1
    - Dst: Limits::check_layout_dimensions
      Src: /src/image/src/codecs/jpeg/decoder.rs:176,1
    - Dst: Ok
      Src: /src/image/src/codecs/jpeg/decoder.rs:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - limits
    argTypes:
    - Limits
    constantsTouched: []
    func_position:
      end: 179
      start: 173
    functionDepth: 10
    functionLinenumber: 173
    functionLinenumberEnd: 179
    functionName: JpegDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - JpegDecoder::prepare_image
    - Ok
    - crate::LimitSupport::default
    - Limits::check_support
    - Limits::check_layout_dimensions
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_supported_color_space
      Src: /src/image/src/codecs/jpeg/decoder.rs:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - colorspace
    argTypes:
    - ZuneColorSpace
    constantsTouched: []
    func_position:
      end: 196
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 196
    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: 206
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: to_supported_color_space
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ZuneColorSpace
    signature: 'fn to_supported_color_space(orig: ZuneColorSpace) -> ZuneColorSpace'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/jpeg/decoder.rs:212,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/jpeg/decoder.rs:212,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/decoder.rs:213,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/jpeg/decoder.rs:214,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/jpeg/decoder.rs:216,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/jpeg/decoder.rs:216,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/jpeg/decoder.rs:219,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:219,1
    - Dst: into
      Src: /src/image/src/codecs/jpeg/decoder.rs:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - err
    argTypes:
    - zune_jpeg::errors::DecodeErrors
    constantsTouched: []
    func_position:
      end: 221
      start: 209
    functionDepth: 9
    functionLinenumber: 209
    functionLinenumberEnd: 221
    functionName: ImageError::from_jpeg
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageError::Decoding
    - ImageError::Limits
    - DecodingError::new
    - LimitError::from_kind
    - ImageError::Unsupported
    - into
    - UnsupportedError::from_format_and_kind
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: ImageError
    signature: 'fn from_jpeg(err: zune_jpeg::errors::DecodeErrors) -> ImageError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs::read
      Src: /src/image/src/codecs/jpeg/decoder.rs:231,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:231,1
    - Dst: JpegDecoder::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:232,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:232,1
    - Dst: crate::DynamicImage::new_luma8
      Src: /src/image/src/codecs/jpeg/decoder.rs:234,1
    - Dst: crate::ImageReader::from_decoder
      Src: /src/image/src/codecs/jpeg/decoder.rs:235,1
    - Dst: Box::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:235,1
    - Dst: Result::decode_to_dynimage
      Src: /src/image/src/codecs/jpeg/decoder.rs:236,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 230
    functionDepth: 12
    functionLinenumber: 230
    functionLinenumberEnd: 242
    functionName: tests::test_exif_orientation
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - JpegDecoder::new
    - fs::read
    - ImageResult::unwrap
    - Box::new
    - crate::ImageReader::from_decoder
    - Result::decode_to_dynimage
    - std::io::Result::unwrap
    - crate::DynamicImage::new_luma8
    - Cursor::new
    linkageType: ''
    returnType: void
    signature: fn test_exif_orientation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fs::read
      Src: /src/image/src/codecs/jpeg/decoder.rs:246,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:246,1
    - Dst: Vec::truncate
      Src: /src/image/src/codecs/jpeg/decoder.rs:247,1
    - Dst: Vec::len
      Src: /src/image/src/codecs/jpeg/decoder.rs:247,1
    - Dst: JpegDecoder::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:250,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:250,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/jpeg/decoder.rs:251,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:251,1
    - Dst: JpegDecoder::with_spec_compliance
      Src: /src/image/src/codecs/jpeg/decoder.rs:257,1
    - Dst: Cursor::new
      Src: /src/image/src/codecs/jpeg/decoder.rs:257,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/jpeg/decoder.rs:258,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/jpeg/decoder.rs:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 245
    functionDepth: 11
    functionLinenumber: 245
    functionLinenumberEnd: 261
    functionName: tests::test_strict_vs_lenient_spec_compliance
    functionSourceFile: /src/image/src/codecs/jpeg/decoder.rs
    functionUses: 0
    functionsReached:
    - JpegDecoder::new
    - JpegDecoder::with_spec_compliance
    - fs::read
    - ImageResult::unwrap
    - Vec::truncate
    - ImageResult::prepare_image
    - std::io::Result::unwrap
    - Cursor::new
    - 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: 3
    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:57,1
    - Dst: Err
      Src: /src/image/src/codecs/webp/encoder.rs:71,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/webp/encoder.rs:71,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/webp/encoder.rs:72,1
    - Dst: into
      Src: /src/image/src/codecs/webp/encoder.rs:73,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/webp/encoder.rs:74,1
    - Dst: encode
      Src: /src/image/src/codecs/webp/encoder.rs:80,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/encoder.rs:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 83
      start: 50
    functionDepth: 9
    functionLinenumber: 50
    functionLinenumberEnd: 83
    functionName: WebPEncoder::encode
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 1
    functionsReached:
    - encode
    - Err
    - Option::buffer_size
    - UnsupportedErrorKind::Color
    - ImageError::Unsupported
    - into
    - map_err
    - UnsupportedError::from_format_and_kind
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn encode(self,buf: &[u8],width: u32,height: u32,color_type: ExtendedColorType,)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WebPEncoder::encode
      Src: /src/image/src/codecs/webp/encoder.rs:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - buf
    - width
    - height
    - color_type
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 10
    functionLinenumber: 88
    functionLinenumberEnd: 96
    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:99,1
    - Dst: Ok
      Src: /src/image/src/codecs/webp/encoder.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - icc_profile
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 10
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: WebPEncoder::set_icc_profile
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - set_icc_profile
    linkageType: ''
    returnType: Result
    signature: 'fn set_icc_profile(&mut self, icc_profile: Vec<u8>) -> Result<(),
      UnsupportedError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_exif_metadata
      Src: /src/image/src/codecs/webp/encoder.rs:104,1
    - Dst: Ok
      Src: /src/image/src/codecs/webp/encoder.rs:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - exif
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 10
    functionLinenumber: 103
    functionLinenumberEnd: 106
    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: set_xmp_metadata
      Src: /src/image/src/codecs/webp/encoder.rs:109,1
    - Dst: Ok
      Src: /src/image/src/codecs/webp/encoder.rs:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - xmp
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 10
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: WebPEncoder::set_xmp_metadata
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 0
    functionsReached:
    - set_xmp_metadata
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn set_xmp_metadata(&mut self, xmp: Vec<u8>) -> Result<(), UnsupportedError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::io::encoder::dynimage_conversion_8bit
      Src: /src/image/src/codecs/webp/encoder.rs:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - img
    argTypes:
    - crate::io::encoder::MethodSealedToImage
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    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:125,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/webp/encoder.rs:126,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/webp/encoder.rs:126,1
    - Dst: into
      Src: /src/image/src/codecs/webp/encoder.rs:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - e
    argTypes:
    - image_webp::EncodingError
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 10
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: ImageError::from_webp_encode
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageError::Encoding
    - ImageError::IoError
    - EncodingError::new
    - into
    linkageType: ''
    returnType: Self
    signature: 'fn from_webp_encode(e: image_webp::EncodingError) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::from_raw
      Src: /src/image/src/codecs/webp/encoder.rs:137,1
    - Dst: collect
      Src: /src/image/src/codecs/webp/encoder.rs:137,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/webp/encoder.rs:137,1
    - Dst: Vec::new
      Src: /src/image/src/codecs/webp/encoder.rs:139,1
    - Dst: super::WebPEncoder::new_lossless
      Src: /src/image/src/codecs/webp/encoder.rs:140,1
    - Dst: Self::write_image
      Src: /src/image/src/codecs/webp/encoder.rs:140,1
    - Dst: Option::subpixels
      Src: /src/image/src/codecs/webp/encoder.rs:142,1
    - Dst: Option::width
      Src: /src/image/src/codecs/webp/encoder.rs:143,1
    - Dst: Option::height
      Src: /src/image/src/codecs/webp/encoder.rs:144,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/webp/encoder.rs:140,1
    - Dst: crate::load_from_memory_with_format
      Src: /src/image/src/codecs/webp/encoder.rs:149,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/webp/encoder.rs:149,1
    - Dst: to_rgba8
      Src: /src/image/src/codecs/webp/encoder.rs:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 136
    functionDepth: 14
    functionLinenumber: 136
    functionLinenumberEnd: 154
    functionName: tests::write_webp
    functionSourceFile: /src/image/src/codecs/webp/encoder.rs
    functionUses: 0
    functionsReached:
    - Option::width
    - super::WebPEncoder::new_lossless
    - Option::height
    - ImageResult::unwrap
    - to_rgba8
    - Self::write_image
    - Option::subpixels
    - crate::load_from_memory_with_format
    - Vec::new
    - RgbaImage::from_raw
    - collect
    linkageType: ''
    returnType: void
    signature: fn write_webp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/webp/decoder.rs:23,1
    - Dst: image_webp::WebPDecoder::new
      Src: /src/image/src/codecs/webp/decoder.rs:24,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/webp/decoder.rs:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 27
    functionName: WebPDecoder::new
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 9
    functionsReached:
    - Ok
    - image_webp::WebPDecoder::new
    - ImageResult::map_err
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn new(r: R) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_animated
      Src: /src/image/src/codecs/webp/decoder.rs:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    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:36,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/decoder.rs:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - color
    argTypes:
    - Rgba<u8>
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: WebPDecoder::set_background_color
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - map_err
    - set_background_color
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn set_background_color(&mut self, color: Rgba<u8>) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FormatAttributes::default
      Src: /src/image/src/codecs/webp/decoder.rs:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: WebPDecoder::format_attributes
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - FormatAttributes::default
    linkageType: ''
    returnType: FormatAttributes
    signature: fn format_attributes(&self) -> FormatAttributes
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: loop_count
      Src: /src/image/src/codecs/webp/decoder.rs:55,1
    - Dst: crate::metadata::LoopCount::Finite
      Src: /src/image/src/codecs/webp/decoder.rs:57,1
    - Dst: into
      Src: /src/image/src/codecs/webp/decoder.rs:57,1
    - Dst: Some
      Src: /src/image/src/codecs/webp/decoder.rs:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 9
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: WebPDecoder::animation_attributes
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - crate::metadata::LoopCount::Finite
    - Some
    - loop_count
    - into
    linkageType: ''
    returnType: Option
    signature: fn animation_attributes(&mut self) -> Option<DecodedAnimationAttributes>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dimensions
      Src: /src/image/src/codecs/webp/decoder.rs:64,1
    - Dst: has_alpha
      Src: /src/image/src/codecs/webp/decoder.rs:65,1
    - Dst: Ok
      Src: /src/image/src/codecs/webp/decoder.rs:71,1
    - Dst: DecoderPreparedImage::new
      Src: /src/image/src/codecs/webp/decoder.rs:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: WebPDecoder::prepare_image
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 1
    functionsReached:
    - dimensions
    - Ok
    - has_alpha
    - DecoderPreparedImage::new
    linkageType: ''
    returnType: ImageResult
    signature: fn prepare_image(&mut self) -> ImageResult<DecoderPreparedImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_animated
      Src: /src/image/src/codecs/webp/decoder.rs:75,1
    - Dst: num_frames
      Src: /src/image/src/codecs/webp/decoder.rs:77,1
    - Dst: Err
      Src: /src/image/src/codecs/webp/decoder.rs:78,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/webp/decoder.rs:78,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/webp/decoder.rs:78,1
    - Dst: WebPDecoder::prepare_image
      Src: /src/image/src/codecs/webp/decoder.rs:83,1
    - Dst: read_frame
      Src: /src/image/src/codecs/webp/decoder.rs:88,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/decoder.rs:88,1
    - Dst: Some
      Src: /src/image/src/codecs/webp/decoder.rs:92,1
    - Dst: Delay::from_numer_denom_ms
      Src: /src/image/src/codecs/webp/decoder.rs:92,1
    - Dst: read_image
      Src: /src/image/src/codecs/webp/decoder.rs:94,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/decoder.rs:94,1
    - Dst: Ok
      Src: /src/image/src/codecs/webp/decoder.rs:102,1
    - Dst: DecodedImageAttributes::default
      Src: /src/image/src/codecs/webp/decoder.rs:104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 106
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 106
    functionName: WebPDecoder::read_image
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - Delay::from_numer_denom_ms
    - Ok
    - is_animated
    - num_frames
    - read_frame
    - read_image
    - ParameterError::from_kind
    - WebPDecoder::prepare_image
    - map_err
    - Some
    - DecodedImageAttributes::default
    - ImageError::Parameter
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(&mut self, buf: &mut [u8]) -> ImageResult<DecodedImageAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: icc_profile
      Src: /src/image/src/codecs/webp/decoder.rs:109,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/decoder.rs:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 13
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: WebPDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - map_err
    - icc_profile
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exif_metadata
      Src: /src/image/src/codecs/webp/decoder.rs:115,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/decoder.rs:115,1
    - Dst: Ok
      Src: /src/image/src/codecs/webp/decoder.rs:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 5
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: WebPDecoder::exif_metadata
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - map_err
    - 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/codecs/webp/decoder.rs:124,1
    - Dst: map_err
      Src: /src/image/src/codecs/webp/decoder.rs:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 5
    functionLinenumber: 123
    functionLinenumberEnd: 127
    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: num_frames
      Src: /src/image/src/codecs/webp/decoder.rs:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: WebPDecoder::more_images
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - num_frames
    linkageType: ''
    returnType: SequenceControl
    signature: fn more_images(&self) -> SequenceControl
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageError::IoError
      Src: /src/image/src/codecs/webp/decoder.rs:141,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/webp/decoder.rs:143,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/webp/decoder.rs:143,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/webp/decoder.rs:145,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/webp/decoder.rs:145,1
    - Dst: into
      Src: /src/image/src/codecs/webp/decoder.rs:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - e
    argTypes:
    - image_webp::DecodingError
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 10
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: ImageError::from_webp_decode
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageError::Decoding
    - ImageError::IoError
    - ParameterError::from_kind
    - into
    - ImageError::Parameter
    - DecodingError::new
    linkageType: ''
    returnType: Self
    signature: 'fn from_webp_decode(e: image_webp::DecodingError) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::io::Cursor::new
      Src: /src/image/src/codecs/webp/decoder.rs:165,1
    - Dst: WebPDecoder::new
      Src: /src/image/src/codecs/webp/decoder.rs:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 168
    functionName: tests::add_with_overflow_size
    functionSourceFile: /src/image/src/codecs/webp/decoder.rs
    functionUses: 0
    functionsReached:
    - std::io::Cursor::new
    - WebPDecoder::new
    linkageType: ''
    returnType: void
    signature: fn add_with_overflow_size()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - precision
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 32
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: CbCrInverseTransform::to_integers
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CbCrInverseTransform
    signature: 'fn to_integers(self, precision: u32) -> CbCrInverseTransform<i32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::write_str
      Src: /src/image/src/codecs/avif/yuv.rs:51,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/avif/yuv.rs:52,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/avif/yuv.rs:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut Formatter'
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: PlaneDefinition::fmt
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - Result::write_str
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut Formatter) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::write_fmt
      Src: /src/image/src/codecs/avif/yuv.rs:68,1
    - Dst: Result::write_fmt
      Src: /src/image/src/codecs/avif/yuv.rs:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: YuvConversionError::fmt
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - Result::write_fmt
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/codecs/avif/yuv.rs:92,1
    - Dst: Result::len
      Src: /src/image/src/codecs/avif/yuv.rs:92,1
    - Dst: usize::checked_mul
      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: Result::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: 22
    argCount: 4
    argNames:
    - plane
    - plane_definition
    - stride
    - height
    argTypes:
    - '&[V]'
    - PlaneDefinition
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 105
      start: 86
    functionDepth: 11
    functionLinenumber: 86
    functionLinenumberEnd: 105
    functionName: check_yuv_plane_preconditions
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 6
    functionsReached:
    - ImageError::Decoding
    - Err
    - usize::checked_mul
    - Ok
    - YuvConversionError::YuvPlaneSizeMismatch
    - Some
    - into
    - Result::len
    - DecodingError::new
    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: Some
      Src: /src/image/src/codecs/avif/yuv.rs:113,1
    - Dst: '&[V]::len'
      Src: /src/image/src/codecs/avif/yuv.rs:113,1
    - Dst: usize::checked_mul
      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: 22
    argCount: 3
    argNames:
    - rgb_data
    - stride
    - height
    argTypes:
    - '&[V]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 123
      start: 108
    functionDepth: 11
    functionLinenumber: 108
    functionLinenumberEnd: 123
    functionName: check_rgb_preconditions
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 6
    functionsReached:
    - ImageError::Decoding
    - Err
    - usize::checked_mul
    - Ok
    - '&[V]::len'
    - YuvConversionError::RgbDestinationSizeMismatch
    - Some
    - into
    - DecodingError::new
    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: 12
    functionLinenumber: 321
    functionLinenumberEnd: 422
    functionName: yuv400_to_rgbx_impl
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - iter
    - as_chunks_mut::<CHANNELS>
    - check_rgb_preconditions
    - chunks_exact
    - get_inverse_transform
    - Ok
    - check_yuv_plane_preconditions
    - iter_mut
    - YuvChromaRange::get_yuv_range
    - Result::as_
    - zip
    - qrshr::<PRECISION, BIT_DEPTH>
    - as_
    - chunks_exact_mut
    - Result::get_kr_kb
    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:
    - as_
    - qrshr::<PRECISION, BIT_DEPTH>
    - Result::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: 5
    functionLinenumber: 543
    functionLinenumberEnd: 624
    functionName: process_halved_chroma_row_cbcr
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - iter
    - try_into
    - as_chunks::<2>
    - iter_mut
    - into_remainder
    - div_ceil
    - zip
    - unwrap
    - rev
    - "into_remainder()\n            .as_chunks_mut::<CHANNELS>"
    - as_
    - chunks_exact_mut
    - ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>
    linkageType: ''
    returnType: void
    signature: 'fn process_halved_chroma_row_cbcr<V: Copy + AsPrimitive<i32> + ''static
      + Sized,const PRECISION: i32,const CHANNELS: usize,const BIT_DEPTH: usize,>(image:
      YuvPlanarImage<V>,rgba: &mut [V],transform: &CbCrInverseTransform<i32>,range:
      &YuvChromaRange,) wherei32: AsPrimitive<V>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: div_ceil
      Src: /src/image/src/codecs/avif/yuv.rs: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: 12
    functionLinenumber: 635
    functionLinenumberEnd: 770
    functionName: yuv420_to_rgbx_invoker
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - get_inverse_transform
    - check_rgb_preconditions
    - chunks_exact
    - Ok
    - check_yuv_plane_preconditions
    - remainder
    - YuvChromaRange::get_yuv_range
    - div_ceil
    - zip
    - rev
    - worker
    - chunks_exact_mut
    - Result::get_kr_kb
    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: 12
    functionLinenumber: 856
    functionLinenumberEnd: 963
    functionName: yuv422_to_rgbx_invoker
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - get_inverse_transform
    - check_rgb_preconditions
    - chunks_exact
    - Ok
    - check_yuv_plane_preconditions
    - YuvChromaRange::get_yuv_range
    - zip
    - worker
    - chunks_exact_mut
    - Result::get_kr_kb
    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: 12
    functionLinenumber: 1029
    functionLinenumberEnd: 1118
    functionName: yuv444_to_rgbx_impl
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - iter
    - get_inverse_transform
    - check_rgb_preconditions
    - chunks_exact
    - as_chunks_mut::<CHANNELS>
    - Ok
    - check_yuv_plane_preconditions
    - iter_mut
    - YuvChromaRange::get_yuv_range
    - zip
    - as_
    - chunks_exact_mut
    - Result::get_kr_kb
    - ycbcr_execute::<V, PRECISION, CHANNELS, BIT_DEPTH>
    linkageType: ''
    returnType: Result
    signature: 'fn yuv444_to_rgbx_impl<V: Copy + AsPrimitive<i32> + ''static + Sized,const
      CHANNELS: usize,const BIT_DEPTH: usize,>(image: YuvPlanarImage<V>,rgba: &mut
      [V],range: YuvIntensityRange,matrix: YuvStandardMatrix,) -> Result<(), ImageError>wherei32:
      AsPrimitive<V>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gbr_to_rgbx_impl::<u8, 4, 8>
      Src: /src/image/src/codecs/avif/yuv.rs: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: 12
    functionLinenumber: 1178
    functionLinenumberEnd: 1277
    functionName: gbr_to_rgbx_impl
    functionSourceFile: /src/image/src/codecs/avif/yuv.rs
    functionUses: 0
    functionsReached:
    - iter
    - as_chunks_mut::<CHANNELS>
    - check_rgb_preconditions
    - chunks_exact
    - Ok
    - check_yuv_plane_preconditions
    - iter_mut
    - YuvChromaRange::get_yuv_range
    - zip
    - qrshr::<PRECISION, BIT_DEPTH>
    - as_
    - chunks_exact_mut
    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: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    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:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - w
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 4
    functionLinenumber: 57
    functionLinenumberEnd: 59
    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:67,1
    - Dst: std::cmp::min
      Src: /src/image/src/codecs/avif/encoder.rs:68,1
    - Dst: Encoder::new
      Src: /src/image/src/codecs/avif/encoder.rs:70,1
    - Dst: FarbfeldEncoder::with_quality
      Src: /src/image/src/codecs/avif/encoder.rs:70,1
    - Dst: f32::from
      Src: /src/image/src/codecs/avif/encoder.rs:71,1
    - Dst: PngEncoder::with_alpha_quality
      Src: /src/image/src/codecs/avif/encoder.rs:70,1
    - Dst: f32::from
      Src: /src/image/src/codecs/avif/encoder.rs:72,1
    - Dst: with_speed
      Src: /src/image/src/codecs/avif/encoder.rs:70,1
    - Dst: with_bit_depth
      Src: /src/image/src/codecs/avif/encoder.rs:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - w
    - speed
    - quality
    argTypes:
    - W
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: AvifEncoder::new_with_speed_quality
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 1
    functionsReached:
    - f32::from
    - std::cmp::min
    - FarbfeldEncoder::with_quality
    - PngEncoder::with_alpha_quality
    - Encoder::new
    - with_bit_depth
    - with_speed
    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:81,1
    - Dst: ZuneColorSpace::to_ravif
      Src: /src/image/src/codecs/avif/encoder.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - color_space
    argTypes:
    - ColorSpace
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 85
    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:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - num_threads
    argTypes:
    - Option<usize>
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 92
    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:109,1
    - Dst: AvifEncoder::set_color
      Src: /src/image/src/codecs/avif/encoder.rs:117,1
    - Dst: Self::encode_as_img
      Src: /src/image/src/codecs/avif/encoder.rs:122,1
    - Dst: encode_rgb
      Src: /src/image/src/codecs/avif/encoder.rs:123,1
    - Dst: encode_rgba
      Src: /src/image/src/codecs/avif/encoder.rs:124,1
    - Dst: map_err
      Src: /src/image/src/codecs/avif/encoder.rs:126,1
    - Dst: ImageError::Encoding
      Src: /src/image/src/codecs/avif/encoder.rs:127,1
    - Dst: EncodingError::new
      Src: /src/image/src/codecs/avif/encoder.rs:127,1
    - Dst: into
      Src: /src/image/src/codecs/avif/encoder.rs:127,1
    - Dst: write_all
      Src: /src/image/src/codecs/avif/encoder.rs:129,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 4
    argNames:
    - data
    - width
    - height
    - color
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 131
      start: 102
    functionDepth: 8
    functionLinenumber: 102
    functionLinenumberEnd: 131
    functionName: AvifEncoder::write_image
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached:
    - encode_rgb
    - Ok
    - Self::encode_as_img
    - EncodingError::new
    - AvifEncoder::set_color
    - bool::buffer_size
    - map_err
    - into
    - ImageError::Encoding
    - write_all
    - encode_rgba
    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:136,1
    - Dst: Encoder::new
      Src: /src/image/src/codecs/avif/encoder.rs:136,1
    - Dst: ImageResult::with_exif
      Src: /src/image/src/codecs/avif/encoder.rs:137,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - exif
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: AvifEncoder::set_exif_metadata
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::with_exif
    - Ok
    - Encoder::new
    - std::mem::replace
    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: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    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:161,1
    - Dst: Option::ok_or_else
      Src: /src/image/src/codecs/avif/encoder.rs:161,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:162,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - data
    - width
    - height
    argTypes:
    - '&[P::Subpixel]'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 166
    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:
    - ImageBuffer::from_raw
    - Option::ok_or_else
    - ImageError::Parameter
    - ParameterError::from_kind
    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:177,1
    - Dst: Vec::convert
      Src: /src/image/src/codecs/avif/encoder.rs:179,1
    - Dst: Vec::into_raw
      Src: /src/image/src/codecs/avif/encoder.rs:180,1
    - Dst: Img::new
      Src: /src/image/src/codecs/avif/encoder.rs:181,1
    - Dst: std::io::Result::as_pixels
      Src: /src/image/src/codecs/avif/encoder.rs:181,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: 182
      start: 169
    functionDepth: 6
    functionLinenumber: 169
    functionLinenumberEnd: 182
    functionName: A::v::i::f::E::n::c::o::d::e::r::::::::e::n::c::o::d::e::_::a::s::_::i::m::g::convert_into
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached:
    - Vec::dimensions
    - Vec::into_raw
    - Img::new
    - Vec::convert
    - std::io::Result::as_pixels
    linkageType: ''
    returnType: Img
    signature: 'fn convert_into<''buf, P>(buf: &''buf mut Vec<u8>,image: ImageBuffer<P,
      &[P::Subpixel]>,) -> Img<&''buf [RGBA8]>whereP: Pixel,Rgba<u8>: FromColor<P>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytemuck::try_cast_slice
      Src: /src/image/src/codecs/avif/encoder.rs:190,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:191,1
    - Dst: Cow::Borrowed
      Src: /src/image/src/codecs/avif/encoder.rs:191,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:192,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:192,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:193,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/avif/encoder.rs:198,1
    - Dst: String::is_multiple_of
      Src: /src/image/src/codecs/avif/encoder.rs:198,1
    - Dst: size_of::<Channel>
      Src: /src/image/src/codecs/avif/encoder.rs:198,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:199,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:199,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:199,1
    - Dst: std::io::Result::len
      Src: /src/image/src/codecs/avif/encoder.rs:203,1
    - Dst: size_of::<Channel>
      Src: /src/image/src/codecs/avif/encoder.rs:203,1
    - Dst: try_cast_slice_mut::<_, u8>
      Src: /src/image/src/codecs/avif/encoder.rs:205,1
    - Dst: ImageResult::as_mut_slice
      Src: /src/image/src/codecs/avif/encoder.rs:205,1
    - Dst: unwrap
      Src: /src/image/src/codecs/avif/encoder.rs:205,1
    - Dst: SubImage::copy_from_slice
      Src: /src/image/src/codecs/avif/encoder.rs:206,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:207,1
    - Dst: Cow::Owned
      Src: /src/image/src/codecs/avif/encoder.rs:207,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:212,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:212,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:212,1
    - Dst: ParameterErrorKind::Generic
      Src: /src/image/src/codecs/avif/encoder.rs:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 217
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 217
    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:
    - Err
    - Ok
    - size_of::<Channel>
    - String::is_multiple_of
    - try_cast_slice_mut::<_, u8>
    - ParameterErrorKind::Generic
    - unwrap
    - ParameterError::from_kind
    - SubImage::copy_from_slice
    - Cow::Borrowed
    - bytemuck::try_cast_slice
    - std::io::Result::len
    - Cow::Owned
    - ImageError::Parameter
    - ImageResult::as_mut_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:222,1
    - Dst: Option::pixels
      Src: /src/image/src/codecs/avif/encoder.rs:225,1
    - Dst: ImageResult::is_empty
      Src: /src/image/src/codecs/avif/encoder.rs:225,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:226,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:226,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:226,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:231,1
    - Dst: RgbColor::Rgb8
      Src: /src/image/src/codecs/avif/encoder.rs:231,1
    - Dst: Img::new
      Src: /src/image/src/codecs/avif/encoder.rs:231,1
    - Dst: AsPixels::as_pixels
      Src: /src/image/src/codecs/avif/encoder.rs:232,1
    - Dst: try_from_raw::<Rgba<u8>>
      Src: /src/image/src/codecs/avif/encoder.rs:239,1
    - Dst: Option::pixels
      Src: /src/image/src/codecs/avif/encoder.rs:242,1
    - Dst: ImageResult::is_empty
      Src: /src/image/src/codecs/avif/encoder.rs:242,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:243,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/codecs/avif/encoder.rs:243,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/codecs/avif/encoder.rs:243,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:248,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:248,1
    - Dst: Img::new
      Src: /src/image/src/codecs/avif/encoder.rs:248,1
    - Dst: AsPixels::as_pixels
      Src: /src/image/src/codecs/avif/encoder.rs:249,1
    - Dst: try_from_raw::<Luma<u8>>
      Src: /src/image/src/codecs/avif/encoder.rs:256,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:257,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:257,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:257,1
    - Dst: try_from_raw::<LumaA<u8>>
      Src: /src/image/src/codecs/avif/encoder.rs:260,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:261,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:261,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:261,1
    - Dst: cast_buffer
      Src: /src/image/src/codecs/avif/encoder.rs:265,1
    - Dst: try_from_raw::<Luma<u16>>
      Src: /src/image/src/codecs/avif/encoder.rs:266,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:267,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:267,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:267,1
    - Dst: cast_buffer
      Src: /src/image/src/codecs/avif/encoder.rs:270,1
    - Dst: try_from_raw::<LumaA<u16>>
      Src: /src/image/src/codecs/avif/encoder.rs:271,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:272,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:272,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:272,1
    - Dst: cast_buffer
      Src: /src/image/src/codecs/avif/encoder.rs:275,1
    - Dst: try_from_raw::<Rgb<u16>>
      Src: /src/image/src/codecs/avif/encoder.rs:276,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:277,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:277,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:277,1
    - Dst: cast_buffer
      Src: /src/image/src/codecs/avif/encoder.rs:280,1
    - Dst: try_from_raw::<Rgba<u16>>
      Src: /src/image/src/codecs/avif/encoder.rs:281,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/encoder.rs:282,1
    - Dst: RgbColor::Rgba8
      Src: /src/image/src/codecs/avif/encoder.rs:282,1
    - Dst: convert_into
      Src: /src/image/src/codecs/avif/encoder.rs:282,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/encoder.rs:285,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/encoder.rs:285,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/encoder.rs:286,1
    - Dst: into
      Src: /src/image/src/codecs/avif/encoder.rs:287,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/avif/encoder.rs:288,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 145
    argCount: 5
    argNames:
    - fallback
    - data
    - width
    - height
    - color
    argTypes:
    - '&''buf mut Vec<u8>'
    - '&''buf [u8]'
    - u32
    - u32
    - ExtendedColorType
    constantsTouched: []
    func_position:
      end: 292
      start: 148
    functionDepth: 7
    functionLinenumber: 148
    functionLinenumberEnd: 292
    functionName: AvifEncoder::encode_as_img
    functionSourceFile: /src/image/src/codecs/avif/encoder.rs
    functionUses: 0
    functionsReached:
    - AsPixels::as_pixels
    - try_from_raw::<LumaA<u8>>
    - Err
    - UnsupportedErrorKind::Color
    - into
    - Option::pixels
    - ImageError::Unsupported
    - try_from_raw::<Rgba<u16>>
    - try_from_raw::<Luma<u8>>
    - try_from_raw::<Luma<u16>>
    - UnsupportedError::from_format_and_kind
    - ParameterError::from_kind
    - RgbColor::Rgba8
    - ImageResult::is_empty
    - RgbColor::Rgb8
    - try_from_raw::<Rgb<u8>>
    - try_from_raw::<Rgba<u8>>
    - convert_into
    - cast_buffer
    - Ok
    - try_from_raw::<Rgb<u16>>
    - try_from_raw::<LumaA<u16>>
    - ImageError::Parameter
    - Img::new
    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:28,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:28,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - err
    argTypes:
    - E
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 10
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: error_map
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 2
    functionsReached:
    - ImageError::Decoding
    - DecodingError::new
    - into
    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:56,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/avif/decoder.rs:57,1
    - Dst: Result::write_str
      Src: /src/image/src/codecs/avif/decoder.rs:58,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_str
      Src: /src/image/src/codecs/avif/decoder.rs:68,1
    - Dst: Result::write_fmt
      Src: /src/image/src/codecs/avif/decoder.rs:72,1
    - Dst: Result::write_fmt
      Src: /src/image/src/codecs/avif/decoder.rs:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 79
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 79
    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:87,1
    - Dst: map_err
      Src: /src/image/src/codecs/avif/decoder.rs:87,1
    - Dst: primary_item_coded_data
      Src: /src/image/src/codecs/avif/decoder.rs:88,1
    - Dst: unwrap_or_default
      Src: /src/image/src/codecs/avif/decoder.rs:88,1
    - Dst: dav1d::Decoder::new
      Src: /src/image/src/codecs/avif/decoder.rs:90,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/avif/decoder.rs:90,1
    - Dst: send_data
      Src: /src/image/src/codecs/avif/decoder.rs:91,1
    - Dst: RowsDecoded::to_vec
      Src: /src/image/src/codecs/avif/decoder.rs:92,1
    - Dst: map_err
      Src: /src/image/src/codecs/avif/decoder.rs:91,1
    - Dst: read_until_ready
      Src: /src/image/src/codecs/avif/decoder.rs:94,1
    - Dst: alpha_item_coded_data
      Src: /src/image/src/codecs/avif/decoder.rs:95,1
    - Dst: unwrap_or_default
      Src: /src/image/src/codecs/avif/decoder.rs:95,1
    - Dst: is_empty
      Src: /src/image/src/codecs/avif/decoder.rs:96,1
    - Dst: dav1d::Decoder::new
      Src: /src/image/src/codecs/avif/decoder.rs:97,1
    - Dst: ImageResult::map_err
      Src: /src/image/src/codecs/avif/decoder.rs:97,1
    - Dst: send_data
      Src: /src/image/src/codecs/avif/decoder.rs:98,1
    - Dst: to_vec
      Src: /src/image/src/codecs/avif/decoder.rs:99,1
    - Dst: map_err
      Src: /src/image/src/codecs/avif/decoder.rs:98,1
    - Dst: Some
      Src: /src/image/src/codecs/avif/decoder.rs:101,1
    - Dst: read_until_ready
      Src: /src/image/src/codecs/avif/decoder.rs:101,1
    - Dst: icc_colour_information
      Src: /src/image/src/codecs/avif/decoder.rs:105,1
    - Dst: map
      Src: /src/image/src/codecs/avif/decoder.rs:105,1
    - Dst: ok
      Src: /src/image/src/codecs/avif/decoder.rs:107,1
    - Dst: bool::unwrap_or_default
      Src: /src/image/src/codecs/avif/decoder.rs:107,1
    - Dst: map
      Src: /src/image/src/codecs/avif/decoder.rs:105,1
    - Dst: to_vec
      Src: /src/image/src/codecs/avif/decoder.rs:108,1
    - Dst: ImageResult::bit_depth
      Src: /src/image/src/codecs/avif/decoder.rs:110,1
    - Dst: ImageResult::Err
      Src: /src/image/src/codecs/avif/decoder.rs:114,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/decoder.rs:114,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:114,1
    - Dst: ImageFormatHint::Exact
      Src: /src/image/src/codecs/avif/decoder.rs:115,1
    - Dst: image_rotation
      Src: /src/image/src/codecs/avif/decoder.rs:123,1
    - Dst: map_err
      Src: /src/image/src/codecs/avif/decoder.rs:123,1
    - Dst: image_mirror_ptr
      Src: /src/image/src/codecs/avif/decoder.rs:125,1
    - Dst: map_err
      Src: /src/image/src/codecs/avif/decoder.rs:125,1
    - Dst: is_null
      Src: /src/image/src/codecs/avif/decoder.rs:126,1
    - Dst: Some
      Src: /src/image/src/codecs/avif/decoder.rs:132,1
    - Dst: std::ptr::read_unaligned
      Src: /src/image/src/codecs/avif/decoder.rs:132,1
    - Dst: convert_orientation
      Src: /src/image/src/codecs/avif/decoder.rs:135,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:136,1
    - Dst: Limits::default
      Src: /src/image/src/codecs/avif/decoder.rs:142,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 93
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 144
      start: 86
    functionDepth: 12
    functionLinenumber: 86
    functionLinenumberEnd: 144
    functionName: AvifDecoder::new
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 3
    functionsReached:
    - primary_item_coded_data
    - bool::unwrap_or_default
    - Some
    - dav1d::Decoder::new
    - read_until_ready
    - is_null
    - image_mirror_ptr
    - ImageError::Decoding
    - std::ptr::read_unaligned
    - map_err
    - ImageResult::Err
    - alpha_item_coded_data
    - is_empty
    - map
    - icc_colour_information
    - mp4parse::read_avif
    - image_rotation
    - to_vec
    - ok
    - Limits::default
    - ImageResult::map_err
    - unwrap_or_default
    - ImageResult::bit_depth
    - convert_orientation
    - Ok
    - RowsDecoded::to_vec
    - ImageFormatHint::Exact
    - DecodingError::new
    - send_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: 171
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 171
    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: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:182,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:187,1
    - Dst: error_map
      Src: /src/image/src/codecs/avif/decoder.rs:187,1
    - Dst: AvifDecoderError::InvalidStride
      Src: /src/image/src/codecs/avif/decoder.rs:187,1
    - Dst: Limits::reserve_usize
      Src: /src/image/src/codecs/avif/decoder.rs:194,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/decoder.rs:198,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/decoder.rs:198,1
    - Dst: Option::chunks_exact
      Src: /src/image/src/codecs/avif/decoder.rs:200,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/decoder.rs:202,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/decoder.rs:202,1
    - Dst: as_chunks::<2>
      Src: /src/image/src/codecs/avif/decoder.rs:202,1
    - Dst: u16::from_ne_bytes
      Src: /src/image/src/codecs/avif/decoder.rs:203,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:207,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 51
    argCount: 5
    argNames:
    - source
    - stride
    - width
    - height
    - limits
    argTypes:
    - '&[u8]'
    - u32
    - u32
    - u32
    - '&mut Limits'
    constantsTouched: []
    func_position:
      end: 208
      start: 174
    functionDepth: 11
    functionLinenumber: 174
    functionLinenumberEnd: 208
    functionName: reshape_plane
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 2
    functionsReached:
    - AvifDecoderError::InvalidStride
    - Err
    - Limits::reserve_usize
    - u16::from_ne_bytes
    - Ok
    - as_chunks::<2>
    - iter_mut
    - zip
    - error_map
    - chunks_exact_mut
    - Option::chunks_exact
    linkageType: ''
    returnType: Result
    signature: 'fn reshape_plane(source: &[u8],stride: u32,width: u32,height: u32,limits:
      &mut Limits,) -> Result<Vec<u16>, ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/avif/decoder.rs:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 221
    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: Result::as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:235,1
    - Dst: reshape_plane
      Src: /src/image/src/codecs/avif/decoder.rs:239,1
    - Dst: Ok::<_, ImageError>
      Src: /src/image/src/codecs/avif/decoder.rs:240,1
    - Dst: usize::is_multiple_of
      Src: /src/image/src/codecs/avif/decoder.rs:243,1
    - Dst: bytemuck::try_cast_slice
      Src: /src/image/src/codecs/avif/decoder.rs:244,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:245,1
    - Dst: std::borrow::Cow::Borrowed
      Src: /src/image/src/codecs/avif/decoder.rs:246,1
    - Dst: shape_y_plane
      Src: /src/image/src/codecs/avif/decoder.rs:250,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:251,1
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/avif/decoder.rs:252,1
    - Dst: shape_y_plane
      Src: /src/image/src/codecs/avif/decoder.rs:258,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:259,1
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/avif/decoder.rs:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 5
    argNames:
    - plane
    - stride
    - width
    - height
    - limits
    argTypes:
    - '&''data dav1d::Plane'
    - u32
    - u32
    - u32
    - '&mut Limits'
    constantsTouched: []
    func_position:
      end: 264
      start: 225
    functionDepth: 12
    functionLinenumber: 225
    functionLinenumberEnd: 264
    functionName: transmute_y_plane16
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::as_ref
    - Ok
    - Ok::<_, ImageError>
    - std::borrow::Cow::Borrowed
    - bytemuck::try_cast_slice
    - usize::is_multiple_of
    - std::borrow::Cow::Owned
    - shape_y_plane
    - reshape_plane
    linkageType: ''
    returnType: Result
    signature: 'fn transmute_y_plane16<''data>(plane: &''data dav1d::Plane,stride:
      u32,width: u32,height: u32,limits: &mut Limits,) -> Result<Plane16View<''data>,
      ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:275,1
    - Dst: u32::div_ceil
      Src: /src/image/src/codecs/avif/decoder.rs:282,1
    - Dst: u32::div_ceil
      Src: /src/image/src/codecs/avif/decoder.rs:287,1
    - Dst: reshape_plane
      Src: /src/image/src/codecs/avif/decoder.rs:291,1
    - Dst: Ok::<_, ImageError>
      Src: /src/image/src/codecs/avif/decoder.rs:299,1
    - Dst: bytemuck::try_cast_slice
      Src: /src/image/src/codecs/avif/decoder.rs:303,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:304,1
    - Dst: std::borrow::Cow::Borrowed
      Src: /src/image/src/codecs/avif/decoder.rs:305,1
    - Dst: shape_chroma_plane
      Src: /src/image/src/codecs/avif/decoder.rs:309,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:310,1
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/avif/decoder.rs:311,1
    - Dst: shape_chroma_plane
      Src: /src/image/src/codecs/avif/decoder.rs:317,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:318,1
    - Dst: std::borrow::Cow::Owned
      Src: /src/image/src/codecs/avif/decoder.rs:319,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 6
    argNames:
    - plane
    - pixel_layout
    - stride
    - width
    - height
    - limits
    argTypes:
    - '&''data dav1d::Plane'
    - PixelLayout
    - u32
    - u32
    - u32
    - '&mut Limits'
    constantsTouched: []
    func_position:
      end: 323
      start: 267
    functionDepth: 12
    functionLinenumber: 267
    functionLinenumberEnd: 323
    functionName: transmute_chroma_plane16
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - Result::as_ref
    - shape_chroma_plane
    - Ok
    - u32::div_ceil
    - Ok::<_, ImageError>
    - std::borrow::Cow::Borrowed
    - bytemuck::try_cast_slice
    - std::borrow::Cow::Owned
    - reshape_plane
    linkageType: ''
    returnType: Result
    signature: 'fn transmute_chroma_plane16<''data>(plane: &''data dav1d::Plane,pixel_layout:
      PixelLayout,stride: u32,width: u32,height: u32,limits: &mut Limits,) -> Result<Plane16View<''data>,
      ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:337,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:339,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:339,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:346,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:346,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:348,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/decoder.rs:348,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/decoder.rs:349,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:350,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/avif/decoder.rs:351,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/avif/decoder.rs:352,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:357,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:357,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:360,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:360,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:363,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:363,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:366,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:366,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:368,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:370,1
    - Dst: YuvMatrixStrategy::KrKb
      Src: /src/image/src/codecs/avif/decoder.rs:370,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:378,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/decoder.rs:378,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/decoder.rs:379,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:380,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/avif/decoder.rs:381,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/avif/decoder.rs:382,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:387,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/decoder.rs:387,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/decoder.rs:388,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:389,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/avif/decoder.rs:390,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/avif/decoder.rs:390,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:394,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/decoder.rs:395,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/decoder.rs:395,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:396,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/avif/decoder.rs:397,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/avif/decoder.rs:398,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:402,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/avif/decoder.rs:402,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/avif/decoder.rs:403,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:404,1
    - Dst: UnsupportedErrorKind::GenericFeature
      Src: /src/image/src/codecs/avif/decoder.rs:405,1
    - Dst: '&str::to_string'
      Src: /src/image/src/codecs/avif/decoder.rs:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 1
    argNames:
    - david_matrix
    argTypes:
    - dav1d::pixel::MatrixCoefficients
    constantsTouched: []
    func_position:
      end: 411
      start: 333
    functionDepth: 9
    functionLinenumber: 333
    functionLinenumberEnd: 411
    functionName: get_matrix
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - Ok
    - '&str::to_string'
    - ImageError::Unsupported
    - YuvMatrixStrategy::KrKb
    - into
    - UnsupportedError::from_format_and_kind
    - UnsupportedErrorKind::GenericFeature
    linkageType: ''
    returnType: Result
    signature: 'fn get_matrix(david_matrix: dav1d::pixel::MatrixCoefficients,) ->
      Result<YuvMatrixStrategy, ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - limits
    argTypes:
    - Limits
    constantsTouched: []
    func_position:
      end: 417
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 417
    functionName: AvifDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bit_depth
      Src: /src/image/src/codecs/avif/decoder.rs:420,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:426,1
    - Dst: DecoderPreparedImage::new
      Src: /src/image/src/codecs/avif/decoder.rs:426,1
    - Dst: width
      Src: /src/image/src/codecs/avif/decoder.rs:427,1
    - Dst: height
      Src: /src/image/src/codecs/avif/decoder.rs:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 431
      start: 419
    functionDepth: 2
    functionLinenumber: 419
    functionLinenumberEnd: 431
    functionName: AvifDecoder::prepare_image
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - bit_depth
    - width
    - height
    - DecoderPreparedImage::new
    linkageType: ''
    returnType: ImageResult
    signature: fn prepare_image(&mut self) -> ImageResult<DecoderPreparedImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:434,1
    - Dst: clone
      Src: /src/image/src/codecs/avif/decoder.rs:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 433
    functionDepth: 2
    functionLinenumber: 433
    functionLinenumberEnd: 435
    functionName: AvifDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - Ok
    - clone
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AvifDecoder::prepare_image
      Src: /src/image/src/codecs/avif/decoder.rs:438,1
    - Dst: bit_depth
      Src: /src/image/src/codecs/avif/decoder.rs:441,1
    - Dst: dimensions
      Src: /src/image/src/codecs/avif/decoder.rs:447,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:450,1
    - Dst: ImageError::Limits
      Src: /src/image/src/codecs/avif/decoder.rs:450,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/codecs/avif/decoder.rs:450,1
    - Dst: color_range
      Src: /src/image/src/codecs/avif/decoder.rs:455,1
    - Dst: get_matrix
      Src: /src/image/src/codecs/avif/decoder.rs:460,1
    - Dst: matrix_coefficients
      Src: /src/image/src/codecs/avif/decoder.rs:460,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:464,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:466,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/decoder.rs:466,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:466,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:467,1
    - Dst: AvifDecoderError::YuvLayoutOnIdentityMatrix
      Src: /src/image/src/codecs/avif/decoder.rs:468,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:468,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:473,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:475,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/decoder.rs:475,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:475,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:476,1
    - Dst: AvifDecoderError::UnsupportedLayoutAndMatrix
      Src: /src/image/src/codecs/avif/decoder.rs:477,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:478,1
    - Dst: plane
      Src: /src/image/src/codecs/avif/decoder.rs:485,1
    - Dst: plane
      Src: /src/image/src/codecs/avif/decoder.rs:486,1
    - Dst: plane
      Src: /src/image/src/codecs/avif/decoder.rs:487,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:490,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:491,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:492,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:493,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:494,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:495,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:502,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:509,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:512,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:519,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:522,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:529,1
    - Dst: ImageResult::pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:535,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:536,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/decoder.rs:536,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:536,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:537,1
    - Dst: AvifDecoderError::AlphaPlaneFormat
      Src: /src/image/src/codecs/avif/decoder.rs:538,1
    - Dst: ImageResult::pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:538,1
    - Dst: ImageResult::stride
      Src: /src/image/src/codecs/avif/decoder.rs:542,1
    - Dst: ImageResult::plane
      Src: /src/image/src/codecs/avif/decoder.rs:543,1
    - Dst: Iterator::zip
      Src: /src/image/src/codecs/avif/decoder.rs:545,1
    - Dst: std::io::Result::chunks_exact_mut
      Src: /src/image/src/codecs/avif/decoder.rs:546,1
    - Dst: Result::as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:547,1
    - Dst: FlatSamples::chunks_exact
      Src: /src/image/src/codecs/avif/decoder.rs:547,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/codecs/avif/decoder.rs:549,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/decoder.rs:549,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/decoder.rs:549,1
    - Dst: bytemuck::try_cast_slice_mut
      Src: /src/image/src/codecs/avif/decoder.rs:556,1
    - Dst: AvifDecoder::process_16bit_picture
      Src: /src/image/src/codecs/avif/decoder.rs:558,1
    - Dst: AvifDecoder::process_16bit_picture
      Src: /src/image/src/codecs/avif/decoder.rs:562,1
    - Dst: as_chunks_mut::<2>
      Src: /src/image/src/codecs/avif/decoder.rs:563,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/decoder.rs:563,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/decoder.rs:564,1
    - Dst: iter
      Src: /src/image/src/codecs/avif/decoder.rs:564,1
    - Dst: to_ne_bytes
      Src: /src/image/src/codecs/avif/decoder.rs:565,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:570,1
    - Dst: Some
      Src: /src/image/src/codecs/avif/decoder.rs:571,1
    - Dst: DecodedImageAttributes::default
      Src: /src/image/src/codecs/avif/decoder.rs:572,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 205
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 574
      start: 437
    functionDepth: 10
    functionLinenumber: 437
    functionLinenumberEnd: 574
    functionName: AvifDecoder::read_image
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - std::io::Result::chunks_exact_mut
    - LimitError::from_kind
    - stride
    - as_chunks_mut::<4>
    - Some
    - into
    - bytemuck::try_cast_slice_mut
    - worker
    - Iterator::zip
    - color_range
    - pixel_layout
    - bit_depth
    - Result::as_ref
    - ImageError::Decoding
    - ImageResult::plane
    - FlatSamples::chunks_exact
    - iter
    - to_ne_bytes
    - AvifDecoder::process_16bit_picture
    - dimensions
    - as_ref
    - AvifDecoderError::AlphaPlaneFormat
    - ImageResult::pixel_layout
    - AvifDecoderError::UnsupportedLayoutAndMatrix
    - plane
    - matrix_coefficients
    - get_matrix
    - DecodedImageAttributes::default
    - as_chunks_mut::<2>
    - ImageError::Limits
    - Ok
    - iter_mut
    - zip
    - AvifDecoderError::YuvLayoutOnIdentityMatrix
    - AvifDecoder::prepare_image
    - DecodingError::new
    - ImageResult::stride
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(&mut self, buf: &mut [u8]) -> ImageResult<DecodedImageAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: plane
      Src: /src/image/src/codecs/avif/decoder.rs:584,1
    - Dst: width
      Src: /src/image/src/codecs/avif/decoder.rs:586,1
    - Dst: height
      Src: /src/image/src/codecs/avif/decoder.rs:586,1
    - Dst: bit_depth
      Src: /src/image/src/codecs/avif/decoder.rs:587,1
    - Dst: transmute_y_plane16
      Src: /src/image/src/codecs/avif/decoder.rs:594,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:596,1
    - Dst: plane
      Src: /src/image/src/codecs/avif/decoder.rs:602,1
    - Dst: plane
      Src: /src/image/src/codecs/avif/decoder.rs:603,1
    - Dst: Plane16View::default
      Src: /src/image/src/codecs/avif/decoder.rs:604,1
    - Dst: Plane16View::default
      Src: /src/image/src/codecs/avif/decoder.rs:605,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:607,1
    - Dst: transmute_chroma_plane16
      Src: /src/image/src/codecs/avif/decoder.rs:608,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:610,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:611,1
    - Dst: transmute_chroma_plane16
      Src: /src/image/src/codecs/avif/decoder.rs:616,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:618,1
    - Dst: stride
      Src: /src/image/src/codecs/avif/decoder.rs:619,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:627,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:629,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:631,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:639,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:669,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:672,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:696,1
    - Dst: pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:699,1
    - Dst: worker
      Src: /src/image/src/codecs/avif/decoder.rs:711,1
    - Dst: ImageResult::pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:717,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:718,1
    - Dst: ImageError::Decoding
      Src: /src/image/src/codecs/avif/decoder.rs:718,1
    - Dst: DecodingError::new
      Src: /src/image/src/codecs/avif/decoder.rs:718,1
    - Dst: into
      Src: /src/image/src/codecs/avif/decoder.rs:719,1
    - Dst: AvifDecoderError::AlphaPlaneFormat
      Src: /src/image/src/codecs/avif/decoder.rs:720,1
    - Dst: ImageResult::pixel_layout
      Src: /src/image/src/codecs/avif/decoder.rs:720,1
    - Dst: ImageResult::plane
      Src: /src/image/src/codecs/avif/decoder.rs:724,1
    - Dst: transmute_y_plane16
      Src: /src/image/src/codecs/avif/decoder.rs:725,1
    - Dst: ImageResult::stride
      Src: /src/image/src/codecs/avif/decoder.rs:727,1
    - Dst: Iterator::zip
      Src: /src/image/src/codecs/avif/decoder.rs:733,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/avif/decoder.rs:734,1
    - Dst: as_ref
      Src: /src/image/src/codecs/avif/decoder.rs:735,1
    - Dst: chunks_exact
      Src: /src/image/src/codecs/avif/decoder.rs:735,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/codecs/avif/decoder.rs:737,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/decoder.rs:737,1
    - Dst: zip
      Src: /src/image/src/codecs/avif/decoder.rs:737,1
    - Dst: iter_mut
      Src: /src/image/src/codecs/avif/decoder.rs:746,1
    - Dst: Ok
      Src: /src/image/src/codecs/avif/decoder.rs:750,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 195
    argCount: 3
    argNames:
    - target
    - yuv_range
    - matrix_strategy
    argTypes:
    - '&mut [u16]'
    - YuvIntensityRange
    - YuvMatrixStrategy
    constantsTouched: []
    func_position:
      end: 751
      start: 578
    functionDepth: 12
    functionLinenumber: 578
    functionLinenumberEnd: 751
    functionName: AvifDecoder::process_16bit_picture
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - chunks_exact
    - stride
    - as_chunks_mut::<4>
    - into
    - worker
    - Plane16View::default
    - height
    - Iterator::zip
    - pixel_layout
    - bit_depth
    - ImageError::Decoding
    - ImageResult::plane
    - chunks_exact_mut
    - as_ref
    - AvifDecoderError::AlphaPlaneFormat
    - ImageResult::pixel_layout
    - plane
    - transmute_chroma_plane16
    - Ok
    - iter_mut
    - transmute_y_plane16
    - zip
    - width
    - DecodingError::new
    - ImageResult::stride
    linkageType: ''
    returnType: ImageResult
    signature: 'fn process_16bit_picture(&mut 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:759,1
    - Dst: ImageResult::send_pending_data
      Src: /src/image/src/codecs/avif/decoder.rs:760,1
    - Dst: Err
      Src: /src/image/src/codecs/avif/decoder.rs:763,1
    - Dst: error_map
      Src: /src/image/src/codecs/avif/decoder.rs:763,1
    - Dst: Result::map_err
      Src: /src/image/src/codecs/avif/decoder.rs:765,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - '&mut dav1d::Decoder'
    constantsTouched: []
    func_position:
      end: 768
      start: 757
    functionDepth: 11
    functionLinenumber: 757
    functionLinenumberEnd: 768
    functionName: read_until_ready
    functionSourceFile: /src/image/src/codecs/avif/decoder.rs
    functionUses: 1
    functionsReached:
    - Err
    - ImageResult::send_pending_data
    - Result::map_err
    - error_map
    - ImageResult::get_picture
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_until_ready(decoder: &mut dav1d::Decoder) -> ImageResult<dav1d::Picture>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: qrshr::<PRECISION, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:32,1
    - Dst: qrshr::<PRECISION, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:33,1
    - Dst: qrshr::<PRECISION, BIT_DEPTH>
      Src: /src/image/src/codecs/avif/ycgco.rs:34,1
    - Dst: Result::as_
      Src: /src/image/src/codecs/avif/ycgco.rs:37,1
    - Dst: Result::as_
      Src: /src/image/src/codecs/avif/ycgco.rs:38,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:39,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:40,1
    - Dst: Result::as_
      Src: /src/image/src/codecs/avif/ycgco.rs:42,1
    - Dst: Result::as_
      Src: /src/image/src/codecs/avif/ycgco.rs:43,1
    - Dst: as_
      Src: /src/image/src/codecs/avif/ycgco.rs:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 58
    argCount: 5
    argNames:
    - dst
    - y_value
    - cg
    - co
    - scale
    argTypes:
    - '&mut [V; CHANNELS]'
    - i32
    - i32
    - i32
    - i32
    constantsTouched: []
    func_position:
      end: 48
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 48
    functionName: ycgco_execute_limited
    functionSourceFile: /src/image/src/codecs/avif/ycgco.rs
    functionUses: 0
    functionsReached:
    - as_
    - qrshr::<PRECISION, BIT_DEPTH>
    - Result::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:
    - as_
    - clamp
    - Result::as_
    linkageType: ''
    returnType: void
    signature: 'fn ycgco_execute_full<V: Copy + AsPrimitive<i32> + ''static + Sized,const
      PRECISION: i32,const CHANNELS: usize,const BIT_DEPTH: usize,>(dst: &mut [V;
      CHANNELS],y_value: i32,cg: i32,co: i32,) wherei32: AsPrimitive<V>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: div_ceil
      Src: /src/image/src/codecs/avif/ycgco.rs:115,1
    - Dst: 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: 5
    functionLinenumber: 93
    functionLinenumberEnd: 179
    functionName: process_halved_chroma_row_cgco
    functionSourceFile: /src/image/src/codecs/avif/ycgco.rs
    functionUses: 0
    functionsReached:
    - iter
    - try_into
    - ycgco_execute_limited::<V, PRECISION, CHANNELS, BIT_DEPTH>
    - as_chunks::<2>
    - iter_mut
    - into_remainder
    - div_ceil
    - zip
    - unwrap
    - rev
    - "into_remainder()\n            .as_chunks_mut::<CHANNELS>"
    - as_
    - chunks_exact_mut
    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: 12
    functionLinenumber: 189
    functionLinenumberEnd: 284
    functionName: ycgco444_to_rgbx_impl
    functionSourceFile: /src/image/src/codecs/avif/ycgco.rs
    functionUses: 0
    functionsReached:
    - iter
    - as_chunks_mut::<CHANNELS>
    - check_rgb_preconditions
    - chunks_exact
    - ycgco_execute_limited::<V, PRECISION, CHANNELS, BIT_DEPTH>
    - Ok
    - iter_mut
    - YuvChromaRange::get_yuv_range
    - zip
    - as_
    - ycgco_execute_full::<V, PRECISION, CHANNELS, BIT_DEPTH>
    - 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: ImageResult::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: 9
    functionLinenumber: 36
    functionLinenumberEnd: 66
    functionName: IcoFrame::with_encoded
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 0
    functionsReached:
    - Err
    - ImageResult::into
    - Ok
    - ParameterErrorKind::Generic
    - ParameterError::from_kind
    - ImageError::Parameter
    - contains
    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: 11
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: IcoFrame::as_png
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 1
    functionsReached:
    - PngEncoder::write_image
    - Ok
    - PngEncoder::new
    - Vec::new
    - Self::with_encoded
    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: 11
    functionLinenumber: 95
    functionLinenumberEnd: 124
    functionName: IcoEncoder::encode_images
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 1
    functionsReached:
    - write_direntry
    - len
    - Err
    - Ok
    - usize::from
    - write_icondir
    - write_all
    - ParameterErrorKind::Generic
    - ParameterError::from_kind
    - ImageError::Parameter
    - contains
    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: 12
    functionLinenumber: 135
    functionLinenumberEnd: 152
    functionName: IcoEncoder::write_image
    functionSourceFile: /src/image/src/codecs/ico/encoder.rs
    functionUses: 0
    functionsReached:
    - IcoEncoder::encode_images
    - IcoFrame::as_png
    - 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: 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:
    - Ok
    - write_u16::<LittleEndian>
    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:
    - bool::bits_per_pixel
    - Ok
    - write_u32::<LittleEndian>
    - Self::write_u8
    - write_u16::<LittleEndian>
    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:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 99
    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: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    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:151,1
    - Dst: read_entries
      Src: /src/image/src/codecs/ico/decoder.rs:152,1
    - Dst: best_entry
      Src: /src/image/src/codecs/ico/decoder.rs:153,1
    - Dst: Option::decoder
      Src: /src/image/src/codecs/ico/decoder.rs:154,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - r
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 161
      start: 150
    functionDepth: 9
    functionLinenumber: 150
    functionLinenumberEnd: 161
    functionName: IcoDecoder::new
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 2
    functionsReached:
    - best_entry
    - Ok
    - Option::decoder
    - Result::stream_position
    - read_entries
    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:166,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/ico/decoder.rs:168,1
    - Dst: try_into
      Src: /src/image/src/codecs/ico/decoder.rs:168,1
    - Dst: unwrap
      Src: /src/image/src/codecs/ico/decoder.rs:168,1
    - Dst: map
      Src: /src/image/src/codecs/ico/decoder.rs:169,1
    - Dst: read_entry
      Src: /src/image/src/codecs/ico/decoder.rs:169,1
    - Dst: collect
      Src: /src/image/src/codecs/ico/decoder.rs:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut R'
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 7
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: read_entries
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 1
    functionsReached:
    - try_into
    - Result::read_exact
    - map
    - read_entry
    - unwrap
    - collect
    - u16::from_le_bytes
    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:174,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/ico/decoder.rs:178,1
    - Dst: try_into
      Src: /src/image/src/codecs/ico/decoder.rs:178,1
    - Dst: unwrap
      Src: /src/image/src/codecs/ico/decoder.rs:178,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:180,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:180,1
    - Dst: u16::from_le_bytes
      Src: /src/image/src/codecs/ico/decoder.rs:184,1
    - Dst: try_into
      Src: /src/image/src/codecs/ico/decoder.rs:184,1
    - Dst: unwrap
      Src: /src/image/src/codecs/ico/decoder.rs:184,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:186,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:186,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:189,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/ico/decoder.rs:196,1
    - Dst: try_into
      Src: /src/image/src/codecs/ico/decoder.rs:196,1
    - Dst: unwrap
      Src: /src/image/src/codecs/ico/decoder.rs:196,1
    - Dst: u32::from_le_bytes
      Src: /src/image/src/codecs/ico/decoder.rs:197,1
    - Dst: try_into
      Src: /src/image/src/codecs/ico/decoder.rs:197,1
    - Dst: unwrap
      Src: /src/image/src/codecs/ico/decoder.rs:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 56
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&mut R'
    constantsTouched: []
    func_position:
      end: 199
      start: 172
    functionDepth: 9
    functionLinenumber: 172
    functionLinenumberEnd: 199
    functionName: read_entry
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 1
    functionsReached:
    - try_into
    - Result::read_exact
    - Err
    - u32::from_le_bytes
    - Ok
    - unwrap
    - into
    - u16::from_le_bytes
    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:208,1
    - Dst: rev
      Src: /src/image/src/codecs/ico/decoder.rs:208,1
    - Dst: max_by_key
      Src: /src/image/src/codecs/ico/decoder.rs:208,1
    - Dst: u32::from
      Src: /src/image/src/codecs/ico/decoder.rs:214,1
    - Dst: Option::real_width
      Src: /src/image/src/codecs/ico/decoder.rs:214,1
    - Dst: u32::from
      Src: /src/image/src/codecs/ico/decoder.rs:214,1
    - Dst: Option::real_height
      Src: /src/image/src/codecs/ico/decoder.rs:214,1
    - Dst: ok_or
      Src: /src/image/src/codecs/ico/decoder.rs:208,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - entries
    argTypes:
    - Vec<DirEntry>
    constantsTouched: []
    func_position:
      end: 218
      start: 207
    functionDepth: 9
    functionLinenumber: 207
    functionLinenumberEnd: 218
    functionName: best_entry
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 1
    functionsReached:
    - ImageResult::into_iter
    - Option::real_height
    - ok_or
    - rev
    - Option::real_width
    - into
    - max_by_key
    - u32::from
    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:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 221
    functionDepth: 3
    functionLinenumber: 221
    functionLinenumberEnd: 226
    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:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 233
    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:236,1
    - Dst: DirEntry::real_width
      Src: /src/image/src/codecs/ico/decoder.rs:236,1
    - Dst: u32::min
      Src: /src/image/src/codecs/ico/decoder.rs:236,1
    - Dst: u32::from
      Src: /src/image/src/codecs/ico/decoder.rs:237,1
    - Dst: DirEntry::real_height
      Src: /src/image/src/codecs/ico/decoder.rs:237,1
    - Dst: u32::min
      Src: /src/image/src/codecs/ico/decoder.rs:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: DirEntry::matches_dimensions
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - DirEntry::real_width
    - u32::from
    - u32::min
    - DirEntry::real_height
    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:241,1
    - Dst: u64::from
      Src: /src/image/src/codecs/ico/decoder.rs:241,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - r
    - reader_offset
    argTypes:
    - '&mut R'
    - u64
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 3
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: DirEntry::seek_to_start
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 2
    functionsReached:
    - Ok
    - u64::from
    - utils::seek_start_with_offset
    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:246,1
    - Dst: Result::read_exact
      Src: /src/image/src/codecs/ico/decoder.rs:250,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - r
    - reader_offset
    argTypes:
    - '&mut R'
    - u64
    constantsTouched: []
    func_position:
      end: 253
      start: 245
    functionDepth: 4
    functionLinenumber: 245
    functionLinenumberEnd: 253
    functionName: DirEntry::is_png
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Result::read_exact
    - 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:260,1
    - Dst: DirEntry::seek_to_start
      Src: /src/image/src/codecs/ico/decoder.rs:261,1
    - Dst: Some
      Src: /src/image/src/codecs/ico/decoder.rs:265,1
    - Dst: DirEntry::real_width
      Src: /src/image/src/codecs/ico/decoder.rs:265,1
    - Dst: u16::into
      Src: /src/image/src/codecs/ico/decoder.rs:265,1
    - Dst: Some
      Src: /src/image/src/codecs/ico/decoder.rs:266,1
    - Dst: DirEntry::real_height
      Src: /src/image/src/codecs/ico/decoder.rs:266,1
    - Dst: u16::into
      Src: /src/image/src/codecs/ico/decoder.rs:266,1
    - Dst: Some
      Src: /src/image/src/codecs/ico/decoder.rs:267,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:269,1
    - Dst: Png
      Src: /src/image/src/codecs/ico/decoder.rs:269,1
    - Dst: Box::new
      Src: /src/image/src/codecs/ico/decoder.rs:269,1
    - Dst: PngDecoder::with_limits
      Src: /src/image/src/codecs/ico/decoder.rs:269,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:271,1
    - Dst: Bmp
      Src: /src/image/src/codecs/ico/decoder.rs:271,1
    - Dst: BmpDecoder::new_with_ico_format
      Src: /src/image/src/codecs/ico/decoder.rs:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 2
    argNames:
    - r
    - reader_offset
    argTypes:
    - R
    - u64
    constantsTouched: []
    func_position:
      end: 273
      start: 255
    functionDepth: 9
    functionLinenumber: 255
    functionLinenumberEnd: 273
    functionName: DirEntry::decoder
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - Bmp
    - Png
    - DirEntry::is_png
    - Ok
    - PngDecoder::with_limits
    - Box::new
    - u16::into
    - Some
    - DirEntry::real_height
    - DirEntry::real_width
    - BmpDecoder::new_with_ico_format
    - DirEntry::seek_to_start
    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::format_attributes
      Src: /src/image/src/codecs/ico/decoder.rs:281,1
    - Dst: ImageResult::format_attributes
      Src: /src/image/src/codecs/ico/decoder.rs:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 284
    functionName: IcoDecoder::format_attributes
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::format_attributes
    linkageType: ''
    returnType: FormatAttributes
    signature: fn format_attributes(&self) -> FormatAttributes
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/ico/decoder.rs:288,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/ico/decoder.rs:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 286
    functionDepth: 2
    functionLinenumber: 286
    functionLinenumberEnd: 291
    functionName: IcoDecoder::prepare_image
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::prepare_image
    linkageType: ''
    returnType: ImageResult
    signature: fn prepare_image(&mut self) -> ImageResult<DecoderPreparedImage>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::animation_attributes
      Src: /src/image/src/codecs/ico/decoder.rs:295,1
    - Dst: ImageResult::animation_attributes
      Src: /src/image/src/codecs/ico/decoder.rs:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 298
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 298
    functionName: IcoDecoder::animation_attributes
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::animation_attributes
    linkageType: ''
    returnType: Option
    signature: fn animation_attributes(&mut self) -> Option<DecodedAnimationAttributes>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/codecs/ico/decoder.rs:303,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:304,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:304,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/ico/decoder.rs:307,1
    - Dst: dimensions
      Src: /src/image/src/codecs/ico/decoder.rs:309,1
    - Dst: matches_dimensions
      Src: /src/image/src/codecs/ico/decoder.rs:310,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:311,1
    - Dst: real_width
      Src: /src/image/src/codecs/ico/decoder.rs:314,1
    - Dst: real_height
      Src: /src/image/src/codecs/ico/decoder.rs:315,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:311,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:325,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:325,1
    - Dst: ImageResult::read_image
      Src: /src/image/src/codecs/ico/decoder.rs:328,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/ico/decoder.rs:331,1
    - Dst: dimensions
      Src: /src/image/src/codecs/ico/decoder.rs:332,1
    - Dst: matches_dimensions
      Src: /src/image/src/codecs/ico/decoder.rs:333,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:334,1
    - Dst: real_width
      Src: /src/image/src/codecs/ico/decoder.rs:337,1
    - Dst: real_height
      Src: /src/image/src/codecs/ico/decoder.rs:338,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:334,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:347,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/codecs/ico/decoder.rs:347,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/codecs/ico/decoder.rs:348,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:349,1
    - Dst: UnsupportedErrorKind::Color
      Src: /src/image/src/codecs/ico/decoder.rs:350,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:350,1
    - Dst: ImageResult::read_image_data
      Src: /src/image/src/codecs/ico/decoder.rs:355,1
    - Dst: ImageResult::reader
      Src: /src/image/src/codecs/ico/decoder.rs:357,1
    - Dst: Result::stream_position
      Src: /src/image/src/codecs/ico/decoder.rs:358,1
    - Dst: u64::from
      Src: /src/image/src/codecs/ico/decoder.rs:360,1
    - Dst: u64::from
      Src: /src/image/src/codecs/ico/decoder.rs:361,1
    - Dst: u32::div_ceil
      Src: /src/image/src/codecs/ico/decoder.rs:363,1
    - Dst: u64::from
      Src: /src/image/src/codecs/ico/decoder.rs:364,1
    - Dst: u64::from
      Src: /src/image/src/codecs/ico/decoder.rs:364,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:375,1
    - Dst: DecodedImageAttributes::default
      Src: /src/image/src/codecs/ico/decoder.rs:375,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/codecs/ico/decoder.rs:378,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/codecs/ico/decoder.rs:379,1
    - Dst: u32::len
      Src: /src/image/src/codecs/ico/decoder.rs:381,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:382,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:382,1
    - Dst: u32::rev
      Src: /src/image/src/codecs/ico/decoder.rs:387,1
    - Dst: Result::read_u8
      Src: /src/image/src/codecs/ico/decoder.rs:392,1
    - Dst: rev
      Src: /src/image/src/codecs/ico/decoder.rs:393,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:408,1
    - Dst: DecodedImageAttributes::default
      Src: /src/image/src/codecs/ico/decoder.rs:408,1
    - Dst: Ok
      Src: /src/image/src/codecs/ico/decoder.rs:411,1
    - Dst: DecodedImageAttributes::default
      Src: /src/image/src/codecs/ico/decoder.rs:411,1
    - Dst: Err
      Src: /src/image/src/codecs/ico/decoder.rs:413,1
    - Dst: into
      Src: /src/image/src/codecs/ico/decoder.rs:413,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 192
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 417
      start: 300
    functionDepth: 12
    functionLinenumber: 300
    functionLinenumberEnd: 417
    functionName: IcoDecoder::read_image
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - real_height
    - Err
    - UnsupportedErrorKind::Color
    - as_chunks_mut::<4>
    - u64::from
    - ImageResult::prepare_image
    - into
    - matches_dimensions
    - ImageResult::reader
    - len
    - u32::div_ceil
    - ImageError::Unsupported
    - real_width
    - rev
    - u32::len
    - ImageResult::read_image_data
    - dimensions
    - UnsupportedError::from_format_and_kind
    - chunks_exact_mut
    - DecodedImageAttributes::default
    - ImageResult::read_image
    - Ok
    - u32::rev
    - Result::stream_position
    - Result::read_u8
    linkageType: ''
    returnType: ImageResult
    signature: 'fn read_image(&mut self, buf: &mut [u8]) -> ImageResult<DecodedImageAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::icc_profile
      Src: /src/image/src/codecs/ico/decoder.rs:421,1
    - Dst: ImageResult::icc_profile
      Src: /src/image/src/codecs/ico/decoder.rs:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 419
    functionDepth: 13
    functionLinenumber: 419
    functionLinenumberEnd: 424
    functionName: IcoDecoder::icc_profile
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::icc_profile
    linkageType: ''
    returnType: ImageResult
    signature: fn icc_profile(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::exif_metadata
      Src: /src/image/src/codecs/ico/decoder.rs:428,1
    - Dst: ImageResult::exif_metadata
      Src: /src/image/src/codecs/ico/decoder.rs:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 431
      start: 426
    functionDepth: 5
    functionLinenumber: 426
    functionLinenumberEnd: 431
    functionName: IcoDecoder::exif_metadata
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::exif_metadata
    linkageType: ''
    returnType: ImageResult
    signature: fn exif_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::xmp_metadata
      Src: /src/image/src/codecs/ico/decoder.rs:435,1
    - Dst: ImageResult::xmp_metadata
      Src: /src/image/src/codecs/ico/decoder.rs:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 438
      start: 433
    functionDepth: 5
    functionLinenumber: 433
    functionLinenumberEnd: 438
    functionName: IcoDecoder::xmp_metadata
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::xmp_metadata
    linkageType: ''
    returnType: ImageResult
    signature: fn xmp_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::iptc_metadata
      Src: /src/image/src/codecs/ico/decoder.rs:442,1
    - Dst: ImageResult::iptc_metadata
      Src: /src/image/src/codecs/ico/decoder.rs:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 445
      start: 440
    functionDepth: 5
    functionLinenumber: 440
    functionLinenumberEnd: 445
    functionName: IcoDecoder::iptc_metadata
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::iptc_metadata
    linkageType: ''
    returnType: ImageResult
    signature: fn iptc_metadata(&mut self) -> ImageResult<Option<Vec<u8>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::set_limits
      Src: /src/image/src/codecs/ico/decoder.rs:449,1
    - Dst: ImageResult::set_limits
      Src: /src/image/src/codecs/ico/decoder.rs:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - limits
    argTypes:
    - crate::Limits
    constantsTouched: []
    func_position:
      end: 452
      start: 447
    functionDepth: 3
    functionLinenumber: 447
    functionLinenumberEnd: 452
    functionName: IcoDecoder::set_limits
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::set_limits
    linkageType: ''
    returnType: ImageResult
    signature: 'fn set_limits(&mut self, limits: crate::Limits) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::more_images
      Src: /src/image/src/codecs/ico/decoder.rs:458,1
    - Dst: ImageResult::more_images
      Src: /src/image/src/codecs/ico/decoder.rs:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 461
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 461
    functionName: IcoDecoder::more_images
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::more_images
    linkageType: ''
    returnType: crate::io::SequenceControl
    signature: fn more_images(&self) -> crate::io::SequenceControl
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::finish
      Src: /src/image/src/codecs/ico/decoder.rs:465,1
    - Dst: ImageResult::finish
      Src: /src/image/src/codecs/ico/decoder.rs:466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 468
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 468
    functionName: IcoDecoder::finish
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - ImageResult::finish
    linkageType: ''
    returnType: ImageResult
    signature: fn finish(&mut self) -> ImageResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: IcoDecoder::new
      Src: /src/image/src/codecs/ico/decoder.rs:529,1
    - Dst: std::io::Cursor::new
      Src: /src/image/src/codecs/ico/decoder.rs:529,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/ico/decoder.rs:529,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/codecs/ico/decoder.rs:530,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/codecs/ico/decoder.rs:530,1
    - Dst: total_bytes
      Src: /src/image/src/codecs/ico/decoder.rs:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 533
      start: 478
    functionDepth: 10
    functionLinenumber: 478
    functionLinenumberEnd: 533
    functionName: test::bmp_16_with_missing_alpha_channel
    functionSourceFile: /src/image/src/codecs/ico/decoder.rs
    functionUses: 0
    functionsReached:
    - IcoDecoder::new
    - std::io::Cursor::new
    - ImageResult::unwrap
    - ImageResult::prepare_image
    - total_bytes
    linkageType: ''
    returnType: void
    signature: fn bmp_16_with_missing_alpha_channel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sin
      Src: /src/image/src/imageops/sample.rs:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - t
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 133
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 133
    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:137,1
    - Dst: sinc
      Src: /src/image/src/imageops/sample.rs:138,1
    - Dst: sinc
      Src: /src/image/src/imageops/sample.rs:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - x
    - t
    argTypes:
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 142
    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:147,1
    - Dst: powi
      Src: /src/image/src/imageops/sample.rs:150,1
    - Dst: powi
      Src: /src/image/src/imageops/sample.rs:151,1
    - Dst: powi
      Src: /src/image/src/imageops/sample.rs:154,1
    - Dst: powi
      Src: /src/image/src/imageops/sample.rs:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 56
    argCount: 3
    argNames:
    - x
    - b
    - c
    argTypes:
    - f32
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 163
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 163
    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:168,1
    - Dst: recip
      Src: /src/image/src/imageops/sample.rs:168,1
    - Dst: powi
      Src: /src/image/src/imageops/sample.rs:168,1
    - Dst: Result::powi
      Src: /src/image/src/imageops/sample.rs:168,1
    - Dst: exp
      Src: /src/image/src/imageops/sample.rs:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 2
    argNames:
    - x
    - r
    argTypes:
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: gaussian
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - sqrt
    - exp
    - recip
    - powi
    - 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:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 174
    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:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 180
    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:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 186
    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:191,1
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 196
    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: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    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:224,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/sample.rs:232,1
    - Dst: ImageResult::copy_color_space_from
      Src: /src/image/src/imageops/sample.rs:233,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:240,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:246,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:246,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:246,1
    - Dst: Vec::new
      Src: /src/image/src/imageops/sample.rs:249,1
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/imageops/sample.rs:251,1
    - Dst: Result::expect
      Src: /src/image/src/imageops/sample.rs:251,1
    - Dst: utils::vec_try_with_capacity
      Src: /src/image/src/imageops/sample.rs:253,1
    - Dst: Result::expect
      Src: /src/image/src/imageops/sample.rs:253,1
    - Dst: Vec::subpixels
      Src: /src/image/src/imageops/sample.rs:256,1
    - Dst: ImageResult::subpixels_mut
      Src: /src/image/src/imageops/sample.rs:261,1
    - Dst: saturating_add
      Src: /src/image/src/imageops/sample.rs:265,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:265,1
    - Dst: Self::clear
      Src: /src/image/src/imageops/sample.rs:268,1
    - Dst: clear
      Src: /src/image/src/imageops/sample.rs:269,1
    - Dst: clear
      Src: /src/image/src/imageops/sample.rs:270,1
    - Dst: push
      Src: /src/image/src/imageops/sample.rs:271,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:284,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:286,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:287,1
    - Dst: push
      Src: /src/image/src/imageops/sample.rs:293,1
    - Dst: Self::len
      Src: /src/image/src/imageops/sample.rs:294,1
    - Dst: Self::push
      Src: /src/image/src/imageops/sample.rs:298,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/sample.rs:301,1
    - Dst: push
      Src: /src/image/src/imageops/sample.rs:304,1
    - Dst: Self::len
      Src: /src/image/src/imageops/sample.rs:304,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/sample.rs:314,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:314,1
    - Dst: u32::iter
      Src: /src/image/src/imageops/sample.rs:320,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:320,1
    - Dst: std::io::Result::iter_mut
      Src: /src/image/src/imageops/sample.rs:322,1
    - Dst: zip
      Src: /src/image/src/imageops/sample.rs:322,1
    - Dst: std::io::Result::iter
      Src: /src/image/src/imageops/sample.rs:328,1
    - Dst: zip
      Src: /src/image/src/imageops/sample.rs:328,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/sample.rs:328,1
    - Dst: S::clamp_nearest_from
      Src: /src/image/src/imageops/sample.rs:329,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 199
    argCount: 3
    argNames:
    - image
    - new_width
    - filter
    argTypes:
    - '&Rgba32FImage'
    - u32
    - '&mut Filter'
    constantsTouched: []
    func_position:
      end: 338
      start: 215
    functionDepth: 10
    functionLinenumber: 215
    functionLinenumberEnd: 338
    functionName: horizontal_sample
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - S::clamp_nearest_from
    - utils::clamp
    - clear
    - std::io::Result::iter_mut
    - ImageBuffer::new
    - min
    - Self::push
    - Vec::new
    - Vec::dimensions
    - utils::vec_try_with_capacity
    - chunks_exact_mut
    - Self::len
    - u32::iter
    - Vec::subpixels
    - ImageResult::copy_color_space_from
    - saturating_add
    - std::io::Result::iter
    - ceil
    - ImageResult::subpixels_mut
    - enumerate
    - Result::expect
    - iter_mut
    - push
    - max
    - zip
    - Self::clear
    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:346,1
    - Dst: all
      Src: /src/image/src/imageops/sample.rs:346,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:346,1
    - Dst: Option::dimensions
      Src: /src/image/src/imageops/sample.rs:350,1
    - Dst: interpolate_bilinear
      Src: /src/image/src/imageops/sample.rs:357,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:359,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:359,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:360,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 45
    argCount: 3
    argNames:
    - img
    - u
    - v
    argTypes:
    - '&impl GenericImageView<Pixel = P>'
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 362
      start: 341
    functionDepth: 9
    functionLinenumber: 341
    functionLinenumberEnd: 362
    functionName: sample_bilinear
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - iter
    - Option::dimensions
    - min
    - interpolate_bilinear
    - max
    - all
    - contains
    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:370,1
    - Dst: all
      Src: /src/image/src/imageops/sample.rs:370,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:370,1
    - Dst: Option::dimensions
      Src: /src/image/src/imageops/sample.rs:374,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:376,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:376,1
    - Dst: Self::saturating_sub
      Src: /src/image/src/imageops/sample.rs:376,1
    - Dst: max
      Src: /src/image/src/imageops/sample.rs:379,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:379,1
    - Dst: ImageResult::saturating_sub
      Src: /src/image/src/imageops/sample.rs:379,1
    - Dst: interpolate_nearest
      Src: /src/image/src/imageops/sample.rs:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 3
    argNames:
    - img
    - u
    - v
    argTypes:
    - '&impl GenericImageView<Pixel = P>'
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 381
      start: 365
    functionDepth: 9
    functionLinenumber: 365
    functionLinenumberEnd: 381
    functionName: sample_nearest
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - iter
    - Self::saturating_sub
    - ImageResult::saturating_sub
    - Option::dimensions
    - min
    - max
    - all
    - interpolate_nearest
    - contains
    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:394,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:398,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:401,1
    - Dst: Some
      Src: /src/image/src/imageops/sample.rs:405,1
    - Dst: Option::get_pixel
      Src: /src/image/src/imageops/sample.rs:405,1
    - Dst: round
      Src: /src/image/src/imageops/sample.rs:405,1
    - Dst: Option::round
      Src: /src/image/src/imageops/sample.rs:405,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 3
    argNames:
    - img
    - x
    - y
    argTypes:
    - '&impl GenericImageView<Pixel = P>'
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 406
      start: 389
    functionDepth: 7
    functionLinenumber: 389
    functionLinenumberEnd: 406
    functionName: interpolate_nearest
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - Option::dimensions
    - Option::get_pixel
    - Option::round
    - Some
    - round
    - contains
    linkageType: ''
    returnType: Option
    signature: 'pub fn interpolate_nearest<P: Pixel>(img: &impl GenericImageView<Pixel
      = P>,x: f32,y: f32,) -> Option<P>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::dimensions
      Src: /src/image/src/imageops/sample.rs:417,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:421,1
    - Dst: contains
      Src: /src/image/src/imageops/sample.rs:424,1
    - Dst: floor
      Src: /src/image/src/imageops/sample.rs:429,1
    - Dst: Option::floor
      Src: /src/image/src/imageops/sample.rs:430,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:431,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:432,1
    - Dst: Option::get_pixel
      Src: /src/image/src/imageops/sample.rs:445,1
    - Dst: Result::channels
      Src: /src/image/src/imageops/sample.rs:446,1
    - Dst: usize::iter
      Src: /src/image/src/imageops/sample.rs:446,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:446,1
    - Dst: io::Result::to_f32
      Src: /src/image/src/imageops/sample.rs:447,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/sample.rs:447,1
    - Dst: compute
      Src: /src/image/src/imageops/sample.rs:453,1
    - Dst: compute
      Src: /src/image/src/imageops/sample.rs:454,1
    - Dst: compute
      Src: /src/image/src/imageops/sample.rs:455,1
    - Dst: compute
      Src: /src/image/src/imageops/sample.rs:456,1
    - Dst: ImageResult::channels_mut
      Src: /src/image/src/imageops/sample.rs:473,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/sample.rs:473,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:473,1
    - Dst: <P::Subpixel as NearestFrom<f32>>::nearest_from
      Src: /src/image/src/imageops/sample.rs:478,1
    - Dst: Some
      Src: /src/image/src/imageops/sample.rs:481,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 127
    argCount: 3
    argNames:
    - img
    - x
    - y
    argTypes:
    - '&impl GenericImageView<Pixel = P>'
    - f32
    - f32
    constantsTouched: []
    func_position:
      end: 482
      start: 409
    functionDepth: 5
    functionLinenumber: 409
    functionLinenumberEnd: 482
    functionName: interpolate_bilinear
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - usize::iter
    - enumerate
    - Option::dimensions
    - iter_mut
    - io::Result::to_f32
    - min
    - floor
    - Option::get_pixel
    - f32::unwrap
    - <P::Subpixel as NearestFrom<f32>>::nearest_from
    - Option::floor
    - Some
    - Result::channels
    - ImageResult::channels_mut
    - compute
    - contains
    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:498,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/sample.rs:508,1
    - Dst: ImageResult::copy_color_space_from
      Src: /src/image/src/imageops/sample.rs:509,1
    - Dst: Vec::buffer_with_dimensions
      Src: /src/image/src/imageops/sample.rs:509,1
    - Dst: Vec::new
      Src: /src/image/src/imageops/sample.rs:510,1
    - Dst: floor
      Src: /src/image/src/imageops/sample.rs:521,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:522,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:522,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:524,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:525,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:527,1
    - Dst: <i64 as From<_>>::from
      Src: /src/image/src/imageops/sample.rs:528,1
    - Dst: u32::clear
      Src: /src/image/src/imageops/sample.rs:533,1
    - Dst: u32::push
      Src: /src/image/src/imageops/sample.rs:537,1
    - Dst: u32::iter_mut
      Src: /src/image/src/imageops/sample.rs:540,1
    - Dst: crate::Rgba
      Src: /src/image/src/imageops/sample.rs:545,1
    - Dst: u32::iter
      Src: /src/image/src/imageops/sample.rs:547,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:547,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:548,1
    - Dst: channels_mut
      Src: /src/image/src/imageops/sample.rs:550,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/sample.rs:550,1
    - Dst: zip
      Src: /src/image/src/imageops/sample.rs:550,1
    - Dst: Result::channels
      Src: /src/image/src/imageops/sample.rs:550,1
    - Dst: <f32 as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:551,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:551,1
    - Dst: ImageResult::put_pixel
      Src: /src/image/src/imageops/sample.rs:555,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 102
    argCount: 3
    argNames:
    - image
    - new_height
    - filter
    argTypes:
    - '&I'
    - u32
    - '&mut Filter'
    constantsTouched: []
    func_position:
      end: 560
      start: 492
    functionDepth: 5
    functionLinenumber: 492
    functionLinenumberEnd: 560
    functionName: vertical_sample
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - <i64 as From<_>>::from
    - u32::clear
    - Self::unwrap
    - utils::clamp
    - Vec::buffer_with_dimensions
    - <f32 as NumCast>::from
    - ImageBuffer::new
    - Vec::new
    - Vec::get_pixel
    - Vec::dimensions
    - u32::push
    - crate::Rgba
    - u32::iter
    - ImageResult::copy_color_space_from
    - channels_mut
    - ceil
    - enumerate
    - iter_mut
    - floor
    - zip
    - u32::iter_mut
    - Result::channels
    - ImageResult::put_pixel
    linkageType: ''
    returnType: Rgba32FImage
    signature: 'fn vertical_sample<I, P, S>(image: &I, new_height: u32, filter: &mut
      Filter) -> Rgba32FImagewhereI: GenericImageView<Pixel = P>,P: Pixel<Subpixel
      = S>,S: Primitive,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ThumbnailSum
      Src: /src/image/src/imageops/sample.rs:567,1
    - Dst: S::Larger::zero
      Src: /src/image/src/imageops/sample.rs:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 568
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 568
    functionName: ThumbnailSum::zeroed
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 3
    functionsReached:
    - S::Larger::zero
    - ThumbnailSum
    linkageType: ''
    returnType: Self
    signature: fn zeroed() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: <S::Larger as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:571,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - S
    constantsTouched: []
    func_position:
      end: 572
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 572
    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:575,1
    - Dst: zip
      Src: /src/image/src/imageops/sample.rs:575,1
    - Dst: u8::channels
      Src: /src/image/src/imageops/sample.rs:575,1
    - Dst: Self::sample_val
      Src: /src/image/src/imageops/sample.rs:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - pixel
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 578
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 578
    functionName: ThumbnailSum::add_pixel
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - zip
    - iter_mut
    - u8::channels
    - Self::sample_val
    linkageType: ''
    returnType: void
    signature: 'fn add_pixel<P: Pixel<Subpixel = S>>(&mut self, pixel: P)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/sample.rs:602,1
    - Dst: Vec::buffer_with_dimensions
      Src: /src/image/src/imageops/sample.rs:603,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:616,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:616,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:617,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:617,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:623,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:623,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:624,1
    - Dst: ceil
      Src: /src/image/src/imageops/sample.rs:624,1
    - Dst: thumbnail_sample_block
      Src: /src/image/src/imageops/sample.rs:627,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:637,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:637,1
    - Dst: thumbnail_sample_fraction_horizontal
      Src: /src/image/src/imageops/sample.rs:638,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:654,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:654,1
    - Dst: thumbnail_sample_fraction_vertical
      Src: /src/image/src/imageops/sample.rs:655,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:658,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:658,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:659,1
    - Dst: fract
      Src: /src/image/src/imageops/sample.rs:659,1
    - Dst: thumbnail_sample_fraction_both
      Src: /src/image/src/imageops/sample.rs:661,1
    - Dst: ImageResult::put_pixel
      Src: /src/image/src/imageops/sample.rs:670,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 97
    argCount: 3
    argNames:
    - image
    - new_width
    - new_height
    argTypes:
    - '&I'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 675
      start: 593
    functionDepth: 8
    functionLinenumber: 593
    functionLinenumberEnd: 675
    functionName: thumbnail
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 5
    functionsReached:
    - ceil
    - thumbnail_sample_fraction_horizontal
    - thumbnail_sample_fraction_vertical
    - thumbnail_sample_block
    - Vec::buffer_with_dimensions
    - thumbnail_sample_fraction_both
    - utils::clamp
    - fract
    - ImageResult::put_pixel
    - Vec::dimensions
    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:684,1
    - Dst: step_by
      Src: /src/image/src/imageops/sample.rs:701,1
    - Dst: step_by
      Src: /src/image/src/imageops/sample.rs:702,1
    - Dst: thumbnail_sample_block
      Src: /src/image/src/imageops/sample.rs:703,1
    - Dst: saturating_add
      Src: /src/image/src/imageops/sample.rs:706,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:706,1
    - Dst: Option::saturating_add
      Src: /src/image/src/imageops/sample.rs:708,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:708,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:710,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:719,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:720,1
    - Dst: <S::Larger as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:727,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:727,1
    - Dst: is_integer::<S::Larger>
      Src: /src/image/src/imageops/sample.rs:731,1
    - Dst: <S::Larger as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:732,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:732,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:732,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:732,1
    - Dst: S::Larger::zero
      Src: /src/image/src/imageops/sample.rs:734,1
    - Dst: map
      Src: /src/image/src/imageops/sample.rs:737,1
    - Dst: S::clamp_from
      Src: /src/image/src/imageops/sample.rs:737,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:738,1
    - Dst: into
      Src: /src/image/src/imageops/sample.rs:738,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/imageops/sample.rs:739,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 92
    argCount: 5
    argNames:
    - image
    - left
    - right
    - bottom
    - top
    argTypes:
    - '&I'
    - u32
    - u32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 740
      start: 678
    functionDepth: 7
    functionLinenumber: 678
    functionLinenumberEnd: 740
    functionName: thumbnail_sample_block
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    functionsReached:
    - is_integer::<S::Larger>
    - S::Larger::zero
    - ThumbnailSum::zeroed
    - <P as Pixel>::from_slice
    - Option::saturating_add
    - map
    - S::clamp_from
    - Vec::get_pixel
    - thumbnail_sample_block
    - NumCast::from
    - min
    - <S::Larger as NumCast>::from
    - step_by
    - Self::add_pixel
    - Self::unwrap
    - into
    - saturating_add
    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:757,1
    - Dst: ThumbnailSum::zeroed
      Src: /src/image/src/imageops/sample.rs:758,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:760,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:761,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:763,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:764,1
    - Dst: S::nearest_from
      Src: /src/image/src/imageops/sample.rs:772,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:772,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:772,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:772,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:772,1
    - Dst: mix_left_and_right
      Src: /src/image/src/imageops/sample.rs:779,1
    - Dst: mix_left_and_right
      Src: /src/image/src/imageops/sample.rs:780,1
    - Dst: mix_left_and_right
      Src: /src/image/src/imageops/sample.rs:781,1
    - Dst: mix_left_and_right
      Src: /src/image/src/imageops/sample.rs:782,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:785,1
    - Dst: into
      Src: /src/image/src/imageops/sample.rs:785,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/imageops/sample.rs:786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 66
    argCount: 5
    argNames:
    - image
    - left
    - fraction_horizontal
    - bottom
    - top
    argTypes:
    - '&I'
    - u32
    - f32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 787
      start: 743
    functionDepth: 9
    functionLinenumber: 743
    functionLinenumberEnd: 787
    functionName: thumbnail_sample_fraction_horizontal
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - ThumbnailSum::zeroed
    - <P as Pixel>::from_slice
    - to_f32
    - min
    - unwrap
    - Self::add_pixel
    - into
    - mix_left_and_right
    - S::nearest_from
    - Vec::get_pixel
    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:804,1
    - Dst: ThumbnailSum::zeroed
      Src: /src/image/src/imageops/sample.rs:805,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:807,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:808,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:810,1
    - Dst: Self::add_pixel
      Src: /src/image/src/imageops/sample.rs:811,1
    - Dst: S::nearest_from
      Src: /src/image/src/imageops/sample.rs:819,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:819,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:819,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:819,1
    - Dst: unwrap
      Src: /src/image/src/imageops/sample.rs:819,1
    - Dst: mix_bot_and_top
      Src: /src/image/src/imageops/sample.rs:826,1
    - Dst: mix_bot_and_top
      Src: /src/image/src/imageops/sample.rs:827,1
    - Dst: mix_bot_and_top
      Src: /src/image/src/imageops/sample.rs:828,1
    - Dst: mix_bot_and_top
      Src: /src/image/src/imageops/sample.rs:829,1
    - Dst: min
      Src: /src/image/src/imageops/sample.rs:832,1
    - Dst: into
      Src: /src/image/src/imageops/sample.rs:832,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/imageops/sample.rs:833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 66
    argCount: 5
    argNames:
    - image
    - left
    - right
    - bottom
    - fraction_vertical
    argTypes:
    - '&I'
    - u32
    - u32
    - u32
    - f32
    constantsTouched: []
    func_position:
      end: 834
      start: 790
    functionDepth: 9
    functionLinenumber: 790
    functionLinenumberEnd: 834
    functionName: thumbnail_sample_fraction_vertical
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - ThumbnailSum::zeroed
    - <P as Pixel>::from_slice
    - mix_bot_and_top
    - to_f32
    - min
    - unwrap
    - Self::add_pixel
    - into
    - S::nearest_from
    - Vec::get_pixel
    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:849,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:850,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:851,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:852,1
    - Dst: S::nearest_from
      Src: /src/image/src/imageops/sample.rs:863,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:864,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/sample.rs:864,1
    - Dst: Result::to_f32
      Src: /src/image/src/imageops/sample.rs:865,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/sample.rs:865,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:866,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/sample.rs:866,1
    - Dst: to_f32
      Src: /src/image/src/imageops/sample.rs:867,1
    - Dst: f32::unwrap
      Src: /src/image/src/imageops/sample.rs:867,1
    - Dst: Self::Pixel::channels_mut
      Src: /src/image/src/imageops/sample.rs:874,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/sample.rs:874,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:874,1
    - Dst: mix
      Src: /src/image/src/imageops/sample.rs:875,1
    - Dst: Self::Pixel::channels
      Src: /src/image/src/imageops/sample.rs:876,1
    - Dst: Self::Pixel::channels
      Src: /src/image/src/imageops/sample.rs:877,1
    - Dst: Self::Pixel::channels
      Src: /src/image/src/imageops/sample.rs:878,1
    - Dst: Self::Pixel::channels
      Src: /src/image/src/imageops/sample.rs:879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 73
    argCount: 5
    argNames:
    - image
    - left
    - fraction_vertical
    - bottom
    - fraction_horizontal
    argTypes:
    - '&I'
    - u32
    - f32
    - u32
    - f32
    constantsTouched: []
    func_position:
      end: 884
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 884
    functionName: thumbnail_sample_fraction_both
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - enumerate
    - to_f32
    - iter_mut
    - f32::unwrap
    - Self::Pixel::channels
    - mix
    - S::nearest_from
    - Vec::get_pixel
    - Result::to_f32
    - Self::Pixel::channels_mut
    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:914,1
    - Dst: Vec::buffer_like
      Src: /src/image/src/imageops/sample.rs:915,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:918,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:918,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/sample.rs:920,1
    - Dst: sum
      Src: /src/image/src/imageops/sample.rs:920,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/sample.rs:932,1
    - Dst: zip
      Src: /src/image/src/imageops/sample.rs:932,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:932,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:936,1
    - Dst: std::io::Result::iter_mut
      Src: /src/image/src/imageops/sample.rs:938,1
    - Dst: zip
      Src: /src/image/src/imageops/sample.rs:938,1
    - Dst: Result::channels
      Src: /src/image/src/imageops/sample.rs:938,1
    - Dst: <f32 as NumCast>::from
      Src: /src/image/src/imageops/sample.rs:939,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:939,1
    - Dst: std::io::Result::map
      Src: /src/image/src/imageops/sample.rs:943,1
    - Dst: ImageResult::map
      Src: /src/image/src/imageops/sample.rs:943,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:945,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:945,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:945,1
    - Dst: Pixel::from_slice
      Src: /src/image/src/imageops/sample.rs:947,1
    - Dst: ImageResult::put_pixel
      Src: /src/image/src/imageops/sample.rs:949,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 89
    argCount: 2
    argNames:
    - image
    - kernel
    argTypes:
    - '&I'
    - '&[f32; 9]'
    constantsTouched: []
    func_position:
      end: 954
      start: 895
    functionDepth: 7
    functionLinenumber: 895
    functionLinenumberEnd: 954
    functionName: filter3x3
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - iter
    - Result::channels
    - Pixel::from_slice
    - sum
    - std::io::Result::map
    - NumCast::from
    - ImageResult::put_pixel
    - zip
    - ImageResult::map
    - Self::unwrap
    - Vec::buffer_like
    - utils::clamp
    - f32::iter
    - Vec::get_pixel
    - <f32 as NumCast>::from
    - Vec::dimensions
    - std::io::Result::iter_mut
    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:976,1
    - Dst: Vec::buffer_with_dimensions
      Src: /src/image/src/imageops/sample.rs:981,1
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/sample.rs:985,1
    - Dst: Vec::buffer_like
      Src: /src/image/src/imageops/sample.rs:986,1
    - Dst: ImageBuffer::copy_from
      Src: /src/image/src/imageops/sample.rs:987,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:987,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:993,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:997,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:1001,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:1005,1
    - Dst: Box::new
      Src: /src/image/src/imageops/sample.rs:1009,1
    - Dst: vertical_sample
      Src: /src/image/src/imageops/sample.rs:1015,1
    - Dst: horizontal_sample
      Src: /src/image/src/imageops/sample.rs:1016,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 4
    argNames:
    - image
    - nwidth
    - nheight
    - filter
    argTypes:
    - '&I'
    - u32
    - u32
    - FilterType
    constantsTouched: []
    func_position:
      end: 1017
      start: 968
    functionDepth: 13
    functionLinenumber: 968
    functionLinenumberEnd: 1017
    functionName: resize
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 15
    functionsReached:
    - ImageBuffer::copy_from
    - ImageResult::unwrap
    - Box::new
    - Vec::buffer_like
    - vertical_sample
    - Vec::buffer_with_dimensions
    - Vec::dimensions
    - 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:1036,1
    - Dst: GaussianBlurParameters::new_from_radius
      Src: /src/image/src/imageops/sample.rs:1036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - image
    - radius
    argTypes:
    - '&I'
    - f32
    constantsTouched: []
    func_position:
      end: 1037
      start: 1032
    functionDepth: 10
    functionLinenumber: 1032
    functionLinenumberEnd: 1037
    functionName: blur
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 11
    functionsReached:
    - GaussianBlurParameters::new_from_radius
    - gaussian_blur_indirect
    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:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - image
    - parameters
    argTypes:
    - '&I'
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1053
      start: 1048
    functionDepth: 1
    functionLinenumber: 1048
    functionLinenumberEnd: 1053
    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:1058,1
    - Dst: f32::iter_mut
      Src: /src/image/src/imageops/sample.rs:1061,1
    - Dst: enumerate
      Src: /src/image/src/imageops/sample.rs:1061,1
    - Dst: f32::exp
      Src: /src/image/src/imageops/sample.rs:1062,1
    - Dst: f32::powf
      Src: /src/image/src/imageops/sample.rs:1062,1
    - Dst: U8Weight::mul
      Src: /src/image/src/imageops/sample.rs:1070,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 2
    argNames:
    - width
    - sigma
    argTypes:
    - usize
    - f32
    constantsTouched: []
    func_position:
      end: 1075
      start: 1055
    functionDepth: 13
    functionLinenumber: 1055
    functionLinenumberEnd: 1075
    functionName: get_gaussian_kernel_1d
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    functionsReached:
    - f32::powf
    - enumerate
    - f32::sqrt
    - f32::exp
    - U8Weight::mul
    - f32::iter_mut
    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:1139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - radius
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1140
      start: 1130
    functionDepth: 9
    functionLinenumber: 1130
    functionLinenumberEnd: 1140
    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:1155,1
    - Dst: GaussianBlurParameters::sigma_from_kernel_size
      Src: /src/image/src/imageops/sample.rs:1157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - kernel_size
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1164
      start: 1146
    functionDepth: 8
    functionLinenumber: 1146
    functionLinenumberEnd: 1164
    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:1190,1
    - Dst: GaussianBlurParameters::round_to_nearest_odd
      Src: /src/image/src/imageops/sample.rs:1192,1
    - Dst: GaussianBlurParameters::sigma_from_kernel_size
      Src: /src/image/src/imageops/sample.rs:1194,1
    - Dst: GaussianBlurParameters::sigma_from_kernel_size
      Src: /src/image/src/imageops/sample.rs:1195,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: 1202
      start: 1170
    functionDepth: 8
    functionLinenumber: 1170
    functionLinenumberEnd: 1202
    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:1240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sigma
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1247
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1247
    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:1251,1
    - Dst: is_multiple_of
      Src: /src/image/src/imageops/sample.rs:1252,1
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:1258,1
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:1259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - x
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1267
      start: 1250
    functionDepth: 7
    functionLinenumber: 1250
    functionLinenumberEnd: 1267
    functionName: GaussianBlurParameters::round_to_nearest_odd
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    functionsReached:
    - is_multiple_of
    - abs
    - round
    linkageType: ''
    returnType: u32
    signature: 'fn round_to_nearest_odd(x: f32) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - kernel_size
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1275
      start: 1269
    functionDepth: 0
    functionLinenumber: 1269
    functionLinenumberEnd: 1275
    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:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - sigma
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1292
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1292
    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:1299,1
    - Dst: get_gaussian_kernel_1d
      Src: /src/image/src/imageops/sample.rs:1304,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:1310,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:1311,1
    - Dst: imageops::filter_1d::filter_2d_sep_plane
      Src: /src/image/src/imageops/sample.rs:1317,1
    - Dst: Option::subpixels
      Src: /src/image/src/imageops/sample.rs:1318,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1317,1
    - Dst: DynamicImage::ImageLuma8
      Src: /src/image/src/imageops/sample.rs:1325,1
    - Dst: GrayImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1326,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1326,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1326,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1326,1
    - Dst: filter_2d_sep_la
      Src: /src/image/src/imageops/sample.rs:1331,1
    - Dst: Option::subpixels
      Src: /src/image/src/imageops/sample.rs:1332,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1331,1
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/src/imageops/sample.rs:1339,1
    - Dst: GrayAlphaImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1340,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1340,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1340,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1340,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgb
      Src: /src/image/src/imageops/sample.rs:1345,1
    - Dst: Option::subpixels
      Src: /src/image/src/imageops/sample.rs:1346,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1345,1
    - Dst: DynamicImage::ImageRgb8
      Src: /src/image/src/imageops/sample.rs:1353,1
    - Dst: RgbImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1354,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1354,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1354,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1354,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgba
      Src: /src/image/src/imageops/sample.rs:1359,1
    - Dst: Option::subpixels
      Src: /src/image/src/imageops/sample.rs:1360,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1359,1
    - Dst: DynamicImage::ImageRgba8
      Src: /src/image/src/imageops/sample.rs:1367,1
    - Dst: RgbaImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1368,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1368,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1368,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1368,1
    - Dst: imageops::filter_1d::filter_2d_sep_plane_u16
      Src: /src/image/src/imageops/sample.rs:1373,1
    - Dst: Option::subpixels
      Src: /src/image/src/imageops/sample.rs:1374,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1373,1
    - Dst: DynamicImage::ImageLuma16
      Src: /src/image/src/imageops/sample.rs:1381,1
    - Dst: Gray16Image::from_raw
      Src: /src/image/src/imageops/sample.rs:1382,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1382,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1382,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1382,1
    - Dst: imageops::filter_1d::filter_2d_sep_la_u16
      Src: /src/image/src/imageops/sample.rs:1387,1
    - Dst: Option::subpixels
      Src: /src/image/src/imageops/sample.rs:1388,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1387,1
    - Dst: DynamicImage::ImageLumaA16
      Src: /src/image/src/imageops/sample.rs:1395,1
    - Dst: GrayAlpha16Image::from_raw
      Src: /src/image/src/imageops/sample.rs:1396,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1396,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1396,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1396,1
    - Dst: filter_2d_sep_rgb_u16
      Src: /src/image/src/imageops/sample.rs:1401,1
    - Dst: Option::subpixels
      Src: /src/image/src/imageops/sample.rs:1402,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1401,1
    - Dst: DynamicImage::ImageRgb16
      Src: /src/image/src/imageops/sample.rs:1409,1
    - Dst: Rgb16Image::from_raw
      Src: /src/image/src/imageops/sample.rs:1410,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1410,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1410,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1410,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgba_u16
      Src: /src/image/src/imageops/sample.rs:1415,1
    - Dst: Option::subpixels
      Src: /src/image/src/imageops/sample.rs:1416,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1415,1
    - Dst: DynamicImage::ImageRgba16
      Src: /src/image/src/imageops/sample.rs:1423,1
    - Dst: Rgba16Image::from_raw
      Src: /src/image/src/imageops/sample.rs:1424,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1424,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1424,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1424,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgb_f32
      Src: /src/image/src/imageops/sample.rs:1429,1
    - Dst: Option::subpixels
      Src: /src/image/src/imageops/sample.rs:1430,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1429,1
    - Dst: DynamicImage::ImageRgb32F
      Src: /src/image/src/imageops/sample.rs:1437,1
    - Dst: Rgb32FImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1438,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1438,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1438,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1438,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgba_f32
      Src: /src/image/src/imageops/sample.rs:1443,1
    - Dst: Option::subpixels
      Src: /src/image/src/imageops/sample.rs:1444,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1443,1
    - Dst: DynamicImage::ImageRgba32F
      Src: /src/image/src/imageops/sample.rs:1451,1
    - Dst: Rgba32FImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1452,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1452,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1452,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1452,1
    - Dst: set_color_space
      Src: /src/image/src/imageops/sample.rs:1458,1
    - Dst: Vec::color_space
      Src: /src/image/src/imageops/sample.rs:1458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 190
    argCount: 2
    argNames:
    - image
    - parameters
    argTypes:
    - '&DynamicImage'
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1460
      start: 1295
    functionDepth: 14
    functionLinenumber: 1295
    functionLinenumberEnd: 1460
    functionName: gaussian_blur_dyn_image
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    functionsReached:
    - set_color_space
    - Option::height
    - ImageResult::unwrap
    - filter_2d_sep_rgb_u16
    - DynamicImage::ImageLuma16
    - GrayImage::from_raw
    - Rgb16Image::from_raw
    - DynamicImage::ImageLumaA8
    - Rgb32FImage::from_raw
    - DynamicImage::ImageLuma8
    - get_gaussian_kernel_1d
    - Option::subpixels
    - Vec::width
    - filter_2d_sep_la
    - imageops::filter_1d::filter_2d_sep_la_u16
    - Rgba16Image::from_raw
    - GrayAlpha16Image::from_raw
    - GrayAlphaImage::from_raw
    - DynamicImage::ImageRgb16
    - imageops::filter_1d::filter_2d_sep_plane_u16
    - imageops::filter_1d::filter_2d_sep_rgb
    - DynamicImage::ImageRgb8
    - imageops::filter_1d::filter_2d_sep_rgb_f32
    - Result::unwrap
    - Vec::color_space
    - Vec::height
    - Option::width
    - RgbImage::from_raw
    - Gray16Image::from_raw
    - DynamicImage::ImageRgba8
    - imageops::filter_1d::filter_2d_sep_rgba
    - imageops::filter_1d::filter_2d_sep_rgba_f32
    - DynamicImage::ImageLumaA16
    - imageops::filter_1d::filter_2d_sep_plane
    - DynamicImage::ImageRgb32F
    - DynamicImage::ImageRgba32F
    - DynamicImage::ImageRgba16
    - RgbaImage::from_raw
    - imageops::filter_1d::filter_2d_sep_rgba_u16
    - Rgba32FImage::from_raw
    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:1467,1
    - Dst: gaussian_blur_indirect_impl::<I, 2>
      Src: /src/image/src/imageops/sample.rs:1468,1
    - Dst: gaussian_blur_indirect_impl::<I, 3>
      Src: /src/image/src/imageops/sample.rs:1469,1
    - Dst: gaussian_blur_indirect_impl::<I, 4>
      Src: /src/image/src/imageops/sample.rs:1470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - image
    - parameters
    argTypes:
    - '&I'
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1473
      start: 1462
    functionDepth: 0
    functionLinenumber: 1462
    functionLinenumberEnd: 1473
    functionName: gaussian_blur_indirect
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 2
    functionsReached:
    - gaussian_blur_indirect_impl::<I, 4>
    - gaussian_blur_indirect_impl::<I, 3>
    - gaussian_blur_indirect_impl::<I, 1>
    - gaussian_blur_indirect_impl::<I, 2>
    linkageType: ''
    returnType: ImageBuffer
    signature: 'fn gaussian_blur_indirect<I: GenericImageView>(image: &I,parameters:
      GaussianBlurParameters,) -> ImageBuffer<I::Pixel, Vec<<I::Pixel as Pixel>::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_chunks_mut::<CN>
      Src: /src/image/src/imageops/sample.rs:1480,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/sample.rs:1480,1
    - Dst: Vec::pixels
      Src: /src/image/src/imageops/sample.rs:1481,1
    - Dst: ImageResult::zip
      Src: /src/image/src/imageops/sample.rs:1481,1
    - Dst: channels
      Src: /src/image/src/imageops/sample.rs:1482,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1485,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1485,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1488,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1488,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1489,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1489,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1492,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1492,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1493,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1493,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1494,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1494,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1497,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1497,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1498,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1498,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: get_gaussian_kernel_1d
      Src: /src/image/src/imageops/sample.rs:1508,1
    - Dst: get_gaussian_kernel_1d
      Src: /src/image/src/imageops/sample.rs:1512,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:1518,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:1519,1
    - Dst: filter_2d_sep_plane_f32
      Src: /src/image/src/imageops/sample.rs:1524,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1524,1
    - Dst: imageops::filter_1d::filter_2d_sep_la_f32
      Src: /src/image/src/imageops/sample.rs:1534,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1534,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgb_f32
      Src: /src/image/src/imageops/sample.rs:1544,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1544,1
    - Dst: imageops::filter_1d::filter_2d_sep_rgba_f32
      Src: /src/image/src/imageops/sample.rs:1554,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1554,1
    - Dst: Vec::buffer_like
      Src: /src/image/src/imageops/sample.rs:1566,1
    - Dst: as_chunks_mut::<CN>
      Src: /src/image/src/imageops/sample.rs:1567,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/sample.rs:1567,1
    - Dst: ImageResult::pixels_mut
      Src: /src/image/src/imageops/sample.rs:1568,1
    - Dst: EnumeratePixelsMutPar::iter_mut
      Src: /src/image/src/imageops/sample.rs:1568,1
    - Dst: zip
      Src: /src/image/src/imageops/sample.rs:1568,1
    - Dst: map
      Src: /src/image/src/imageops/sample.rs:1569,1
    - Dst: Pixel::from_slice
      Src: /src/image/src/imageops/sample.rs:1570,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 158
    argCount: 2
    argNames:
    - image
    - parameters
    argTypes:
    - '&I'
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1574
      start: 1475
    functionDepth: 14
    functionLinenumber: 1475
    functionLinenumberEnd: 1574
    functionName: gaussian_blur_indirect_impl
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Pixel::from_slice
    - filter_2d_sep_plane_f32
    - Self::unwrap
    - imageops::filter_1d::filter_2d_sep_la_f32
    - ImageResult::pixels_mut
    - get_gaussian_kernel_1d
    - Vec::width
    - as_chunks_mut::<CN>
    - map
    - Vec::pixels
    - Vec::buffer_like
    - channels
    - ImageResult::zip
    - imageops::filter_1d::filter_2d_sep_rgb_f32
    - Result::unwrap
    - Vec::height
    - imageops::filter_1d::filter_2d_sep_rgba_f32
    - iter_mut
    - NumCast::from
    - zip
    - EnumeratePixelsMutPar::iter_mut
    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:1593,1
    - Dst: GaussianBlurParameters::new_from_sigma
      Src: /src/image/src/imageops/sample.rs:1593,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1596,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1596,1
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/sample.rs:1597,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/sample.rs:1601,1
    - Dst: ImageBuffer::get_pixel_mut
      Src: /src/image/src/imageops/sample.rs:1602,1
    - Dst: map2
      Src: /src/image/src/imageops/sample.rs:1604,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1605,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1605,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1606,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1606,1
    - Dst: abs
      Src: /src/image/src/imageops/sample.rs:1610,1
    - Dst: utils::clamp
      Src: /src/image/src/imageops/sample.rs:1611,1
    - Dst: NumCast::from
      Src: /src/image/src/imageops/sample.rs:1613,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/sample.rs:1613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 3
    argNames:
    - image
    - sigma
    - threshold
    argTypes:
    - '&I'
    - f32
    - i32
    constantsTouched: []
    func_position:
      end: 1624
      start: 1587
    functionDepth: 3
    functionLinenumber: 1587
    functionLinenumberEnd: 1624
    functionName: unsharpen
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 1
    functionsReached:
    - GaussianBlurParameters::new_from_sigma
    - abs
    - map2
    - NumCast::from
    - Self::unwrap
    - blur_advanced
    - utils::clamp
    - Vec::get_pixel
    - Vec::dimensions
    - ImageBuffer::get_pixel_mut
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn unsharpen<I, P, S>(image: &I, sigma: f32, threshold: i32) ->
      ImageBuffer<P, Vec<S>>whereI: GenericImageView<Pixel = P>,P: Pixel<Subpixel
      = S>,S: Primitive,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1637,1
    - Dst: Path::new
      Src: /src/image/src/imageops/sample.rs:1637,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1637,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1638,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1639,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1642
      start: 1635
    functionDepth: 14
    functionLinenumber: 1635
    functionLinenumberEnd: 1642
    functionName: tests::bench_resize
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - iter
    - Path::new
    - test::black_box
    - crate::open
    - resize
    - 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: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: Option::clone
      Src: /src/image/src/imageops/sample.rs:1649,1
    - Dst: Self::resize
      Src: /src/image/src/imageops/sample.rs:1650,1
    - Dst: Option::width
      Src: /src/image/src/imageops/sample.rs:1650,1
    - Dst: Option::height
      Src: /src/image/src/imageops/sample.rs:1650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1646
    functionDepth: 14
    functionLinenumber: 1646
    functionLinenumberEnd: 1652
    functionName: tests::test_resize_same_size
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Option::width
    - Self::resize
    - Option::height
    - Path::new
    - crate::open
    - Option::clone
    - 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:1658,1
    - Dst: Path::new
      Src: /src/image/src/imageops/sample.rs:1658,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1656
    functionDepth: 14
    functionLinenumber: 1656
    functionLinenumberEnd: 1672
    functionName: tests::test_sample_bilinear
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - io::Result::unwrap
    - Path::new
    - crate::open
    linkageType: ''
    returnType: void
    signature: fn test_sample_bilinear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1677,1
    - Dst: Path::new
      Src: /src/image/src/imageops/sample.rs:1677,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1675
    functionDepth: 14
    functionLinenumber: 1675
    functionLinenumberEnd: 1691
    functionName: tests::test_sample_nearest
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - io::Result::unwrap
    - Path::new
    - crate::open
    linkageType: ''
    returnType: void
    signature: fn test_sample_nearest()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/imageops/sample.rs:1695,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1696,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1697,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1698,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1693
    functionDepth: 14
    functionLinenumber: 1693
    functionLinenumberEnd: 1724
    functionName: tests::test_sample_bilinear_correctness
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::from_fn
    linkageType: ''
    returnType: void
    signature: fn test_sample_bilinear_correctness()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/imageops/sample.rs:1729,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1730,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1731,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1732,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1733,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1736,1
    - Dst: sample_bilinear
      Src: /src/image/src/imageops/sample.rs:1737,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1737,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1739
      start: 1727
    functionDepth: 14
    functionLinenumber: 1727
    functionLinenumberEnd: 1739
    functionName: tests::bench_sample_bilinear
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - iter
    - sample_bilinear
    - ImageBuffer::from_fn
    - test::black_box
    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:1743,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1744,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1745,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1746,1
    - Dst: Rgba
      Src: /src/image/src/imageops/sample.rs:1747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1741
    functionDepth: 14
    functionLinenumber: 1741
    functionLinenumberEnd: 1761
    functionName: tests::test_sample_nearest_correctness
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::from_fn
    linkageType: ''
    returnType: void
    signature: fn test_sample_nearest_correctness()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1770,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1770,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1771,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1772,1
    - Dst: Vec::clone
      Src: /src/image/src/imageops/sample.rs:1772,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1772,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:1773,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:1774,1
    - Dst: u64::from
      Src: /src/image/src/imageops/sample.rs:1778,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/sample.rs:1778,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/sample.rs:1778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1779
      start: 1765
    functionDepth: 14
    functionLinenumber: 1765
    functionLinenumberEnd: 1779
    functionName: tests::bench_resize_same_size
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - iter
    - Vec::height
    - Vec::clone
    - test::black_box
    - Vec::width
    - u64::from
    - crate::open
    - resize
    - 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:1783,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1782
    functionDepth: 14
    functionLinenumber: 1782
    functionLinenumberEnd: 1785
    functionName: tests::test_issue_186
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - resize
    - ImageBuffer::new
    linkageType: ''
    returnType: void
    signature: fn test_issue_186()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1794,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1794,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1795,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1796,1
    - Dst: Vec::thumbnail
      Src: /src/image/src/imageops/sample.rs:1796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1799
      start: 1789
    functionDepth: 14
    functionLinenumber: 1789
    functionLinenumberEnd: 1799
    functionName: tests::bench_thumbnail
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - iter
    - Vec::thumbnail
    - test::black_box
    - crate::open
    - 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:1808,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1808,1
    - Dst: thumbnail
      Src: /src/image/src/imageops/sample.rs:1808,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1809,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1810,1
    - Dst: Vec::thumbnail
      Src: /src/image/src/imageops/sample.rs:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1813
      start: 1803
    functionDepth: 14
    functionLinenumber: 1803
    functionLinenumberEnd: 1813
    functionName: tests::bench_thumbnail_upsize
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - iter
    - thumbnail
    - Vec::thumbnail
    - test::black_box
    - crate::open
    - 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:1822,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1822,1
    - Dst: thumbnail
      Src: /src/image/src/imageops/sample.rs:1822,1
    - Dst: iter
      Src: /src/image/src/imageops/sample.rs:1823,1
    - Dst: test::black_box
      Src: /src/image/src/imageops/sample.rs:1824,1
    - Dst: Vec::thumbnail
      Src: /src/image/src/imageops/sample.rs:1824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1827
      start: 1817
    functionDepth: 14
    functionLinenumber: 1817
    functionLinenumberEnd: 1827
    functionName: tests::bench_thumbnail_upsize_irregular
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - iter
    - thumbnail
    - Vec::thumbnail
    - test::black_box
    - crate::open
    - 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:1838,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/imageops/sample.rs:1839,1
    - Dst: crop
      Src: /src/image/src/imageops/sample.rs:1840,1
    - Dst: SubImage::to_image
      Src: /src/image/src/imageops/sample.rs:1840,1
    - Dst: pixels
      Src: /src/image/src/imageops/sample.rs:1841,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - image
    - filter
    argTypes:
    - '&RgbaImage'
    - FilterType
    constantsTouched: []
    func_position:
      end: 1848
      start: 1837
    functionDepth: 14
    functionLinenumber: 1837
    functionLinenumberEnd: 1848
    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:
    - SubImage::to_image
    - Rect::from_xy_ranges
    - crop
    - pixels
    - resize
    linkageType: ''
    returnType: void
    signature: 'fn assert_resize(image: &RgbaImage, filter: FilterType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::open
      Src: /src/image/src/imageops/sample.rs:1854,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/sample.rs:1854,1
    - Dst: Option::as_rgba8
      Src: /src/image/src/imageops/sample.rs:1855,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/sample.rs:1855,1
    - Dst: assert_resize
      Src: /src/image/src/imageops/sample.rs:1858,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1831
    functionDepth: 14
    functionLinenumber: 1831
    functionLinenumberEnd: 1860
    functionName: tests::resize_transparent_image
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - Option::as_rgba8
    - crate::open
    - Option::unwrap
    - io::Result::unwrap
    - assert_resize
    linkageType: ''
    returnType: void
    signature: fn resize_transparent_image()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::RgbaImage::from_raw
      Src: /src/image/src/imageops/sample.rs:1864,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1864,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1863
    functionDepth: 14
    functionLinenumber: 1863
    functionLinenumberEnd: 1867
    functionName: tests::bug_1600
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - resize
    - crate::RgbaImage::from_raw
    - 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:1871,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1871,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1873,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1870
    functionDepth: 14
    functionLinenumber: 1870
    functionLinenumberEnd: 1879
    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:1884,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/imageops/sample.rs:1884,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1885,1
    - Dst: resize
      Src: /src/image/src/imageops/sample.rs:1887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1882
    functionDepth: 14
    functionLinenumber: 1882
    functionLinenumberEnd: 1889
    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: ImageBuffer::from_pixel
      Src: /src/image/src/imageops/sample.rs:1894,1
    - Dst: crate::Luma
      Src: /src/image/src/imageops/sample.rs:1894,1
    - Dst: super::thumbnail
      Src: /src/image/src/imageops/sample.rs:1895,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/imageops/sample.rs:1898,1
    - Dst: crate::Luma
      Src: /src/image/src/imageops/sample.rs:1898,1
    - Dst: super::thumbnail
      Src: /src/image/src/imageops/sample.rs:1899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1892
    functionDepth: 9
    functionLinenumber: 1892
    functionLinenumberEnd: 1900
    functionName: tests::thumbnail_huge_block
    functionSourceFile: /src/image/src/imageops/sample.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_pixel
    - super::thumbnail
    - crate::Luma
    linkageType: ''
    returnType: void
    signature: fn thumbnail_huge_block()
  - 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: 12
    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: 14
    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: ImageResult::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: ImageResult::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: 11
    functionLinenumber: 28
    functionLinenumberEnd: 46
    functionName: grayscale_with_type
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 2
    functionsReached:
    - ImageBuffer::new
    - Vec::pixels
    - ImageBuffer::into_color
    - ImageResult::copy_color_space_from
    - Vec::buffer_with_dimensions
    - ImageResult::put_pixel
    - Vec::dimensions
    - 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: ImageResult::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: ImageResult::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: 13
    functionLinenumber: 49
    functionLinenumberEnd: 67
    functionName: grayscale_with_type_alpha
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 2
    functionsReached:
    - ImageBuffer::new
    - Vec::pixels
    - ImageBuffer::into_color
    - ImageResult::copy_color_space_from
    - Vec::buffer_with_dimensions
    - ImageResult::put_pixel
    - Vec::dimensions
    - u8::to_luma_alpha
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn grayscale_with_type_alpha<NewPixel, I: GenericImageView>(image:
      &I,) -> ImageBuffer<NewPixel, Vec<NewPixel::Subpixel>>whereNewPixel: Pixel +
      FromColor<LumaA<Subpixel<I>>>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/colorops.rs:73,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/imageops/colorops.rs:77,1
    - Dst: Result::invert
      Src: /src/image/src/imageops/colorops.rs:78,1
    - Dst: Vec::put_pixel
      Src: /src/image/src/imageops/colorops.rs:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - image
    argTypes:
    - '&mut I'
    constantsTouched: []
    func_position:
      end: 83
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 83
    functionName: invert
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 4
    functionsReached:
    - Vec::put_pixel
    - Vec::get_pixel
    - Vec::dimensions
    - 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: ImageResult::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: 7
    functionLinenumber: 90
    functionLinenumberEnd: 116
    functionName: contrast
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 1
    functionsReached:
    - utils::clamp
    - NumCast::from
    - Vec::pixels
    - Self::unwrap
    - Vec::buffer_like
    - powi
    - u8::map
    - ImageResult::put_pixel
    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: 3
    functionLinenumber: 123
    functionLinenumberEnd: 149
    functionName: contrast_in_place
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Self::Pixel::map
    - utils::clamp
    - NumCast::from
    - Vec::put_pixel
    - Self::unwrap
    - powi
    - Vec::get_pixel
    - Vec::dimensions
    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: ImageResult::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: 4
    functionLinenumber: 156
    functionLinenumberEnd: 181
    functionName: brighten
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 1
    functionsReached:
    - u8::map_with_alpha
    - NumCast::from
    - Vec::pixels
    - Self::unwrap
    - Vec::buffer_like
    - utils::clamp
    - ImageResult::put_pixel
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn brighten<I, P, S>(image: &I, value: i32) -> ImageBuffer<P,
      Vec<S>>whereI: GenericImageView<Pixel = P>,P: Pixel<Subpixel = S>,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: 3
    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
    - Vec::put_pixel
    - Self::unwrap
    - utils::clamp
    - Vec::get_pixel
    - Vec::dimensions
    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: ImageResult::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:
    - ImageResult::enumerate_pixels_mut
    - u8::channels_mut
    - ImageResult::unwrap
    - NumCast::from
    - sin
    - unwrap
    - Self::unwrap
    - Vec::buffer_like
    - to_radians
    - utils::clamp
    - to_f64
    - Vec::get_pixel
    - '&RgbaImage::copy_from'
    - cos
    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: 3
    functionLinenumber: 294
    functionLinenumberEnd: 346
    functionName: huerotate_in_place
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - u8::channels_mut
    - NumCast::from
    - Vec::put_pixel
    - sin
    - unwrap
    - Self::unwrap
    - to_radians
    - utils::clamp
    - to_f64
    - Vec::get_pixel
    - Vec::dimensions
    - cos
    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: 9
    functionLinenumber: 415
    functionLinenumberEnd: 421
    functionName: BiLevel::lookup
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Some
    - into
    linkageType: ''
    returnType: Option
    signature: 'fn lookup(&self, idx: usize) -> Option<Self::Color>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 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:
    - color_quant::NeuQuant::index_of
    - bool::channels
    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: 7
    functionLinenumber: 446
    functionLinenumberEnd: 448
    functionName: color_quant::NeuQuant::lookup
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 1
    functionsReached:
    - color_quant::NeuQuant::lookup
    - Result::into
    - Option::map
    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:
    - bool::channels_mut
    - color_quant::NeuQuant::map_pixel
    linkageType: ''
    returnType: void
    signature: 'fn map_color(&self, color: &mut Self::Color)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/imageops/colorops.rs: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: 5
    functionLinenumber: 462
    functionLinenumberEnd: 470
    functionName: diffuse_err
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 1
    functionsReached:
    - iter
    - u8::channels_mut
    - iter_mut
    - <i16 as From<_>>::from
    - 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:505,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: do_dithering
      Src: /src/image/src/imageops/colorops.rs:516,1
    - Dst: do_dithering
      Src: /src/image/src/imageops/colorops.rs:523,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:524,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:524,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:525,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:525,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:526,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:526,1
    - Dst: do_dithering
      Src: /src/image/src/imageops/colorops.rs:528,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:529,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:529,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:530,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:530,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:531,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:531,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:532,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:532,1
    - Dst: do_dithering
      Src: /src/image/src/imageops/colorops.rs:535,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:536,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:536,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:537,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:537,1
    - Dst: do_dithering
      Src: /src/image/src/imageops/colorops.rs:542,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:543,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:543,1
    - Dst: do_dithering
      Src: /src/image/src/imageops/colorops.rs:545,1
    - Dst: diffuse_err
      Src: /src/image/src/imageops/colorops.rs:546,1
    - Dst: Vec::get_pixel_mut
      Src: /src/image/src/imageops/colorops.rs:546,1
    - Dst: do_dithering
      Src: /src/image/src/imageops/colorops.rs:549,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 115
    argCount: 2
    argNames:
    - image
    - color_map
    argTypes:
    - '&mut ImageBuffer<Pix, Vec<u8>>'
    - '&Map'
    constantsTouched: []
    func_position:
      end: 550
      start: 490
    functionDepth: 6
    functionLinenumber: 490
    functionLinenumberEnd: 550
    functionName: dither
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 7
    functionsReached:
    - do_dithering
    - Vec::dimensions
    - Vec::get_pixel_mut
    - 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:562,1
    - Dst: Vec::width
      Src: /src/image/src/imageops/colorops.rs:562,1
    - Dst: Vec::height
      Src: /src/image/src/imageops/colorops.rs:562,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/imageops/colorops.rs:563,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/imageops/colorops.rs:564,1
    - Dst: Vec::pixels
      Src: /src/image/src/imageops/colorops.rs:565,1
    - Dst: ImageResult::iter
      Src: /src/image/src/imageops/colorops.rs:565,1
    - Dst: zip
      Src: /src/image/src/imageops/colorops.rs:565,1
    - Dst: Option::pixels_mut
      Src: /src/image/src/imageops/colorops.rs:565,1
    - Dst: EnumeratePixelsMutPar::iter_mut
      Src: /src/image/src/imageops/colorops.rs:565,1
    - Dst: color::Luma
      Src: /src/image/src/imageops/colorops.rs:566,1
    - Dst: ImageResult::index_of
      Src: /src/image/src/imageops/colorops.rs:566,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 2
    argNames:
    - image
    - color_map
    argTypes:
    - '&ImageBuffer<Pix, Vec<u8>>'
    - '&Map'
    constantsTouched: []
    func_position:
      end: 569
      start: 553
    functionDepth: 5
    functionLinenumber: 553
    functionLinenumberEnd: 569
    functionName: index_colors
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - Vec::height
    - color::Luma
    - ImageResult::index_of
    - ImageResult::iter
    - ImageBuffer::new
    - Vec::pixels
    - Vec::width
    - zip
    - Option::set_rgb_primaries
    - Option::set_transfer_function
    - Option::pixels_mut
    - EnumeratePixelsMutPar::iter_mut
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn index_colors<Pix, Map>(image: &ImageBuffer<Pix, Vec<u8>>,color_map:
      &Map,) -> ImageBuffer<Luma<u8>, Vec<u8>>whereMap: ColorMap<Color = Pix> + ?Sized,Pix:
      Pixel<Subpixel = u8>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:610,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:610,1
    - Dst: dither
      Src: /src/image/src/imageops/colorops.rs:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 615
      start: 609
    functionDepth: 7
    functionLinenumber: 609
    functionLinenumberEnd: 615
    functionName: test::test_dither
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    - dither
    linkageType: ''
    returnType: void
    signature: fn test_dither()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:619,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:619,1
    - Dst: dither
      Src: /src/image/src/imageops/colorops.rs:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 623
      start: 618
    functionDepth: 7
    functionLinenumber: 618
    functionLinenumberEnd: 623
    functionName: test::test_dither_1x1
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    - dither
    linkageType: ''
    returnType: void
    signature: fn test_dither_1x1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:627,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:627,1
    - Dst: dither
      Src: /src/image/src/imageops/colorops.rs:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 631
      start: 626
    functionDepth: 7
    functionLinenumber: 626
    functionLinenumberEnd: 631
    functionName: test::test_dither_1xn
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    - dither
    linkageType: ''
    returnType: void
    signature: fn test_dither_1xn()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:635,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:635,1
    - Dst: dither
      Src: /src/image/src/imageops/colorops.rs:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 639
      start: 634
    functionDepth: 7
    functionLinenumber: 634
    functionLinenumberEnd: 639
    functionName: test::test_dither_nx1
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    - dither
    linkageType: ''
    returnType: void
    signature: fn test_dither_nx1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:643,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:643,1
    - Dst: dither
      Src: /src/image/src/imageops/colorops.rs:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 7
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: test::test_dither_empty
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    - dither
    linkageType: ''
    returnType: void
    signature: fn test_dither_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:651,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:651,1
    - Dst: dither
      Src: /src/image/src/imageops/colorops.rs:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 655
      start: 650
    functionDepth: 7
    functionLinenumber: 650
    functionLinenumberEnd: 655
    functionName: test::test_dither_empty_oversized
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    - dither
    linkageType: ''
    returnType: void
    signature: fn test_dither_empty_oversized()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::put_pixel
      Src: /src/image/src/images/dynimage.rs:1779,1
    - Dst: Rgba
      Src: /src/image/src/images/dynimage.rs:1779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - img
    - alpha_discarded
    argTypes:
    - super::DynamicImage
    - bool
    constantsTouched: []
    func_position:
      end: 1785
      start: 1777
    functionDepth: 2
    functionLinenumber: 1777
    functionLinenumberEnd: 1785
    functionName: test::test_grayscale
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - Option::put_pixel
    linkageType: ''
    returnType: void
    signature: 'fn test_grayscale(mut img: super::DynamicImage, alpha_discarded: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:671,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:671,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:674,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:674,1
    - Dst: invert
      Src: /src/image/src/imageops/colorops.rs:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 678
      start: 669
    functionDepth: 3
    functionLinenumber: 669
    functionLinenumberEnd: 678
    functionName: test::test_invert
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    - invert
    linkageType: ''
    returnType: void
    signature: fn test_invert()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:682,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:682,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:685,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 688
      start: 680
    functionDepth: 3
    functionLinenumber: 680
    functionLinenumberEnd: 688
    functionName: test::test_brighten
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_brighten()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:693,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:693,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/colorops.rs:696,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/colorops.rs:696,1
    - Dst: brighten_in_place
      Src: /src/image/src/imageops/colorops.rs:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 700
      start: 691
    functionDepth: 4
    functionLinenumber: 691
    functionLinenumberEnd: 700
    functionName: test::test_brighten_place
    functionSourceFile: /src/image/src/imageops/colorops.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - brighten_in_place
    - Option::unwrap
    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:
    - filter
    - "pixels()\n            .zip(right.pixels())\n            .filter(|&(p, q)| p\
      \ != q)\n            .collect::<Vec<_>>"
    - '&J::pixels'
    - ImageResult::zip
    - u32::pixels
    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: 3
    functionLinenumber: 8
    functionLinenumberEnd: 15
    functionName: rotate90
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 2
    functionsReached:
    - rotate90_in
    - Vec::dimensions
    - Vec::buffer_with_dimensions
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn rotate90<I: GenericImageView>(image: &I,) -> ImageBuffer<I::Pixel,
      Vec<<I::Pixel as Pixel>::Subpixel>>'
  - 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: 3
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: rotate180
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::dimensions
    - rotate180_in
    - Vec::buffer_with_dimensions
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn rotate180<I: GenericImageView>(image: &I,) -> ImageBuffer<I::Pixel,
      Vec<<I::Pixel as Pixel>::Subpixel>>'
  - 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: 3
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: rotate270
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 2
    functionsReached:
    - Vec::dimensions
    - rotate270_in
    - Vec::buffer_with_dimensions
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn rotate270<I: GenericImageView>(image: &I,) -> ImageBuffer<I::Pixel,
      Vec<<I::Pixel as Pixel>::Subpixel>>'
  - 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: 2
    functionLinenumber: 38
    functionLinenumberEnd: 60
    functionName: rotate90_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Err
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - Ok
    - Vec::get_pixel
    - ParameterError::from_kind
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - ImageError::Parameter
    - Vec::dimensions
    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: 2
    functionLinenumber: 63
    functionLinenumberEnd: 85
    functionName: rotate180_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Err
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - Ok
    - Vec::get_pixel
    - ParameterError::from_kind
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - ImageError::Parameter
    - Vec::dimensions
    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: 2
    functionLinenumber: 88
    functionLinenumberEnd: 110
    functionName: rotate270_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Err
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - Ok
    - Vec::get_pixel
    - ParameterError::from_kind
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - ImageError::Parameter
    - Vec::dimensions
    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: 4
    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: 4
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: flip_vertical
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::buffer_like
    - flip_vertical_in
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn flip_vertical<I: GenericImageView>(image: &I,) -> ImageBuffer<I::Pixel,
      Vec<<I::Pixel as Pixel>::Subpixel>>'
  - 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: 2
    functionLinenumber: 131
    functionLinenumberEnd: 153
    functionName: flip_horizontal_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Err
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - Ok
    - Vec::get_pixel
    - ParameterError::from_kind
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - ImageError::Parameter
    - Vec::dimensions
    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: 2
    functionLinenumber: 156
    functionLinenumberEnd: 178
    functionName: flip_vertical_in
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Err
    - '&mut ImageBuffer<I::Pixel, Container>::put_pixel'
    - Ok
    - Vec::get_pixel
    - ParameterError::from_kind
    - '&mut ImageBuffer<I::Pixel, Container>::dimensions'
    - ImageError::Parameter
    - Vec::dimensions
    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: 2
    functionLinenumber: 181
    functionLinenumberEnd: 209
    functionName: rotate180_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 2
    functionsReached:
    - Vec::put_pixel
    - Vec::get_pixel
    - Vec::dimensions
    linkageType: ''
    returnType: void
    signature: 'pub fn rotate180_in_place<I: GenericImage>(image: &mut I)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs: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: 2
    functionLinenumber: 212
    functionLinenumberEnd: 224
    functionName: flip_horizontal_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::put_pixel
    - Vec::get_pixel
    - Vec::dimensions
    linkageType: ''
    returnType: void
    signature: 'pub fn flip_horizontal_in_place<I: GenericImage>(image: &mut I)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::dimensions
      Src: /src/image/src/imageops/affine.rs: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: 2
    functionLinenumber: 227
    functionLinenumberEnd: 239
    functionName: flip_vertical_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 1
    functionsReached:
    - Vec::put_pixel
    - Vec::get_pixel
    - Vec::dimensions
    linkageType: ''
    returnType: void
    signature: 'pub fn flip_vertical_in_place<I: GenericImage>(image: &mut I)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs: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:
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_rotate90()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs: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:
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_rotate180()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs: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:
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_rotate270()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs: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: 3
    functionLinenumber: 316
    functionLinenumberEnd: 326
    functionName: test::test_rotate180_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    - rotate180_in_place
    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:
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_flip_horizontal()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs: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:
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_flip_vertical()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs: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: 3
    functionLinenumber: 351
    functionLinenumberEnd: 361
    functionName: test::test_flip_horizontal_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    - flip_horizontal_in_place
    linkageType: ''
    returnType: void
    signature: fn test_flip_horizontal_in_place()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/affine.rs: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: 3
    functionLinenumber: 364
    functionLinenumberEnd: 374
    functionName: test::test_flip_vertical_in_place
    functionSourceFile: /src/image/src/imageops/affine.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - flip_vertical_in_place
    - Option::unwrap
    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: 2
    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: 2
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: crop
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 3
    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
    - saturating_add
    - min
    linkageType: ''
    returnType: (u32, u32)
    signature: 'pub fn overlay_bounds((bottom_width, bottom_height): (u32, u32),(top_width,
      top_height): (u32, u32),x: u32,y: u32,) -> (u32, u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs: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: 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: 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: 3
    functionLinenumber: 136
    functionLinenumberEnd: 182
    functionName: overlay_bounds_ext
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 2
    functionsReached:
    - clamp
    - Option::saturating_add
    - saturating_mul
    - Option::saturating_mul
    - saturating_add
    - Option::clamp
    - i64::from
    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: 4
    functionLinenumber: 185
    functionLinenumberEnd: 206
    functionName: overlay
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 6
    functionsReached:
    - overlay_bounds_ext
    - u32::get_pixel
    - '&mut I::put_pixel'
    - '&mut I::dimensions'
    - '&mut I::get_pixel'
    - u32::dimensions
    - Self::Pixel::blend
    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: u32::dimensions
      Src: /src/image/src/imageops/mod.rs:230,1
    - Dst: '&mut I::width'
      Src: /src/image/src/imageops/mod.rs:235,1
    - Dst: step_by
      Src: /src/image/src/imageops/mod.rs:235,1
    - Dst: '&mut I::height'
      Src: /src/image/src/imageops/mod.rs:236,1
    - Dst: step_by
      Src: /src/image/src/imageops/mod.rs:236,1
    - Dst: overlay
      Src: /src/image/src/imageops/mod.rs:237,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:237,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:237,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - bottom
    - top
    argTypes:
    - '&mut I'
    - '&J'
    constantsTouched: []
    func_position:
      end: 240
      start: 225
    functionDepth: 5
    functionLinenumber: 225
    functionLinenumberEnd: 240
    functionName: tile
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - '&mut I::width'
    - overlay
    - '&mut I::height'
    - step_by
    - u32::dimensions
    - i64::from
    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:262,1
    - Dst: ImageResult::map2
      Src: /src/image/src/imageops/mod.rs:263,1
    - Dst: <S::Ratio as num_traits::NumCast>::from
      Src: /src/image/src/imageops/mod.rs:264,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/mod.rs:264,1
    - Dst: <S::Ratio as num_traits::NumCast>::from
      Src: /src/image/src/imageops/mod.rs:265,1
    - Dst: Option::height
      Src: /src/image/src/imageops/mod.rs:265,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/mod.rs:265,1
    - Dst: S::lerp
      Src: /src/image/src/imageops/mod.rs:266,1
    - Dst: Option::width
      Src: /src/image/src/imageops/mod.rs:269,1
    - Dst: Option::put_pixel
      Src: /src/image/src/imageops/mod.rs:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 3
    argNames:
    - img
    - start
    - stop
    argTypes:
    - '&mut I'
    - '&P'
    - '&P'
    constantsTouched: []
    func_position:
      end: 273
      start: 256
    functionDepth: 4
    functionLinenumber: 256
    functionLinenumberEnd: 273
    functionName: vertical_gradient
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 1
    functionsReached:
    - Option::width
    - Option::height
    - S::lerp
    - ImageResult::map2
    - <S::Ratio as num_traits::NumCast>::from
    - Option::put_pixel
    - Self::unwrap
    linkageType: ''
    returnType: void
    signature: 'pub fn vertical_gradient<S, P, I>(img: &mut I, start: &P, stop: &P)whereI:
      GenericImage<Pixel = P>,P: Pixel<Subpixel = S>,S: Primitive + Lerp,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::width
      Src: /src/image/src/imageops/mod.rs:295,1
    - Dst: ImageResult::map2
      Src: /src/image/src/imageops/mod.rs:296,1
    - Dst: <S::Ratio as num_traits::NumCast>::from
      Src: /src/image/src/imageops/mod.rs:297,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/mod.rs:297,1
    - Dst: <S::Ratio as num_traits::NumCast>::from
      Src: /src/image/src/imageops/mod.rs:298,1
    - Dst: Option::width
      Src: /src/image/src/imageops/mod.rs:298,1
    - Dst: Self::unwrap
      Src: /src/image/src/imageops/mod.rs:298,1
    - Dst: S::lerp
      Src: /src/image/src/imageops/mod.rs:299,1
    - Dst: Option::height
      Src: /src/image/src/imageops/mod.rs:302,1
    - Dst: Option::put_pixel
      Src: /src/image/src/imageops/mod.rs:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 3
    argNames:
    - img
    - start
    - stop
    argTypes:
    - '&mut I'
    - '&P'
    - '&P'
    constantsTouched: []
    func_position:
      end: 306
      start: 289
    functionDepth: 4
    functionLinenumber: 289
    functionLinenumberEnd: 306
    functionName: horizontal_gradient
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 1
    functionsReached:
    - Option::width
    - Option::height
    - S::lerp
    - ImageResult::map2
    - <S::Ratio as num_traits::NumCast>::from
    - Option::put_pixel
    - Self::unwrap
    linkageType: ''
    returnType: void
    signature: 'pub fn horizontal_gradient<S, P, I>(img: &mut I, start: &P, stop:
      &P)whereI: GenericImage<Pixel = P>,P: Pixel<Subpixel = S>,S: Primitive + Lerp,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut I::dimensions'
      Src: /src/image/src/imageops/mod.rs:314,1
    - Dst: u32::dimensions
      Src: /src/image/src/imageops/mod.rs:315,1
    - Dst: overlay_bounds_ext
      Src: /src/image/src/imageops/mod.rs:319,1
    - Dst: u32::get_pixel
      Src: /src/image/src/imageops/mod.rs:323,1
    - Dst: '&mut I::put_pixel'
      Src: /src/image/src/imageops/mod.rs:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 4
    argNames:
    - bottom
    - top
    - x
    - y
    argTypes:
    - '&mut I'
    - '&J'
    - i64
    - i64
    constantsTouched: []
    func_position:
      end: 327
      start: 309
    functionDepth: 4
    functionLinenumber: 309
    functionLinenumberEnd: 327
    functionName: replace
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 2
    functionsReached:
    - overlay_bounds_ext
    - u32::get_pixel
    - '&mut I::put_pixel'
    - '&mut I::dimensions'
    - u32::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: 375
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 375
    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:380,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/imageops/mod.rs:381,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:381,1
    - Dst: overlay
      Src: /src/image/src/imageops/mod.rs:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 388
      start: 379
    functionDepth: 7
    functionLinenumber: 379
    functionLinenumberEnd: 388
    functionName: tests::test_image_in_image
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_pixel
    - Rgb
    - ImageBuffer::new
    - overlay
    linkageType: ''
    returnType: void
    signature: fn test_image_in_image()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/mod.rs:393,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/imageops/mod.rs:394,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:394,1
    - Dst: overlay
      Src: /src/image/src/imageops/mod.rs:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 399
      start: 392
    functionDepth: 7
    functionLinenumber: 392
    functionLinenumberEnd: 399
    functionName: tests::test_image_in_image_outside_of_bounds
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_pixel
    - Rgb
    - ImageBuffer::new
    - 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:405,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/imageops/mod.rs:406,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:406,1
    - Dst: overlay
      Src: /src/image/src/imageops/mod.rs:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 411
      start: 404
    functionDepth: 6
    functionLinenumber: 404
    functionLinenumberEnd: 411
    functionName: tests::test_image_outside_image_no_wrap_around
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_pixel
    - Rgb
    - ImageBuffer::new
    - 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:417,1
    - Dst: RgbaImage::from_pixel
      Src: /src/image/src/imageops/mod.rs:418,1
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:419,1
    - Dst: overlay
      Src: /src/image/src/imageops/mod.rs:420,1
    - Dst: get_pixel
      Src: /src/image/src/imageops/mod.rs:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 416
    functionDepth: 7
    functionLinenumber: 416
    functionLinenumberEnd: 424
    functionName: tests::test_image_overlay_transparent
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - RgbaImage::new
    - RgbaImage::from_pixel
    - crate::Rgba
    - overlay
    - get_pixel
    linkageType: ''
    returnType: void
    signature: fn test_image_overlay_transparent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/mod.rs:429,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/imageops/mod.rs:430,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:430,1
    - Dst: overlay
      Src: /src/image/src/imageops/mod.rs:432,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:435,1
    - Dst: i64::from
      Src: /src/image/src/imageops/mod.rs:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 428
    functionDepth: 7
    functionLinenumber: 428
    functionLinenumberEnd: 441
    functionName: tests::test_image_coordinate_overflow
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::new
    - overlay
    - ImageBuffer::from_pixel
    - Rgb
    - i64::from
    linkageType: ''
    returnType: void
    signature: fn test_image_coordinate_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/mod.rs:448,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:450,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:451,1
    - Dst: horizontal_gradient
      Src: /src/image/src/imageops/mod.rs:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 457
      start: 447
    functionDepth: 5
    functionLinenumber: 447
    functionLinenumberEnd: 457
    functionName: tests::test_image_horizontal_gradient_limits
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - Rgb
    - horizontal_gradient
    - ImageBuffer::new
    linkageType: ''
    returnType: void
    signature: fn test_image_horizontal_gradient_limits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/imageops/mod.rs:462,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:464,1
    - Dst: Rgb
      Src: /src/image/src/imageops/mod.rs:465,1
    - Dst: vertical_gradient
      Src: /src/image/src/imageops/mod.rs:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 471
      start: 461
    functionDepth: 5
    functionLinenumber: 461
    functionLinenumberEnd: 471
    functionName: tests::test_image_vertical_gradient_limits
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - vertical_gradient
    - Rgb
    - ImageBuffer::new
    linkageType: ''
    returnType: void
    signature: fn test_image_vertical_gradient_limits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:476,1
    - Dst: blur
      Src: /src/image/src/imageops/mod.rs:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 11
    functionLinenumber: 475
    functionLinenumberEnd: 478
    functionName: tests::test_blur_zero
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - blur
    - RgbaImage::new
    linkageType: ''
    returnType: void
    signature: fn test_blur_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:483,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: tests::test_fast_blur_zero
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - self::fast_blur::fast_blur
    - RgbaImage::new
    linkageType: ''
    returnType: void
    signature: fn test_fast_blur_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:490,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 492
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 492
    functionName: tests::test_fast_blur_negative
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - self::fast_blur::fast_blur
    - RgbaImage::new
    linkageType: ''
    returnType: void
    signature: fn test_fast_blur_negative()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:497,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 499
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 499
    functionName: tests::test_fast_large_sigma
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - self::fast_blur::fast_blur
    - RgbaImage::new
    linkageType: ''
    returnType: void
    signature: fn test_fast_large_sigma()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:504,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:505,1
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:506,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:507,1
    - Dst: RgbaImage::new
      Src: /src/image/src/imageops/mod.rs:508,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 510
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 510
    functionName: tests::test_fast_blur_empty
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - self::fast_blur::fast_blur
    - RgbaImage::new
    linkageType: ''
    returnType: void
    signature: fn test_fast_blur_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::new
      Src: /src/image/src/imageops/mod.rs:515,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 517
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 517
    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:522,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 524
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 524
    functionName: tests::test_fast_blur_2_channels
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - self::fast_blur::fast_blur
    - GrayAlphaImage::new
    linkageType: ''
    returnType: void
    signature: fn test_fast_blur_2_channels()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GrayImage::new
      Src: /src/image/src/imageops/mod.rs:529,1
    - Dst: self::fast_blur::fast_blur
      Src: /src/image/src/imageops/mod.rs:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 531
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 531
    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:540,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/imageops/mod.rs:540,1
    - Dst: Vec::blur_advanced
      Src: /src/image/src/imageops/mod.rs:541,1
    - Dst: GaussianBlurParameters::new_from_sigma
      Src: /src/image/src/imageops/mod.rs:542,1
    - Dst: ImageBuffer::to_rgb8
      Src: /src/image/src/imageops/mod.rs:541,1
    - Dst: subpixels
      Src: /src/image/src/imageops/mod.rs:544,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/mod.rs:545,1
    - Dst: ImageBuffer::to_rgb8
      Src: /src/image/src/imageops/mod.rs:545,1
    - Dst: subpixels
      Src: /src/image/src/imageops/mod.rs:546,1
    - Dst: '&[P::Subpixel]::iter'
      Src: /src/image/src/imageops/mod.rs:548,1
    - Dst: zip
      Src: /src/image/src/imageops/mod.rs:548,1
    - Dst: '&[P::Subpixel]::iter'
      Src: /src/image/src/imageops/mod.rs:550,1
    - Dst: map
      Src: /src/image/src/imageops/mod.rs:548,1
    - Dst: f32::from
      Src: /src/image/src/imageops/mod.rs:551,1
    - Dst: f32::from
      Src: /src/image/src/imageops/mod.rs:551,1
    - Dst: f32::from
      Src: /src/image/src/imageops/mod.rs:551,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:548,1
    - Dst: '&[P::Subpixel]::len'
      Src: /src/image/src/imageops/mod.rs:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 555
      start: 535
    functionDepth: 14
    functionLinenumber: 535
    functionLinenumberEnd: 555
    functionName: tests::fast_blur_approximates_gaussian_blur_well
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - '&[P::Subpixel]::iter'
    - GaussianBlurParameters::new_from_sigma
    - Vec::blur_advanced
    - map
    - subpixels
    - zip
    - Vec::fast_blur
    - crate::open
    - '&[P::Subpixel]::len'
    - f32::from
    - "iter()\n            .zip(image_blurred_fast_bytes.iter())\n            .map(|(a,\
      \ b)| (f32::from(*a) - f32::from(*b)) / f32::from(*a))\n            .sum::<f32>"
    - io::Result::unwrap
    - ImageBuffer::to_rgb8
    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:560,1
    - Dst: Rgb32FImage::new
      Src: /src/image/src/imageops/mod.rs:563,1
    - Dst: GrayImage::from_vec
      Src: /src/image/src/imageops/mod.rs:570,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/mod.rs:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 572
      start: 559
    functionDepth: 4
    functionLinenumber: 559
    functionLinenumberEnd: 572
    functionName: tests::test_image_thumbnail
    functionSourceFile: /src/image/src/imageops/mod.rs
    functionUses: 0
    functionsReached:
    - GrayImage::new
    - Option::unwrap
    - Rgb32FImage::new
    - GrayImage::from_vec
    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: subpixels
      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: subpixels
      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: subpixels
      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: subpixels
      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: subpixels
      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: subpixels
      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: subpixels
      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: subpixels
      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: subpixels
      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: subpixels
      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: 14
    functionLinenumber: 13
    functionLinenumberEnd: 85
    functionName: resize_impl
    functionSourceFile: /src/image/src/imageops/resize.rs
    functionUses: 2
    functionsReached:
    - resize_rgba_f32
    - ImageLumaA8
    - resize_plane8_with_alpha
    - resize_rgb16
    - resize_plane8
    - ImageRgba8
    - premultiply_alpha
    - ImageLumaA16
    - ImageRgb8
    - resize_rgba8
    - resize_rgba16
    - ImageBuffer::from_raw
    - ImageRgb32F
    - subpixels
    - Vec::width
    - unpremultiply_alpha
    - has_constant_alpha
    - Option::unwrap
    - ImageLuma8
    - resize_plane16
    - ImageRgba16
    - ImageRgba32F
    - ImageSize::new
    - Vec::height
    - Ok
    - ImageRgb16
    - resize_rgb8
    - resize_plane16_with_alpha
    - convert_filter_type
    - resize_rgb_f32
    - ImageLuma16
    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::subpixels_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::subpixels_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::subpixels_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::subpixels_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::subpixels_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_rgba8
    - premultiply_la16
    - premultiply_la8
    - premultiply_rgba16
    - premultiply_rgba_f32
    - std::io::Result::subpixels_mut
    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::subpixels_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::subpixels_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::subpixels_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::subpixels_mut
      Src: /src/image/src/imageops/resize.rs:134,1
    - Dst: unpremultiply_rgba_f32
      Src: /src/image/src/imageops/resize.rs:136,1
    - Dst: std::io::Result::subpixels_mut
      Src: /src/image/src/imageops/resize.rs:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    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
    - unpremultiply_la8
    - unpremultiply_rgba16
    - unpremultiply_rgba8
    - unpremultiply_rgba_f32
    - std::io::Result::subpixels_mut
    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: 13
    functionLinenumber: 141
    functionLinenumberEnd: 154
    functionName: has_constant_alpha
    functionSourceFile: /src/image/src/imageops/resize.rs
    functionUses: 1
    functionsReached:
    - has_constant_alpha_f32
    - has_constant_alpha_integer
    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::first
      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::iter
      Src: /src/image/src/imageops/resize.rs:176,1
    - Dst: 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: 35
    argCount: 1
    argNames:
    - img
    argTypes:
    - '&ImageBuffer<P, Container>'
    constantsTouched: []
    func_position:
      end: 185
      start: 157
    functionDepth: 12
    functionLinenumber: 157
    functionLinenumberEnd: 185
    functionName: has_constant_alpha_integer
    functionSourceFile: /src/image/src/imageops/resize.rs
    functionUses: 1
    functionsReached:
    - for_each
    - bitxor
    - Result::iter
    - ImageResult::first
    - unwrap
    - u8::alpha
    - into
    - Option::pixels
    - u8::channels
    - usize::last
    - Option::rows
    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::first
      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::iter
      Src: /src/image/src/imageops/resize.rs:194,1
    - Dst: map
      Src: /src/image/src/imageops/resize.rs:194,1
    - Dst: u8::channels
      Src: /src/image/src/imageops/resize.rs:196,1
    - Dst: usize::last
      Src: /src/image/src/imageops/resize.rs:196,1
    - Dst: unwrap
      Src: /src/image/src/imageops/resize.rs:196,1
    - Dst: ImageResult::all
      Src: /src/image/src/imageops/resize.rs:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 1
    argNames:
    - img
    argTypes:
    - '&ImageBuffer<crate::Rgba<f32>, Vec<f32>>'
    constantsTouched: []
    func_position:
      end: 198
      start: 188
    functionDepth: 12
    functionLinenumber: 188
    functionLinenumberEnd: 198
    functionName: has_constant_alpha_f32
    functionSourceFile: /src/image/src/imageops/resize.rs
    functionUses: 1
    functionsReached:
    - map
    - ImageResult::iter
    - ImageResult::first
    - u8::alpha
    - unwrap
    - Option::pixels
    - u8::channels
    - usize::last
    - ImageResult::all
    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:206,1
    - Dst: resize_impl
      Src: /src/image/src/imageops/resize.rs:207,1
    - Dst: Result::unwrap
      Src: /src/image/src/imageops/resize.rs:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 15
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: tests::smoke_test
    functionSourceFile: /src/image/src/imageops/resize.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - DynamicImage::new
    - resize_impl
    linkageType: ''
    returnType: void
    signature: fn smoke_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: u32::from_primitive
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: 'fn from_primitive(value: u8) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: u32::scale
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: 'fn scale(self, count: usize) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - kernel_size
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: u32::create_weight
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: U8Weight
    signature: 'fn create_weight(kernel_size: usize) -> U8Weight'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - weight
    argTypes:
    - U8Weight
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: u32::to_store
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: 'fn to_store(self, weight: U8Weight) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - count
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: f32::scale
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: f32
    signature: 'fn scale(self, count: usize) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kernel_size
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: f32::create_weight
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: f32
    signature: 'fn create_weight(kernel_size: usize) -> f32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::clamp_nearest_from
      Src: /src/image/src/imageops/fast_blur.rs:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - weight
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: f32::to_store
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - T::clamp_nearest_from
    linkageType: ''
    returnType: T
    signature: 'fn to_store(self, weight: f32) -> T'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&ImageBuffer<P, Vec<P::Subpixel>>::dimensions'
      Src: /src/image/src/imageops/fast_blur.rs:115,1
    - Dst: '&ImageBuffer<P, Vec<P::Subpixel>>::clone'
      Src: /src/image/src/imageops/fast_blur.rs:118,1
    - Dst: boxes_for_gauss
      Src: /src/image/src/imageops/fast_blur.rs:123,1
    - Dst: Vec::is_empty
      Src: /src/image/src/imageops/fast_blur.rs:124,1
    - Dst: '&ImageBuffer<P, Vec<P::Subpixel>>::clone'
      Src: /src/image/src/imageops/fast_blur.rs:125,1
    - Dst: '&ImageBuffer<P, Vec<P::Subpixel>>::subpixels'
      Src: /src/image/src/imageops/fast_blur.rs:128,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/fast_blur.rs:130,1
    - Dst: and_then
      Src: /src/image/src/imageops/fast_blur.rs:130,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/fast_blur.rs:132,1
    - Dst: test_radius_size
      Src: /src/image/src/imageops/fast_blur.rs:147,1
    - Dst: test_radius_size
      Src: /src/image/src/imageops/fast_blur.rs:148,1
    - Dst: box_blur_horizontal_pass_strategy::<P>
      Src: /src/image/src/imageops/fast_blur.rs:150,1
    - Dst: box_blur_vertical_pass_strategy::<P>
      Src: /src/image/src/imageops/fast_blur.rs:159,1
    - Dst: Vec::iter
      Src: /src/image/src/imageops/fast_blur.rs:163,1
    - Dst: skip
      Src: /src/image/src/imageops/fast_blur.rs:163,1
    - Dst: test_radius_size
      Src: /src/image/src/imageops/fast_blur.rs:165,1
    - Dst: test_radius_size
      Src: /src/image/src/imageops/fast_blur.rs:166,1
    - Dst: box_blur_horizontal_pass_strategy::<P>
      Src: /src/image/src/imageops/fast_blur.rs:168,1
    - Dst: box_blur_vertical_pass_strategy::<P>
      Src: /src/image/src/imageops/fast_blur.rs:177,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/imageops/fast_blur.rs:188,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:188,1
    - Dst: '&RgbaImage::copy_color_space_from'
      Src: /src/image/src/imageops/fast_blur.rs:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 77
    argCount: 2
    argNames:
    - input_buffer
    - sigma
    argTypes:
    - '&ImageBuffer<P, Vec<P::Subpixel>>'
    - f32
    constantsTouched: []
    func_position:
      end: 191
      start: 111
    functionDepth: 8
    functionLinenumber: 111
    functionLinenumberEnd: 191
    functionName: fast_blur
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 10
    functionsReached:
    - test_radius_size
    - box_blur_vertical_pass_strategy::<P>
    - box_blur_horizontal_pass_strategy::<P>
    - ImageBuffer::from_raw
    - '&RgbaImage::copy_color_space_from'
    - Vec::is_empty
    - '&ImageBuffer<P, Vec<P::Subpixel>>::clone'
    - skip
    - and_then
    - Vec::iter
    - '&ImageBuffer<P, Vec<P::Subpixel>>::subpixels'
    - '&ImageBuffer<P, Vec<P::Subpixel>>::dimensions'
    - Option::unwrap
    - boxes_for_gauss
    - safe_mul
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn fast_blur<P: Pixel>(input_buffer: &ImageBuffer<P, Vec<P::Subpixel>>,sigma:
      f32,) -> ImageBuffer<P, Vec<P::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::safe_add
      Src: /src/image/src/imageops/fast_blur.rs:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - bound
    - radius
    argTypes:
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 199
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 199
    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:202,1
    - Dst: GaussianBlurParameters::powi
      Src: /src/image/src/imageops/fast_blur.rs:202,1
    - Dst: floor
      Src: /src/image/src/imageops/fast_blur.rs:203,1
    - Dst: GaussianBlurParameters::powi
      Src: /src/image/src/imageops/fast_blur.rs:209,1
    - Dst: recip
      Src: /src/image/src/imageops/fast_blur.rs:209,1
    - Dst: f32::round
      Src: /src/image/src/imageops/fast_blur.rs:211,1
    - Dst: map
      Src: /src/image/src/imageops/fast_blur.rs:213,1
    - Dst: map
      Src: /src/image/src/imageops/fast_blur.rs:213,1
    - Dst: ceil_to_odd
      Src: /src/image/src/imageops/fast_blur.rs:215,1
    - Dst: saturating_sub
      Src: /src/image/src/imageops/fast_blur.rs:215,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:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 52
    argCount: 2
    argNames:
    - sigma
    - n
    argTypes:
    - f32
    - usize
    constantsTouched: []
    func_position:
      end: 217
      start: 201
    functionDepth: 7
    functionLinenumber: 201
    functionLinenumberEnd: 217
    functionName: boxes_for_gauss
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 1
    functionsReached:
    - map
    - f32::sqrt
    - ".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<_>>"
    - floor
    - ceil_to_odd
    - saturating_sub
    - recip
    - GaussianBlurParameters::powi
    - f32::round
    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:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 226
    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: box_blur_horizontal_pass_dispatch_cn::<T, Acc<T::Subpixel>>
      Src: /src/image/src/imageops/fast_blur.rs:239,1
    - Dst: box_blur_horizontal_pass_dispatch_cn::<T, f32>
      Src: /src/image/src/imageops/fast_blur.rs:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 6
    argNames:
    - src
    - src_stride
    - dst
    - dst_stride
    - width
    - radius
    argTypes:
    - '&[T::Subpixel]'
    - usize
    - '&mut [T::Subpixel]'
    - usize
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 248
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 248
    functionName: box_blur_horizontal_pass_strategy
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - box_blur_horizontal_pass_dispatch_cn::<T, Acc<T::Subpixel>>
    - box_blur_horizontal_pass_dispatch_cn::<T, f32>
    linkageType: ''
    returnType: void
    signature: 'fn box_blur_horizontal_pass_strategy<T: Pixel>(src: &[T::Subpixel],src_stride:
      usize,dst: &mut [T::Subpixel],dst_stride: usize,width: u32,radius: usize,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: box_blur_horizontal_pass::<T::Subpixel, A, 1>
      Src: /src/image/src/imageops/fast_blur.rs:259,1
    - Dst: box_blur_horizontal_pass::<T::Subpixel, A, 2>
      Src: /src/image/src/imageops/fast_blur.rs:263,1
    - Dst: box_blur_horizontal_pass::<T::Subpixel, A, 3>
      Src: /src/image/src/imageops/fast_blur.rs:267,1
    - Dst: box_blur_horizontal_pass::<T::Subpixel, A, 4>
      Src: /src/image/src/imageops/fast_blur.rs:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 6
    argNames:
    - src
    - src_stride
    - dst
    - dst_stride
    - width
    - radius
    argTypes:
    - '&[T::Subpixel]'
    - usize
    - '&mut [T::Subpixel]'
    - usize
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 277
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 277
    functionName: box_blur_horizontal_pass_dispatch_cn
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - box_blur_horizontal_pass::<T::Subpixel, A, 3>
    - box_blur_horizontal_pass::<T::Subpixel, A, 1>
    - box_blur_horizontal_pass::<T::Subpixel, A, 4>
    - box_blur_horizontal_pass::<T::Subpixel, A, 2>
    linkageType: ''
    returnType: void
    signature: 'fn box_blur_horizontal_pass_dispatch_cn<T: Pixel, A: BlurAccumulator<T::Subpixel>>(src:
      &[T::Subpixel],src_stride: usize,dst: &mut [T::Subpixel],dst_stride: usize,width:
      u32,radius: usize,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: box_blur_vertical_pass::<T::Subpixel, Acc<T::Subpixel>>
      Src: /src/image/src/imageops/fast_blur.rs:292,1
    - Dst: box_blur_vertical_pass::<T::Subpixel, f32>
      Src: /src/image/src/imageops/fast_blur.rs:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 7
    argNames:
    - src
    - src_stride
    - dst
    - dst_stride
    - width
    - height
    - radius
    argTypes:
    - '&[T::Subpixel]'
    - usize
    - '&mut [T::Subpixel]'
    - usize
    - u32
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 301
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 301
    functionName: box_blur_vertical_pass_strategy
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - box_blur_vertical_pass::<T::Subpixel, Acc<T::Subpixel>>
    - box_blur_vertical_pass::<T::Subpixel, f32>
    linkageType: ''
    returnType: void
    signature: 'fn box_blur_vertical_pass_strategy<T: Pixel>(src: &[T::Subpixel],src_stride:
      usize,dst: &mut [T::Subpixel],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:312,1
    - Dst: A::create_weight
      Src: /src/image/src/imageops/fast_blur.rs:319,1
    - Dst: '&mut [P]::chunks_exact_mut'
      Src: /src/image/src/imageops/fast_blur.rs:327,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:327,1
    - Dst: '&[P]::chunks_exact'
      Src: /src/image/src/imageops/fast_blur.rs:329,1
    - Dst: A::from_primitive
      Src: /src/image/src/imageops/fast_blur.rs:337,1
    - Dst: Self::scale
      Src: /src/image/src/imageops/fast_blur.rs:337,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:341,1
    - Dst: A::from_primitive
      Src: /src/image/src/imageops/fast_blur.rs:344,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:348,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:349,1
    - Dst: max
      Src: /src/image/src/imageops/fast_blur.rs:350,1
    - Dst: to_store
      Src: /src/image/src/imageops/fast_blur.rs:354,1
    - Dst: A::from_primitive
      Src: /src/image/src/imageops/fast_blur.rs:360,1
    - Dst: A::from_primitive
      Src: /src/image/src/imageops/fast_blur.rs:361,1
    - Dst: saturating_sub
      Src: /src/image/src/imageops/fast_blur.rs:365,1
    - Dst: '&[P]::len'
      Src: /src/image/src/imageops/fast_blur.rs:366,1
    - Dst: as_chunks_mut::<CN>
      Src: /src/image/src/imageops/fast_blur.rs:377,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/fast_blur.rs:377,1
    - Dst: as_chunks::<CN>
      Src: /src/image/src/imageops/fast_blur.rs:378,1
    - Dst: iter
      Src: /src/image/src/imageops/fast_blur.rs:378,1
    - Dst: as_chunks::<CN>
      Src: /src/image/src/imageops/fast_blur.rs:379,1
    - Dst: iter
      Src: /src/image/src/imageops/fast_blur.rs:379,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:380,1
    - Dst: zip
      Src: /src/image/src/imageops/fast_blur.rs:380,1
    - Dst: to_store
      Src: /src/image/src/imageops/fast_blur.rs:385,1
    - Dst: A::from_primitive
      Src: /src/image/src/imageops/fast_blur.rs:388,1
    - Dst: A::from_primitive
      Src: /src/image/src/imageops/fast_blur.rs:389,1
    - Dst: min
      Src: /src/image/src/imageops/fast_blur.rs:397,1
    - Dst: max
      Src: /src/image/src/imageops/fast_blur.rs:398,1
    - Dst: to_store
      Src: /src/image/src/imageops/fast_blur.rs:402,1
    - Dst: A::from_primitive
      Src: /src/image/src/imageops/fast_blur.rs:408,1
    - Dst: A::from_primitive
      Src: /src/image/src/imageops/fast_blur.rs:409,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 235
    argCount: 6
    argNames:
    - src
    - src_stride
    - dst
    - dst_stride
    - width
    - radius
    argTypes:
    - '&[P]'
    - usize
    - '&mut [P]'
    - usize
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 413
      start: 303
    functionDepth: 11
    functionLinenumber: 303
    functionLinenumberEnd: 413
    functionName: box_blur_horizontal_pass
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - iter
    - test_radius_size
    - iter_mut
    - to_store
    - '&mut [P]::chunks_exact_mut'
    - min
    - as_chunks::<CN>
    - zip
    - max
    - '&[P]::chunks_exact'
    - saturating_sub
    - A::from_primitive
    - A::create_weight
    - Self::scale
    - as_chunks_mut::<CN>
    - '&[P]::len'
    linkageType: ''
    returnType: void
    signature: 'fn box_blur_horizontal_pass<P: Primitive, A: BlurAccumulator<P>, const
      CN: usize>(src: &[P],src_stride: usize,dst: &mut [P],dst_stride: usize,width:
      u32,radius: usize,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_radius_size
      Src: /src/image/src/imageops/fast_blur.rs:428,1
    - Dst: A::create_weight
      Src: /src/image/src/imageops/fast_blur.rs:435,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: A::from_primitive
      Src: /src/image/src/imageops/fast_blur.rs:447,1
    - Dst: Self::scale
      Src: /src/image/src/imageops/fast_blur.rs:447,1
    - Dst: Option::min
      Src: /src/image/src/imageops/fast_blur.rs:449,1
    - Dst: A::from_primitive
      Src: /src/image/src/imageops/fast_blur.rs:450,1
    - Dst: '&mut [P]::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: iter_mut
      Src: /src/image/src/imageops/fast_blur.rs:466,1
    - Dst: to_store
      Src: /src/image/src/imageops/fast_blur.rs:469,1
    - Dst: A::from_primitive
      Src: /src/image/src/imageops/fast_blur.rs:470,1
    - Dst: A::from_primitive
      Src: /src/image/src/imageops/fast_blur.rs:470,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 100
    argCount: 8
    argNames:
    - src
    - src_stride
    - dst
    - dst_stride
    - width
    - height
    - radius
    - n
    argTypes:
    - '&[P]'
    - usize
    - '&mut [P]'
    - usize
    - u32
    - u32
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 473
      start: 416
    functionDepth: 11
    functionLinenumber: 416
    functionLinenumberEnd: 473
    functionName: box_blur_vertical_pass
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - iter
    - test_radius_size
    - enumerate
    - iter_mut
    - to_store
    - '&mut [P]::chunks_exact_mut'
    - '&RgbaImage::iter_mut'
    - min
    - zip
    - max
    - Option::min
    - A::from_primitive
    - A::create_weight
    - Self::scale
    linkageType: ''
    returnType: void
    signature: 'fn box_blur_vertical_pass<P: Primitive, A: BlurAccumulator<P>>(src:
      &[P],src_stride: usize,dst: &mut [P],dst_stride: usize,width: u32,height: u32,radius:
      usize,n: usize,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: step_by
      Src: /src/image/src/imageops/fast_blur.rs:482,1
    - Dst: <u32 as BlurAccumulator<u8>>::create_weight
      Src: /src/image/src/imageops/fast_blur.rs:483,1
    - Dst: to_store
      Src: /src/image/src/imageops/fast_blur.rs:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 491
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 491
    functionName: tests::u8_weight_exhaustive_small
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - step_by
    - to_store
    - <u32 as BlurAccumulator<u8>>::create_weight
    linkageType: ''
    returnType: void
    signature: fn u8_weight_exhaustive_small()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: step_by
      Src: /src/image/src/imageops/fast_blur.rs:495,1
    - Dst: <u32 as BlurAccumulator<u8>>::create_weight
      Src: /src/image/src/imageops/fast_blur.rs:496,1
    - Dst: max
      Src: /src/image/src/imageops/fast_blur.rs:498,1
    - Dst: step_by
      Src: /src/image/src/imageops/fast_blur.rs:499,1
    - Dst: to_store
      Src: /src/image/src/imageops/fast_blur.rs:501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 494
    functionDepth: 1
    functionLinenumber: 494
    functionLinenumberEnd: 507
    functionName: tests::u8_weight_sampled_large
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - step_by
    - max
    - to_store
    - <u32 as BlurAccumulator<u8>>::create_weight
    linkageType: ''
    returnType: void
    signature: fn u8_weight_sampled_large()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemTime::now
      Src: /src/image/src/imageops/fast_blur.rs:537,1
    - Dst: duration_since
      Src: /src/image/src/imageops/fast_blur.rs:537,1
    - Dst: unwrap
      Src: /src/image/src/imageops/fast_blur.rs:537,1
    - Dst: Rng::new
      Src: /src/image/src/imageops/fast_blur.rs:538,1
    - Dst: as_millis
      Src: /src/image/src/imageops/fast_blur.rs:538,1
    - Dst: Self::next_u8
      Src: /src/image/src/imageops/fast_blur.rs:540,1
    - Dst: Self::next_u8
      Src: /src/image/src/imageops/fast_blur.rs:541,1
    - Dst: Self::next_f32_in_range
      Src: /src/image/src/imageops/fast_blur.rs:542,1
    - Dst: Self::next_u8
      Src: /src/image/src/imageops/fast_blur.rs:543,1
    - Dst: Self::next_u8
      Src: /src/image/src/imageops/fast_blur.rs:544,1
    - Dst: DynamicImage::from
      Src: /src/image/src/imageops/fast_blur.rs:551,1
    - Dst: GrayImage::from_vec
      Src: /src/image/src/imageops/fast_blur.rs:552,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:552,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:552,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:552,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/fast_blur.rs:554,1
    - Dst: ImageBuffer::as_bytes
      Src: /src/image/src/imageops/fast_blur.rs:555,1
    - Dst: DynamicImage::from
      Src: /src/image/src/imageops/fast_blur.rs:561,1
    - Dst: GrayAlphaImage::from_vec
      Src: /src/image/src/imageops/fast_blur.rs:562,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:562,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:562,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:562,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/fast_blur.rs:564,1
    - Dst: ImageBuffer::as_bytes
      Src: /src/image/src/imageops/fast_blur.rs:565,1
    - Dst: DynamicImage::from
      Src: /src/image/src/imageops/fast_blur.rs:571,1
    - Dst: RgbImage::from_vec
      Src: /src/image/src/imageops/fast_blur.rs:572,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:572,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:572,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:572,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/fast_blur.rs:574,1
    - Dst: ImageBuffer::as_bytes
      Src: /src/image/src/imageops/fast_blur.rs:575,1
    - Dst: DynamicImage::from
      Src: /src/image/src/imageops/fast_blur.rs:581,1
    - Dst: RgbaImage::from_vec
      Src: /src/image/src/imageops/fast_blur.rs:582,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:582,1
    - Dst: u32::from
      Src: /src/image/src/imageops/fast_blur.rs:582,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/fast_blur.rs:582,1
    - Dst: Vec::fast_blur
      Src: /src/image/src/imageops/fast_blur.rs:584,1
    - Dst: ImageBuffer::as_bytes
      Src: /src/image/src/imageops/fast_blur.rs:585,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 592
      start: 536
    functionDepth: 9
    functionLinenumber: 536
    functionLinenumberEnd: 592
    functionName: tests::test_box_blur
    functionSourceFile: /src/image/src/imageops/fast_blur.rs
    functionUses: 0
    functionsReached:
    - SystemTime::now
    - DynamicImage::from
    - u32::from
    - Self::next_f32_in_range
    - as_millis
    - RgbaImage::from_vec
    - unwrap
    - ImageBuffer::as_bytes
    - GrayAlphaImage::from_vec
    - Option::unwrap
    - Vec::fast_blur
    - Self::next_u8
    - Rng::new
    - RgbImage::from_vec
    - duration_since
    - GrayImage::from_vec
    linkageType: ''
    returnType: void
    signature: fn test_box_blur()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::checked_mul
      Src: /src/image/src/imageops/filter_1d.rs:21,1
    - Dst: Ok
      Src: /src/image/src/imageops/filter_1d.rs:22,1
    - Dst: Err
      Src: /src/image/src/imageops/filter_1d.rs:24,1
    - Dst: ImageError::Limits
      Src: /src/image/src/imageops/filter_1d.rs:24,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/imageops/filter_1d.rs:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: usize::safe_mul
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - Err
    - ImageError::Limits
    - usize::checked_mul
    - Ok
    - LimitError::from_kind
    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
    - ImageError::Limits
    - usize::checked_add
    - Ok
    - LimitError::from_kind
    linkageType: ''
    returnType: Result
    signature: 'fn safe_add(&self, rhs: usize) -> Result<usize, ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_chunks::<N>
      Src: /src/image/src/imageops/filter_1d.rs:72,1
    - Dst: max
      Src: /src/image/src/imageops/filter_1d.rs:74,1
    - Dst: safe_add
      Src: /src/image/src/imageops/filter_1d.rs:76,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/filter_1d.rs:76,1
    - Dst: as_chunks_mut::<N>
      Src: /src/image/src/imageops/filter_1d.rs:78,1
    - Dst: copy_from_slice
      Src: /src/image/src/imageops/filter_1d.rs:81,1
    - Dst: fill
      Src: /src/image/src/imageops/filter_1d.rs:83,1
    - Dst: first
      Src: /src/image/src/imageops/filter_1d.rs:83,1
    - Dst: unwrap
      Src: /src/image/src/imageops/filter_1d.rs:83,1
    - Dst: fill
      Src: /src/image/src/imageops/filter_1d.rs:84,1
    - Dst: last
      Src: /src/image/src/imageops/filter_1d.rs:84,1
    - Dst: unwrap
      Src: /src/image/src/imageops/filter_1d.rs:84,1
    - Dst: Ok
      Src: /src/image/src/imageops/filter_1d.rs:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 61
    argCount: 5
    argNames:
    - image
    - row_buffer
    - source_y
    - image_size
    - kernel_size
    argTypes:
    - '&[T]'
    - '&mut [T]'
    - usize
    - FilterImageSize
    - KernelShape
    constantsTouched: []
    func_position:
      end: 87
      start: 60
    functionDepth: 12
    functionLinenumber: 60
    functionLinenumberEnd: 87
    functionName: make_arena_row
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - fill
    - safe_add
    - as_chunks_mut::<N>
    - first
    - Ok
    - as_chunks::<N>
    - max
    - copy_from_slice
    - unwrap
    - last
    - safe_mul
    linkageType: ''
    returnType: Result
    signature: 'fn make_arena_row<T, const N: usize>(image: &[T],row_buffer: &mut
      [T],source_y: usize,image_size: FilterImageSize,kernel_size: KernelShape,) ->
      Result<(), ImageError>whereT: Default + Copy + Send + Sync + ''static,f64: AsPrimitive<T>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/filter_1d.rs:118,1
    - Dst: copy_from_slice
      Src: /src/image/src/imageops/filter_1d.rs:119,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/filter_1d.rs:122,1
    - Dst: copy_from_slice
      Src: /src/image/src/imageops/filter_1d.rs:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 3
    argNames:
    - image
    - image_size
    - kernel_size
    argTypes:
    - '&[T]'
    - FilterImageSize
    - KernelShape
    constantsTouched: []
    func_position:
      end: 130
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 130
    functionName: make_columns_arenas
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - copy_from_slice
    - 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:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    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: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    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:189,1
    - Dst: size_of::<T>
      Src: /src/image/src/imageops/filter_1d.rs:198,1
    - Dst: as_chunks_mut::<32>
      Src: /src/image/src/imageops/filter_1d.rs:199,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:199,1
    - Dst: F::default
      Src: /src/image/src/imageops/filter_1d.rs:200,1
    - Dst: F::default
      Src: /src/image/src/imageops/filter_1d.rs:201,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:206,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:206,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:207,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:207,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:209,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:209,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:210,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:210,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/filter_1d.rs:213,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:213,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:213,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:222,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:222,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:222,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:223,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:223,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:223,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:223,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:226,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:226,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:226,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:227,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:227,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:227,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:227,1
    - Dst: Option::split_at_mut
      Src: /src/image/src/imageops/filter_1d.rs:231,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:233,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:233,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:233,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:234,1
    - Dst: iter
      Src: /src/image/src/imageops/filter_1d.rs:237,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:237,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:237,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:238,1
    - Dst: as_chunks_mut::<32>
      Src: /src/image/src/imageops/filter_1d.rs:244,1
    - Dst: as_chunks_mut::<16>
      Src: /src/image/src/imageops/filter_1d.rs:247,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:247,1
    - Dst: F::default
      Src: /src/image/src/imageops/filter_1d.rs:248,1
    - Dst: u8::iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:252,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:252,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:253,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:253,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/filter_1d.rs:256,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:256,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:256,1
    - Dst: u8::iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:261,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:261,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:261,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:262,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:262,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:262,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:262,1
    - Dst: u8::iter
      Src: /src/image/src/imageops/filter_1d.rs:266,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:266,1
    - Dst: Option::iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:266,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:267,1
    - Dst: as_chunks_mut::<16>
      Src: /src/image/src/imageops/filter_1d.rs:273,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/imageops/filter_1d.rs:275,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:275,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:278,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:278,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:279,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:279,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:280,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:280,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:281,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:281,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/filter_1d.rs:283,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:283,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:283,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:287,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:287,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:287,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:287,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:288,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:288,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:288,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:288,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:289,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:289,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:289,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:289,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:290,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:290,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:290,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:290,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:293,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:294,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:295,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:296,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/imageops/filter_1d.rs:300,1
    - Dst: '&mut [T]::iter_mut'
      Src: /src/image/src/imageops/filter_1d.rs:302,1
    - Dst: zip
      Src: /src/image/src/imageops/filter_1d.rs:302,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:305,1
    - Dst: mul
      Src: /src/image/src/imageops/filter_1d.rs:305,1
    - Dst: f32::iter
      Src: /src/image/src/imageops/filter_1d.rs:307,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:307,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:307,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:311,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:311,1
    - Dst: add
      Src: /src/image/src/imageops/filter_1d.rs:311,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:311,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:314,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: 316
      start: 171
    functionDepth: 11
    functionLinenumber: 171
    functionLinenumberEnd: 316
    functionName: filter_symmetric_column
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - f32::len
    - add
    - as_chunks_mut::<4>
    - mul
    - math::multiply_accumulate
    - as_chunks_mut::<32>
    - iter
    - size_of::<T>
    - '&mut [T]::iter_mut'
    - u8::iter_mut
    - f32::iter
    - as_
    - to_
    - take
    - u8::iter
    - enumerate
    - iter_mut
    - F::default
    - zip
    - Option::iter_mut
    - as_chunks_mut::<16>
    - Option::split_at_mut
    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:337,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/imageops/filter_1d.rs:342,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:344,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:344,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:350,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:351,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:352,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:353,1
    - Dst: '&[F]::iter'
      Src: /src/image/src/imageops/filter_1d.rs:357,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:357,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:357,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:361,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:361,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:361,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:362,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:362,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:362,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:363,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:363,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:363,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:364,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:364,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:364,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:367,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:368,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:369,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:370,1
    - Dst: len
      Src: /src/image/src/imageops/filter_1d.rs:373,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:375,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:375,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:379,1
    - Dst: '&[F]::iter'
      Src: /src/image/src/imageops/filter_1d.rs:381,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:381,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:381,1
    - Dst: math::multiply_accumulate
      Src: /src/image/src/imageops/filter_1d.rs:385,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:385,1
    - Dst: as_
      Src: /src/image/src/imageops/filter_1d.rs:385,1
    - Dst: to_
      Src: /src/image/src/imageops/filter_1d.rs:388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 183
    argCount: 3
    argNames:
    - arena
    - dst_row
    - scanned_kernel
    argTypes:
    - '&[T]'
    - '&mut [T]'
    - '&[F]'
    constantsTouched: []
    func_position:
      end: 390
      start: 323
    functionDepth: 11
    functionLinenumber: 323
    functionLinenumberEnd: 390
    functionName: filter_symmetric_row
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - len
    - take
    - enumerate
    - to_
    - iter_mut
    - as_chunks_mut::<4>
    - '&[F]::iter'
    - '&[F]::len'
    - as_
    - math::multiply_accumulate
    linkageType: ''
    returnType: void
    signature: 'fn filter_symmetric_row<T, F, const N: usize>(arena: &[T], dst_row:
      &mut [T], scanned_kernel: &[F])whereT: Copy + AsPrimitive<F> + Default,F: ToStorage<T>+
      Mul<Output = F>+ MulAdd<F, Output = F>+ Default+ Add<F, Output = F>+ Copy+ ''static,i32:
      AsPrimitive<F>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/image/src/imageops/filter_1d.rs:399,1
    - Dst: max
      Src: /src/image/src/imageops/filter_1d.rs:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - input
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 400
    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: 419
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 419
    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: 413
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 413
    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:427,1
    - Dst: f32::to_vec
      Src: /src/image/src/imageops/filter_1d.rs:428,1
    - Dst: ImageResult::len
      Src: /src/image/src/imageops/filter_1d.rs:429,1
    - Dst: ImageResult::last
      Src: /src/image/src/imageops/filter_1d.rs:430,1
    - Dst: unwrap
      Src: /src/image/src/imageops/filter_1d.rs:430,1
    - Dst: eq
      Src: /src/image/src/imageops/filter_1d.rs:430,1
    - Dst: ImageResult::first
      Src: /src/image/src/imageops/filter_1d.rs:430,1
    - Dst: Option::unwrap
      Src: /src/image/src/imageops/filter_1d.rs:430,1
    - Dst: eq
      Src: /src/image/src/imageops/filter_1d.rs:430,1
    - Dst: ImageResult::remove
      Src: /src/image/src/imageops/filter_1d.rs:432,1
    - Dst: ImageResult::remove
      Src: /src/image/src/imageops/filter_1d.rs:433,1
    - Dst: ImageResult::len
      Src: /src/image/src/imageops/filter_1d.rs:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 1
    argNames:
    - kernel
    argTypes:
    - '&[I]'
    constantsTouched: []
    func_position:
      end: 437
      start: 423
    functionDepth: 11
    functionLinenumber: 423
    functionLinenumberEnd: 437
    functionName: prepare_symmetric_kernel
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 1
    functionsReached:
    - f32::to_vec
    - ImageResult::first
    - unwrap
    - ImageResult::last
    - eq
    - ImageResult::remove
    - as_
    - Option::unwrap
    - ImageResult::len
    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:512,1
    - Dst: max
      Src: /src/image/src/imageops/filter_1d.rs:512,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/filter_1d.rs:514,1
    - Dst: safe_add
      Src: /src/image/src/imageops/filter_1d.rs:514,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/filter_1d.rs:517,1
    - Dst: '&[I]::len'
      Src: /src/image/src/imageops/filter_1d.rs:525,1
    - Dst: make_arena_row::<T, N>
      Src: /src/image/src/imageops/filter_1d.rs:529,1
    - Dst: '&[I]::len'
      Src: /src/image/src/imageops/filter_1d.rs:535,1
    - Dst: filter_symmetric_row::<T, I, N>
      Src: /src/image/src/imageops/filter_1d.rs:541,1
    - Dst: '&RgbaImage::split_at_mut'
      Src: /src/image/src/imageops/filter_1d.rs:544,1
    - Dst: Option::chunks_exact_mut
      Src: /src/image/src/imageops/filter_1d.rs:545,1
    - Dst: take
      Src: /src/image/src/imageops/filter_1d.rs:545,1
    - Dst: copy_from_slice
      Src: /src/image/src/imageops/filter_1d.rs:546,1
    - Dst: Option::min
      Src: /src/image/src/imageops/filter_1d.rs:559,1
    - Dst: make_arena_row::<T, N>
      Src: /src/image/src/imageops/filter_1d.rs:562,1
    - Dst: '&[I]::len'
      Src: /src/image/src/imageops/filter_1d.rs:568,1
    - Dst: filter_symmetric_row::<T, I, N>
      Src: /src/image/src/imageops/filter_1d.rs:573,1
    - Dst: iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:583,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:583,1
    - Dst: filter_symmetric_column::<T, I>
      Src: /src/image/src/imageops/filter_1d.rs:592,1
    - Dst: Ok
      Src: /src/image/src/imageops/filter_1d.rs:599,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 116
    argCount: 5
    argNames:
    - image
    - destination
    - image_size
    - row_kernel
    - column_kernel
    argTypes:
    - '&[T]'
    - '&mut [T]'
    - FilterImageSize
    - '&[I]'
    - '&[I]'
    constantsTouched: []
    func_position:
      end: 600
      start: 490
    functionDepth: 11
    functionLinenumber: 490
    functionLinenumberEnd: 600
    functionName: filter_2d_separable_ring_queue
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::split_at_mut'
    - take
    - enumerate
    - safe_add
    - Ok
    - iter_mut
    - filter_symmetric_column::<T, I>
    - make_arena_row::<T, N>
    - Option::chunks_exact_mut
    - max
    - copy_from_slice
    - filter_symmetric_row::<T, I, N>
    - Option::min
    - '&[I]::len'
    - safe_mul
    linkageType: ''
    returnType: Result
    signature: 'fn filter_2d_separable_ring_queue<T, I, const N: usize>(image: &[T],destination:
      &mut [T],image_size: FilterImageSize,row_kernel: &[I],column_kernel: &[I],)
      -> Result<(), ImageError>whereT: Copy + Default + Send + Sync + AsPrimitive<I>,I:
      ToStorage<T>+ Mul<I, Output = I>+ Add<I, Output = I>+ MulAdd<I, Output = I>+
      Send+ Sync+ PartialEq+ Default+ ''static+ Copy,i32: AsPrimitive<I>,f64: AsPrimitive<T>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::len
      Src: /src/image/src/imageops/filter_1d.rs:638,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/filter_1d.rs:638,1
    - Dst: safe_mul
      Src: /src/image/src/imageops/filter_1d.rs:638,1
    - Dst: Err
      Src: /src/image/src/imageops/filter_1d.rs:639,1
    - Dst: ImageError::Limits
      Src: /src/image/src/imageops/filter_1d.rs:639,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/imageops/filter_1d.rs:639,1
    - Dst: '&mut [T]::len'
      Src: /src/image/src/imageops/filter_1d.rs:643,1
    - Dst: Vec::len
      Src: /src/image/src/imageops/filter_1d.rs:643,1
    - Dst: Err
      Src: /src/image/src/imageops/filter_1d.rs:644,1
    - Dst: ImageError::Limits
      Src: /src/image/src/imageops/filter_1d.rs:644,1
    - Dst: LimitError::from_kind
      Src: /src/image/src/imageops/filter_1d.rs:644,1
    - Dst: '&[F]::iter'
      Src: /src/image/src/imageops/filter_1d.rs:656,1
    - Dst: map
      Src: /src/image/src/imageops/filter_1d.rs:656,1
    - Dst: T::transform
      Src: /src/image/src/imageops/filter_1d.rs:658,1
    - Dst: "iter()\n        .map(|&x| T::transform(x))\n        .collect::<Vec<I>>"
      Src: /src/image/src/imageops/filter_1d.rs:656,1
    - Dst: '&[F]::iter'
      Src: /src/image/src/imageops/filter_1d.rs:660,1
    - Dst: map
      Src: /src/image/src/imageops/filter_1d.rs:660,1
    - Dst: T::transform
      Src: /src/image/src/imageops/filter_1d.rs:662,1
    - Dst: "iter()\n        .map(|&x| T::transform(x))\n        .collect::<Vec<I>>"
      Src: /src/image/src/imageops/filter_1d.rs:660,1
    - Dst: prepare_symmetric_kernel
      Src: /src/image/src/imageops/filter_1d.rs:665,1
    - Dst: prepare_symmetric_kernel
      Src: /src/image/src/imageops/filter_1d.rs:666,1
    - Dst: is_empty
      Src: /src/image/src/imageops/filter_1d.rs:668,1
    - Dst: is_empty
      Src: /src/image/src/imageops/filter_1d.rs:668,1
    - Dst: '&mut [T]::copy_from_slice'
      Src: /src/image/src/imageops/filter_1d.rs:669,1
    - Dst: Ok
      Src: /src/image/src/imageops/filter_1d.rs:670,1
    - Dst: '&[F]::len'
      Src: /src/image/src/imageops/filter_1d.rs:673,1
    - Dst: filter_2d_separable_ring_queue::<T, I, N>
      Src: /src/image/src/imageops/filter_1d.rs:674,1
    - Dst: len
      Src: /src/image/src/imageops/filter_1d.rs:683,1
    - Dst: max
      Src: /src/image/src/imageops/filter_1d.rs:683,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/imageops/filter_1d.rs:690,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:690,1
    - Dst: make_arena_row::<T, N>
      Src: /src/image/src/imageops/filter_1d.rs:701,1
    - Dst: len
      Src: /src/image/src/imageops/filter_1d.rs:707,1
    - Dst: filter_symmetric_row::<T, I, N>
      Src: /src/image/src/imageops/filter_1d.rs:712,1
    - Dst: len
      Src: /src/image/src/imageops/filter_1d.rs:717,1
    - Dst: make_columns_arenas::<T, N>
      Src: /src/image/src/imageops/filter_1d.rs:728,1
    - Dst: as_slice
      Src: /src/image/src/imageops/filter_1d.rs:728,1
    - Dst: as_slice
      Src: /src/image/src/imageops/filter_1d.rs:730,1
    - Dst: as_slice
      Src: /src/image/src/imageops/filter_1d.rs:731,1
    - Dst: as_slice
      Src: /src/image/src/imageops/filter_1d.rs:735,1
    - Dst: '&mut [T]::chunks_exact_mut'
      Src: /src/image/src/imageops/filter_1d.rs:739,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:739,1
    - Dst: u32::iter_mut
      Src: /src/image/src/imageops/filter_1d.rs:745,1
    - Dst: enumerate
      Src: /src/image/src/imageops/filter_1d.rs:745,1
    - Dst: filter_symmetric_column::<T, I>
      Src: /src/image/src/imageops/filter_1d.rs:757,1
    - Dst: Ok
      Src: /src/image/src/imageops/filter_1d.rs:760,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 203
    argCount: 5
    argNames:
    - image
    - destination
    - image_size
    - row_kernel
    - column_kernel
    argTypes:
    - '&[T]'
    - '&mut [T]'
    - FilterImageSize
    - '&[F]'
    - '&[F]'
    constantsTouched: []
    func_position:
      end: 761
      start: 615
    functionDepth: 11
    functionLinenumber: 615
    functionLinenumberEnd: 761
    functionName: filter_2d_separable
    functionSourceFile: /src/image/src/imageops/filter_1d.rs
    functionUses: 0
    functionsReached:
    - Err
    - LimitError::from_kind
    - as_slice
    - filter_symmetric_column::<T, I>
    - '&[F]::len'
    - len
    - T::transform
    - "iter()\n        .map(|&x| T::transform(x))\n        .collect::<Vec<I>>"
    - prepare_symmetric_kernel
    - '&mut [T]::len'
    - chunks_exact_mut
    - safe_mul
    - is_empty
    - map
    - '&mut [T]::chunks_exact_mut'
    - make_arena_row::<T, N>
    - filter_symmetric_row::<T, I, N>
    - ImageError::Limits
    - enumerate
    - Ok
    - Vec::len
    - max
    - '&[F]::iter'
    - '&mut [T]::copy_from_slice'
    - u32::iter_mut
    - make_columns_arenas::<T, N>
    - filter_2d_separable_ring_queue::<T, I, N>
    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:770,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: 777
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 777
    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:786,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: 793
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 793
    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:802,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: 809
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 809
    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:818,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: 825
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 825
    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:834,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: 841
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 841
    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:850,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: 857
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 857
    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:866,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: 873
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 873
    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:882,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: 889
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 889
    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:898,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: 905
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 905
    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:914,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: 921
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 921
    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:930,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: 937
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 937
    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:946,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: 953
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 953
    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: enumerate
      Src: /src/image/src/images/buffer_par.rs:32,1
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:32,1
    - Dst: drive_unindexed
      Src: /src/image/src/images/buffer_par.rs:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - consumer
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 42
      start: 28
    functionDepth: 7
    functionLinenumber: 28
    functionLinenumberEnd: 42
    functionName: EnumeratePixelsPar::drive_unindexed
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - map
    - enumerate
    - drive_unindexed
    linkageType: ''
    returnType: C::Result
    signature: 'fn drive_unindexed<C>(self, consumer: C) -> C::ResultwhereC: UnindexedConsumer<Self::Item>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/buffer_par.rs:45,1
    - Dst: EnumeratePixelsPar::len
      Src: /src/image/src/images/buffer_par.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: 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:55,1
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:55,1
    - Dst: drive
      Src: /src/image/src/images/buffer_par.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - consumer
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 7
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: EnumeratePixelsPar::drive
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - map
    - drive
    - enumerate
    linkageType: ''
    returnType: C::Result
    signature: 'fn drive<C: Consumer<Self::Item>>(self, consumer: C) -> C::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer_par.rs:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 11
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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:72,1
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:72,1
    - Dst: with_producer
      Src: /src/image/src/images/buffer_par.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - callback
    argTypes:
    - CB
    constantsTouched: []
    func_position:
      end: 82
      start: 71
    functionDepth: 7
    functionLinenumber: 71
    functionLinenumberEnd: 82
    functionName: EnumeratePixelsPar::with_producer
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - with_producer
    - map
    - enumerate
    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:91,1
    - Dst: field
      Src: /src/image/src/images/buffer_par.rs:91,1
    - Dst: field
      Src: /src/image/src/images/buffer_par.rs:91,1
    - Dst: finish
      Src: /src/image/src/images/buffer_par.rs:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 95
    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:119,1
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:119,1
    - Dst: drive_unindexed
      Src: /src/image/src/images/buffer_par.rs:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - consumer
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 129
      start: 115
    functionDepth: 7
    functionLinenumber: 115
    functionLinenumberEnd: 129
    functionName: EnumeratePixelsMutPar::drive_unindexed
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - map
    - enumerate
    - drive_unindexed
    linkageType: ''
    returnType: C::Result
    signature: 'fn drive_unindexed<C>(self, consumer: C) -> C::ResultwhereC: UnindexedConsumer<Self::Item>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/buffer_par.rs:132,1
    - Dst: EnumeratePixelsMutPar::len
      Src: /src/image/src/images/buffer_par.rs:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 12
    functionLinenumber: 131
    functionLinenumberEnd: 133
    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:142,1
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:142,1
    - Dst: drive
      Src: /src/image/src/images/buffer_par.rs:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - consumer
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 152
      start: 141
    functionDepth: 7
    functionLinenumber: 141
    functionLinenumberEnd: 152
    functionName: EnumeratePixelsMutPar::drive
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - map
    - drive
    - enumerate
    linkageType: ''
    returnType: C::Result
    signature: 'fn drive<C: Consumer<Self::Item>>(self, consumer: C) -> C::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer_par.rs:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 11
    functionLinenumber: 154
    functionLinenumberEnd: 156
    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:159,1
    - Dst: map
      Src: /src/image/src/images/buffer_par.rs:159,1
    - Dst: with_producer
      Src: /src/image/src/images/buffer_par.rs:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - callback
    argTypes:
    - CB
    constantsTouched: []
    func_position:
      end: 169
      start: 158
    functionDepth: 7
    functionLinenumber: 158
    functionLinenumberEnd: 169
    functionName: EnumeratePixelsMutPar::with_producer
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - with_producer
    - map
    - enumerate
    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:178,1
    - Dst: field
      Src: /src/image/src/images/buffer_par.rs:178,1
    - Dst: field
      Src: /src/image/src/images/buffer_par.rs:178,1
    - Dst: finish
      Src: /src/image/src/images/buffer_par.rs:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 182
    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::pixels
      Src: /src/image/src/images/buffer_par.rs:197,1
    - Dst: '&[P]::par_iter'
      Src: /src/image/src/images/buffer_par.rs:197,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer_par.rs:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: ImageBuffer::par_enumerate_pixels
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - '&[P]::par_iter'
    - ImageBuffer::pixels
    - ImageBuffer::width
    linkageType: ''
    returnType: EnumeratePixelsPar
    signature: pub fn par_enumerate_pixels(&self) -> EnumeratePixelsPar<'_, P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer_par.rs:214,1
    - Dst: ImageBuffer::pixels_mut
      Src: /src/image/src/images/buffer_par.rs:216,1
    - Dst: '&mut [P]::par_iter_mut'
      Src: /src/image/src/images/buffer_par.rs:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 219
    functionName: ImageBuffer::par_enumerate_pixels_mut
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - '&mut [P]::par_iter_mut'
    - ImageBuffer::width
    - ImageBuffer::pixels_mut
    linkageType: ''
    returnType: EnumeratePixelsMutPar
    signature: pub fn par_enumerate_pixels_mut(&mut self) -> EnumeratePixelsMutPar<'_,
      P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer_par.rs:239,1
    - Dst: std::io::Result::par_enumerate_pixels_mut
      Src: /src/image/src/images/buffer_par.rs:240,1
    - Dst: EnumeratePixelsMutPar::for_each
      Src: /src/image/src/images/buffer_par.rs:240,1
    - Dst: f
      Src: /src/image/src/images/buffer_par.rs:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 3
    argNames:
    - width
    - height
    - f
    argTypes:
    - u32
    - u32
    - F
    constantsTouched: []
    func_position:
      end: 245
      start: 235
    functionDepth: 13
    functionLinenumber: 235
    functionLinenumberEnd: 245
    functionName: ImageBuffer::from_par_fn
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - f
    - std::io::Result::par_enumerate_pixels_mut
    - ImageBuffer::new
    - EnumeratePixelsMutPar::for_each
    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:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - width
    - height
    - len
    argTypes:
    - u32
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 260
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 260
    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:1905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1904
    functionDepth: 2
    functionLinenumber: 1904
    functionLinenumberEnd: 1911
    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:1915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1914
    functionDepth: 2
    functionLinenumber: 1914
    functionLinenumberEnd: 1921
    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:1925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1924
    functionDepth: 2
    functionLinenumber: 1924
    functionLinenumberEnd: 1931
    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:279,1
    - Dst: Rgb
      Src: /src/image/src/images/buffer_par.rs:280,1
    - Dst: std::array::from_fn
      Src: /src/image/src/images/buffer_par.rs:280,1
    - Dst: ImageBuffer::clone
      Src: /src/image/src/images/buffer_par.rs:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 278
    functionDepth: 14
    functionLinenumber: 278
    functionLinenumberEnd: 294
    functionName: test::iter_parity
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - Rgb
    - ImageBuffer::clone
    - RgbImage::from_fn
    - std::array::from_fn
    linkageType: ''
    returnType: void
    signature: fn iter_parity()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/images/buffer_par.rs:307,1
    - Dst: RgbImage::from_fn
      Src: /src/image/src/images/buffer_par.rs:308,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer_par.rs:308,1
    - Dst: pixel_func
      Src: /src/image/src/images/buffer_par.rs:308,1
    - Dst: Option::as_raw
      Src: /src/image/src/images/buffer_par.rs:310,1
    - Dst: '&Container::len'
      Src: /src/image/src/images/buffer_par.rs:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 314
      start: 305
    functionDepth: 12
    functionLinenumber: 305
    functionLinenumberEnd: 314
    functionName: benchmarks::creation
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - iter
    - RgbImage::from_fn
    - test::black_box
    - Option::as_raw
    - '&Container::len'
    - pixel_func
    linkageType: ''
    returnType: void
    signature: 'fn creation(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/image/src/images/buffer_par.rs:319,1
    - Dst: RgbImage::from_par_fn
      Src: /src/image/src/images/buffer_par.rs:320,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer_par.rs:320,1
    - Dst: pixel_func
      Src: /src/image/src/images/buffer_par.rs:320,1
    - Dst: Option::as_raw
      Src: /src/image/src/images/buffer_par.rs:322,1
    - Dst: '&Container::len'
      Src: /src/image/src/images/buffer_par.rs:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 326
      start: 317
    functionDepth: 12
    functionLinenumber: 317
    functionLinenumberEnd: 326
    functionName: benchmarks::creation_par
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - iter
    - RgbImage::from_par_fn
    - test::black_box
    - Option::as_raw
    - '&Container::len'
    - pixel_func
    linkageType: ''
    returnType: void
    signature: 'fn creation_par(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rgb
      Src: /src/image/src/images/buffer_par.rs:331,1
    - Dst: std::array::from_fn
      Src: /src/image/src/images/buffer_par.rs:331,1
    - Dst: RandomState::new
      Src: /src/image/src/images/buffer_par.rs:332,1
    - Dst: Self::build_hasher
      Src: /src/image/src/images/buffer_par.rs:332,1
    - Dst: finish
      Src: /src/image/src/images/buffer_par.rs:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: benchmarks::pixel_func
    functionSourceFile: /src/image/src/images/buffer_par.rs
    functionUses: 0
    functionsReached:
    - Self::build_hasher
    - RandomState::new
    - finish
    - Rgb
    - std::array::from_fn
    linkageType: ''
    returnType: Rgb
    signature: fn pixel_func() -> Rgb<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericImageView::dimensions
      Src: /src/image/src/images/generic_image.rs:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    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: 1
    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: 1
    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: 1
    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: 5
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: GenericImageView::view
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 3
    functionsReached:
    - SubImage::new
    - ImageBuffer::assert_in_bounds_of
    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: 5
    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: 3
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: GenericImageView::buffer_like
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - GenericImageView::buffer_with_dimensions
    - GenericImageView::dimensions
    linkageType: ''
    returnType: ImageBuffer
    signature: fn buffer_like(&self) -> ImageBuffer<Self::Pixel, Vec<<Self::Pixel
      as Pixel>::Subpixel>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/generic_image.rs: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: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    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: get_pixel
      Src: /src/image/src/images/generic_image.rs:168,1
    - Dst: Some
      Src: /src/image/src/images/generic_image.rs:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 175
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 175
    functionName: Pixels::next
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - get_pixel
    - Some
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<(u32, u32, I::Pixel)>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: Pixels::clone
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericImage::put_pixel
      Src: /src/image/src/images/generic_image.rs:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - Self::Pixel
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 203
    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:225,1
    - Dst: GenericImage::copy_from_samples
      Src: /src/image/src/images/generic_image.rs:226,1
    - Dst: GenericImage::to_pixel_view_mut
      Src: /src/image/src/images/generic_image.rs:239,1
    - Dst: SubImage::inner_copy_from
      Src: /src/image/src/images/generic_image.rs:240,1
    - Dst: Rect::from_image_at
      Src: /src/image/src/images/generic_image.rs:245,1
    - Dst: Self::test_in_bounds_of
      Src: /src/image/src/images/generic_image.rs:245,1
    - Dst: '&O::height'
      Src: /src/image/src/images/generic_image.rs:247,1
    - Dst: '&O::width'
      Src: /src/image/src/images/generic_image.rs:248,1
    - Dst: '&O::get_pixel'
      Src: /src/image/src/images/generic_image.rs:249,1
    - Dst: GenericImage::put_pixel
      Src: /src/image/src/images/generic_image.rs:250,1
    - Dst: Ok
      Src: /src/image/src/images/generic_image.rs:254,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 3
    argNames:
    - other
    - x
    - y
    argTypes:
    - '&O'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 255
      start: 219
    functionDepth: 12
    functionLinenumber: 219
    functionLinenumberEnd: 255
    functionName: GenericImage::copy_from
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - SubImage::inner_copy_from
    - '&O::get_pixel'
    - '&O::width'
    - Ok
    - '&O::to_pixel_view'
    - GenericImage::to_pixel_view_mut
    - GenericImage::put_pixel
    - '&O::height'
    - Self::test_in_bounds_of
    - GenericImage::copy_from_samples
    - Rect::from_image_at
    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:266,1
    - Dst: Self::test_in_bounds_of
      Src: /src/image/src/images/generic_image.rs:266,1
    - Dst: ImageResult::height
      Src: /src/image/src/images/generic_image.rs:268,1
    - Dst: ImageResult::width
      Src: /src/image/src/images/generic_image.rs:269,1
    - Dst: ImageResult::get_pixel
      Src: /src/image/src/images/generic_image.rs:270,1
    - Dst: GenericImage::put_pixel
      Src: /src/image/src/images/generic_image.rs:271,1
    - Dst: Ok
      Src: /src/image/src/images/generic_image.rs:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - samples
    - x
    - y
    argTypes:
    - ViewOfPixel<'_, Self::Pixel>
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 276
      start: 258
    functionDepth: 5
    functionLinenumber: 258
    functionLinenumberEnd: 276
    functionName: GenericImage::copy_from_samples
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 1
    functionsReached:
    - Ok
    - ImageResult::height
    - GenericImage::put_pixel
    - ImageResult::get_pixel
    - ImageResult::width
    - Self::test_in_bounds_of
    - Rect::from_image_at
    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:296,1
    - Dst: u32::max
      Src: /src/image/src/images/generic_image.rs:296,1
    - Dst: GenericImage::height
      Src: /src/image/src/images/generic_image.rs:296,1
    - Dst: ImageError::max
      Src: /src/image/src/images/generic_image.rs:296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - source
    - x
    - y
    argTypes:
    - Rect
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 323
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 323
    functionName: GenericImage::copy_within
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - u32::max
    - GenericImage::width
    - GenericImage::height
    - ImageError::max
    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:332,1
    - Dst: SubImage::new
      Src: /src/image/src/images/generic_image.rs:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - rect
    argTypes:
    - Rect
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 5
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: GenericImage::sub_image
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - SubImage::new
    - ImageBuffer::assert_in_bounds_of
    linkageType: ''
    returnType: SubImage
    signature: 'fn sub_image(&mut self, rect: Rect) -> SubImage<&mut Self>whereSelf:
      Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 350
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 350
    functionName: GenericImage::to_pixel_view_mut
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: fn to_pixel_view_mut(&mut self) -> Option<ViewMutOfPixel<'_, Self::Pixel>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/generic_image.rs:363,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:364,1
    - Dst: put_pixel
      Src: /src/image/src/images/generic_image.rs:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 367
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 367
    functionName: tests::test_image_put_pixel
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - put_pixel
    - ImageBuffer::new
    linkageType: ''
    returnType: void
    signature: fn test_image_put_pixel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/generic_image.rs:371,1
    - Dst: put_pixel
      Src: /src/image/src/images/generic_image.rs:372,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 382
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 382
    functionName: tests::test_in_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - put_pixel
    - ImageBuffer::new
    linkageType: ''
    returnType: void
    signature: fn test_in_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/generic_image.rs:386,1
    - Dst: Option::put_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::clone
      Src: /src/image/src/images/generic_image.rs:390,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:393,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:393,1
    - Dst: SubImage::to_image
      Src: /src/image/src/images/generic_image.rs:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 396
      start: 385
    functionDepth: 9
    functionLinenumber: 385
    functionLinenumberEnd: 396
    functionName: tests::test_can_subimage_clone_nonmut
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - SubImage::to_image
    - ImageBuffer::new
    - Option::put_pixel
    - Rect::from_xy_ranges
    - Option::view
    - Option::clone
    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:400,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:400,1
    - Dst: Option::sub_image
      Src: /src/image/src/images/generic_image.rs:403,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:403,1
    - Dst: SubImage::sub_image
      Src: /src/image/src/images/generic_image.rs:404,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:404,1
    - Dst: SubImage::put_pixel
      Src: /src/image/src/images/generic_image.rs:405,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:405,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:410,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:410,1
    - Dst: SubImage::view
      Src: /src/image/src/images/generic_image.rs:413,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 415
      start: 399
    functionDepth: 7
    functionLinenumber: 399
    functionLinenumberEnd: 415
    functionName: tests::test_can_nest_views
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - SubImage::put_pixel
    - SubImage::sub_image
    - Rect::from_xy_ranges
    - SubImage::view
    - Option::sub_image
    - Option::view
    - ImageBuffer::from_pixel
    linkageType: ''
    returnType: void
    signature: fn test_can_nest_views()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/generic_image.rs:420,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:420,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:421,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 422
      start: 419
    functionDepth: 7
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: tests::test_view_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::from_pixel
    - Rect::from_xy_ranges
    - Option::view
    linkageType: ''
    returnType: void
    signature: fn test_view_out_of_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/generic_image.rs:427,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:427,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:428,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 7
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: tests::test_view_coordinates_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::from_pixel
    - Rect::from_xy_ranges
    - Option::view
    linkageType: ''
    returnType: void
    signature: fn test_view_coordinates_out_of_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/generic_image.rs:434,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:434,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:435,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 7
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: tests::test_view_width_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::from_pixel
    - Rect::from_xy_ranges
    - Option::view
    linkageType: ''
    returnType: void
    signature: fn test_view_width_out_of_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/generic_image.rs:441,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:441,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:442,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 443
      start: 440
    functionDepth: 7
    functionLinenumber: 440
    functionLinenumberEnd: 443
    functionName: tests::test_view_height_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::from_pixel
    - Rect::from_xy_ranges
    - Option::view
    linkageType: ''
    returnType: void
    signature: fn test_view_height_out_of_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/generic_image.rs:448,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:448,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:449,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 447
    functionDepth: 7
    functionLinenumber: 447
    functionLinenumberEnd: 450
    functionName: tests::test_view_x_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::from_pixel
    - Rect::from_xy_ranges
    - Option::view
    linkageType: ''
    returnType: void
    signature: fn test_view_x_out_of_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/generic_image.rs:455,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:455,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:456,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 457
      start: 454
    functionDepth: 7
    functionLinenumber: 454
    functionLinenumberEnd: 457
    functionName: tests::test_view_y_out_of_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::from_pixel
    - Rect::from_xy_ranges
    - Option::view
    linkageType: ''
    returnType: void
    signature: fn test_view_y_out_of_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/generic_image.rs:461,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:461,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:462,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:462,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:463,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:463,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:464,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 7
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: tests::test_view_in_bounds
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - ImageBuffer::from_pixel
    - Rect::from_xy_ranges
    - Option::view
    linkageType: ''
    returnType: void
    signature: fn test_view_in_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/generic_image.rs:469,1
    - Dst: Rgba
      Src: /src/image/src/images/generic_image.rs:469,1
    - Dst: Option::view
      Src: /src/image/src/images/generic_image.rs:470,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/generic_image.rs:470,1
    - Dst: SubImage::to_image
      Src: /src/image/src/images/generic_image.rs:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 473
      start: 468
    functionDepth: 9
    functionLinenumber: 468
    functionLinenumberEnd: 473
    functionName: tests::test_copy_sub_image
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - SubImage::to_image
    - Rect::from_xy_ranges
    - Option::view
    - ImageBuffer::from_pixel
    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:477,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 499
      start: 476
    functionDepth: 3
    functionLinenumber: 476
    functionLinenumberEnd: 499
    functionName: tests::test_generic_image_copy_within_oob
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_generic_image_copy_within_oob()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/generic_image.rs: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_tl
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Vec::from
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_generic_image_copy_within_tl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/generic_image.rs:516,1
    - Dst: Vec::from
      Src: /src/image/src/images/generic_image.rs:516,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 521
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 521
    functionName: tests::test_generic_image_copy_within_tr
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Vec::from
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_generic_image_copy_within_tr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/generic_image.rs:527,1
    - Dst: Vec::from
      Src: /src/image/src/images/generic_image.rs:527,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 532
      start: 524
    functionDepth: 3
    functionLinenumber: 524
    functionLinenumberEnd: 532
    functionName: tests::test_generic_image_copy_within_bl
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Vec::from
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_generic_image_copy_within_bl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/generic_image.rs:538,1
    - Dst: Vec::from
      Src: /src/image/src/images/generic_image.rs:538,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/generic_image.rs:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 543
      start: 535
    functionDepth: 3
    functionLinenumber: 535
    functionLinenumberEnd: 543
    functionName: tests::test_generic_image_copy_within_br
    functionSourceFile: /src/image/src/images/generic_image.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Vec::from
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_generic_image_copy_within_br()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 135
    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: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    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: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: clone_from
      Src: /src/image/src/images/dynimage.rs:153,1
    - Dst: Option::clone
      Src: /src/image/src/images/dynimage.rs:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - source
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 156
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 156
    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:168,1
    - Dst: Self::new_luma_a8
      Src: /src/image/src/images/dynimage.rs:169,1
    - Dst: Self::new_rgb8
      Src: /src/image/src/images/dynimage.rs:170,1
    - Dst: Self::new_rgba8
      Src: /src/image/src/images/dynimage.rs:171,1
    - Dst: Self::new_luma16
      Src: /src/image/src/images/dynimage.rs:172,1
    - Dst: Self::new_luma_a16
      Src: /src/image/src/images/dynimage.rs:173,1
    - Dst: Self::new_rgb16
      Src: /src/image/src/images/dynimage.rs:174,1
    - Dst: Self::new_rgba16
      Src: /src/image/src/images/dynimage.rs:175,1
    - Dst: Self::new_rgb32f
      Src: /src/image/src/images/dynimage.rs:176,1
    - Dst: Self::new_rgba32f
      Src: /src/image/src/images/dynimage.rs:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - w
    - h
    - color
    argTypes:
    - u32
    - u32
    - color::ColorType
    constantsTouched: []
    func_position:
      end: 179
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 179
    functionName: DynamicImage::new
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 17
    functionsReached:
    - Self::new_rgba8
    - Self::new_luma_a8
    - Self::new_luma16
    - Self::new_luma8
    - Self::new_rgb32f
    - Self::new_rgba32f
    - Self::new_rgb16
    - Self::new_luma_a16
    - Self::new_rgb8
    - 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:184,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: DynamicImage::new_luma8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 6
    functionsReached:
    - DynamicImage::ImageLuma8
    - ImageBuffer::new
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_luma8(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/src/images/dynimage.rs:191,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 192
    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:197,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: DynamicImage::new_rgb8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - DynamicImage::ImageRgb8
    - ImageBuffer::new
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_rgb8(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageRgba8
      Src: /src/image/src/images/dynimage.rs:203,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 204
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 204
    functionName: DynamicImage::new_rgba8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - DynamicImage::ImageRgba8
    - ImageBuffer::new
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_rgba8(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageLuma16
      Src: /src/image/src/images/dynimage.rs:209,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: DynamicImage::new_luma16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 3
    functionsReached:
    - DynamicImage::ImageLuma16
    - ImageBuffer::new
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_luma16(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageLumaA16
      Src: /src/image/src/images/dynimage.rs:216,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: DynamicImage::new_luma_a16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - DynamicImage::ImageLumaA16
    - ImageBuffer::new
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_luma_a16(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageRgb16
      Src: /src/image/src/images/dynimage.rs:222,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 223
    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:228,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: DynamicImage::new_rgba16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - DynamicImage::ImageRgba16
    - ImageBuffer::new
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_rgba16(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageRgb32F
      Src: /src/image/src/images/dynimage.rs:234,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 235
    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:240,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - w
    - h
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: DynamicImage::new_rgba32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - DynamicImage::ImageRgba32F
    - ImageBuffer::new
    linkageType: ''
    returnType: DynamicImage
    signature: 'pub fn new_rgba32f(w: u32, h: u32) -> DynamicImage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::new_luma8
      Src: /src/image/src/images/dynimage.rs:245,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/src/images/dynimage.rs:246,1
    - Dst: Vec::decode_raw
      Src: /src/image/src/images/dynimage.rs:247,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - decoder
    argTypes:
    - impl ImageDecoder
    constantsTouched: []
    func_position:
      end: 249
      start: 244
    functionDepth: 9
    functionLinenumber: 244
    functionLinenumberEnd: 249
    functionName: DynamicImage::from_decoder
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 6
    functionsReached:
    - Ok
    - ImageResult::prepare_image
    - Vec::decode_raw
    - DynamicImage::new_luma8
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn from_decoder(mut decoder: impl ImageDecoder) -> ImageResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: decoder_to_image
      Src: /src/image/src/images/dynimage.rs:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - decoder
    - layout
    argTypes:
    - '&mut dyn ImageDecoder'
    - DecoderPreparedImage
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 8
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: DynamicImage::decode_raw
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - decoder_to_image
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn decode_raw(&mut self,decoder: &mut dyn ImageDecoder,layout:
      DecoderPreparedImage,) -> ImageResult<DecodedImageAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 286
    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:292,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: DynamicImage::to_rgb8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: RgbImage
    signature: pub fn to_rgb8(&self) -> RgbImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:301,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: DynamicImage::to_rgb16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: Rgb16Image
    signature: pub fn to_rgb16(&self) -> Rgb16Image
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:310,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 313
    functionName: DynamicImage::to_rgb32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: Rgb32FImage
    signature: pub fn to_rgb32f(&self) -> Rgb32FImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:319,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 322
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 322
    functionName: DynamicImage::to_rgba8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: RgbaImage
    signature: pub fn to_rgba8(&self) -> RgbaImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:328,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 331
    functionName: DynamicImage::to_rgba16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: Rgba16Image
    signature: pub fn to_rgba16(&self) -> Rgba16Image
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:337,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 340
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 340
    functionName: DynamicImage::to_rgba32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: Rgba32FImage
    signature: pub fn to_rgba32f(&self) -> Rgba32FImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:346,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 349
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 349
    functionName: DynamicImage::to_luma8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: GrayImage
    signature: pub fn to_luma8(&self) -> GrayImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:355,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 358
    functionName: DynamicImage::to_luma16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: Gray16Image
    signature: pub fn to_luma16(&self) -> Gray16Image
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 364
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 364
    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:370,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 373
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 373
    functionName: DynamicImage::to_luma_alpha8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: GrayAlphaImage
    signature: pub fn to_luma_alpha8(&self) -> GrayAlphaImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/dynimage.rs:379,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 382
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 382
    functionName: DynamicImage::to_luma_alpha16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - dynamic_map
    - clone
    linkageType: ''
    returnType: GrayAlpha16Image
    signature: pub fn to_luma_alpha16(&self) -> GrayAlpha16Image
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 388
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 388
    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:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 400
      start: 395
    functionDepth: 6
    functionLinenumber: 395
    functionLinenumberEnd: 400
    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:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 412
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 412
    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:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 424
      start: 419
    functionDepth: 3
    functionLinenumber: 419
    functionLinenumberEnd: 424
    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:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 436
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 436
    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:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 448
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 448
    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:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 460
    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:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 472
      start: 467
    functionDepth: 3
    functionLinenumber: 467
    functionLinenumberEnd: 472
    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:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 484
      start: 479
    functionDepth: 3
    functionLinenumber: 479
    functionLinenumberEnd: 484
    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:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 496
      start: 491
    functionDepth: 3
    functionLinenumber: 491
    functionLinenumberEnd: 496
    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:506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 508
      start: 503
    functionDepth: 3
    functionLinenumber: 503
    functionLinenumberEnd: 508
    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: 514
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 514
    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: 523
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 523
    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:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 532
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 532
    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:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 540
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 540
    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:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 549
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 549
    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:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 557
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 557
    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:563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 566
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 566
    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:571,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 574
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 574
    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:580,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 583
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 583
    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:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 591
    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:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 600
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 600
    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:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 608
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 608
    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:614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 617
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 617
    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:622,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 625
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 625
    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:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 634
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 634
    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:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 642
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 642
    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:648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 651
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 651
    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:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 659
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 659
    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:665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 668
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 668
    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:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 676
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 676
    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:682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 685
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 685
    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:690,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 693
      start: 688
    functionDepth: 0
    functionLinenumber: 688
    functionLinenumberEnd: 693
    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: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
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:702,1
    - Dst: Result::as_flat_samples
      Src: /src/image/src/images/dynimage.rs:702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 705
      start: 697
    functionDepth: 3
    functionLinenumber: 697
    functionLinenumberEnd: 705
    functionName: DynamicImage::as_flat_samples_u8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    - Result::as_flat_samples
    linkageType: ''
    returnType: Option
    signature: pub fn as_flat_samples_u8(&self) -> Option<FlatSamples<&[u8]>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:711,1
    - Dst: Result::as_flat_samples
      Src: /src/image/src/images/dynimage.rs:711,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:712,1
    - Dst: Result::as_flat_samples
      Src: /src/image/src/images/dynimage.rs:712,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:713,1
    - Dst: Result::as_flat_samples
      Src: /src/image/src/images/dynimage.rs:713,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:714,1
    - Dst: Result::as_flat_samples
      Src: /src/image/src/images/dynimage.rs:714,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 717
      start: 709
    functionDepth: 3
    functionLinenumber: 709
    functionLinenumberEnd: 717
    functionName: DynamicImage::as_flat_samples_u16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    - Result::as_flat_samples
    linkageType: ''
    returnType: Option
    signature: pub fn as_flat_samples_u16(&self) -> Option<FlatSamples<&[u16]>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:723,1
    - Dst: Result::as_flat_samples
      Src: /src/image/src/images/dynimage.rs:723,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:724,1
    - Dst: Result::as_flat_samples
      Src: /src/image/src/images/dynimage.rs:724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 727
      start: 721
    functionDepth: 3
    functionLinenumber: 721
    functionLinenumberEnd: 727
    functionName: DynamicImage::as_flat_samples_f32
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Some
    - Result::as_flat_samples
    linkageType: ''
    returnType: Option
    signature: pub fn as_flat_samples_f32(&self) -> Option<FlatSamples<&[f32]>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 738
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 738
    functionName: DynamicImage::as_bytes
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: pub fn as_bytes(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 749
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 749
    functionName: DynamicImage::as_mut_bytes
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut [u8]'
    signature: pub(crate) fn as_mut_bytes(&mut self) -> &mut [u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 757
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 757
    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: 789
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 789
    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: 806
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 806
    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: 812
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 812
    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: 818
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 818
    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:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - color
    argTypes:
    - CicpColorPrimaries
    constantsTouched: []
    func_position:
      end: 832
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 832
    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:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tf
    argTypes:
    - CicpTransferCharacteristics
    constantsTouched: []
    func_position:
      end: 842
      start: 840
    functionDepth: 1
    functionLinenumber: 840
    functionLinenumberEnd: 842
    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: 847
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 847
    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: 855
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 855
    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:867,1
    - Dst: color::ColorType::has_alpha
      Src: /src/image/src/images/dynimage.rs:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 868
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 868
    functionName: DynamicImage::has_alpha
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::color
    - color::ColorType::has_alpha
    linkageType: ''
    returnType: bool
    signature: pub fn has_alpha(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::ImageLuma8
      Src: /src/image/src/images/dynimage.rs:876,1
    - Dst: Result::clone
      Src: /src/image/src/images/dynimage.rs:876,1
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/src/images/dynimage.rs:878,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/src/images/dynimage.rs:878,1
    - Dst: DynamicImage::ImageLuma8
      Src: /src/image/src/images/dynimage.rs:880,1
    - Dst: imageops::grayscale
      Src: /src/image/src/images/dynimage.rs:880,1
    - Dst: DynamicImage::ImageLumaA8
      Src: /src/image/src/images/dynimage.rs:882,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/src/images/dynimage.rs:882,1
    - Dst: DynamicImage::ImageLuma16
      Src: /src/image/src/images/dynimage.rs:884,1
    - Dst: Result::clone
      Src: /src/image/src/images/dynimage.rs:884,1
    - Dst: DynamicImage::ImageLumaA16
      Src: /src/image/src/images/dynimage.rs:886,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/src/images/dynimage.rs:886,1
    - Dst: DynamicImage::ImageLuma16
      Src: /src/image/src/images/dynimage.rs:888,1
    - Dst: imageops::grayscale
      Src: /src/image/src/images/dynimage.rs:888,1
    - Dst: DynamicImage::ImageLumaA16
      Src: /src/image/src/images/dynimage.rs:890,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/src/images/dynimage.rs:890,1
    - Dst: DynamicImage::ImageRgb32F
      Src: /src/image/src/images/dynimage.rs:893,1
    - Dst: imageops::grayscale_with_type
      Src: /src/image/src/images/dynimage.rs:893,1
    - Dst: DynamicImage::ImageRgba32F
      Src: /src/image/src/images/dynimage.rs:896,1
    - Dst: imageops::grayscale_with_type_alpha
      Src: /src/image/src/images/dynimage.rs:896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 899
      start: 874
    functionDepth: 12
    functionLinenumber: 874
    functionLinenumberEnd: 899
    functionName: DynamicImage::grayscale
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - imageops::grayscale
    - DynamicImage::ImageLumaA8
    - DynamicImage::ImageLuma8
    - Result::clone
    - DynamicImage::ImageLumaA16
    - DynamicImage::ImageRgb32F
    - imageops::grayscale_with_type_alpha
    - imageops::grayscale_alpha
    - DynamicImage::ImageLuma16
    - imageops::grayscale_with_type
    - DynamicImage::ImageRgba32F
    linkageType: ''
    returnType: DynamicImage
    signature: pub fn grayscale(&self) -> DynamicImage
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 908
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 908
    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:918,1
    - Dst: math::resize_dimensions
      Src: /src/image/src/images/dynimage.rs:922,1
    - Dst: DynamicImage::width
      Src: /src/image/src/images/dynimage.rs:922,1
    - Dst: DynamicImage::height
      Src: /src/image/src/images/dynimage.rs:922,1
    - Dst: DynamicImage::resize_exact
      Src: /src/image/src/images/dynimage.rs:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - nwidth
    - nheight
    - filter
    argTypes:
    - u32
    - u32
    - imageops::FilterType
    constantsTouched: []
    func_position:
      end: 925
      start: 917
    functionDepth: 5
    functionLinenumber: 917
    functionLinenumberEnd: 925
    functionName: DynamicImage::resize
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::height
    - DynamicImage::width
    - math::resize_dimensions
    - DynamicImage::dimensions
    - DynamicImage::resize_exact
    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:934,1
    - Dst: Result::unwrap
      Src: /src/image/src/images/dynimage.rs:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nwidth
    - nheight
    - filter
    argTypes:
    - u32
    - u32
    - imageops::FilterType
    constantsTouched: []
    func_position:
      end: 935
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 935
    functionName: DynamicImage::resize_exact
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 2
    functionsReached:
    - imageops::resize::resize_impl
    - Result::unwrap
    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:951,1
    - Dst: DynamicImage::width
      Src: /src/image/src/images/dynimage.rs:951,1
    - Dst: DynamicImage::height
      Src: /src/image/src/images/dynimage.rs:951,1
    - Dst: DynamicImage::thumbnail_exact
      Src: /src/image/src/images/dynimage.rs:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - nwidth
    - nheight
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 953
      start: 949
    functionDepth: 5
    functionLinenumber: 949
    functionLinenumberEnd: 953
    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: 967
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 967
    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:980,1
    - Dst: DynamicImage::width
      Src: /src/image/src/images/dynimage.rs:980,1
    - Dst: DynamicImage::height
      Src: /src/image/src/images/dynimage.rs:980,1
    - Dst: DynamicImage::resize_exact
      Src: /src/image/src/images/dynimage.rs:981,1
    - Dst: DynamicImage::dimensions
      Src: /src/image/src/images/dynimage.rs:983,1
    - Dst: u64::from
      Src: /src/image/src/images/dynimage.rs:984,1
    - Dst: u64::from
      Src: /src/image/src/images/dynimage.rs:984,1
    - Dst: u64::from
      Src: /src/image/src/images/dynimage.rs:985,1
    - Dst: u64::from
      Src: /src/image/src/images/dynimage.rs:985,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/dynimage.rs:989,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/dynimage.rs:992,1
    - Dst: DynamicImage::crop
      Src: /src/image/src/images/dynimage.rs:995,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 3
    argNames:
    - nwidth
    - nheight
    - filter
    argTypes:
    - u32
    - u32
    - imageops::FilterType
    constantsTouched: []
    func_position:
      end: 996
      start: 978
    functionDepth: 5
    functionLinenumber: 978
    functionLinenumberEnd: 996
    functionName: DynamicImage::resize_to_fill
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::height
    - DynamicImage::width
    - math::resize_dimensions
    - DynamicImage::dimensions
    - u64::from
    - DynamicImage::resize_exact
    - Rect::from_xy_ranges
    - DynamicImage::crop
    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:1017,1
    - Dst: GaussianBlurParameters::new_from_radius
      Src: /src/image/src/images/dynimage.rs:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - radius
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 1018
      start: 1016
    functionDepth: 15
    functionLinenumber: 1016
    functionLinenumberEnd: 1018
    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:1034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - parameters
    argTypes:
    - GaussianBlurParameters
    constantsTouched: []
    func_position:
      end: 1035
      start: 1033
    functionDepth: 15
    functionLinenumber: 1033
    functionLinenumberEnd: 1035
    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: 1051
      start: 1049
    functionDepth: 0
    functionLinenumber: 1049
    functionLinenumberEnd: 1051
    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: 1069
      start: 1067
    functionDepth: 0
    functionLinenumber: 1067
    functionLinenumberEnd: 1069
    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: 1083
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1083
    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: 1094
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1094
    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: 1105
      start: 1103
    functionDepth: 0
    functionLinenumber: 1103
    functionLinenumberEnd: 1105
    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: 1129
      start: 1127
    functionDepth: 0
    functionLinenumber: 1127
    functionLinenumberEnd: 1129
    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: 1137
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1137
    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: 1142
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1142
    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: 1150
      start: 1148
    functionDepth: 0
    functionLinenumber: 1148
    functionLinenumberEnd: 1150
    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: 1155
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1155
    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: 1161
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1161
    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: 1169
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1169
    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: 1174
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1174
    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: 1180
      start: 1178
    functionDepth: 0
    functionLinenumber: 1178
    functionLinenumberEnd: 1180
    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:1207,1
    - Dst: Vec::rotate180_in_place
      Src: /src/image/src/images/dynimage.rs:1208,1
    - Dst: Vec::rotate270
      Src: /src/image/src/images/dynimage.rs:1209,1
    - Dst: Vec::fliph_in_place
      Src: /src/image/src/images/dynimage.rs:1210,1
    - Dst: Vec::flipv_in_place
      Src: /src/image/src/images/dynimage.rs:1211,1
    - Dst: Vec::rotate90
      Src: /src/image/src/images/dynimage.rs:1213,1
    - Dst: ImageBuffer::fliph_in_place
      Src: /src/image/src/images/dynimage.rs:1214,1
    - Dst: Vec::rotate270
      Src: /src/image/src/images/dynimage.rs:1218,1
    - Dst: ImageBuffer::fliph_in_place
      Src: /src/image/src/images/dynimage.rs:1219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - orientation
    argTypes:
    - Orientation
    constantsTouched: []
    func_position:
      end: 1223
      start: 1203
    functionDepth: 4
    functionLinenumber: 1203
    functionLinenumberEnd: 1223
    functionName: DynamicImage::apply_orientation
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Vec::rotate270
    - Vec::rotate180_in_place
    - ImageBuffer::fliph_in_place
    - Vec::flipv_in_place
    - Vec::rotate90
    - Vec::fliph_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:1251,1
    - Dst: '&DynamicImage::color_space'
      Src: /src/image/src/images/dynimage.rs:1251,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:1253,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1259,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1268,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1271,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1274,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1277,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1281,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1284,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1287,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1290,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1294,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1297,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1300,1
    - Dst: Option::copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1303,1
    - Dst: ConvertColorOptions::as_transform
      Src: /src/image/src/images/dynimage.rs:1313,1
    - Dst: '&DynamicImage::color_space'
      Src: /src/image/src/images/dynimage.rs:1313,1
    - Dst: DynamicImage::color_space
      Src: /src/image/src/images/dynimage.rs:1313,1
    - Dst: transform_dynamic
      Src: /src/image/src/images/dynimage.rs:1314,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 77
    argCount: 2
    argNames:
    - other
    - options
    argTypes:
    - '&DynamicImage'
    - ConvertColorOptions
    constantsTouched: []
    func_position:
      end: 1317
      start: 1245
    functionDepth: 7
    functionLinenumber: 1245
    functionLinenumberEnd: 1317
    functionName: DynamicImage::copy_from_color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::color_space
    - Ok
    - Option::copy_from_color_space
    - ConvertColorOptions::as_transform
    - dynamic_map
    - '&DynamicImage::color_space'
    - transform_dynamic
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn copy_from_color_space(&mut self,other: &DynamicImage,mut options:
      ConvertColorOptions,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::color_space
      Src: /src/image/src/images/dynimage.rs:1339,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1340,1
    - Dst: DynamicImage::clone
      Src: /src/image/src/images/dynimage.rs:1347,1
    - Dst: set_color_space
      Src: /src/image/src/images/dynimage.rs:1348,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1349,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - cicp
    - options
    argTypes:
    - Cicp
    - ConvertColorOptions
    constantsTouched: []
    func_position:
      end: 1353
      start: 1333
    functionDepth: 8
    functionLinenumber: 1333
    functionLinenumberEnd: 1353
    functionName: DynamicImage::apply_color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - DynamicImage::color_space
    - Ok
    - DynamicImage::clone
    - copy_from_color_space
    - set_color_space
    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:1374,1
    - Dst: DynamicImage::apply_color_space
      Src: /src/image/src/images/dynimage.rs:1375,1
    - Dst: Cicp::try_into_rgb
      Src: /src/image/src/images/dynimage.rs:1379,1
    - Dst: DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1380,1
    - Dst: DynamicImage::width
      Src: /src/image/src/images/dynimage.rs:1380,1
    - Dst: DynamicImage::height
      Src: /src/image/src/images/dynimage.rs:1380,1
    - Dst: dynamic_map
      Src: /src/image/src/images/dynimage.rs:1381,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1382,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 3
    argNames:
    - cicp
    - options
    - color
    argTypes:
    - Cicp
    - ConvertColorOptions
    - color::ColorType
    constantsTouched: []
    func_position:
      end: 1386
      start: 1368
    functionDepth: 9
    functionLinenumber: 1368
    functionLinenumberEnd: 1386
    functionName: DynamicImage::convert_color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::apply_color_space
    - DynamicImage::new
    - DynamicImage::height
    - DynamicImage::width
    - Ok
    - Cicp::try_into_rgb
    - copy_from_color_space
    - dynamic_map
    - DynamicImage::color
    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:1392,1
    - Dst: Option::as_ref
      Src: /src/image/src/images/dynimage.rs:1393,1
    - Dst: FlatSamples::unwrap_or
      Src: /src/image/src/images/dynimage.rs:1393,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/images/dynimage.rs:1395,1
    - Dst: Option::as_bytes
      Src: /src/image/src/images/dynimage.rs:1396,1
    - Dst: Option::width
      Src: /src/image/src/images/dynimage.rs:1397,1
    - Dst: Option::height
      Src: /src/image/src/images/dynimage.rs:1398,1
    - Dst: Option::color
      Src: /src/image/src/images/dynimage.rs:1399,1
    - Dst: bool::into
      Src: /src/image/src/images/dynimage.rs:1399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - Box<dyn ImageEncoderBoxed + 'a>
    constantsTouched: []
    func_position:
      end: 1401
      start: 1388
    functionDepth: 9
    functionLinenumber: 1388
    functionLinenumberEnd: 1401
    functionName: DynamicImage::write_with_encoder_impl
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 3
    functionsReached:
    - ImageResult::write_image
    - Option::width
    - Option::height
    - Option::as_ref
    - FlatSamples::unwrap_or
    - bool::into
    - ImageResult::make_compatible_img
    - Option::as_bytes
    - Option::color
    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:1414,1
    - Dst: DynamicImage::write_with_encoder_impl
      Src: /src/image/src/images/dynimage.rs:1415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - w
    - format
    argTypes:
    - W
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1416
      start: 1413
    functionDepth: 10
    functionLinenumber: 1413
    functionLinenumberEnd: 1416
    functionName: DynamicImage::write_to
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - io::free_functions::encoder_for_format
    - DynamicImage::write_with_encoder_impl
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn write_to<W: Write + Seek>(&self, mut w: W, format: ImageFormat)
      -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DynamicImage::write_with_encoder_impl
      Src: /src/image/src/images/dynimage.rs:1426,1
    - Dst: Box::new
      Src: /src/image/src/images/dynimage.rs:1426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - impl ImageEncoder
    constantsTouched: []
    func_position:
      end: 1427
      start: 1425
    functionDepth: 10
    functionLinenumber: 1425
    functionLinenumberEnd: 1427
    functionName: DynamicImage::write_with_encoder
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - Box::new
    - DynamicImage::write_with_encoder_impl
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn write_with_encoder(&self, encoder: impl ImageEncoder) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageFormat::from_path
      Src: /src/image/src/images/dynimage.rs:1440,1
    - Dst: ImageResult::as_ref
      Src: /src/image/src/images/dynimage.rs:1440,1
    - Dst: DynamicImage::save_with_format
      Src: /src/image/src/images/dynimage.rs:1441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - Q
    constantsTouched: []
    func_position:
      end: 1442
      start: 1436
    functionDepth: 9
    functionLinenumber: 1436
    functionLinenumberEnd: 1442
    functionName: DynamicImage::save
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - ImageResult::as_ref
    - DynamicImage::save_with_format
    - 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:1455,1
    - Dst: File::create
      Src: /src/image/src/images/dynimage.rs:1455,1
    - Dst: io::free_functions::encoder_for_format
      Src: /src/image/src/images/dynimage.rs:1456,1
    - Dst: DynamicImage::write_with_encoder_impl
      Src: /src/image/src/images/dynimage.rs:1457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - path
    - format
    argTypes:
    - Q
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1458
      start: 1451
    functionDepth: 10
    functionLinenumber: 1451
    functionLinenumberEnd: 1458
    functionName: DynamicImage::save_with_format
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - DynamicImage::write_with_encoder_impl
    - io::free_functions::encoder_for_format
    - BufWriter::new
    - File::create
    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:1529,1
    - Dst: Vec::convert
      Src: /src/image/src/images/dynimage.rs:1529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - image
    argTypes:
    - ImageBuffer<LumaA<f32>, Vec<f32>>
    constantsTouched: []
    func_position:
      end: 1530
      start: 1528
    functionDepth: 6
    functionLinenumber: 1528
    functionLinenumberEnd: 1530
    functionName: DynamicImage::from
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 2
    functionsReached:
    - DynamicImage::ImageRgba32F
    - Vec::convert
    linkageType: ''
    returnType: Self
    signature: 'fn from(image: ImageBuffer<LumaA<f32>, Vec<f32>>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1536
    functionDepth: 0
    functionLinenumber: 1536
    functionLinenumberEnd: 1538
    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: 1542
      start: 1540
    functionDepth: 0
    functionLinenumber: 1540
    functionLinenumberEnd: 1542
    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:1548,1
    - Dst: u8::to_luma
      Src: /src/image/src/images/dynimage.rs:1548,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1549,1
    - Dst: u8::to_luma_alpha
      Src: /src/image/src/images/dynimage.rs:1549,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1550,1
    - Dst: u8::to_rgb
      Src: /src/image/src/images/dynimage.rs:1550,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1551,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1552,1
    - Dst: u8::to_luma
      Src: /src/image/src/images/dynimage.rs:1552,1
    - Dst: T::into_color
      Src: /src/image/src/images/dynimage.rs:1552,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1554,1
    - Dst: u8::to_luma_alpha
      Src: /src/image/src/images/dynimage.rs:1554,1
    - Dst: into_color
      Src: /src/image/src/images/dynimage.rs:1554,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1556,1
    - Dst: u8::to_rgb
      Src: /src/image/src/images/dynimage.rs:1556,1
    - Dst: '[u8; 3]::into_color'
      Src: /src/image/src/images/dynimage.rs:1556,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1557,1
    - Dst: u8::into_color
      Src: /src/image/src/images/dynimage.rs:1557,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1558,1
    - Dst: u8::to_rgb
      Src: /src/image/src/images/dynimage.rs:1558,1
    - Dst: '[u8; 3]::into_color'
      Src: /src/image/src/images/dynimage.rs:1558,1
    - Dst: Result::put_pixel
      Src: /src/image/src/images/dynimage.rs:1559,1
    - Dst: u8::into_color
      Src: /src/image/src/images/dynimage.rs:1559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - color::Rgba<u8>
    constantsTouched: []
    func_position:
      end: 1561
      start: 1546
    functionDepth: 11
    functionLinenumber: 1546
    functionLinenumberEnd: 1561
    functionName: DynamicImage::put_pixel
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - u8::to_rgb
    - T::into_color
    - into_color
    - u8::to_luma_alpha
    - Result::put_pixel
    - u8::into_color
    - '[u8; 3]::into_color'
    - 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:1566,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1565
    functionDepth: 1
    functionLinenumber: 1565
    functionLinenumberEnd: 1567
    functionName: DynamicImage::default
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 3
    functionsReached:
    - Self::ImageRgba8
    - Default::default
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1590,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1591,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1591,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1596,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1597,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1597,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1602,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1603,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1603,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1608,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1609,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1609,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1614,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1615,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1615,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1620,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1621,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1621,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1626,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1627,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1627,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1632,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1633,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1633,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1638,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1639,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1639,1
    - Dst: free_functions::decoder_to_vec
      Src: /src/image/src/images/dynimage.rs:1644,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/dynimage.rs:1645,1
    - Dst: Option::map
      Src: /src/image/src/images/dynimage.rs:1645,1
    - Dst: ok_or_else
      Src: /src/image/src/images/dynimage.rs:1587,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/images/dynimage.rs:1649,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/images/dynimage.rs:1649,1
    - Dst: Vec::set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1657,1
    - Dst: Vec::set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1658,1
    - Dst: Ok
      Src: /src/image/src/images/dynimage.rs:1660,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 100
    argCount: 3
    argNames:
    - image
    - decoder
    - layout
    argTypes:
    - '&mut DynamicImage'
    - '&mut dyn ImageDecoder'
    - DecoderPreparedImage
    constantsTouched: []
    func_position:
      end: 1661
      start: 1573
    functionDepth: 7
    functionLinenumber: 1573
    functionLinenumberEnd: 1661
    functionName: decoder_to_image
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - Option::map
    - Vec::set_transfer_function
    - ImageBuffer::from_raw
    - Ok
    - ok_or_else
    - ParameterError::from_kind
    - Vec::set_rgb_primaries
    - ImageError::Parameter
    - free_functions::decoder_to_vec
    linkageType: ''
    returnType: ImageResult
    signature: 'pub(crate) fn decoder_to_image(image: &mut DynamicImage,decoder: &mut
      dyn ImageDecoder,layout: DecoderPreparedImage,) -> ImageResult<DecodedImageAttributes>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReaderOptions::open
      Src: /src/image/src/images/dynimage.rs:1672,1
    - Dst: decode
      Src: /src/image/src/images/dynimage.rs:1672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 1673
      start: 1668
    functionDepth: 14
    functionLinenumber: 1668
    functionLinenumberEnd: 1673
    functionName: open
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 37
    functionsReached:
    - ImageReaderOptions::open
    - decode
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn open<P>(path: P) -> ImageResult<DynamicImage>whereP: AsRef<Path>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReaderOptions::open
      Src: /src/image/src/images/dynimage.rs:1684,1
    - Dst: into_dimensions
      Src: /src/image/src/images/dynimage.rs:1684,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 1685
      start: 1680
    functionDepth: 14
    functionLinenumber: 1680
    functionLinenumberEnd: 1685
    functionName: image_dimensions
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - into_dimensions
    - ImageReaderOptions::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:1702,1
    - Dst: ImageResult::write_image
      Src: /src/image/src/images/dynimage.rs:1703,1
    - Dst: bool::into
      Src: /src/image/src/images/dynimage.rs:1703,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: 1704
      start: 1694
    functionDepth: 9
    functionLinenumber: 1694
    functionLinenumberEnd: 1704
    functionName: write_buffer_with_format
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 1
    functionsReached:
    - ImageResult::write_image
    - io::free_functions::encoder_for_format
    - bool::into
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn write_buffer_with_format<W: Write + Seek>(buffered_writer:
      &mut W,buf: &[u8],width: u32,height: u32,color: impl Into<ExtendedColorType>,format:
      ImageFormat,) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageReaderOptions::new
      Src: /src/image/src/images/dynimage.rs:1713,1
    - Dst: io::Cursor::new
      Src: /src/image/src/images/dynimage.rs:1713,1
    - Dst: Self::with_guessed_format
      Src: /src/image/src/images/dynimage.rs:1713,1
    - Dst: decode
      Src: /src/image/src/images/dynimage.rs:1713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1716
      start: 1712
    functionDepth: 14
    functionLinenumber: 1712
    functionLinenumberEnd: 1716
    functionName: load_from_memory
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 4
    functionsReached:
    - ImageReaderOptions::new
    - io::Cursor::new
    - Self::with_guessed_format
    - decode
    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:1734,1
    - Dst: free_functions::load
      Src: /src/image/src/images/dynimage.rs:1735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - format
    argTypes:
    - '&[u8]'
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1736
      start: 1727
    functionDepth: 13
    functionLinenumber: 1727
    functionLinenumberEnd: 1736
    functionName: load_from_memory_with_format
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 2
    functionsReached:
    - io::Cursor::new
    - free_functions::load
    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:1743,1
    - Dst: crate::ImageBuffer::new
      Src: /src/image/src/images/dynimage.rs:1743,1
    - Dst: iter
      Src: /src/image/src/images/dynimage.rs:1744,1
    - Dst: to_luma8
      Src: /src/image/src/images/dynimage.rs:1744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 1746
      start: 1742
    functionDepth: 5
    functionLinenumber: 1742
    functionLinenumberEnd: 1746
    functionName: bench::bench_conversion
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::ImageRgb8
    - to_luma8
    - iter
    - crate::ImageBuffer::new
    linkageType: ''
    returnType: void
    signature: 'fn bench_conversion(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1757
    functionDepth: 0
    functionLinenumber: 1757
    functionLinenumberEnd: 1759
    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:1765,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/dynimage.rs:1765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1763
    functionDepth: 15
    functionLinenumber: 1763
    functionLinenumberEnd: 1767
    functionName: test::image_dimensions
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::image_dimensions
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn image_dimensions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::open
      Src: /src/image/src/images/dynimage.rs:1773,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/images/dynimage.rs:1773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1771
    functionDepth: 14
    functionLinenumber: 1771
    functionLinenumberEnd: 1775
    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:1788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - img
    argTypes:
    - super::DynamicImage
    constantsTouched: []
    func_position:
      end: 1789
      start: 1787
    functionDepth: 3
    functionLinenumber: 1787
    functionLinenumberEnd: 1789
    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:1792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - img
    argTypes:
    - super::DynamicImage
    constantsTouched: []
    func_position:
      end: 1793
      start: 1791
    functionDepth: 3
    functionLinenumber: 1791
    functionLinenumberEnd: 1793
    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:1797,1
    - Dst: super::DynamicImage::new_luma8
      Src: /src/image/src/images/dynimage.rs:1797,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1798,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1796
    functionDepth: 4
    functionLinenumber: 1796
    functionLinenumberEnd: 1799
    functionName: test::test_grayscale_luma8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - test_grayscale_alpha_discarded
    - super::DynamicImage::new_luma8
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_luma8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1803,1
    - Dst: super::DynamicImage::new_luma_a8
      Src: /src/image/src/images/dynimage.rs:1803,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1804,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1802
    functionDepth: 4
    functionLinenumber: 1802
    functionLinenumberEnd: 1805
    functionName: test::test_grayscale_luma_a8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - super::DynamicImage::new_luma_a8
    - 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:1809,1
    - Dst: super::DynamicImage::new_rgb8
      Src: /src/image/src/images/dynimage.rs:1809,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1810,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1808
    functionDepth: 4
    functionLinenumber: 1808
    functionLinenumberEnd: 1811
    functionName: test::test_grayscale_rgb8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - test_grayscale_alpha_discarded
    - super::DynamicImage::new_rgb8
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_rgb8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1815,1
    - Dst: super::DynamicImage::new_rgba8
      Src: /src/image/src/images/dynimage.rs:1815,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1816,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1814
    functionDepth: 4
    functionLinenumber: 1814
    functionLinenumberEnd: 1817
    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:1821,1
    - Dst: super::DynamicImage::new_luma16
      Src: /src/image/src/images/dynimage.rs:1821,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1822,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1820
    functionDepth: 4
    functionLinenumber: 1820
    functionLinenumberEnd: 1823
    functionName: test::test_grayscale_luma16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - test_grayscale_alpha_discarded
    - super::DynamicImage::new_luma16
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_luma16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1827,1
    - Dst: super::DynamicImage::new_luma_a16
      Src: /src/image/src/images/dynimage.rs:1827,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1828,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1826
    functionDepth: 4
    functionLinenumber: 1826
    functionLinenumberEnd: 1829
    functionName: test::test_grayscale_luma_a16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - super::DynamicImage::new_luma_a16
    - test_grayscale_alpha_preserved
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_luma_a16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1833,1
    - Dst: super::DynamicImage::new_rgb16
      Src: /src/image/src/images/dynimage.rs:1833,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1834,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1832
    functionDepth: 4
    functionLinenumber: 1832
    functionLinenumberEnd: 1835
    functionName: test::test_grayscale_rgb16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - test_grayscale_alpha_discarded
    - super::DynamicImage::new_rgb16
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_rgb16()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1839,1
    - Dst: super::DynamicImage::new_rgba16
      Src: /src/image/src/images/dynimage.rs:1839,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1840,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1838
    functionDepth: 4
    functionLinenumber: 1838
    functionLinenumberEnd: 1841
    functionName: test::test_grayscale_rgba16
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - super::DynamicImage::new_rgba16
    - 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:1845,1
    - Dst: super::DynamicImage::new_rgb32f
      Src: /src/image/src/images/dynimage.rs:1845,1
    - Dst: test_grayscale_alpha_discarded
      Src: /src/image/src/images/dynimage.rs:1846,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1844
    functionDepth: 4
    functionLinenumber: 1844
    functionLinenumberEnd: 1847
    functionName: test::test_grayscale_rgb32f
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - test_grayscale_alpha_discarded
    - super::DynamicImage::new_rgb32f
    linkageType: ''
    returnType: void
    signature: fn test_grayscale_rgb32f()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1851,1
    - Dst: super::DynamicImage::new_rgba32f
      Src: /src/image/src/images/dynimage.rs:1851,1
    - Dst: test_grayscale_alpha_preserved
      Src: /src/image/src/images/dynimage.rs:1852,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:1852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1850
    functionDepth: 4
    functionLinenumber: 1850
    functionLinenumberEnd: 1853
    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: 1864
      start: 1856
    functionDepth: 0
    functionLinenumber: 1856
    functionLinenumberEnd: 1864
    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:1868,1
    - Dst: DynamicImage::into_bytes
      Src: /src/image/src/images/dynimage.rs:1868,1
    - Dst: super::DynamicImage::new_luma16
      Src: /src/image/src/images/dynimage.rs:1869,1
    - Dst: DynamicImage::into_bytes
      Src: /src/image/src/images/dynimage.rs:1869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1867
    functionDepth: 3
    functionLinenumber: 1867
    functionLinenumberEnd: 1870
    functionName: test::test_to_vecu8
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::into_bytes
    - super::DynamicImage::new_luma8
    - super::DynamicImage::new_luma16
    linkageType: ''
    returnType: void
    signature: fn test_to_vecu8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_vec
      Src: /src/image/src/images/dynimage.rs:1875,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/dynimage.rs:1875,1
    - Dst: super::DynamicImage::ImageLuma16
      Src: /src/image/src/images/dynimage.rs:1877,1
    - Dst: Option::into_bytes
      Src: /src/image/src/images/dynimage.rs:1880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1882
      start: 1873
    functionDepth: 4
    functionLinenumber: 1873
    functionLinenumberEnd: 1882
    functionName: test::issue_1705_can_turn_16bit_image_into_bytes
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::ImageLuma16
    - ImageBuffer::from_vec
    - Option::unwrap
    - Option::into_bytes
    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:1887,1
    - Dst: super::DynamicImage::new_luma16
      Src: /src/image/src/images/dynimage.rs:1888,1
    - Dst: DynamicImage::to
      Src: /src/image/src/images/dynimage.rs:1892,1
    - Dst: to::<Luma<u16>>
      Src: /src/image/src/images/dynimage.rs:1896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 1885
    functionDepth: 3
    functionLinenumber: 1885
    functionLinenumberEnd: 1898
    functionName: test::test_convert_to
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - DynamicImage::to
    - super::DynamicImage::new_luma8
    - to::<Luma<u16>>
    - super::DynamicImage::new_luma16
    linkageType: ''
    returnType: void
    signature: fn test_convert_to()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb8
      Src: /src/image/src/images/dynimage.rs:1902,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1903,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:1903,1
    - Dst: super::DynamicImage::ImageRgba8
      Src: /src/image/src/images/dynimage.rs:1906,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1907,1
    - Dst: Rgba
      Src: /src/image/src/images/dynimage.rs:1907,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1907,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1910,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1911,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1912,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1913,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1915,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1915,1
    - Dst: as_rgba8
      Src: /src/image/src/images/dynimage.rs:1918,1
    - Dst: expect
      Src: /src/image/src/images/dynimage.rs:1918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1920
      start: 1901
    functionDepth: 14
    functionLinenumber: 1901
    functionLinenumberEnd: 1920
    functionName: test::color_conversion_srgb_p3
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - expect
    - ImageBuffer::from_fn
    - as_rgba8
    - copy_from_color_space
    - Option::set_rgb_primaries
    - Default::default
    - Option::set_transfer_function
    - set_rgb_primaries
    - super::DynamicImage::ImageRgb8
    - Rgb
    - set_transfer_function
    - super::DynamicImage::ImageRgba8
    linkageType: ''
    returnType: void
    signature: fn color_conversion_srgb_p3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb16
      Src: /src/image/src/images/dynimage.rs:1924,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1925,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:1925,1
    - Dst: super::DynamicImage::ImageRgba8
      Src: /src/image/src/images/dynimage.rs:1928,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1929,1
    - Dst: Rgba
      Src: /src/image/src/images/dynimage.rs:1929,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1929,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1932,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1933,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:1934,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/dynimage.rs:1935,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1937,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1937,1
    - Dst: as_rgba8
      Src: /src/image/src/images/dynimage.rs:1940,1
    - Dst: expect
      Src: /src/image/src/images/dynimage.rs:1940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1923
    functionDepth: 14
    functionLinenumber: 1923
    functionLinenumberEnd: 1942
    functionName: test::color_conversion_preserves_sample
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - expect
    - ImageBuffer::from_fn
    - as_rgba8
    - copy_from_color_space
    - Option::set_rgb_primaries
    - Default::default
    - Option::set_transfer_function
    - set_rgb_primaries
    - Rgb
    - super::DynamicImage::ImageRgb16
    - set_transfer_function
    - super::DynamicImage::ImageRgba8
    linkageType: ''
    returnType: void
    signature: fn color_conversion_preserves_sample()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb16
      Src: /src/image/src/images/dynimage.rs:1946,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1947,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:1947,1
    - Dst: super::DynamicImage::ImageRgba8
      Src: /src/image/src/images/dynimage.rs:1950,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1951,1
    - Dst: Rgba
      Src: /src/image/src/images/dynimage.rs:1951,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1951,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1955,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1955,1
    - Dst: as_rgba8
      Src: /src/image/src/images/dynimage.rs:1958,1
    - Dst: expect
      Src: /src/image/src/images/dynimage.rs:1958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1945
    functionDepth: 14
    functionLinenumber: 1945
    functionLinenumberEnd: 1960
    functionName: test::color_conversion_preserves_sample_in_fastpath
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Rgba
    - expect
    - ImageBuffer::from_fn
    - as_rgba8
    - copy_from_color_space
    - Default::default
    - Rgb
    - 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:1964,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1965,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:1965,1
    - Dst: super::DynamicImage::ImageLuma8
      Src: /src/image/src/images/dynimage.rs:1968,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:1969,1
    - Dst: Luma
      Src: /src/image/src/images/dynimage.rs:1969,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1969,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:1973,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:1973,1
    - Dst: as_luma8
      Src: /src/image/src/images/dynimage.rs:1977,1
    - Dst: expect
      Src: /src/image/src/images/dynimage.rs:1977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1963
    functionDepth: 14
    functionLinenumber: 1963
    functionLinenumberEnd: 1978
    functionName: test::color_conversion_rgb_to_luma
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Luma
    - super::DynamicImage::ImageLuma8
    - as_luma8
    - expect
    - ImageBuffer::from_fn
    - copy_from_color_space
    - Rgb
    - super::DynamicImage::ImageRgb16
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn color_conversion_rgb_to_luma()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CicpTransform::new
      Src: /src/image/src/images/dynimage.rs:1996,1
    - Dst: Option::expect
      Src: /src/image/src/images/dynimage.rs:1996,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:2000,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:2001,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:2003,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/dynimage.rs:2004,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/dynimage.rs:2006,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/dynimage.rs:2007,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/dynimage.rs:2009,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:2013,1
    - Dst: CbCrInverseTransform::clone
      Src: /src/image/src/images/dynimage.rs:2013,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:2014,1
    - Dst: expect
      Src: /src/image/src/images/dynimage.rs:2009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 1981
    functionDepth: 8
    functionLinenumber: 1981
    functionLinenumberEnd: 2020
    functionName: test::copy_color_space_coverage
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - CbCrInverseTransform::clone
    - expect
    - copy_from_color_space
    - Option::set_rgb_primaries
    - set_rgb_primaries
    - Option::set_transfer_function
    - Some
    - CicpTransform::new
    - Option::expect
    - set_transfer_function
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn copy_color_space_coverage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb8
      Src: /src/image/src/images/dynimage.rs:2024,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:2025,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:2025,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2028,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:2029,1
    - Dst: '&RgbaImage::apply_color_space'
      Src: /src/image/src/images/dynimage.rs:2031,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:2032,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/dynimage.rs:2031,1
    - Dst: '&RgbaImage::as_rgb8'
      Src: /src/image/src/images/dynimage.rs:2035,1
    - Dst: Option::expect
      Src: /src/image/src/images/dynimage.rs:2035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2023
    functionDepth: 14
    functionLinenumber: 2023
    functionLinenumberEnd: 2037
    functionName: test::apply_color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_transfer_function'
    - '&RgbaImage::set_rgb_primaries'
    - ImageResult::unwrap
    - ImageBuffer::from_fn
    - '&RgbaImage::as_rgb8'
    - super::DynamicImage::ImageRgb8
    - '&RgbaImage::apply_color_space'
    - Rgb
    - Option::expect
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn apply_color_space()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CicpTransform::new
      Src: /src/image/src/images/dynimage.rs:2055,1
    - Dst: Option::expect
      Src: /src/image/src/images/dynimage.rs:2055,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:2058,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2060,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:2061,1
    - Dst: '&RgbaImage::apply_color_space'
      Src: /src/image/src/images/dynimage.rs:2063,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:2067,1
    - Dst: CbCrInverseTransform::clone
      Src: /src/image/src/images/dynimage.rs:2067,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:2068,1
    - Dst: ImageResult::expect
      Src: /src/image/src/images/dynimage.rs:2063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2040
    functionDepth: 9
    functionLinenumber: 2040
    functionLinenumberEnd: 2073
    functionName: test::apply_color_space_coverage
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - '&RgbaImage::set_transfer_function'
    - '&RgbaImage::set_rgb_primaries'
    - CbCrInverseTransform::clone
    - ImageResult::expect
    - Some
    - '&RgbaImage::apply_color_space'
    - CicpTransform::new
    - Option::expect
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn apply_color_space_coverage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb16
      Src: /src/image/src/images/dynimage.rs:2077,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:2078,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:2078,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2081,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:2082,1
    - Dst: '&RgbaImage::convert_color_space'
      Src: /src/image/src/images/dynimage.rs:2084,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:2085,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/dynimage.rs:2084,1
    - Dst: '&RgbaImage::as_rgb8'
      Src: /src/image/src/images/dynimage.rs:2088,1
    - Dst: Option::expect
      Src: /src/image/src/images/dynimage.rs:2088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2076
    functionDepth: 14
    functionLinenumber: 2076
    functionLinenumberEnd: 2090
    functionName: test::convert_color_space
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_transfer_function'
    - '&RgbaImage::set_rgb_primaries'
    - '&RgbaImage::convert_color_space'
    - ImageResult::unwrap
    - ImageBuffer::from_fn
    - '&RgbaImage::as_rgb8'
    - Rgb
    - Option::expect
    - super::DynamicImage::ImageRgb16
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn convert_color_space()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::DynamicImage::ImageRgb16
      Src: /src/image/src/images/dynimage.rs:2094,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:2095,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:2095,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2098,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:2099,1
    - Dst: '&RgbaImage::clone'
      Src: /src/image/src/images/dynimage.rs:2101,1
    - Dst: Self::into_luma8
      Src: /src/image/src/images/dynimage.rs:2101,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2105,1
    - Dst: '&RgbaImage::clone'
      Src: /src/image/src/images/dynimage.rs:2107,1
    - Dst: Self::into_luma8
      Src: /src/image/src/images/dynimage.rs:2107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2093
    functionDepth: 14
    functionLinenumber: 2093
    functionLinenumberEnd: 2110
    functionName: test::into_luma_is_color_space_aware
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_transfer_function'
    - Self::into_luma8
    - '&RgbaImage::set_rgb_primaries'
    - ImageBuffer::from_fn
    - '&RgbaImage::clone'
    - Rgb
    - 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:2114,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:2115,1
    - Dst: Luma
      Src: /src/image/src/images/dynimage.rs:2115,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2118,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:2119,1
    - Dst: '&RgbaImage::clone'
      Src: /src/image/src/images/dynimage.rs:2121,1
    - Dst: Self::into_rgb8
      Src: /src/image/src/images/dynimage.rs:2121,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2125,1
    - Dst: '&RgbaImage::clone'
      Src: /src/image/src/images/dynimage.rs:2127,1
    - Dst: Self::into_rgb8
      Src: /src/image/src/images/dynimage.rs:2127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2113
    functionDepth: 14
    functionLinenumber: 2113
    functionLinenumberEnd: 2130
    functionName: test::from_luma_is_color_space_aware
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_transfer_function'
    - Luma
    - '&RgbaImage::set_rgb_primaries'
    - ImageBuffer::from_fn
    - '&RgbaImage::clone'
    - Self::into_rgb8
    - super::DynamicImage::ImageLuma16
    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:2151,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:2152,1
    - Dst: Luma
      Src: /src/image/src/images/dynimage.rs:2152,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2156,1
    - Dst: '&RgbaImage::to_rgb8'
      Src: /src/image/src/images/dynimage.rs:2157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2164
      start: 2133
    functionDepth: 14
    functionLinenumber: 2133
    functionLinenumberEnd: 2164
    functionName: test::from_luma_for_all_chromaticities
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - Luma
    - '&RgbaImage::set_rgb_primaries'
    - ImageBuffer::from_fn
    - super::DynamicImage::ImageLuma16
    - '&RgbaImage::to_rgb8'
    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:2187,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/dynimage.rs:2188,1
    - Dst: Rgb
      Src: /src/image/src/images/dynimage.rs:2188,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2192,1
    - Dst: '&RgbaImage::as_mut_rgb8'
      Src: /src/image/src/images/dynimage.rs:2194,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/dynimage.rs:2194,1
    - Dst: pixels_mut
      Src: /src/image/src/images/dynimage.rs:2194,1
    - Dst: '&RgbaImage::to_luma8'
      Src: /src/image/src/images/dynimage.rs:2198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2167
    functionDepth: 14
    functionLinenumber: 2167
    functionLinenumberEnd: 2201
    functionName: test::from_rgb_for_all_chromaticities
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_rgb_primaries'
    - '&RgbaImage::to_luma8'
    - ImageBuffer::from_fn
    - '&RgbaImage::as_mut_rgb8'
    - super::DynamicImage::ImageRgb8
    - Rgb
    - Option::unwrap
    - pixels_mut
    linkageType: ''
    returnType: void
    signature: fn from_rgb_for_all_chromaticities()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CicpTransform::new
      Src: /src/image/src/images/dynimage.rs:2219,1
    - Dst: Option::expect
      Src: /src/image/src/images/dynimage.rs:2219,1
    - Dst: super::DynamicImage::new
      Src: /src/image/src/images/dynimage.rs:2223,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/dynimage.rs:2225,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/dynimage.rs:2226,1
    - Dst: Some
      Src: /src/image/src/images/dynimage.rs:2229,1
    - Dst: CbCrInverseTransform::clone
      Src: /src/image/src/images/dynimage.rs:2229,1
    - Dst: Default::default
      Src: /src/image/src/images/dynimage.rs:2230,1
    - Dst: '&RgbaImage::convert_color_space'
      Src: /src/image/src/images/dynimage.rs:2233,1
    - Dst: ImageResult::expect
      Src: /src/image/src/images/dynimage.rs:2233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2204
    functionDepth: 10
    functionLinenumber: 2204
    functionLinenumberEnd: 2238
    functionName: test::convert_color_space_coverage
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - super::DynamicImage::new
    - '&RgbaImage::set_transfer_function'
    - '&RgbaImage::set_rgb_primaries'
    - CbCrInverseTransform::clone
    - '&RgbaImage::convert_color_space'
    - ImageResult::expect
    - Some
    - CicpTransform::new
    - Option::expect
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn convert_color_space_coverage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::open
      Src: /src/image/src/images/dynimage.rs:2247,1
    - Dst: io::Result::unwrap
      Src: /src/image/src/images/dynimage.rs:2247,1
    - Dst: Vec::clone
      Src: /src/image/src/images/dynimage.rs:2248,1
    - Dst: Vec::set_color_space
      Src: /src/image/src/images/dynimage.rs:2250,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/dynimage.rs:2250,1
    - Dst: Self::set_color_space
      Src: /src/image/src/images/dynimage.rs:2251,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/dynimage.rs:2251,1
    - Dst: iter
      Src: /src/image/src/images/dynimage.rs:2285,1
    - Dst: enumerate
      Src: /src/image/src/images/dynimage.rs:2285,1
    - Dst: op
      Src: /src/image/src/images/dynimage.rs:2286,1
    - Dst: op
      Src: /src/image/src/images/dynimage.rs:2287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 99
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2294
      start: 2244
    functionDepth: 14
    functionLinenumber: 2244
    functionLinenumberEnd: 2294
    functionName: test::color_space_independent_imageops
    functionSourceFile: /src/image/src/images/dynimage.rs
    functionUses: 0
    functionsReached:
    - iter
    - Vec::clone
    - enumerate
    - super::open
    - Vec::set_color_space
    - ImageResult::unwrap
    - Self::set_color_space
    - op
    - 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:143,1
    - Dst: expect
      Src: /src/image/src/images/flat.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - channels
    - width
    - height
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 154
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 154
    functionName: SampleLayout::row_major_packed
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - checked_mul
    - expect
    linkageType: ''
    returnType: Self
    signature: 'pub fn row_major_packed(channels: u8, width: u32, height: u32) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: checked_mul
      Src: /src/image/src/images/flat.rs:174,1
    - Dst: expect
      Src: /src/image/src/images/flat.rs:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - channels
    - width
    - height
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 185
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 185
    functionName: SampleLayout::column_major_packed
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - checked_mul
    - expect
    linkageType: ''
    returnType: Self
    signature: 'pub fn column_major_packed(channels: u8, width: u32, height: u32)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    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: 207
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 207
    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: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    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:272,1
    - Dst: SampleLayout::index
      Src: /src/image/src/images/flat.rs:275,1
    - Dst: Option::and_then
      Src: /src/image/src/images/flat.rs:275,1
    - Dst: checked_add
      Src: /src/image/src/images/flat.rs:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: SampleLayout::min_length
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - SampleLayout::index
    - checked_add
    - Some
    - Option::and_then
    linkageType: ''
    returnType: Option
    signature: pub fn min_length(&self) -> Option<usize>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SampleLayout::min_length
      Src: /src/image/src/images/flat.rs:282,1
    - Dst: Option::is_some_and
      Src: /src/image/src/images/flat.rs:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 283
    functionName: SampleLayout::fits
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Option::is_some_and
    - SampleLayout::min_length
    linkageType: ''
    returnType: bool
    signature: 'pub fn fits(&self, len: usize) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Dim
      Src: /src/image/src/images/flat.rs:289,1
    - Dst: Dim
      Src: /src/image/src/images/flat.rs:290,1
    - Dst: Dim
      Src: /src/image/src/images/flat.rs:291,1
    - Dst: sort
      Src: /src/image/src/images/flat.rs:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 300
    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:309,1
    - Dst: checked_len
      Src: /src/image/src/images/flat.rs:311,1
    - Dst: checked_len
      Src: /src/image/src/images/flat.rs:316,1
    - Dst: checked_len
      Src: /src/image/src/images/flat.rs:321,1
    - Dst: is_none
      Src: /src/image/src/images/flat.rs:321,1
    - Dst: stride
      Src: /src/image/src/images/flat.rs:326,1
    - Dst: stride
      Src: /src/image/src/images/flat.rs:326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 327
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 327
    functionName: SampleLayout::has_aliased_samples
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - is_none
    - checked_len
    - SampleLayout::increasing_stride_dims
    - stride
    linkageType: ''
    returnType: bool
    signature: pub fn has_aliased_samples(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SampleLayout::has_aliased_samples
      Src: /src/image/src/images/flat.rs:338,1
    - Dst: SampleLayout::increasing_stride_dims
      Src: /src/image/src/images/flat.rs:348,1
    - Dst: stride
      Src: /src/image/src/images/flat.rs:351,1
    - Dst: len
      Src: /src/image/src/images/flat.rs:355,1
    - Dst: stride
      Src: /src/image/src/images/flat.rs:355,1
    - Dst: len
      Src: /src/image/src/images/flat.rs:359,1
    - Dst: stride
      Src: /src/image/src/images/flat.rs:359,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 90
    argCount: 1
    argNames:
    - form
    argTypes:
    - NormalForm
    constantsTouched: []
    func_position:
      end: 385
      start: 337
    functionDepth: 11
    functionLinenumber: 337
    functionLinenumberEnd: 385
    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: 395
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 395
    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:402,1
    - Dst: SampleLayout::index_ignoring_bounds
      Src: /src/image/src/images/flat.rs:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 407
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 407
    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:416,1
    - Dst: checked_mul
      Src: /src/image/src/images/flat.rs:417,1
    - Dst: Option::checked_mul
      Src: /src/image/src/images/flat.rs:418,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:424,1
    - Dst: and_then
      Src: /src/image/src/images/flat.rs:424,1
    - Dst: checked_add
      Src: /src/image/src/images/flat.rs:425,1
    - Dst: and_then
      Src: /src/image/src/images/flat.rs:424,1
    - Dst: checked_add
      Src: /src/image/src/images/flat.rs:426,1
    - Dst: and_then
      Src: /src/image/src/images/flat.rs:424,1
    - Dst: checked_add
      Src: /src/image/src/images/flat.rs:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - usize
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 428
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 428
    functionName: SampleLayout::index_ignoring_bounds
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - Option::checked_mul
    - and_then
    - checked_mul
    - Some
    - checked_add
    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:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - c
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 442
    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:450,1
    - Dst: min
      Src: /src/image/src/images/flat.rs:451,1
    - Dst: min
      Src: /src/image/src/images/flat.rs:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - channels
    - width
    - height
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 453
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 453
    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: 459
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 459
    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:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 464
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 464
    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: 468
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 468
    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:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 478
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 478
    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:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 486
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 486
    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:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 494
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 494
    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:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 506
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 506
    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:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 518
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 518
    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:527,1
    - Dst: to_vec
      Src: /src/image/src/images/flat.rs:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 531
      start: 521
    functionDepth: 5
    functionLinenumber: 521
    functionLinenumberEnd: 531
    functionName: FlatSamples::to_vec
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - to_vec
    linkageType: ''
    returnType: FlatSamples
    signature: 'pub fn to_vec<T>(&self) -> FlatSamples<Vec<T>>whereT: Clone,Buffer:
      AsRef<[T]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatSamples::index
      Src: /src/image/src/images/flat.rs:558,1
    - Dst: '&Self::Output::and_then'
      Src: /src/image/src/images/flat.rs:558,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:559,1
    - Dst: get
      Src: /src/image/src/images/flat.rs:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 560
      start: 554
    functionDepth: 3
    functionLinenumber: 554
    functionLinenumberEnd: 560
    functionName: FlatSamples::get_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - '&Self::Output::and_then'
    - get
    - as_ref
    - FlatSamples::index
    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:592,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:594,1
    - Dst: get_mut
      Src: /src/image/src/images/flat.rs:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 596
      start: 588
    functionDepth: 3
    functionLinenumber: 588
    functionLinenumberEnd: 596
    functionName: FlatSamples::get_mut_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - get_mut
    - FlatSamples::index
    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:610,1
    - Dst: into_view
      Src: /src/image/src/images/flat.rs:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 615
      start: 604
    functionDepth: 12
    functionLinenumber: 604
    functionLinenumberEnd: 615
    functionName: FlatSamples::as_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - into_view
    - as_ref
    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:632,1
    - Dst: Error::ChannelCountMismatch
      Src: /src/image/src/images/flat.rs:632,1
    - Dst: fits
      Src: /src/image/src/images/flat.rs:638,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:638,1
    - Dst: len
      Src: /src/image/src/images/flat.rs:638,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:639,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:642,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 646
      start: 626
    functionDepth: 11
    functionLinenumber: 626
    functionLinenumberEnd: 646
    functionName: FlatSamples::into_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - len
    - Err
    - Error::ChannelCountMismatch
    - Ok
    - fits
    - as_ref
    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:669,1
    - Dst: Error::ChannelCountMismatch
      Src: /src/image/src/images/flat.rs:669,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:675,1
    - Dst: fits
      Src: /src/image/src/images/flat.rs:676,1
    - Dst: FlatSamples::len
      Src: /src/image/src/images/flat.rs:676,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:677,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:680,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 688
      start: 663
    functionDepth: 12
    functionLinenumber: 663
    functionLinenumberEnd: 688
    functionName: FlatSamples::as_view_with_mut_samples
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - Err
    - Error::ChannelCountMismatch
    - Ok
    - fits
    - 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:706,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:707,1
    - Dst: Error::NormalFormRequired
      Src: /src/image/src/images/flat.rs:707,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:711,1
    - Dst: Error::ChannelCountMismatch
      Src: /src/image/src/images/flat.rs:711,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:717,1
    - Dst: fits
      Src: /src/image/src/images/flat.rs:718,1
    - Dst: FlatSamples::len
      Src: /src/image/src/images/flat.rs:718,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:719,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:722,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 730
      start: 701
    functionDepth: 12
    functionLinenumber: 701
    functionLinenumberEnd: 730
    functionName: FlatSamples::as_view_mut
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - Err
    - Error::ChannelCountMismatch
    - Ok
    - is_normal
    - fits
    - Error::NormalFormRequired
    - 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: is_normal
      Src: /src/image/src/images/flat.rs:744,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:745,1
    - Dst: Error::NormalFormRequired
      Src: /src/image/src/images/flat.rs:745,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:749,1
    - Dst: Error::ChannelCountMismatch
      Src: /src/image/src/images/flat.rs:749,1
    - Dst: fits
      Src: /src/image/src/images/flat.rs:755,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:755,1
    - Dst: len
      Src: /src/image/src/images/flat.rs:755,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:756,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:759,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 767
      start: 739
    functionDepth: 12
    functionLinenumber: 739
    functionLinenumberEnd: 767
    functionName: FlatSamples::into_view_mut
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - as_mut
    - len
    - Err
    - Error::ChannelCountMismatch
    - Ok
    - is_normal
    - fits
    - Error::NormalFormRequired
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn into_view_mut<P>(mut self) -> Result<ViewMut<Buffer,
      P>, Error>whereP: Pixel,Buffer: AsMut<[P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 778
      start: 773
    functionDepth: 2
    functionLinenumber: 773
    functionLinenumberEnd: 778
    functionName: FlatSamples::as_slice
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    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:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 789
      start: 784
    functionDepth: 2
    functionLinenumber: 784
    functionLinenumberEnd: 789
    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:800,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:802,1
    - Dst: '&[T]::len'
      Src: /src/image/src/images/flat.rs:803,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 808
      start: 796
    functionDepth: 11
    functionLinenumber: 796
    functionLinenumberEnd: 808
    functionName: FlatSamples::image_slice
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - '&[T]::len'
    - Some
    - as_ref
    - FlatSamples::min_length
    linkageType: ''
    returnType: Option
    signature: 'pub fn image_slice<T>(&self) -> Option<&[T]>whereBuffer: AsRef<[T]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatSamples::min_length
      Src: /src/image/src/images/flat.rs:815,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:817,1
    - Dst: '&[T]::len'
      Src: /src/image/src/images/flat.rs:818,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 823
      start: 811
    functionDepth: 11
    functionLinenumber: 811
    functionLinenumberEnd: 823
    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:835,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:836,1
    - Dst: Error::NormalFormRequired
      Src: /src/image/src/images/flat.rs:836,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:840,1
    - Dst: Error::ChannelCountMismatch
      Src: /src/image/src/images/flat.rs:841,1
    - Dst: FlatSamples::fits
      Src: /src/image/src/images/flat.rs:846,1
    - Dst: deref
      Src: /src/image/src/images/flat.rs:846,1
    - Dst: len
      Src: /src/image/src/images/flat.rs:846,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:847,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:850,1
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/flat.rs:851,1
    - Dst: Option::unwrap_or_else
      Src: /src/image/src/images/flat.rs:851,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 856
      start: 830
    functionDepth: 13
    functionLinenumber: 830
    functionLinenumberEnd: 856
    functionName: FlatSamples::try_into_buffer
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - len
    - Err
    - Error::ChannelCountMismatch
    - ImageBuffer::from_raw
    - Ok
    - Option::unwrap_or_else
    - FlatSamples::is_normal
    - FlatSamples::fits
    - deref
    - Error::NormalFormRequired
    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:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 911
      start: 909
    functionDepth: 3
    functionLinenumber: 909
    functionLinenumberEnd: 911
    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:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 916
      start: 914
    functionDepth: 4
    functionLinenumber: 914
    functionLinenumberEnd: 916
    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:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 925
      start: 923
    functionDepth: 2
    functionLinenumber: 923
    functionLinenumberEnd: 925
    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:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - form
    argTypes:
    - NormalForm
    constantsTouched: []
    func_position:
      end: 936
      start: 934
    functionDepth: 12
    functionLinenumber: 934
    functionLinenumberEnd: 936
    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:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 945
      start: 943
    functionDepth: 2
    functionLinenumber: 943
    functionLinenumberEnd: 945
    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:1605,1
    - Dst: FlatSamples::strides_cwh
      Src: /src/image/src/images/flat.rs:1606,1
    - Dst: FlatSamples::index
      Src: /src/image/src/images/flat.rs:1607,1
    - Dst: '&Self::Output::unwrap_or_else'
      Src: /src/image/src/images/flat.rs:1607,1
    - Dst: panic_cwh_out_of_bounds
      Src: /src/image/src/images/flat.rs:1609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames: []
    argTypes:
    - (u8, u32, u32)
    constantsTouched: []
    func_position:
      end: 1611
      start: 1604
    functionDepth: 2
    functionLinenumber: 1604
    functionLinenumberEnd: 1611
    functionName: FlatSamples::index
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 4
    functionsReached:
    - panic_cwh_out_of_bounds
    - FlatSamples::index
    - FlatSamples::strides_cwh
    - FlatSamples::bounds
    - '&Self::Output::unwrap_or_else'
    linkageType: ''
    returnType: '&Self::Output'
    signature: 'fn index(&self, (c, x, y): (u8, u32, u32)) -> &Self::Output'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: index_ignoring_bounds
      Src: /src/image/src/images/flat.rs:960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - usize
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 961
      start: 959
    functionDepth: 1
    functionLinenumber: 959
    functionLinenumberEnd: 961
    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:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 970
      start: 968
    functionDepth: 2
    functionLinenumber: 968
    functionLinenumberEnd: 970
    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:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - channels
    - width
    - height
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 979
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 979
    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:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pixel
    - width
    - height
    argTypes:
    - '&''buf P'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1008
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 1008
    functionName: FlatSamples::with_monocolor
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 5
    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: 1141
      start: 1139
    functionDepth: 0
    functionLinenumber: 1139
    functionLinenumberEnd: 1141
    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: 1151
      start: 1149
    functionDepth: 0
    functionLinenumber: 1149
    functionLinenumberEnd: 1151
    functionName: View::flat
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    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: 1159
      start: 1157
    functionDepth: 0
    functionLinenumber: 1157
    functionLinenumberEnd: 1159
    functionName: View::samples
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: '&Buffer'
    signature: pub fn samples(&self) -> &Buffer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: in_bounds
      Src: /src/image/src/images/flat.rs:1166,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1170,1
    - Dst: View::samples
      Src: /src/image/src/images/flat.rs:1172,1
    - Dst: '&Buffer::as_ref'
      Src: /src/image/src/images/flat.rs:1172,1
    - Dst: FlatSamples::get
      Src: /src/image/src/images/flat.rs:1172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1173
      start: 1165
    functionDepth: 3
    functionLinenumber: 1165
    functionLinenumberEnd: 1173
    functionName: View::get_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - in_bounds_index
    - in_bounds
    - View::samples
    - FlatSamples::get
    - '&Buffer::as_ref'
    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:1187,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1191,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:1193,1
    - Dst: get_mut
      Src: /src/image/src/images/flat.rs:1193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1194
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1194
    functionName: View::get_mut_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - in_bounds_index
    - get_mut
    - as_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:1200,1
    - Dst: unwrap
      Src: /src/image/src/images/flat.rs:1200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1199
    functionDepth: 3
    functionLinenumber: 1199
    functionLinenumberEnd: 1201
    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:1208,1
    - Dst: '&Buffer::as_ref'
      Src: /src/image/src/images/flat.rs:1208,1
    - Dst: View::min_length
      Src: /src/image/src/images/flat.rs:1208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1207
    functionDepth: 4
    functionLinenumber: 1207
    functionLinenumberEnd: 1209
    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:1213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1211
    functionDepth: 1
    functionLinenumber: 1211
    functionLinenumberEnd: 1215
    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:1226,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:1227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1222
    functionDepth: 4
    functionLinenumber: 1222
    functionLinenumberEnd: 1228
    functionName: View::image_mut_slice
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - View::min_length
    linkageType: ''
    returnType: '&mut [P::Subpixel]'
    signature: 'pub fn image_mut_slice(&mut self) -> &mut [P::Subpixel]whereBuffer:
      AsMut<[P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: shrink_to
      Src: /src/image/src/images/flat.rs:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1238
      start: 1235
    functionDepth: 1
    functionLinenumber: 1235
    functionLinenumberEnd: 1238
    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:1262,1
    - Dst: Err
      Src: /src/image/src/images/flat.rs:1263,1
    - Dst: Error::NormalFormRequired
      Src: /src/image/src/images/flat.rs:1263,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:1267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1258
    functionDepth: 12
    functionLinenumber: 1258
    functionLinenumberEnd: 1271
    functionName: View::try_upgrade
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Error::NormalFormRequired
    - Err
    - is_normal
    linkageType: ''
    returnType: Result
    signature: 'pub fn try_upgrade(self) -> Result<ViewMut<Buffer, P>, (Error, Self)>whereBuffer:
      AsMut<[P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: View::flat
      Src: /src/image/src/images/flat.rs:1276,1
    - Dst: View::samples
      Src: /src/image/src/images/flat.rs:1285,1
    - Dst: '&Buffer::as_ref'
      Src: /src/image/src/images/flat.rs:1285,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1293,1
    - Dst: map
      Src: /src/image/src/images/flat.rs:1293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1275
    functionDepth: 7
    functionLinenumber: 1275
    functionLinenumberEnd: 1297
    functionName: View::iter_rows
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - map
    - View::samples
    - View::flat
    - Some
    - '&Buffer::as_ref'
    linkageType: ''
    returnType: Option
    signature: pub(crate) fn iter_rows(&self) -> Option<impl Iterator<Item = &[P::Subpixel]>
      + '_>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FlatSamples::with_monocolor
      Src: /src/image/src/images/flat.rs:1328,1
    - Dst: Self::into_view
      Src: /src/image/src/images/flat.rs:1328,1
    - Dst: Result::unwrap
      Src: /src/image/src/images/flat.rs:1328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - pixel
    - width
    - height
    argTypes:
    - '&''buf P'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1331
      start: 1321
    functionDepth: 12
    functionLinenumber: 1321
    functionLinenumberEnd: 1331
    functionName: View::with_monocolor
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 4
    functionsReached:
    - FlatSamples::with_monocolor
    - Result::unwrap
    - Self::into_view
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_monocolor(pixel: &''buf P, width: u32, height: u32) ->
      SelfwhereP::Subpixel: crate::Primitive,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1343
    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: 1353
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1353
    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: 1362
      start: 1360
    functionDepth: 0
    functionLinenumber: 1360
    functionLinenumberEnd: 1362
    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:1368,1
    - Dst: unwrap
      Src: /src/image/src/images/flat.rs:1368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1367
    functionDepth: 3
    functionLinenumber: 1367
    functionLinenumberEnd: 1369
    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:1379,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1383,1
    - Dst: ViewMut::samples
      Src: /src/image/src/images/flat.rs:1385,1
    - Dst: '&Buffer::as_ref'
      Src: /src/image/src/images/flat.rs:1385,1
    - Dst: FlatSamples::get
      Src: /src/image/src/images/flat.rs:1385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1386
      start: 1375
    functionDepth: 3
    functionLinenumber: 1375
    functionLinenumberEnd: 1386
    functionName: ViewMut::get_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - in_bounds_index
    - ViewMut::samples
    - in_bounds
    - FlatSamples::get
    - '&Buffer::as_ref'
    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:1393,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1397,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:1399,1
    - Dst: get_mut
      Src: /src/image/src/images/flat.rs:1399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - channel
    - x
    - y
    argTypes:
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1400
      start: 1392
    functionDepth: 2
    functionLinenumber: 1392
    functionLinenumberEnd: 1400
    functionName: ViewMut::get_mut_sample
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - in_bounds_index
    - get_mut
    - as_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:1410,1
    - Dst: ViewMut::min_length
      Src: /src/image/src/images/flat.rs:1410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1406
    functionDepth: 4
    functionLinenumber: 1406
    functionLinenumberEnd: 1411
    functionName: ViewMut::image_slice
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - ViewMut::min_length
    - as_ref
    linkageType: ''
    returnType: '&[P::Subpixel]'
    signature: 'pub fn image_slice(&self) -> &[P::Subpixel]whereBuffer: AsRef<[P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ViewMut::min_length
      Src: /src/image/src/images/flat.rs:1415,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:1416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1414
    functionDepth: 4
    functionLinenumber: 1414
    functionLinenumberEnd: 1417
    functionName: ViewMut::image_mut_slice
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 2
    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:1426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1427
      start: 1424
    functionDepth: 1
    functionLinenumber: 1424
    functionLinenumberEnd: 1427
    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:
    - Dst: Rect::from_image_at
      Src: /src/image/src/images/flat.rs:1439,1
    - Dst: test_in_bounds_of
      Src: /src/image/src/images/flat.rs:1440,1
    - Dst: ViewMut::image_mut_slice
      Src: /src/image/src/images/flat.rs:1442,1
    - Dst: '&mut [P::Subpixel]::is_empty'
      Src: /src/image/src/images/flat.rs:1442,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:1445,1
    - Dst: strides_cwh
      Src: /src/image/src/images/flat.rs:1448,1
    - Dst: usize::from
      Src: /src/image/src/images/flat.rs:1455,1
    - Dst: ViewMut::image_mut_slice
      Src: /src/image/src/images/flat.rs:1457,1
    - Dst: '&RgbaImage::len'
      Src: /src/image/src/images/flat.rs:1462,1
    - Dst: '&RgbaImage::chunks_exact_mut'
      Src: /src/image/src/images/flat.rs:1463,1
    - Dst: u32::skip
      Src: /src/image/src/images/flat.rs:1475,1
    - Dst: take
      Src: /src/image/src/images/flat.rs:1475,1
    - Dst: enumerate
      Src: /src/image/src/images/flat.rs:1475,1
    - Dst: usize::from
      Src: /src/image/src/images/flat.rs:1481,1
    - Dst: usize::from
      Src: /src/image/src/images/flat.rs:1482,1
    - Dst: Result::chunks_exact_mut
      Src: /src/image/src/images/flat.rs:1483,1
    - Dst: usize::from
      Src: /src/image/src/images/flat.rs:1483,1
    - Dst: zip
      Src: /src/image/src/images/flat.rs:1485,1
    - Dst: '&O::get_pixel'
      Src: /src/image/src/images/flat.rs:1486,1
    - Dst: P::from_slice_mut
      Src: /src/image/src/images/flat.rs:1487,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:1491,1
    - Dst: ViewMut::image_mut_slice
      Src: /src/image/src/images/flat.rs:1495,1
    - Dst: '&O::get_pixel'
      Src: /src/image/src/images/flat.rs:1499,1
    - Dst: ImageResult::in_bounds_index
      Src: /src/image/src/images/flat.rs:1500,1
    - Dst: usize::from
      Src: /src/image/src/images/flat.rs:1501,1
    - Dst: P::from_slice_mut
      Src: /src/image/src/images/flat.rs:1502,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:1506,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 113
    argCount: 3
    argNames:
    - other
    - x
    - y
    argTypes:
    - '&O'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1507
      start: 1430
    functionDepth: 11
    functionLinenumber: 1430
    functionLinenumberEnd: 1507
    functionName: ViewMut::inner_copy_from
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - Result::chunks_exact_mut
    - '&O::get_pixel'
    - take
    - enumerate
    - Ok
    - '&RgbaImage::chunks_exact_mut'
    - strides_cwh
    - usize::from
    - P::from_slice_mut
    - ViewMut::image_mut_slice
    - '&RgbaImage::len'
    - zip
    - u32::skip
    - '&mut [P::Subpixel]::is_empty'
    - test_in_bounds_of
    - Rect::from_image_at
    - ImageResult::in_bounds_index
    linkageType: ''
    returnType: crate::ImageResult
    signature: 'pub(crate) fn inner_copy_from<O>(&mut self, other: &O, x: u32, y:
      u32) -> crate::ImageResult<()>whereO: GenericImageView<Pixel = P>,// Note: not
      necessary for the implementation per-se but this allows the use of// `GenericImage`/`GenericImageView`
      methods and so `test_in_bounds_of`.Buffer: AsRef<[P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rect::from_image_at
      Src: /src/image/src/images/flat.rs:1520,1
    - Dst: test_in_bounds_of
      Src: /src/image/src/images/flat.rs:1521,1
    - Dst: ViewOfPixel<'_, P>::image_slice
      Src: /src/image/src/images/flat.rs:1524,1
    - Dst: ViewMut::image_mut_slice
      Src: /src/image/src/images/flat.rs:1527,1
    - Dst: usize::from
      Src: /src/image/src/images/flat.rs:1530,1
    - Dst: usize::from
      Src: /src/image/src/images/flat.rs:1531,1
    - Dst: '&mut [P::Subpixel]::chunks_exact_mut'
      Src: /src/image/src/images/flat.rs:1535,1
    - Dst: '&mut [P::Subpixel]::len'
      Src: /src/image/src/images/flat.rs:1537,1
    - Dst: usize::from
      Src: /src/image/src/images/flat.rs:1543,1
    - Dst: u32::skip
      Src: /src/image/src/images/flat.rs:1544,1
    - Dst: take
      Src: /src/image/src/images/flat.rs:1544,1
    - Dst: enumerate
      Src: /src/image/src/images/flat.rs:1544,1
    - Dst: usize::from
      Src: /src/image/src/images/flat.rs:1549,1
    - Dst: copy_from_slice
      Src: /src/image/src/images/flat.rs:1551,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:1554,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1559,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1560,1
    - Dst: usize::from
      Src: /src/image/src/images/flat.rs:1561,1
    - Dst: copy_from_slice
      Src: /src/image/src/images/flat.rs:1561,1
    - Dst: usize::from
      Src: /src/image/src/images/flat.rs:1562,1
    - Dst: Ok
      Src: /src/image/src/images/flat.rs:1566,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 102
    argCount: 3
    argNames:
    - other
    - x
    - y
    argTypes:
    - ViewOfPixel<'_, P>
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1567
      start: 1509
    functionDepth: 12
    functionLinenumber: 1509
    functionLinenumberEnd: 1567
    functionName: ViewMut::inner_copy_from_samples
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - in_bounds_index
    - take
    - enumerate
    - Ok
    - usize::from
    - ViewMut::image_mut_slice
    - '&mut [P::Subpixel]::len'
    - ViewOfPixel<'_, P>::image_slice
    - copy_from_slice
    - u32::skip
    - test_in_bounds_of
    - Rect::from_image_at
    - '&mut [P::Subpixel]::chunks_exact_mut'
    linkageType: ''
    returnType: crate::ImageResult
    signature: 'pub(crate) fn inner_copy_from_samples(&mut self,other: ViewOfPixel<''_,
      P>,x: u32,y: u32,) -> crate::ImageResult<()>where// Note: not necessary for
      the implementation per-se but this allows the use of// `GenericImage`/`GenericImageView`
      methods and so `test_in_bounds_of`.Buffer: AsRef<[P::Subpixel]>,'
  - 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: 1584
      start: 1573
    functionDepth: 0
    functionLinenumber: 1573
    functionLinenumberEnd: 1584
    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: 1591
      start: 1589
    functionDepth: 0
    functionLinenumber: 1589
    functionLinenumberEnd: 1591
    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:1624,1
    - Dst: FlatSamples::strides_cwh
      Src: /src/image/src/images/flat.rs:1625,1
    - Dst: FlatSamples::index
      Src: /src/image/src/images/flat.rs:1626,1
    - Dst: '&Self::Output::unwrap_or_else'
      Src: /src/image/src/images/flat.rs:1626,1
    - Dst: panic_cwh_out_of_bounds
      Src: /src/image/src/images/flat.rs:1628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames: []
    argTypes:
    - (u8, u32, u32)
    constantsTouched: []
    func_position:
      end: 1630
      start: 1623
    functionDepth: 2
    functionLinenumber: 1623
    functionLinenumberEnd: 1630
    functionName: FlatSamples::index_mut
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - panic_cwh_out_of_bounds
    - FlatSamples::index
    - FlatSamples::strides_cwh
    - FlatSamples::bounds
    - '&Self::Output::unwrap_or_else'
    linkageType: ''
    returnType: '&mut Self::Output'
    signature: 'fn index_mut(&mut self, (c, x, y): (u8, u32, u32)) -> &mut Self::Output'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1639
    functionDepth: 0
    functionLinenumber: 1639
    functionLinenumberEnd: 1641
    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:1644,1
    - Dst: panic_pixel_out_of_bounds
      Src: /src/image/src/images/flat.rs:1645,1
    - Dst: View::dimensions
      Src: /src/image/src/images/flat.rs:1645,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:1648,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1649,1
    - Dst: Zero::zero
      Src: /src/image/src/images/flat.rs:1652,1
    - Dst: '&RgbaImage::iter_mut'
      Src: /src/image/src/images/flat.rs:1653,1
    - Dst: enumerate
      Src: /src/image/src/images/flat.rs:1653,1
    - Dst: take
      Src: /src/image/src/images/flat.rs:1653,1
    - Dst: for_each
      Src: /src/image/src/images/flat.rs:1653,1
    - Dst: P::from_slice
      Src: /src/image/src/images/flat.rs:1662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1663
      start: 1643
    functionDepth: 12
    functionLinenumber: 1643
    functionLinenumberEnd: 1663
    functionName: View::get_pixel
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 1
    functionsReached:
    - in_bounds_index
    - P::from_slice
    - take
    - for_each
    - enumerate
    - in_bounds
    - View::dimensions
    - panic_pixel_out_of_bounds
    - '&RgbaImage::iter_mut'
    - Zero::zero
    - as_ref
    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:1666,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:1668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1665
    functionDepth: 2
    functionLinenumber: 1665
    functionLinenumberEnd: 1674
    functionName: View::to_pixel_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Some
    - as_ref
    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: 1685
      start: 1683
    functionDepth: 0
    functionLinenumber: 1683
    functionLinenumberEnd: 1685
    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:1688,1
    - Dst: panic_pixel_out_of_bounds
      Src: /src/image/src/images/flat.rs:1689,1
    - Dst: ViewMut::dimensions
      Src: /src/image/src/images/flat.rs:1689,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:1692,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1693,1
    - Dst: Zero::zero
      Src: /src/image/src/images/flat.rs:1696,1
    - Dst: '&RgbaImage::iter_mut'
      Src: /src/image/src/images/flat.rs:1697,1
    - Dst: enumerate
      Src: /src/image/src/images/flat.rs:1697,1
    - Dst: take
      Src: /src/image/src/images/flat.rs:1697,1
    - Dst: for_each
      Src: /src/image/src/images/flat.rs:1697,1
    - Dst: P::from_slice
      Src: /src/image/src/images/flat.rs:1706,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1707
      start: 1687
    functionDepth: 12
    functionLinenumber: 1687
    functionLinenumberEnd: 1707
    functionName: ViewMut::get_pixel
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - in_bounds_index
    - P::from_slice
    - take
    - for_each
    - enumerate
    - in_bounds
    - panic_pixel_out_of_bounds
    - '&RgbaImage::iter_mut'
    - ViewMut::dimensions
    - Zero::zero
    - as_ref
    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:1710,1
    - Dst: as_ref
      Src: /src/image/src/images/flat.rs:1712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1709
    functionDepth: 2
    functionLinenumber: 1709
    functionLinenumberEnd: 1718
    functionName: ViewMut::to_pixel_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Some
    - as_ref
    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:1726,1
    - Dst: panic_pixel_out_of_bounds
      Src: /src/image/src/images/flat.rs:1727,1
    - Dst: ViewMut::dimensions
      Src: /src/image/src/images/flat.rs:1727,1
    - Dst: in_bounds_index
      Src: /src/image/src/images/flat.rs:1730,1
    - Dst: P::from_slice_mut
      Src: /src/image/src/images/flat.rs:1733,1
    - Dst: as_mut
      Src: /src/image/src/images/flat.rs:1733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - Self::Pixel
    constantsTouched: []
    func_position:
      end: 1734
      start: 1725
    functionDepth: 2
    functionLinenumber: 1725
    functionLinenumberEnd: 1734
    functionName: ViewMut::put_pixel
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - in_bounds_index
    - as_mut
    - in_bounds
    - panic_pixel_out_of_bounds
    - ViewMut::dimensions
    - P::from_slice_mut
    linkageType: ''
    returnType: void
    signature: 'fn 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/flat.rs:1740,1
    - Dst: ViewMut::inner_copy_from_samples
      Src: /src/image/src/images/flat.rs:1741,1
    - Dst: ViewMut::inner_copy_from
      Src: /src/image/src/images/flat.rs:1744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - other
    - x
    - y
    argTypes:
    - '&O'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1745
      start: 1736
    functionDepth: 13
    functionLinenumber: 1736
    functionLinenumberEnd: 1745
    functionName: ViewMut::copy_from
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - '&O::to_pixel_view'
    - ViewMut::inner_copy_from_samples
    - ViewMut::inner_copy_from
    linkageType: ''
    returnType: crate::ImageResult
    signature: 'fn copy_from<O>(&mut self, other: &O, x: u32, y: u32) -> crate::ImageResult<()>whereO:
      GenericImageView<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: 1802
      start: 1781
    functionDepth: 0
    functionLinenumber: 1781
    functionLinenumberEnd: 1802
    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:1813,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1814,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1815,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1816,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1818,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1821,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1822,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1824,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1825,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1826,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1828,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1831,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1832,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1833,1
    - Dst: Some
      Src: /src/image/src/images/flat.rs:1835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 1843
      start: 1811
    functionDepth: 0
    functionLinenumber: 1811
    functionLinenumberEnd: 1843
    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:1867,1
    - Dst: expect
      Src: /src/image/src/images/flat.rs:1867,1
    - Dst: SubImage::pixels
      Src: /src/image/src/images/flat.rs:1868,1
    - Dst: ImageResult::inspect
      Src: /src/image/src/images/flat.rs:1868,1
    - Dst: count
      Src: /src/image/src/images/flat.rs:1868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1853
    functionDepth: 10
    functionLinenumber: 1853
    functionLinenumberEnd: 1873
    functionName: tests::aliasing_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - expect
    - ImageResult::inspect
    - as_view::<Rgb<u8>>
    - count
    - SubImage::pixels
    linkageType: ''
    returnType: void
    signature: fn aliasing_view()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_view_mut::<LumaA<u16>>
      Src: /src/image/src/images/flat.rs:1891,1
    - Dst: expect
      Src: /src/image/src/images/flat.rs:1891,1
    - Dst: SubImage::put_pixel
      Src: /src/image/src/images/flat.rs:1896,1
    - Dst: LumaA
      Src: /src/image/src/images/flat.rs:1896,1
    - Dst: iter
      Src: /src/image/src/images/flat.rs:1900,1
    - Dst: enumerate
      Src: /src/image/src/images/flat.rs:1900,1
    - Dst: for_each
      Src: /src/image/src/images/flat.rs:1900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1876
    functionDepth: 5
    functionLinenumber: 1876
    functionLinenumberEnd: 1905
    functionName: tests::mutable_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - iter
    - SubImage::put_pixel
    - LumaA
    - enumerate
    - expect
    - as_view_mut::<LumaA<u16>>
    - for_each
    linkageType: ''
    returnType: void
    signature: fn mutable_view()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1908
    functionDepth: 0
    functionLinenumber: 1908
    functionLinenumberEnd: 1964
    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:1977,1
    - Dst: Self::into_flat_samples
      Src: /src/image/src/images/flat.rs:1978,1
    - Dst: '&RgbaImage::try_into_buffer'
      Src: /src/image/src/images/flat.rs:1982,1
    - Dst: Result::unwrap_or_else
      Src: /src/image/src/images/flat.rs:1982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1967
    functionDepth: 14
    functionLinenumber: 1967
    functionLinenumberEnd: 1985
    functionName: tests::image_buffer_conversion
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - Self::into_flat_samples
    - GrayAlphaImage::new
    - Result::unwrap_or_else
    - '&RgbaImage::try_into_buffer'
    linkageType: ''
    returnType: void
    signature: fn image_buffer_conversion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: View::with_monocolor
      Src: /src/image/src/images/flat.rs:1989,1
    - Dst: LumaA
      Src: /src/image/src/images/flat.rs:1989,1
    - Dst: as_view_mut::<LumaA<u8>>
      Src: /src/image/src/images/flat.rs:2004,1
    - Dst: expect
      Src: /src/image/src/images/flat.rs:2004,1
    - Dst: SubImage::copy_from
      Src: /src/image/src/images/flat.rs:2008,1
    - Dst: ImageResult::expect
      Src: /src/image/src/images/flat.rs:2008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2012
      start: 1988
    functionDepth: 13
    functionLinenumber: 1988
    functionLinenumberEnd: 2012
    functionName: tests::copy_buffer_like_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - LumaA
    - expect
    - ImageResult::expect
    - View::with_monocolor
    - as_view_mut::<LumaA<u8>>
    - SubImage::copy_from
    linkageType: ''
    returnType: void
    signature: fn copy_buffer_like_view()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: View::with_monocolor
      Src: /src/image/src/images/flat.rs:2016,1
    - Dst: LumaA
      Src: /src/image/src/images/flat.rs:2016,1
    - Dst: as_view_mut::<LumaA<u8>>
      Src: /src/image/src/images/flat.rs:2032,1
    - Dst: expect
      Src: /src/image/src/images/flat.rs:2032,1
    - Dst: SubImage::copy_from
      Src: /src/image/src/images/flat.rs:2036,1
    - Dst: ImageResult::expect
      Src: /src/image/src/images/flat.rs:2036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2015
    functionDepth: 13
    functionLinenumber: 2015
    functionLinenumberEnd: 2043
    functionName: tests::copy_heightstride_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - LumaA
    - expect
    - ImageResult::expect
    - View::with_monocolor
    - as_view_mut::<LumaA<u8>>
    - SubImage::copy_from
    linkageType: ''
    returnType: void
    signature: fn copy_heightstride_view()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: View::with_monocolor
      Src: /src/image/src/images/flat.rs:2047,1
    - Dst: LumaA
      Src: /src/image/src/images/flat.rs:2047,1
    - Dst: as_view_mut::<LumaA<u8>>
      Src: /src/image/src/images/flat.rs:2063,1
    - Dst: expect
      Src: /src/image/src/images/flat.rs:2063,1
    - Dst: SubImage::copy_from
      Src: /src/image/src/images/flat.rs:2067,1
    - Dst: ImageResult::expect
      Src: /src/image/src/images/flat.rs:2067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2046
    functionDepth: 13
    functionLinenumber: 2046
    functionLinenumberEnd: 2074
    functionName: tests::copy_widthstride_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - LumaA
    - expect
    - ImageResult::expect
    - View::with_monocolor
    - as_view_mut::<LumaA<u8>>
    - SubImage::copy_from
    linkageType: ''
    returnType: void
    signature: fn copy_widthstride_view()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: View::with_monocolor
      Src: /src/image/src/images/flat.rs:2078,1
    - Dst: LumaA
      Src: /src/image/src/images/flat.rs:2078,1
    - Dst: as_view_mut::<LumaA<u8>>
      Src: /src/image/src/images/flat.rs:2094,1
    - Dst: expect
      Src: /src/image/src/images/flat.rs:2094,1
    - Dst: SubImage::copy_from
      Src: /src/image/src/images/flat.rs:2098,1
    - Dst: ImageResult::expect
      Src: /src/image/src/images/flat.rs:2098,1
    - Dst: SubImage::copy_from
      Src: /src/image/src/images/flat.rs:2109,1
    - Dst: ImageResult::expect
      Src: /src/image/src/images/flat.rs:2109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2117
      start: 2077
    functionDepth: 13
    functionLinenumber: 2077
    functionLinenumberEnd: 2117
    functionName: tests::copy_column_major_view
    functionSourceFile: /src/image/src/images/flat.rs
    functionUses: 0
    functionsReached:
    - LumaA
    - expect
    - ImageResult::expect
    - View::with_monocolor
    - as_view_mut::<LumaA<u8>>
    - SubImage::copy_from
    linkageType: ''
    returnType: void
    signature: fn copy_column_major_view()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - image
    - rect
    argTypes:
    - I
    - Rect
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 67
    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: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    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: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    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:91,1
    - Dst: SubImage::to_pixel_view
      Src: /src/image/src/images/sub_image.rs:94,1
    - Dst: SubImage::iter_rows
      Src: /src/image/src/images/sub_image.rs:95,1
    - Dst: zip
      Src: /src/image/src/images/sub_image.rs:96,1
    - Dst: ImageResult::rows_mut
      Src: /src/image/src/images/sub_image.rs:96,1
    - Dst: Pixel::pixels_as_channels_mut
      Src: /src/image/src/images/sub_image.rs:97,1
    - Dst: copy_from_slice
      Src: /src/image/src/images/sub_image.rs:97,1
    - Dst: get_pixel
      Src: /src/image/src/images/sub_image.rs:105,1
    - Dst: ImageResult::put_pixel
      Src: /src/image/src/images/sub_image.rs:106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 83
    functionDepth: 8
    functionLinenumber: 83
    functionLinenumberEnd: 111
    functionName: SubImage::to_image
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 3
    functionsReached:
    - ImageResult::rows_mut
    - ImageResult::put_pixel
    - zip
    - copy_from_slice
    - SubImage::iter_rows
    - Pixel::pixels_as_channels_mut
    - SubImage::to_pixel_view
    - 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:141,1
    - Dst: saturating_add
      Src: /src/image/src/images/sub_image.rs:142,1
    - Dst: saturating_add
      Src: /src/image/src/images/sub_image.rs:143,1
    - Dst: SubImage::new
      Src: /src/image/src/images/sub_image.rs:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - rect
    argTypes:
    - Rect
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 5
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: SubImage::view
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 4
    functionsReached:
    - SubImage::new
    - saturating_add
    - ImageBuffer::assert_in_bounds_of
    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: 150
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 150
    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:162,1
    - Dst: saturating_add
      Src: /src/image/src/images/sub_image.rs:163,1
    - Dst: saturating_add
      Src: /src/image/src/images/sub_image.rs:164,1
    - Dst: SubImage::new
      Src: /src/image/src/images/sub_image.rs:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - rect
    argTypes:
    - Rect
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 5
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: SubImage::sub_image
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 1
    functionsReached:
    - SubImage::new
    - saturating_add
    - ImageBuffer::assert_in_bounds_of
    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: 171
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 171
    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: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    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: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    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: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    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:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 207
    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:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 219
    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:222,1
    - Dst: Option::into_inner
      Src: /src/image/src/images/sub_image.rs:225,1
    - Dst: R::index
      Src: /src/image/src/images/sub_image.rs:227,1
    - Dst: get
      Src: /src/image/src/images/sub_image.rs:228,1
    - Dst: R::into_view
      Src: /src/image/src/images/sub_image.rs:232,1
    - Dst: Result::ok
      Src: /src/image/src/images/sub_image.rs:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 221
    functionDepth: 12
    functionLinenumber: 221
    functionLinenumberEnd: 233
    functionName: SubImageInner::to_pixel_view
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached:
    - Result::ok
    - get
    - R::index
    - Option::into_inner
    - R::into_view
    - to_pixel_view
    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:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - Self::Pixel
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 244
    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:250,1
    - Dst: Self::test_in_bounds_of
      Src: /src/image/src/images/sub_image.rs:250,1
    - Dst: copy_from
      Src: /src/image/src/images/sub_image.rs:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - other
    - x
    - y
    argTypes:
    - '&O'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 255
      start: 246
    functionDepth: 13
    functionLinenumber: 246
    functionLinenumberEnd: 255
    functionName: SubImageInner::copy_from
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached:
    - Self::test_in_bounds_of
    - copy_from
    - Rect::from_image_at
    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: to_pixel_view_mut
      Src: /src/image/src/images/sub_image.rs:258,1
    - Dst: Option::into_inner
      Src: /src/image/src/images/sub_image.rs:261,1
    - Dst: R::index
      Src: /src/image/src/images/sub_image.rs:263,1
    - Dst: get_mut
      Src: /src/image/src/images/sub_image.rs:264,1
    - Dst: R::into_view_mut
      Src: /src/image/src/images/sub_image.rs:268,1
    - Dst: Result::ok
      Src: /src/image/src/images/sub_image.rs:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 269
      start: 257
    functionDepth: 13
    functionLinenumber: 257
    functionLinenumberEnd: 269
    functionName: SubImageInner::to_pixel_view_mut
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached:
    - Result::ok
    - to_pixel_view_mut
    - get_mut
    - R::into_view_mut
    - R::index
    - Option::into_inner
    linkageType: ''
    returnType: Option
    signature: fn to_pixel_view_mut(&mut self) -> Option<ViewMutOfPixel<'_, Self::Pixel>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/images/sub_image.rs:278,1
    - Dst: crate::Rgba
      Src: /src/image/src/images/sub_image.rs:279,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/sub_image.rs:280,1
    - Dst: '&RgbaImage::view'
      Src: /src/image/src/images/sub_image.rs:282,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/sub_image.rs:282,1
    - Dst: SubImage::buffer_like
      Src: /src/image/src/images/sub_image.rs:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 277
    functionDepth: 6
    functionLinenumber: 277
    functionLinenumberEnd: 286
    functionName: tests::preserves_color_space
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached:
    - RgbaImage::new
    - '&RgbaImage::set_rgb_primaries'
    - crate::Rgba
    - Rect::from_xy_ranges
    - '&RgbaImage::view'
    - SubImage::buffer_like
    linkageType: ''
    returnType: void
    signature: fn preserves_color_space()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::new
      Src: /src/image/src/images/sub_image.rs:290,1
    - Dst: crate::Rgba
      Src: /src/image/src/images/sub_image.rs:291,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/sub_image.rs:292,1
    - Dst: '&RgbaImage::view'
      Src: /src/image/src/images/sub_image.rs:294,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/sub_image.rs:294,1
    - Dst: SubImage::view
      Src: /src/image/src/images/sub_image.rs:295,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/sub_image.rs:295,1
    - Dst: SubImage::buffer_like
      Src: /src/image/src/images/sub_image.rs:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 289
    functionDepth: 6
    functionLinenumber: 289
    functionLinenumberEnd: 299
    functionName: tests::deep_preserves_color_space
    functionSourceFile: /src/image/src/images/sub_image.rs
    functionUses: 0
    functionsReached:
    - RgbaImage::new
    - '&RgbaImage::set_rgb_primaries'
    - crate::Rgba
    - Rect::from_xy_ranges
    - SubImage::view
    - '&RgbaImage::view'
    - SubImage::buffer_like
    linkageType: ''
    returnType: void
    signature: fn deep_preserves_color_space()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chunks_exact
      Src: /src/image/src/images/buffer.rs:41,1
    - Dst: ImageResult::chunks_exact
      Src: /src/image/src/images/buffer.rs:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - pixels
    - width
    - height
    argTypes:
    - '&''a [P]'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 48
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 48
    functionName: Rows::with_image
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - chunks_exact
    - ImageResult::chunks_exact
    linkageType: ''
    returnType: Self
    signature: 'fn with_image(pixels: &''a [P], width: u32, height: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/image/src/images/buffer.rs:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: Rows::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<&'a [P]>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rows::len
      Src: /src/image/src/images/buffer.rs:64,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 12
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: Rows::size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - Rows::len
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer.rs:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 11
    functionLinenumber: 73
    functionLinenumberEnd: 75
    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:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: Rows::next_back
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - next_back
    linkageType: ''
    returnType: Option
    signature: fn next_back(&mut self) -> Option<&'a [P]>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/image/src/images/buffer.rs:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 93
    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:101,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:101,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 104
    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: chunks_exact_mut
      Src: /src/image/src/images/buffer.rs:125,1
    - Dst: ImageResult::chunks_exact_mut
      Src: /src/image/src/images/buffer.rs:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - pixels
    - width
    - height
    argTypes:
    - '&''a mut [P]'
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 132
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 132
    functionName: RowsMut::with_image
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - ImageResult::chunks_exact_mut
    - chunks_exact_mut
    linkageType: ''
    returnType: Self
    signature: 'fn with_image(pixels: &''a mut [P], width: u32, height: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/image/src/images/buffer.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: RowsMut::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<&'a mut [P]>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RowsMut::len
      Src: /src/image/src/images/buffer.rs:148,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 12
    functionLinenumber: 147
    functionLinenumberEnd: 150
    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:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 11
    functionLinenumber: 157
    functionLinenumberEnd: 159
    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:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: RowsMut::next_back
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - next_back
    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:177,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:177,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 180
    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:208,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 209
      start: 201
    functionDepth: 7
    functionLinenumber: 201
    functionLinenumberEnd: 209
    functionName: EnumeratePixels::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - map
    - next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<(u32, u32, &'a P)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnumeratePixels::len
      Src: /src/image/src/images/buffer.rs:213,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 212
    functionDepth: 12
    functionLinenumber: 212
    functionLinenumberEnd: 215
    functionName: EnumeratePixels::size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - EnumeratePixels::len
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer.rs:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 222
    functionDepth: 11
    functionLinenumber: 222
    functionLinenumberEnd: 224
    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:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 233
    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:241,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:241,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:241,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:241,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:241,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 247
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 247
    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:270,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:270,1
    - Dst: Result::iter
      Src: /src/image/src/images/buffer.rs:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 267
    functionDepth: 7
    functionLinenumber: 267
    functionLinenumberEnd: 281
    functionName: EnumerateRows::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Result::iter
    - map
    - next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<(u32, EnumeratePixels<'a, P>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnumerateRows::len
      Src: /src/image/src/images/buffer.rs:285,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 12
    functionLinenumber: 284
    functionLinenumberEnd: 287
    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:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 11
    functionLinenumber: 294
    functionLinenumberEnd: 296
    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:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 300
    functionDepth: 2
    functionLinenumber: 300
    functionLinenumberEnd: 305
    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:313,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:313,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:313,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:313,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 318
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 318
    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:346,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 347
      start: 339
    functionDepth: 7
    functionLinenumber: 339
    functionLinenumberEnd: 347
    functionName: EnumeratePixelsMut::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - map
    - next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<(u32, u32, &'a mut P)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnumeratePixelsMut::len
      Src: /src/image/src/images/buffer.rs:351,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 12
    functionLinenumber: 350
    functionLinenumberEnd: 353
    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:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 362
      start: 360
    functionDepth: 11
    functionLinenumber: 360
    functionLinenumberEnd: 362
    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:370,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:370,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:370,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:370,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:370,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 376
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 376
    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:399,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:399,1
    - Dst: Result::iter_mut
      Src: /src/image/src/images/buffer.rs:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 396
    functionDepth: 7
    functionLinenumber: 396
    functionLinenumberEnd: 410
    functionName: EnumerateRowsMut::next
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - map
    - Result::iter_mut
    - next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<(u32, EnumeratePixelsMut<'a, P>)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EnumerateRowsMut::len
      Src: /src/image/src/images/buffer.rs:414,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 12
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: EnumerateRowsMut::size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - EnumerateRowsMut::len
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/image/src/images/buffer.rs:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 425
      start: 423
    functionDepth: 11
    functionLinenumber: 423
    functionLinenumberEnd: 425
    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:433,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:433,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:433,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:433,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 438
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 438
    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:524,1
    - Dst: std::io::Result::len
      Src: /src/image/src/images/buffer.rs:524,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:525,1
    - Dst: into_rgb
      Src: /src/image/src/images/buffer.rs:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - width
    - height
    - buf
    argTypes:
    - u32
    - u32
    - Container
    constantsTouched: []
    func_position:
      end: 535
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 535
    functionName: ImageBuffer::from_raw
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 38
    functionsReached:
    - into_rgb
    - Some
    - std::io::Result::len
    - Self::check_image_fits
    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: 540
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 540
    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: 545
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 545
    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:1182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1181
    functionDepth: 1
    functionLinenumber: 1181
    functionLinenumberEnd: 1183
    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: 555
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 555
    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: 560
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 560
    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:567,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 569
      start: 566
    functionDepth: 1
    functionLinenumber: 566
    functionLinenumberEnd: 569
    functionName: ImageBuffer::subpixels
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 8
    functionsReached:
    - Self::image_buffer_len
    - Option::unwrap
    linkageType: ''
    returnType: '&[P::Subpixel]'
    signature: pub fn subpixels(&self) -> &[P::Subpixel]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::subpixels
      Src: /src/image/src/images/buffer.rs:577,1
    - Dst: <P as Pixel>::pixels_from_channels
      Src: /src/image/src/images/buffer.rs:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 579
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 579
    functionName: ImageBuffer::pixels
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 4
    functionsReached:
    - ImageBuffer::subpixels
    - <P as Pixel>::pixels_from_channels
    linkageType: ''
    returnType: '&[P]'
    signature: pub fn pixels(&self) -> &[P]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Rows::with_image
      Src: /src/image/src/images/buffer.rs:587,1
    - Dst: ImageBuffer::pixels
      Src: /src/image/src/images/buffer.rs:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 588
      start: 586
    functionDepth: 3
    functionLinenumber: 586
    functionLinenumberEnd: 588
    functionName: ImageBuffer::rows
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - ImageBuffer::pixels
    - 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:597,1
    - Dst: '&[P]::iter'
      Src: /src/image/src/images/buffer.rs:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 602
      start: 595
    functionDepth: 5
    functionLinenumber: 595
    functionLinenumberEnd: 602
    functionName: ImageBuffer::enumerate_pixels
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::pixels
    - '&[P]::iter'
    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:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 613
      start: 607
    functionDepth: 4
    functionLinenumber: 607
    functionLinenumberEnd: 613
    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:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1187
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1187
    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: ImageBuffer::pixel_indices
      Src: /src/image/src/images/buffer.rs:636,1
    - Dst: get
      Src: /src/image/src/images/buffer.rs:637,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 638
      start: 635
    functionDepth: 7
    functionLinenumber: 635
    functionLinenumberEnd: 638
    functionName: ImageBuffer::get_pixel_checked
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - map
    - get
    - ImageBuffer::pixel_indices
    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:646,1
    - Dst: Option::is_some_and
      Src: /src/image/src/images/buffer.rs:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - width
    - height
    - len
    argTypes:
    - u32
    - u32
    - usize
    constantsTouched: []
    func_position:
      end: 648
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 648
    functionName: ImageBuffer::check_image_fits
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Option::is_some_and
    - Self::image_buffer_len
    linkageType: ''
    returnType: bool
    signature: 'fn check_image_fits(width: u32, height: u32, len: usize) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:651,1
    - Dst: and_then
      Src: /src/image/src/images/buffer.rs:651,1
    - Dst: u64::checked_mul
      Src: /src/image/src/images/buffer.rs:652,1
    - Dst: and_then
      Src: /src/image/src/images/buffer.rs:651,1
    - Dst: u64::checked_mul
      Src: /src/image/src/images/buffer.rs:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 654
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 654
    functionName: ImageBuffer::image_buffer_len
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - u64::checked_mul
    - Some
    - and_then
    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:662,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 663
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 663
    functionName: ImageBuffer::pixel_indices
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 3
    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: 671
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 671
    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:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 677
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 677
    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:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 696
      start: 685
    functionDepth: 2
    functionLinenumber: 685
    functionLinenumberEnd: 696
    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:702,1
    - Dst: as_ref
      Src: /src/image/src/images/buffer.rs:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 708
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 708
    functionName: ImageBuffer::as_flat_samples
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 4
    functionsReached:
    - ImageBuffer::sample_layout
    - as_ref
    linkageType: ''
    returnType: FlatSamples
    signature: pub fn as_flat_samples(&self) -> FlatSamples<&[P::Subpixel]>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::as_flat_samples
      Src: /src/image/src/images/buffer.rs:732,1
    - Dst: FlatSamples::into_view
      Src: /src/image/src/images/buffer.rs:732,1
    - Dst: Result::expect
      Src: /src/image/src/images/buffer.rs:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 735
      start: 731
    functionDepth: 12
    functionLinenumber: 731
    functionLinenumberEnd: 735
    functionName: ImageBuffer::as_pixel_view
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - Result::expect
    - ImageBuffer::as_flat_samples
    - FlatSamples::into_view
    linkageType: ''
    returnType: ViewOfPixel
    signature: pub fn as_pixel_view(&self) -> ViewOfPixel<'_, P>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::sample_layout
      Src: /src/image/src/images/buffer.rs:744,1
    - Dst: as_mut
      Src: /src/image/src/images/buffer.rs:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 750
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 750
    functionName: ImageBuffer::as_flat_samples_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - as_mut
    - ImageBuffer::sample_layout
    linkageType: ''
    returnType: FlatSamples
    signature: 'pub fn as_flat_samples_mut(&mut self) -> FlatSamples<&mut [P::Subpixel]>whereContainer:
      DerefMut<Target = [P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::as_flat_samples_mut
      Src: /src/image/src/images/buffer.rs:777,1
    - Dst: FlatSamples::into_view_mut
      Src: /src/image/src/images/buffer.rs:777,1
    - Dst: Result::expect
      Src: /src/image/src/images/buffer.rs:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 780
      start: 773
    functionDepth: 13
    functionLinenumber: 773
    functionLinenumberEnd: 780
    functionName: ImageBuffer::as_pixel_view_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - Result::expect
    - FlatSamples::into_view_mut
    - ImageBuffer::as_flat_samples_mut
    linkageType: ''
    returnType: ViewMutOfPixel
    signature: 'pub fn as_pixel_view_mut(&mut self) -> ViewMutOfPixel<''_, P>whereContainer:
      DerefMut<Target = [P::Subpixel]>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::image_buffer_len
      Src: /src/image/src/images/buffer.rs:792,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 794
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 794
    functionName: ImageBuffer::subpixels_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 4
    functionsReached:
    - Self::image_buffer_len
    - Option::unwrap
    linkageType: ''
    returnType: '&mut [P::Subpixel]'
    signature: pub fn subpixels_mut(&mut self) -> &mut [P::Subpixel]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::subpixels_mut
      Src: /src/image/src/images/buffer.rs:800,1
    - Dst: <P as Pixel>::pixels_from_channels_mut
      Src: /src/image/src/images/buffer.rs:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 802
      start: 799
    functionDepth: 2
    functionLinenumber: 799
    functionLinenumberEnd: 802
    functionName: ImageBuffer::pixels_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 3
    functionsReached:
    - ImageBuffer::subpixels_mut
    - <P as Pixel>::pixels_from_channels_mut
    linkageType: ''
    returnType: '&mut [P]'
    signature: pub fn pixels_mut(&mut self) -> &mut [P]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RowsMut::with_image
      Src: /src/image/src/images/buffer.rs:812,1
    - Dst: ImageBuffer::pixels_mut
      Src: /src/image/src/images/buffer.rs:812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 813
      start: 809
    functionDepth: 3
    functionLinenumber: 809
    functionLinenumberEnd: 813
    functionName: ImageBuffer::rows_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - ImageBuffer::pixels_mut
    - 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:821,1
    - Dst: '&mut [P]::iter_mut'
      Src: /src/image/src/images/buffer.rs:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 826
      start: 818
    functionDepth: 3
    functionLinenumber: 818
    functionLinenumberEnd: 826
    functionName: ImageBuffer::enumerate_pixels_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::pixels_mut
    - '&mut [P]::iter_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:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 838
      start: 831
    functionDepth: 4
    functionLinenumber: 831
    functionLinenumberEnd: 838
    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:848,1
    - Dst: <P as Pixel>::from_slice_mut
      Src: /src/image/src/images/buffer.rs:854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 856
      start: 847
    functionDepth: 2
    functionLinenumber: 847
    functionLinenumberEnd: 856
    functionName: ImageBuffer::get_pixel_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 3
    functionsReached:
    - <P as Pixel>::from_slice_mut
    - ImageBuffer::pixel_indices
    linkageType: ''
    returnType: '&mut P'
    signature: 'pub fn get_pixel_mut(&mut self, x: u32, y: u32) -> &mut P'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::pixel_indices
      Src: /src/image/src/images/buffer.rs:861,1
    - Dst: get_mut
      Src: /src/image/src/images/buffer.rs:862,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:862,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 863
      start: 860
    functionDepth: 7
    functionLinenumber: 860
    functionLinenumberEnd: 863
    functionName: ImageBuffer::get_pixel_mut_checked
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - map
    - get_mut
    - ImageBuffer::pixel_indices
    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:1213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - P
    constantsTouched: []
    func_position:
      end: 1214
      start: 1212
    functionDepth: 3
    functionLinenumber: 1212
    functionLinenumberEnd: 1214
    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: ImageResult::copy_within
      Src: /src/image/src/images/buffer.rs:921,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - data
    - src
    - len
    - dst
    argTypes:
    - '&mut [T]'
    - usize
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 922
      start: 917
    functionDepth: 2
    functionLinenumber: 917
    functionLinenumberEnd: 922
    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:
    - ImageResult::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:914,1
    - Dst: usize::from
      Src: /src/image/src/images/buffer.rs:933,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:937,1
    - Dst: copy_within
      Src: /src/image/src/images/buffer.rs:939,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 1
    argNames:
    - selection
    argTypes:
    - Rect
    constantsTouched: []
    func_position:
      end: 944
      start: 913
    functionDepth: 3
    functionLinenumber: 913
    functionLinenumberEnd: 944
    functionName: ImageBuffer::crop_in_place
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::pixel_indices_unchecked
    - usize::from
    - copy_within
    - Rect::shrink_to_bounds_of
    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: 962
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 962
    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: 974
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 974
    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:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 979
      start: 977
    functionDepth: 9
    functionLinenumber: 977
    functionLinenumberEnd: 979
    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:986,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:987,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - cicp
    argTypes:
    - Cicp
    constantsTouched: []
    func_position:
      end: 988
      start: 985
    functionDepth: 2
    functionLinenumber: 985
    functionLinenumberEnd: 988
    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: 992
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 992
    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:1008,1
    - Dst: ImageBuffer::subpixels
      Src: /src/image/src/images/buffer.rs:1010,1
    - Dst: '&[P::Subpixel]::as_bytes'
      Src: /src/image/src/images/buffer.rs:1010,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1011,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - path
    argTypes:
    - Q
    constantsTouched: []
    func_position:
      end: 1015
      start: 1004
    functionDepth: 10
    functionLinenumber: 1004
    functionLinenumberEnd: 1015
    functionName: ImageBuffer::save
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - '&[P::Subpixel]::as_bytes'
    - save_buffer
    - ImageBuffer::subpixels
    - ImageBuffer::width
    - ImageBuffer::height
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn save<Q>(&self, path: Q) -> ImageResult<()>whereQ: AsRef<Path>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: save_buffer_with_format
      Src: /src/image/src/images/buffer.rs:1026,1
    - Dst: ImageBuffer::subpixels
      Src: /src/image/src/images/buffer.rs:1028,1
    - Dst: '&[P::Subpixel]::as_bytes'
      Src: /src/image/src/images/buffer.rs:1028,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1029,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - path
    - format
    argTypes:
    - Q
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1034
      start: 1022
    functionDepth: 10
    functionLinenumber: 1022
    functionLinenumberEnd: 1034
    functionName: ImageBuffer::save_with_format
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - '&[P::Subpixel]::as_bytes'
    - save_buffer_with_format
    - ImageBuffer::subpixels
    - ImageBuffer::width
    - ImageBuffer::height
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn save_with_format<Q>(&self, path: Q, format: ImageFormat) ->
      ImageResult<()>whereQ: AsRef<Path>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_buffer_with_format
      Src: /src/image/src/images/buffer.rs:1044,1
    - Dst: ImageBuffer::subpixels
      Src: /src/image/src/images/buffer.rs:1046,1
    - Dst: '&[P::Subpixel]::as_bytes'
      Src: /src/image/src/images/buffer.rs:1046,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1047,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - writer
    - format
    argTypes:
    - '&mut W'
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 1052
      start: 1040
    functionDepth: 10
    functionLinenumber: 1040
    functionLinenumberEnd: 1052
    functionName: ImageBuffer::write_to
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - write_buffer_with_format
    - '&[P::Subpixel]::as_bytes'
    - ImageBuffer::subpixels
    - ImageBuffer::width
    - ImageBuffer::height
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn write_to<W>(&self, writer: &mut W, format: ImageFormat) ->
      ImageResult<()>whereW: std::io::Write + std::io::Seek,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::write_image
      Src: /src/image/src/images/buffer.rs:1059,1
    - Dst: ImageBuffer::subpixels
      Src: /src/image/src/images/buffer.rs:1060,1
    - Dst: '&[P::Subpixel]::as_bytes'
      Src: /src/image/src/images/buffer.rs:1060,1
    - Dst: ImageBuffer::width
      Src: /src/image/src/images/buffer.rs:1061,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - encoder
    argTypes:
    - E
    constantsTouched: []
    func_position:
      end: 1065
      start: 1055
    functionDepth: 2
    functionLinenumber: 1055
    functionLinenumberEnd: 1065
    functionName: ImageBuffer::write_with_encoder
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - '&[P::Subpixel]::as_bytes'
    - ImageResult::write_image
    - ImageBuffer::subpixels
    - ImageBuffer::width
    - ImageBuffer::height
    linkageType: ''
    returnType: ImageResult
    signature: 'pub fn write_with_encoder<E>(&self, encoder: E) -> ImageResult<()>whereE:
      ImageEncoder,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_rgb
      Src: /src/image/src/images/buffer.rs:1078,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1081
    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: 1093
      start: 1091
    functionDepth: 0
    functionLinenumber: 1091
    functionLinenumberEnd: 1093
    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: 1103
      start: 1101
    functionDepth: 0
    functionLinenumber: 1101
    functionLinenumberEnd: 1103
    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:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames: []
    argTypes:
    - (u32, u32)
    constantsTouched: []
    func_position:
      end: 1115
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1115
    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:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames: []
    argTypes:
    - (u32, u32)
    constantsTouched: []
    func_position:
      end: 1125
      start: 1123
    functionDepth: 3
    functionLinenumber: 1123
    functionLinenumberEnd: 1125
    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:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1133
    functionDepth: 2
    functionLinenumber: 1133
    functionLinenumberEnd: 1141
    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:1144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - source
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 1148
      start: 1143
    functionDepth: 2
    functionLinenumber: 1143
    functionLinenumberEnd: 1148
    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:1157,1
    - Dst: u8::strip_prefix
      Src: /src/image/src/images/buffer.rs:1158,1
    - Dst: unwrap_or
      Src: /src/image/src/images/buffer.rs:1158,1
    - Dst: Result::debug_struct
      Src: /src/image/src/images/buffer.rs:1160,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:1161,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:1162,1
    - Dst: known_name
      Src: /src/image/src/images/buffer.rs:1164,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:1165,1
    - Dst: field
      Src: /src/image/src/images/buffer.rs:1167,1
    - Dst: finish
      Src: /src/image/src/images/buffer.rs:1170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 1171
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1171
    functionName: ImageBuffer::fmt
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - known_name
    - u8::strip_prefix
    - finish
    - field
    - std::any::type_name::<P>
    - unwrap_or
    - Result::debug_struct
    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/buffer.rs:1190,1
    - Dst: ImageBuffer::as_pixel_view
      Src: /src/image/src/images/buffer.rs:1190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1189
    functionDepth: 13
    functionLinenumber: 1189
    functionLinenumberEnd: 1191
    functionName: ImageBuffer::to_pixel_view
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::as_pixel_view
    - Some
    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:1196,1
    - Dst: <P as Pixel>::from_slice
      Src: /src/image/src/images/buffer.rs:1197,1
    - Dst: get_unchecked
      Src: /src/image/src/images/buffer.rs:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1198
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1198
    functionName: ImageBuffer::unsafe_get_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::pixel_indices_unchecked
    - get_unchecked
    - <P as Pixel>::from_slice
    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:1201,1
    - Dst: '&RgbaImage::copy_color_space_from'
      Src: /src/image/src/images/buffer.rs:1202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1204
      start: 1200
    functionDepth: 2
    functionLinenumber: 1200
    functionLinenumberEnd: 1204
    functionName: ImageBuffer::buffer_with_dimensions
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::copy_color_space_from'
    - ImageBuffer::new
    linkageType: ''
    returnType: ImageBuffer
    signature: 'fn buffer_with_dimensions(&self, width: u32, height: u32) -> ImageBuffer<P,
      Vec<P::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1219,1
    - Dst: <P as Pixel>::from_slice_mut
      Src: /src/image/src/images/buffer.rs:1220,1
    - Dst: get_unchecked_mut
      Src: /src/image/src/images/buffer.rs:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - x
    - y
    - pixel
    argTypes:
    - u32
    - u32
    - P
    constantsTouched: []
    func_position:
      end: 1222
      start: 1218
    functionDepth: 1
    functionLinenumber: 1218
    functionLinenumberEnd: 1222
    functionName: ImageBuffer::unsafe_put_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::pixel_indices_unchecked
    - <P as Pixel>::from_slice_mut
    - get_unchecked_mut
    linkageType: ''
    returnType: void
    signature: 'unsafe fn unsafe_put_pixel(&mut self, x: u32, y: u32, pixel: P)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubImage::dimensions
      Src: /src/image/src/images/buffer.rs:1230,1
    - Dst: usize::from
      Src: /src/image/src/images/buffer.rs:1231,1
    - Dst: Rect::from_image_at
      Src: /src/image/src/images/buffer.rs:1232,1
    - Dst: Self::test_in_bounds_of
      Src: /src/image/src/images/buffer.rs:1232,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1235,1
    - Dst: SubImage::strides_wh
      Src: /src/image/src/images/buffer.rs:1243,1
    - Dst: SubImage::samples
      Src: /src/image/src/images/buffer.rs:1244,1
    - Dst: ImageBuffer::subpixels_mut
      Src: /src/image/src/images/buffer.rs:1245,1
    - Dst: img_pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1253,1
    - Dst: copy_from_slice
      Src: /src/image/src/images/buffer.rs:1256,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1259,1
    - Dst: img_pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1264,1
    - Dst: chunks_exact_mut
      Src: /src/image/src/images/buffer.rs:1266,1
    - Dst: ImageResult::enumerate
      Src: /src/image/src/images/buffer.rs:1270,1
    - Dst: copy_from_slice
      Src: /src/image/src/images/buffer.rs:1272,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1276,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 94
    argCount: 3
    argNames:
    - view
    - x
    - y
    argTypes:
    - ViewOfPixel<'_, Self::Pixel>
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1277
      start: 1224
    functionDepth: 11
    functionLinenumber: 1224
    functionLinenumberEnd: 1277
    functionName: ImageBuffer::copy_from_samples
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::subpixels_mut
    - Ok
    - usize::from
    - SubImage::dimensions
    - copy_from_slice
    - SubImage::samples
    - SubImage::strides_wh
    - ImageResult::enumerate
    - img_pixel_indices_unchecked
    - Self::test_in_bounds_of
    - chunks_exact_mut
    - Rect::from_image_at
    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:1290,1
    - Dst: u32::max
      Src: /src/image/src/images/buffer.rs:1290,1
    - Dst: ImageBuffer::height
      Src: /src/image/src/images/buffer.rs:1290,1
    - Dst: ImageError::max
      Src: /src/image/src/images/buffer.rs:1290,1
    - Dst: rev
      Src: /src/image/src/images/buffer.rs:1295,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1298,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1299,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1300,1
    - Dst: copy_within
      Src: /src/image/src/images/buffer.rs:1301,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1307,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1308,1
    - Dst: ImageBuffer::pixel_indices_unchecked
      Src: /src/image/src/images/buffer.rs:1309,1
    - Dst: copy_within
      Src: /src/image/src/images/buffer.rs:1310,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 63
    argCount: 3
    argNames:
    - source
    - x
    - y
    argTypes:
    - Rect
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1314
      start: 1279
    functionDepth: 2
    functionLinenumber: 1279
    functionLinenumberEnd: 1314
    functionName: ImageBuffer::copy_within
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - u32::max
    - ImageBuffer::pixel_indices_unchecked
    - ImageBuffer::width
    - rev
    - ImageBuffer::height
    - copy_within
    - ImageError::max
    linkageType: ''
    returnType: bool
    signature: 'fn copy_within(&mut self, source: Rect, x: u32, y: u32) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:1317,1
    - Dst: ImageBuffer::as_pixel_view_mut
      Src: /src/image/src/images/buffer.rs:1317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1316
    functionDepth: 14
    functionLinenumber: 1316
    functionLinenumberEnd: 1318
    functionName: ImageBuffer::to_pixel_view_mut
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - ImageBuffer::as_pixel_view_mut
    linkageType: ''
    returnType: Option
    signature: fn to_pixel_view_mut(&mut self) -> Option<ViewMutOfPixel<'_, Self::Pixel>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::image_buffer_len
      Src: /src/image/src/images/buffer.rs:1339,1
    - Dst: Option::expect
      Src: /src/image/src/images/buffer.rs:1339,1
    - Dst: into_rgb
      Src: /src/image/src/images/buffer.rs:1345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - width
    - height
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 1348
      start: 1338
    functionDepth: 1
    functionLinenumber: 1338
    functionLinenumberEnd: 1348
    functionName: ImageBuffer::new
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 40
    functionsReached:
    - into_rgb
    - Self::image_buffer_len
    - Option::expect
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn new(width: u32, height: u32) -> ImageBuffer<P, Vec<P::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1356,1
    - Dst: std::io::Result::pixels_mut
      Src: /src/image/src/images/buffer.rs:1357,1
    - Dst: EnumeratePixelsMutPar::fill
      Src: /src/image/src/images/buffer.rs:1357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - width
    - height
    - pixel
    argTypes:
    - u32
    - u32
    - P
    constantsTouched: []
    func_position:
      end: 1359
      start: 1355
    functionDepth: 6
    functionLinenumber: 1355
    functionLinenumberEnd: 1359
    functionName: ImageBuffer::from_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 27
    functionsReached:
    - EnumeratePixelsMutPar::fill
    - std::io::Result::pixels_mut
    - ImageBuffer::new
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn from_pixel(width: u32, height: u32, pixel: P) -> ImageBuffer<P,
      Vec<P::Subpixel>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1372,1
    - Dst: std::io::Result::enumerate_pixels_mut
      Src: /src/image/src/images/buffer.rs:1373,1
    - Dst: f
      Src: /src/image/src/images/buffer.rs:1374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - width
    - height
    - f
    argTypes:
    - u32
    - u32
    - F
    constantsTouched: []
    func_position:
      end: 1377
      start: 1368
    functionDepth: 13
    functionLinenumber: 1368
    functionLinenumberEnd: 1377
    functionName: ImageBuffer::from_fn
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 23
    functionsReached:
    - f
    - std::io::Result::enumerate_pixels_mut
    - ImageBuffer::new
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn from_fn<F>(width: u32, height: u32, mut f: F) -> ImageBuffer<P,
      Vec<P::Subpixel>>whereF: FnMut(u32, u32) -> P,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - width
    - height
    - buf
    argTypes:
    - u32
    - u32
    - Vec<P::Subpixel>
    constantsTouched: []
    func_position:
      end: 1388
      start: 1382
    functionDepth: 3
    functionLinenumber: 1382
    functionLinenumberEnd: 1388
    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:1394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1393
    functionDepth: 1
    functionLinenumber: 1393
    functionLinenumberEnd: 1395
    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::subpixels
      Src: /src/image/src/images/buffer.rs:1413,1
    - Dst: '&[P::Subpixel]::len'
      Src: /src/image/src/images/buffer.rs:1413,1
    - Dst: truncate
      Src: /src/image/src/images/buffer.rs:1414,1
    - Dst: shrink_to_fit
      Src: /src/image/src/images/buffer.rs:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1412
    functionDepth: 2
    functionLinenumber: 1412
    functionLinenumberEnd: 1416
    functionName: ImageBuffer::shrink_to_fit
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::subpixels
    - '&[P::Subpixel]::len'
    - shrink_to_fit
    - truncate
    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: 1425
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1425
    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:1436,1
    - Dst: S::swizzle_rgb_bgr
      Src: /src/image/src/images/buffer.rs:1437,1
    - Dst: Option::as_mut
      Src: /src/image/src/images/buffer.rs:1437,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:1438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - width
    - height
    - container
    argTypes:
    - u32
    - u32
    - Container
    constantsTouched: []
    func_position:
      end: 1439
      start: 1435
    functionDepth: 4
    functionLinenumber: 1435
    functionLinenumberEnd: 1439
    functionName: ImageBuffer::from_raw_bgr
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - S::swizzle_rgb_bgr
    - Self::from_raw
    - Option::as_mut
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_raw_bgr(width: u32, height: u32, container: Container)
      -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S::swizzle_rgb_bgr
      Src: /src/image/src/images/buffer.rs:1443,1
    - Dst: ImageBuffer::as_mut
      Src: /src/image/src/images/buffer.rs:1443,1
    - Dst: ImageBuffer::into_raw
      Src: /src/image/src/images/buffer.rs:1444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1442
    functionDepth: 2
    functionLinenumber: 1442
    functionLinenumberEnd: 1445
    functionName: ImageBuffer::into_raw_bgr
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - S::swizzle_rgb_bgr
    - ImageBuffer::into_raw
    - ImageBuffer::as_mut
    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:1456,1
    - Dst: S::swizzle_rgba_bgra
      Src: /src/image/src/images/buffer.rs:1457,1
    - Dst: Option::as_mut
      Src: /src/image/src/images/buffer.rs:1457,1
    - Dst: Some
      Src: /src/image/src/images/buffer.rs:1458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - width
    - height
    - container
    argTypes:
    - u32
    - u32
    - Container
    constantsTouched: []
    func_position:
      end: 1459
      start: 1455
    functionDepth: 4
    functionLinenumber: 1455
    functionLinenumberEnd: 1459
    functionName: ImageBuffer::from_raw_bgra
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Some
    - S::swizzle_rgba_bgra
    - Self::from_raw
    - Option::as_mut
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_raw_bgra(width: u32, height: u32, container: Container)
      -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: S::swizzle_rgba_bgra
      Src: /src/image/src/images/buffer.rs:1463,1
    - Dst: ImageBuffer::as_mut
      Src: /src/image/src/images/buffer.rs:1463,1
    - Dst: ImageBuffer::into_raw
      Src: /src/image/src/images/buffer.rs:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1465
      start: 1462
    functionDepth: 2
    functionLinenumber: 1462
    functionLinenumberEnd: 1465
    functionName: ImageBuffer::into_raw_bgra
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - S::swizzle_rgba_bgra
    - ImageBuffer::into_raw
    - ImageBuffer::as_mut
    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:1480,1
    - Dst: as_mut_slice
      Src: /src/image/src/images/buffer.rs:1483,1
    - Dst: try_into
      Src: /src/image/src/images/buffer.rs:1483,1
    - Dst: unwrap
      Src: /src/image/src/images/buffer.rs:1483,1
    - Dst: ImageResult::iter
      Src: /src/image/src/images/buffer.rs:1484,1
    - Dst: zip
      Src: /src/image/src/images/buffer.rs:1484,1
    - Dst: iter_mut
      Src: /src/image/src/images/buffer.rs:1484,1
    - Dst: GrayImage::subpixels
      Src: /src/image/src/images/buffer.rs:1491,1
    - Dst: '&[P::Subpixel]::iter'
      Src: /src/image/src/images/buffer.rs:1491,1
    - Dst: map
      Src: /src/image/src/images/buffer.rs:1491,1
    - Dst: ImageResult::collect
      Src: /src/image/src/images/buffer.rs:1491,1
    - Dst: ImageBuffer::from_vec
      Src: /src/image/src/images/buffer.rs:1497,1
    - Dst: into_flattened
      Src: /src/image/src/images/buffer.rs:1497,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    argCount: 2
    argNames:
    - palette
    - transparent_idx
    argTypes:
    - '&[(u8, u8, u8)]'
    - Option<u8>
    constantsTouched: []
    func_position:
      end: 1498
      start: 1475
    functionDepth: 7
    functionLinenumber: 1475
    functionLinenumberEnd: 1498
    functionName: GrayImage::expand_palette
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 1
    functionsReached:
    - try_into
    - '&[P::Subpixel]::iter'
    - ImageBuffer::from_vec
    - GrayImage::dimensions
    - into_flattened
    - map
    - ImageResult::iter
    - as_mut_slice
    - iter_mut
    - zip
    - unwrap
    - GrayImage::subpixels
    - ImageResult::collect
    - Option::unwrap
    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:1532,1
    - Dst: '&RgbaImage::copy_color_space_from'
      Src: /src/image/src/images/buffer.rs:1533,1
    - Dst: '&RgbaImage::pixels_mut'
      Src: /src/image/src/images/buffer.rs:1534,1
    - Dst: EnumeratePixelsMutPar::iter_mut
      Src: /src/image/src/images/buffer.rs:1534,1
    - Dst: zip
      Src: /src/image/src/images/buffer.rs:1534,1
    - Dst: ImageBuffer::pixels
      Src: /src/image/src/images/buffer.rs:1534,1
    - Dst: '&[P]::iter'
      Src: /src/image/src/images/buffer.rs:1534,1
    - Dst: ImageResult::from_color
      Src: /src/image/src/images/buffer.rs:1535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1527
    functionDepth: 5
    functionLinenumber: 1527
    functionLinenumberEnd: 1538
    functionName: ImageBuffer::convert
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 3
    functionsReached:
    - ImageResult::from_color
    - ImageBuffer::pixels
    - '&RgbaImage::copy_color_space_from'
    - '&[P]::iter'
    - ImageBuffer::new
    - zip
    - '&RgbaImage::pixels_mut'
    - EnumeratePixelsMutPar::iter_mut
    linkageType: ''
    returnType: ImageBuffer
    signature: 'pub fn convert<ToType>(&self) -> ImageBuffer<ToType, Vec<ToType::Subpixel>>whereToType:
      Pixel + FromColor<P>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::check_applicable
      Src: /src/image/src/images/buffer.rs:1565,1
    - Dst: is_none
      Src: /src/image/src/images/buffer.rs:1568,1
    - Dst: CicpTransform::new
      Src: /src/image/src/images/buffer.rs:1569,1
    - Dst: as_ref
      Src: /src/image/src/images/buffer.rs:1572,1
    - Dst: ok_or_else
      Src: /src/image/src/images/buffer.rs:1572,1
    - Dst: ImageError::Unsupported
      Src: /src/image/src/images/buffer.rs:1573,1
    - Dst: UnsupportedError::from_format_and_kind
      Src: /src/image/src/images/buffer.rs:1573,1
    - Dst: UnsupportedErrorKind::ColorspaceCicp
      Src: /src/image/src/images/buffer.rs:1576,1
    - Dst: qualify_stability
      Src: /src/image/src/images/buffer.rs:1576,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - from_color
    - into_color
    argTypes:
    - Cicp
    - Cicp
    constantsTouched: []
    func_position:
      end: 1583
      start: 1559
    functionDepth: 3
    functionLinenumber: 1559
    functionLinenumberEnd: 1583
    functionName: ConvertColorOptions::as_transform
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 2
    functionsReached:
    - UnsupportedErrorKind::ColorspaceCicp
    - qualify_stability
    - ok_or_else
    - is_none
    - ImageError::Unsupported
    - Result::check_applicable
    - CicpTransform::new
    - UnsupportedError::from_format_and_kind
    - as_ref
    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:1594,1
    - Dst: ConvertColorOptions::as_transform
      Src: /src/image/src/images/buffer.rs:1594,1
    - Dst: "as_transform(from_color, into_color)?\n            .supported_transform_fn::<FromType,\
        \ IntoType>"
      Src: /src/image/src/images/buffer.rs:1594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - from_color
    - into_color
    argTypes:
    - Cicp
    - Cicp
    constantsTouched: []
    func_position:
      end: 1597
      start: 1585
    functionDepth: 4
    functionLinenumber: 1585
    functionLinenumberEnd: 1597
    functionName: ConvertColorOptions::as_transform_fn
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Ok
    - "as_transform(from_color, into_color)?\n            .supported_transform_fn::<FromType,\
      \ IntoType>"
    - 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:1625,1
    - Dst: ImageBuffer::subpixels
      Src: /src/image/src/images/buffer.rs:1627,1
    - Dst: ImageBuffer::from_vec
      Src: /src/image/src/images/buffer.rs:1628,1
    - Dst: Option::expect
      Src: /src/image/src/images/buffer.rs:1628,1
    - Dst: '&RgbaImage::copy_color_space_from'
      Src: /src/image/src/images/buffer.rs:1630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1615
    functionDepth: 4
    functionLinenumber: 1615
    functionLinenumberEnd: 1632
    functionName: ImageBuffer::cast_in_color_space
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_vec
    - "color\n            .cast_pixels::<SelfPixel, IntoPixel>"
    - '&RgbaImage::copy_color_space_from'
    - ImageBuffer::subpixels
    - Option::expect
    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:1656,1
    - Dst: Self::dimensions
      Src: /src/image/src/images/buffer.rs:1656,1
    - Dst: Err
      Src: /src/image/src/images/buffer.rs:1657,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/images/buffer.rs:1657,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/images/buffer.rs:1657,1
    - Dst: as_transform_fn::<FromType, SelfPixel>
      Src: /src/image/src/images/buffer.rs:1662,1
    - Dst: Self::color_space
      Src: /src/image/src/images/buffer.rs:1663,1
    - Dst: ImageBuffer::color_space
      Src: /src/image/src/images/buffer.rs:1663,1
    - Dst: Self::subpixels
      Src: /src/image/src/images/buffer.rs:1665,1
    - Dst: ImageBuffer::subpixels_mut
      Src: /src/image/src/images/buffer.rs:1666,1
    - Dst: transform
      Src: /src/image/src/images/buffer.rs:1674,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1676,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 2
    argNames:
    - from
    - options
    argTypes:
    - '&ImageBuffer<FromType, D>'
    - ConvertColorOptions
    constantsTouched: []
    func_position:
      end: 1677
      start: 1647
    functionDepth: 10
    functionLinenumber: 1647
    functionLinenumberEnd: 1677
    functionName: ImageBuffer::copy_from_color_space
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::dimensions
    - Err
    - Self::dimensions
    - transform
    - ImageBuffer::subpixels_mut
    - Ok
    - ImageBuffer::color_space
    - ParameterError::from_kind
    - as_transform_fn::<FromType, SelfPixel>
    - Self::subpixels
    - ImageError::Parameter
    - Self::color_space
    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:1695,1
    - Dst: ImageBuffer::color_space
      Src: /src/image/src/images/buffer.rs:1695,1
    - Dst: ImageBuffer::dimensions
      Src: /src/image/src/images/buffer.rs:1697,1
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1698,1
    - Dst: ImageBuffer::subpixels
      Src: /src/image/src/images/buffer.rs:1700,1
    - Dst: subpixels_mut
      Src: /src/image/src/images/buffer.rs:1701,1
    - Dst: transform
      Src: /src/image/src/images/buffer.rs:1703,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - color
    - options
    argTypes:
    - Cicp
    - ConvertColorOptions
    constantsTouched: []
    func_position:
      end: 1706
      start: 1686
    functionDepth: 10
    functionLinenumber: 1686
    functionLinenumberEnd: 1706
    functionName: ImageBuffer::to_color_space
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::dimensions
    - transform
    - Ok
    - as_transform_fn::<SelfPixel, IntoType>
    - ImageBuffer::new
    - ImageBuffer::subpixels
    - ImageBuffer::color_space
    - subpixels_mut
    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:1714,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1715,1
    - Dst: as_transform_fn::<SelfPixel, SelfPixel>
      Src: /src/image/src/images/buffer.rs:1719,1
    - Dst: ImageBuffer::color_space
      Src: /src/image/src/images/buffer.rs:1719,1
    - Dst: len
      Src: /src/image/src/images/buffer.rs:1722,1
    - Dst: usize::from
      Src: /src/image/src/images/buffer.rs:1722,1
    - Dst: usize::from
      Src: /src/image/src/images/buffer.rs:1723,1
    - Dst: ImageBuffer::subpixels_mut
      Src: /src/image/src/images/buffer.rs:1725,1
    - Dst: '&mut [P::Subpixel]::chunks_mut'
      Src: /src/image/src/images/buffer.rs:1725,1
    - Dst: Option::len
      Src: /src/image/src/images/buffer.rs:1726,1
    - Dst: copy_from_slice
      Src: /src/image/src/images/buffer.rs:1727,1
    - Dst: transform
      Src: /src/image/src/images/buffer.rs:1728,1
    - Dst: bool::into_rgb
      Src: /src/image/src/images/buffer.rs:1731,1
    - Dst: Ok
      Src: /src/image/src/images/buffer.rs:1733,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 2
    argNames:
    - color
    - options
    argTypes:
    - Cicp
    - ConvertColorOptions
    constantsTouched: []
    func_position:
      end: 1734
      start: 1709
    functionDepth: 10
    functionLinenumber: 1709
    functionLinenumberEnd: 1734
    functionName: ImageBuffer::apply_color_space
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - len
    - transform
    - bool::into_rgb
    - ImageBuffer::subpixels_mut
    - Ok
    - usize::from
    - copy_from_slice
    - ImageBuffer::color_space
    - Option::len
    - as_transform_fn::<SelfPixel, SelfPixel>
    - '&mut [P::Subpixel]::chunks_mut'
    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:1764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1765
      start: 1763
    functionDepth: 7
    functionLinenumber: 1763
    functionLinenumberEnd: 1765
    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:1770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1771
      start: 1769
    functionDepth: 2
    functionLinenumber: 1769
    functionLinenumberEnd: 1771
    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:1776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1777
      start: 1775
    functionDepth: 4
    functionLinenumber: 1775
    functionLinenumberEnd: 1777
    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:1782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1783
      start: 1781
    functionDepth: 4
    functionLinenumber: 1781
    functionLinenumberEnd: 1783
    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:1788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1789
      start: 1787
    functionDepth: 2
    functionLinenumber: 1787
    functionLinenumberEnd: 1789
    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:1794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1795
      start: 1793
    functionDepth: 4
    functionLinenumber: 1793
    functionLinenumberEnd: 1795
    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:1800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1801
      start: 1799
    functionDepth: 4
    functionLinenumber: 1799
    functionLinenumberEnd: 1801
    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:1806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1807
      start: 1805
    functionDepth: 4
    functionLinenumber: 1805
    functionLinenumberEnd: 1807
    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:1812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - DynamicImage
    constantsTouched: []
    func_position:
      end: 1813
      start: 1811
    functionDepth: 4
    functionLinenumber: 1811
    functionLinenumberEnd: 1813
    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:1833,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1831
    functionDepth: 3
    functionLinenumber: 1831
    functionLinenumberEnd: 1835
    functionName: test::slice_buffer
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn slice_buffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1864,1
    - Dst: get_mut
      Src: /src/image/src/images/buffer.rs:1866,1
    - Dst: unwrap
      Src: /src/image/src/images/buffer.rs:1866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1863
    functionDepth: 2
    functionLinenumber: 1863
    functionLinenumberEnd: 1870
    functionName: test::get_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - get_mut
    - unwrap
    - ImageBuffer::new
    linkageType: ''
    returnType: void
    signature: fn get_pixel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1874,1
    - Dst: get_pixel_mut_checked
      Src: /src/image/src/images/buffer.rs:1875,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1875,1
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:1886,1
    - Dst: put_pixel
      Src: /src/image/src/images/buffer.rs:1887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1873
    functionDepth: 8
    functionLinenumber: 1873
    functionLinenumberEnd: 1891
    functionName: test::get_pixel_checked
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - put_pixel
    - RgbImage::new
    - ImageBuffer::new
    - get_pixel_mut_checked
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn get_pixel_checked()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:1895,1
    - Dst: pixels_mut
      Src: /src/image/src/images/buffer.rs:1897,1
    - Dst: EnumeratePixelsMutPar::first_mut
      Src: /src/image/src/images/buffer.rs:1897,1
    - Dst: unwrap
      Src: /src/image/src/images/buffer.rs:1897,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:1898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1894
    functionDepth: 4
    functionLinenumber: 1894
    functionLinenumberEnd: 1901
    functionName: test::mut_iter
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::new
    - unwrap
    - pixels_mut
    - color::Rgb
    - EnumeratePixelsMutPar::first_mut
    linkageType: ''
    returnType: void
    signature: fn mut_iter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::from_raw
      Src: /src/image/src/images/buffer.rs:1935,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/buffer.rs:1935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1934
    functionDepth: 4
    functionLinenumber: 1934
    functionLinenumberEnd: 1944
    functionName: test::pixels_on_large_buffer
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - RgbImage::from_raw
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn pixels_on_large_buffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::<Rgb<u8>, Vec<u8>>::default
      Src: /src/image/src/images/buffer.rs:1948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1947
    functionDepth: 0
    functionLinenumber: 1947
    functionLinenumberEnd: 1950
    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:1955,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1954
    functionDepth: 3
    functionLinenumber: 1954
    functionLinenumberEnd: 1963
    functionName: test::test_image_buffer_copy_within_oob
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_image_buffer_copy_within_oob()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:1969,1
    - Dst: Vec::from
      Src: /src/image/src/images/buffer.rs:1969,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1966
    functionDepth: 3
    functionLinenumber: 1966
    functionLinenumberEnd: 1981
    functionName: test::test_image_buffer_copy_within_tl
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Vec::from
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_image_buffer_copy_within_tl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:1987,1
    - Dst: Vec::from
      Src: /src/image/src/images/buffer.rs:1987,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:1987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1984
    functionDepth: 3
    functionLinenumber: 1984
    functionLinenumberEnd: 1999
    functionName: test::test_image_buffer_copy_within_tr
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Vec::from
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_image_buffer_copy_within_tr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:2005,1
    - Dst: Vec::from
      Src: /src/image/src/images/buffer.rs:2005,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:2005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 2002
    functionDepth: 3
    functionLinenumber: 2002
    functionLinenumberEnd: 2017
    functionName: test::test_image_buffer_copy_within_bl
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Vec::from
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_image_buffer_copy_within_bl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:2023,1
    - Dst: Vec::from
      Src: /src/image/src/images/buffer.rs:2023,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:2023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2035
      start: 2020
    functionDepth: 3
    functionLinenumber: 2020
    functionLinenumberEnd: 2035
    functionName: test::test_image_buffer_copy_within_br
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - Vec::from
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_image_buffer_copy_within_br()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_raw
      Src: /src/image/src/images/buffer.rs:2042,1
    - Dst: Option::unwrap
      Src: /src/image/src/images/buffer.rs:2042,1
    - Dst: std::io::Cursor::new
      Src: /src/image/src/images/buffer.rs:2043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2045
      start: 2039
    functionDepth: 3
    functionLinenumber: 2039
    functionLinenumberEnd: 2045
    functionName: test::write_to_with_large_buffer
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_raw
    - std::io::Cursor::new
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn write_to_with_large_buffer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::from_raw
      Src: /src/image/src/images/buffer.rs:2055,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/buffer.rs:2055,1
    - Dst: Vec::rows
      Src: /src/image/src/images/buffer.rs:2057,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2058,1
    - Dst: Vec::rows_mut
      Src: /src/image/src/images/buffer.rs:2061,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2062,1
    - Dst: Vec::enumerate_pixels
      Src: /src/image/src/images/buffer.rs:2065,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2066,1
    - Dst: Vec::enumerate_rows
      Src: /src/image/src/images/buffer.rs:2069,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2070,1
    - Dst: Vec::enumerate_pixels_mut
      Src: /src/image/src/images/buffer.rs:2073,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2074,1
    - Dst: Vec::enumerate_rows_mut
      Src: /src/image/src/images/buffer.rs:2077,1
    - Dst: ExactSizeIterator::len
      Src: /src/image/src/images/buffer.rs:2078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2080
      start: 2048
    functionDepth: 11
    functionLinenumber: 2048
    functionLinenumberEnd: 2080
    functionName: test::exact_size_iter_size_hint
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - RgbImage::from_raw
    - ExactSizeIterator::len
    - Vec::enumerate_rows
    - ImageResult::unwrap
    - Vec::enumerate_pixels
    - Vec::enumerate_pixels_mut
    - Vec::rows_mut
    - Vec::rows
    - Vec::enumerate_rows_mut
    linkageType: ''
    returnType: void
    signature: fn exact_size_iter_size_hint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2084,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2084,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2085,1
    - Dst: color::Rgba
      Src: /src/image/src/images/buffer.rs:2085,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2085,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2087,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/buffer.rs:2088,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2090,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/buffer.rs:2091,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/buffer.rs:2093,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2097
      start: 2083
    functionDepth: 14
    functionLinenumber: 2083
    functionLinenumberEnd: 2097
    functionName: test::color_conversion
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - color::Rgba
    - ImageBuffer::from_fn
    - copy_from_color_space
    - Option::set_rgb_primaries
    - set_rgb_primaries
    - Option::set_transfer_function
    - color::Rgb
    - set_transfer_function
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn color_conversion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2101,1
    - Dst: color::Luma
      Src: /src/image/src/images/buffer.rs:2101,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2102,1
    - Dst: color::Rgba
      Src: /src/image/src/images/buffer.rs:2102,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2102,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2104,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/buffer.rs:2105,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2107,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/buffer.rs:2108,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/buffer.rs:2110,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 2100
    functionDepth: 14
    functionLinenumber: 2100
    functionLinenumberEnd: 2114
    functionName: test::gray_conversions
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - color::Rgba
    - color::Luma
    - ImageBuffer::from_fn
    - copy_from_color_space
    - Option::set_rgb_primaries
    - set_rgb_primaries
    - Option::set_transfer_function
    - set_transfer_function
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn gray_conversions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2118,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2118,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2119,1
    - Dst: color::Luma
      Src: /src/image/src/images/buffer.rs:2119,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2119,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2121,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/buffer.rs:2122,1
    - Dst: set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2124,1
    - Dst: set_transfer_function
      Src: /src/image/src/images/buffer.rs:2125,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/buffer.rs:2127,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2131
      start: 2117
    functionDepth: 14
    functionLinenumber: 2117
    functionLinenumberEnd: 2131
    functionName: test::rgb_to_gray_conversion
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - color::Luma
    - ImageBuffer::from_fn
    - copy_from_color_space
    - Option::set_rgb_primaries
    - set_rgb_primaries
    - Option::set_transfer_function
    - color::Rgb
    - set_transfer_function
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn rgb_to_gray_conversion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2135,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2135,1
    - Dst: '&RgbaImage::set_rgb_primaries'
      Src: /src/image/src/images/buffer.rs:2137,1
    - Dst: '&RgbaImage::set_transfer_function'
      Src: /src/image/src/images/buffer.rs:2138,1
    - Dst: '&RgbaImage::apply_color_space'
      Src: /src/image/src/images/buffer.rs:2140,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2141,1
    - Dst: ImageResult::expect
      Src: /src/image/src/images/buffer.rs:2140,1
    - Dst: '&RgbaImage::pixels'
      Src: /src/image/src/images/buffer.rs:2144,1
    - Dst: ImageResult::iter
      Src: /src/image/src/images/buffer.rs:2144,1
    - Dst: for_each
      Src: /src/image/src/images/buffer.rs:2144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2134
    functionDepth: 14
    functionLinenumber: 2134
    functionLinenumberEnd: 2147
    functionName: test::apply_color
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::set_transfer_function'
    - '&RgbaImage::pixels'
    - '&RgbaImage::set_rgb_primaries'
    - ImageResult::iter
    - ImageResult::expect
    - ImageBuffer::from_fn
    - '&RgbaImage::apply_color_space'
    - color::Rgb
    - for_each
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn apply_color()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2151,1
    - Dst: color::Rgba
      Src: /src/image/src/images/buffer.rs:2151,1
    - Dst: Option::set_rgb_primaries
      Src: /src/image/src/images/buffer.rs:2152,1
    - Dst: Option::set_transfer_function
      Src: /src/image/src/images/buffer.rs:2153,1
    - Dst: to_color_space::<Rgb<u8>>
      Src: /src/image/src/images/buffer.rs:2155,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2156,1
    - Dst: expect
      Src: /src/image/src/images/buffer.rs:2155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2150
    functionDepth: 14
    functionLinenumber: 2150
    functionLinenumberEnd: 2160
    functionName: test::to_color
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - to_color_space::<Rgb<u8>>
    - color::Rgba
    - expect
    - ImageBuffer::from_fn
    - Option::set_rgb_primaries
    - Option::set_transfer_function
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn to_color()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2164,1
    - Dst: color::Luma
      Src: /src/image/src/images/buffer.rs:2164,1
    - Dst: ImageBuffer::from_fn
      Src: /src/image/src/images/buffer.rs:2165,1
    - Dst: color::Rgba
      Src: /src/image/src/images/buffer.rs:2165,1
    - Dst: Default::default
      Src: /src/image/src/images/buffer.rs:2165,1
    - Dst: Option::set_color_space
      Src: /src/image/src/images/buffer.rs:2167,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/buffer.rs:2167,1
    - Dst: set_color_space
      Src: /src/image/src/images/buffer.rs:2168,1
    - Dst: unwrap
      Src: /src/image/src/images/buffer.rs:2168,1
    - Dst: CicpTransform::new
      Src: /src/image/src/images/buffer.rs:2171,1
    - Dst: super::ConvertColorOptions::default
      Src: /src/image/src/images/buffer.rs:2172,1
    - Dst: copy_from_color_space
      Src: /src/image/src/images/buffer.rs:2175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2163
    functionDepth: 14
    functionLinenumber: 2163
    functionLinenumberEnd: 2177
    functionName: test::transformation_mismatch
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - color::Rgba
    - color::Luma
    - set_color_space
    - ImageResult::unwrap
    - ImageBuffer::from_fn
    - super::ConvertColorOptions::default
    - unwrap
    - copy_from_color_space
    - Option::set_color_space
    - CicpTransform::new
    - Default::default
    linkageType: ''
    returnType: void
    signature: fn transformation_mismatch()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/buffer.rs:2224,1
    - Dst: color::Luma
      Src: /src/image/src/images/buffer.rs:2224,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/buffer.rs:2234,1
    - Dst: color::Rgba
      Src: /src/image/src/images/buffer.rs:2234,1
    - Dst: DynamicImage::set_color_space
      Src: /src/image/src/images/buffer.rs:2235,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/buffer.rs:2235,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/src/images/buffer.rs:2241,1
    - Dst: color::Rgba
      Src: /src/image/src/images/buffer.rs:2241,1
    - Dst: ImageBuffer::set_color_space
      Src: /src/image/src/images/buffer.rs:2242,1
    - Dst: ImageResult::unwrap
      Src: /src/image/src/images/buffer.rs:2242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2180
    functionDepth: 7
    functionLinenumber: 2180
    functionLinenumberEnd: 2254
    functionName: test::pleasant_debug
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - color::Rgba
    - color::Luma
    - ImageResult::unwrap
    - ImageBuffer::from_pixel
    - 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:2259,1
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:2260,1
    - Dst: Option::put_pixel
      Src: /src/image/src/images/buffer.rs:2262,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2262,1
    - Dst: Option::put_pixel
      Src: /src/image/src/images/buffer.rs:2263,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2263,1
    - Dst: Option::put_pixel
      Src: /src/image/src/images/buffer.rs:2264,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2264,1
    - Dst: Option::view
      Src: /src/image/src/images/buffer.rs:2266,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/buffer.rs:2266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2258
    functionDepth: 6
    functionLinenumber: 2258
    functionLinenumberEnd: 2279
    functionName: test::copy_from_subimage_to_middle
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - RgbImage::new
    - Option::put_pixel
    - Rect::from_xy_ranges
    - Option::view
    - color::Rgb
    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:2283,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2283,1
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:2284,1
    - Dst: Option::chunks_exact
      Src: /src/image/src/images/buffer.rs:2288,1
    - Dst: chunks_exact
      Src: /src/image/src/images/buffer.rs:2289,1
    - Dst: skip
      Src: /src/image/src/images/buffer.rs:2289,1
    - Dst: take
      Src: /src/image/src/images/buffer.rs:2289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2292
      start: 2282
    functionDepth: 14
    functionLinenumber: 2282
    functionLinenumberEnd: 2292
    functionName: test::copy_from_band
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - take
    - chunks_exact
    - RgbImage::new
    - Option::chunks_exact
    - color::Rgb
    - RgbImage::from_fn
    - skip
    linkageType: ''
    returnType: void
    signature: fn copy_from_band()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2296,1
    - Dst: crate::flat::FlatSamples::with_monocolor
      Src: /src/image/src/images/buffer.rs:2297,1
    - Dst: ImageResult::as_view
      Src: /src/image/src/images/buffer.rs:2298,1
    - Dst: Result::unwrap
      Src: /src/image/src/images/buffer.rs:2298,1
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:2300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2295
    functionDepth: 13
    functionLinenumber: 2295
    functionLinenumberEnd: 2313
    functionName: test::copy_from_pixel
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - ImageResult::as_view
    - RgbImage::new
    - crate::flat::FlatSamples::with_monocolor
    - color::Rgb
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn copy_from_pixel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_view::<LumaA<u8>>
      Src: /src/image/src/images/buffer.rs:2336,1
    - Dst: unwrap
      Src: /src/image/src/images/buffer.rs:2336,1
    - Dst: crate::GrayAlphaImage::new
      Src: /src/image/src/images/buffer.rs:2337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2316
    functionDepth: 0
    functionLinenumber: 2316
    functionLinenumberEnd: 2349
    functionName: test::copy_from_strided
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - crate::GrayAlphaImage::new
    - as_view::<LumaA<u8>>
    linkageType: ''
    returnType: void
    signature: fn copy_from_strided()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_view::<LumaA<u8>>
      Src: /src/image/src/images/buffer.rs:2372,1
    - Dst: unwrap
      Src: /src/image/src/images/buffer.rs:2372,1
    - Dst: SubImage::view
      Src: /src/image/src/images/buffer.rs:2373,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/buffer.rs:2373,1
    - Dst: crate::GrayAlphaImage::new
      Src: /src/image/src/images/buffer.rs:2375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2385
      start: 2352
    functionDepth: 6
    functionLinenumber: 2352
    functionLinenumberEnd: 2385
    functionName: test::copy_from_strided_subimage
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - Rect::from_xy_ranges
    - unwrap
    - SubImage::view
    - crate::GrayAlphaImage::new
    - as_view::<LumaA<u8>>
    linkageType: ''
    returnType: void
    signature: fn copy_from_strided_subimage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:2389,1
    - Dst: RgbImage::new
      Src: /src/image/src/images/buffer.rs:2390,1
    - Dst: Option::put_pixel
      Src: /src/image/src/images/buffer.rs:2392,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2392,1
    - Dst: Option::put_pixel
      Src: /src/image/src/images/buffer.rs:2393,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2393,1
    - Dst: Option::put_pixel
      Src: /src/image/src/images/buffer.rs:2394,1
    - Dst: color::Rgb
      Src: /src/image/src/images/buffer.rs:2394,1
    - Dst: Option::view
      Src: /src/image/src/images/buffer.rs:2396,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/buffer.rs:2396,1
    - Dst: SubImage::view
      Src: /src/image/src/images/buffer.rs:2397,1
    - Dst: Rect::from_xy_ranges
      Src: /src/image/src/images/buffer.rs:2397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2408
      start: 2388
    functionDepth: 6
    functionLinenumber: 2388
    functionLinenumberEnd: 2408
    functionName: test::copy_from_subimage_subimage
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - RgbImage::new
    - Option::put_pixel
    - Rect::from_xy_ranges
    - Option::view
    - SubImage::view
    - color::Rgb
    linkageType: ''
    returnType: void
    signature: fn copy_from_subimage_subimage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GrayImage::from_fn
      Src: /src/image/src/images/buffer.rs:2412,1
    - Dst: color::Luma
      Src: /src/image/src/images/buffer.rs:2412,1
    - Dst: io::Result::expand_palette
      Src: /src/image/src/images/buffer.rs:2413,1
    - Dst: GrayImage::from_pixel
      Src: /src/image/src/images/buffer.rs:2420,1
    - Dst: color::Luma
      Src: /src/image/src/images/buffer.rs:2420,1
    - Dst: ImageBuffer::expand_palette
      Src: /src/image/src/images/buffer.rs:2421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2427
      start: 2411
    functionDepth: 14
    functionLinenumber: 2411
    functionLinenumberEnd: 2427
    functionName: test::expend_palette
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - color::Luma
    - io::Result::expand_palette
    - GrayImage::from_pixel
    - GrayImage::from_fn
    - ImageBuffer::expand_palette
    linkageType: ''
    returnType: void
    signature: fn expend_palette()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:2437,1
    - Dst: pixels_mut
      Src: /src/image/src/images/buffer.rs:2438,1
    - Dst: Result::channels_mut
      Src: /src/image/src/images/buffer.rs:2439,1
    - Dst: iter
      Src: /src/image/src/images/buffer.rs:2446,1
    - Dst: convert
      Src: /src/image/src/images/buffer.rs:2447,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:2450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 2453
      start: 2436
    functionDepth: 6
    functionLinenumber: 2436
    functionLinenumberEnd: 2453
    functionName: benchmarks::conversion
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - iter
    - convert
    - Result::channels_mut
    - ImageBuffer::new
    - pixels_mut
    - test::black_box
    linkageType: ''
    returnType: void
    signature: 'fn conversion(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::new
      Src: /src/image/src/images/buffer.rs:2457,1
    - Dst: pixels_mut
      Src: /src/image/src/images/buffer.rs:2458,1
    - Dst: Result::channels_mut
      Src: /src/image/src/images/buffer.rs:2459,1
    - Dst: iter
      Src: /src/image/src/images/buffer.rs:2465,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:2466,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/images/buffer.rs:2470,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2471,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2472,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2473,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:2476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 2480
      start: 2456
    functionDepth: 4
    functionLinenumber: 2456
    functionLinenumberEnd: 2480
    functionName: benchmarks::image_access_row_by_row
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - iter
    - Result::channels_mut
    - ImageBuffer::new
    - wrapping_add
    - pixels_mut
    - Vec::get_pixel
    - test::black_box
    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:2484,1
    - Dst: pixels_mut
      Src: /src/image/src/images/buffer.rs:2485,1
    - Dst: Result::channels_mut
      Src: /src/image/src/images/buffer.rs:2486,1
    - Dst: iter
      Src: /src/image/src/images/buffer.rs:2492,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:2493,1
    - Dst: Vec::get_pixel
      Src: /src/image/src/images/buffer.rs:2497,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2498,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2499,1
    - Dst: wrapping_add
      Src: /src/image/src/images/buffer.rs:2500,1
    - Dst: test::black_box
      Src: /src/image/src/images/buffer.rs:2503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut test::Bencher'
    constantsTouched: []
    func_position:
      end: 2507
      start: 2483
    functionDepth: 4
    functionLinenumber: 2483
    functionLinenumberEnd: 2507
    functionName: benchmarks::image_access_col_by_col
    functionSourceFile: /src/image/src/images/buffer.rs
    functionUses: 0
    functionsReached:
    - iter
    - Result::channels_mut
    - ImageBuffer::new
    - wrapping_add
    - pixels_mut
    - Vec::get_pixel
    - test::black_box
    linkageType: ''
    returnType: void
    signature: 'fn image_access_col_by_col(b: &mut test::Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::qualify_stability
      Src: /src/image/src/metadata/moxcms.rs:16,1
    - Dst: ImageResult::qualify_stability
      Src: /src/image/src/metadata/moxcms.rs:16,1
    - Dst: Self::into_rgb
      Src: /src/image/src/metadata/moxcms.rs:26,1
    - Dst: CicpRgb::derived_luminance
      Src: /src/image/src/metadata/moxcms.rs:26,1
    - Dst: ImageResult::into_rgb
      Src: /src/image/src/metadata/moxcms.rs:27,1
    - Dst: CicpRgb::derived_luminance
      Src: /src/image/src/metadata/moxcms.rs:27,1
    - Dst: Self::to_moxcms_compute_profile
      Src: /src/image/src/metadata/moxcms.rs:29,1
    - Dst: ImageResult::to_moxcms_compute_profile
      Src: /src/image/src/metadata/moxcms.rs:30,1
    - Dst: moxcms::TransformOptions::default
      Src: /src/image/src/metadata/moxcms.rs:32,1
    - Dst: map
      Src: /src/image/src/metadata/moxcms.rs:35,1
    - Dst: map_layout
      Src: /src/image/src/metadata/moxcms.rs:36,1
    - Dst: map_layout
      Src: /src/image/src/metadata/moxcms.rs:37,1
    - Dst: Self::create_transform_f32
      Src: /src/image/src/metadata/moxcms.rs:39,1
    - Dst: ok
      Src: /src/image/src/metadata/moxcms.rs:39,1
    - Dst: iter
      Src: /src/image/src/metadata/moxcms.rs:43,1
    - Dst: any
      Src: /src/image/src/metadata/moxcms.rs:43,1
    - Dst: map
      Src: /src/image/src/metadata/moxcms.rs:47,1
    - Dst: Some
      Src: /src/image/src/metadata/moxcms.rs:51,1
    - Dst: Self::build_transforms
      Src: /src/image/src/metadata/moxcms.rs:54,1
    - Dst: map
      Src: /src/image/src/metadata/moxcms.rs:55,1
    - Dst: map_layout
      Src: /src/image/src/metadata/moxcms.rs:56,1
    - Dst: map_layout
      Src: /src/image/src/metadata/moxcms.rs:57,1
    - Dst: Self::create_transform_8bit
      Src: /src/image/src/metadata/moxcms.rs:59,1
    - Dst: ok
      Src: /src/image/src/metadata/moxcms.rs:59,1
    - Dst: clone
      Src: /src/image/src/metadata/moxcms.rs:62,1
    - Dst: Self::build_transforms
      Src: /src/image/src/metadata/moxcms.rs:65,1
    - Dst: map
      Src: /src/image/src/metadata/moxcms.rs:66,1
    - Dst: map_layout
      Src: /src/image/src/metadata/moxcms.rs:67,1
    - Dst: map_layout
      Src: /src/image/src/metadata/moxcms.rs:68,1
    - Dst: Self::create_transform_16bit
      Src: /src/image/src/metadata/moxcms.rs:70,1
    - Dst: ok
      Src: /src/image/src/metadata/moxcms.rs:70,1
    - Dst: clone
      Src: /src/image/src/metadata/moxcms.rs:73,1
    - Dst: Self::build_transforms
      Src: /src/image/src/metadata/moxcms.rs:76,1
    - Dst: clone
      Src: /src/image/src/metadata/moxcms.rs:77,1
    - Dst: map
      Src: /src/image/src/metadata/moxcms.rs:77,1
    - Dst: clone
      Src: /src/image/src/metadata/moxcms.rs:78,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 89
    argCount: 2
    argNames:
    - from
    - into
    argTypes:
    - Cicp
    - Cicp
    constantsTouched: []
    func_position:
      end: 83
      start: 15
    functionDepth: 7
    functionLinenumber: 15
    functionLinenumberEnd: 83
    functionName: Moxcms::transform
    functionSourceFile: /src/image/src/metadata/moxcms.rs
    functionUses: 0
    functionsReached:
    - Some
    - ImageResult::qualify_stability
    - ImageResult::to_moxcms_compute_profile
    - iter
    - Self::create_transform_16bit
    - CicpRgb::derived_luminance
    - Self::to_moxcms_compute_profile
    - Self::qualify_stability
    - map_layout
    - clone
    - Self::build_transforms
    - Self::into_rgb
    - map
    - ok
    - Self::create_transform_f32
    - any
    - ImageResult::into_rgb
    - moxcms::TransformOptions::default
    - Self::create_transform_8bit
    linkageType: ''
    returnType: Option
    signature: 'fn transform(&self, from: Cicp, into: Cicp) -> Option<CicpTransform>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: moxcms::ColorProfile::new_from_slice
      Src: /src/image/src/metadata/moxcms.rs:86,1
    - Dst: ok
      Src: /src/image/src/metadata/moxcms.rs:86,1
    - Dst: Some
      Src: /src/image/src/metadata/moxcms.rs:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - icc
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 150
      start: 85
    functionDepth: 8
    functionLinenumber: 85
    functionLinenumberEnd: 150
    functionName: Moxcms::parse_icc
    functionSourceFile: /src/image/src/metadata/moxcms.rs
    functionUses: 0
    functionsReached:
    - moxcms::ColorProfile::new_from_slice
    - Some
    - ok
    linkageType: ''
    returnType: Option
    signature: 'fn parse_icc(&self, icc: &[u8]) -> Option<Cicp>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '[Option<Arc<dyn moxcms::TransformExecutor<P> + Send + Sync>>; 4]::iter'
      Src: /src/image/src/metadata/moxcms.rs:160,1
    - Dst: any
      Src: /src/image/src/metadata/moxcms.rs:160,1
    - Dst: ImageResult::map
      Src: /src/image/src/metadata/moxcms.rs:164,1
    - Dst: ImageResult::clone
      Src: /src/image/src/metadata/moxcms.rs:167,1
    - Dst: Self::map
      Src: /src/image/src/metadata/moxcms.rs:167,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/moxcms.rs:168,1
    - Dst: Result::transform
      Src: /src/image/src/metadata/moxcms.rs:169,1
    - Dst: CbCrInverseTransform::expect
      Src: /src/image/src/metadata/moxcms.rs:169,1
    - Dst: clone
      Src: /src/image/src/metadata/moxcms.rs:177,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/moxcms.rs:180,1
    - Dst: chunks
      Src: /src/image/src/metadata/moxcms.rs:184,1
    - Dst: zip
      Src: /src/image/src/metadata/moxcms.rs:184,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/moxcms.rs:184,1
    - Dst: T::len
      Src: /src/image/src/metadata/moxcms.rs:185,1
    - Dst: CicpTransform::expand_luma_rgb
      Src: /src/image/src/metadata/moxcms.rs:188,1
    - Dst: transform
      Src: /src/image/src/metadata/moxcms.rs:189,1
    - Dst: expect
      Src: /src/image/src/metadata/moxcms.rs:189,1
    - Dst: CicpTransform::clamp_rgb
      Src: /src/image/src/metadata/moxcms.rs:190,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/moxcms.rs:193,1
    - Dst: chunks
      Src: /src/image/src/metadata/moxcms.rs:197,1
    - Dst: zip
      Src: /src/image/src/metadata/moxcms.rs:197,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/moxcms.rs:197,1
    - Dst: T::len
      Src: /src/image/src/metadata/moxcms.rs:198,1
    - Dst: CicpTransform::expand_luma_rgb
      Src: /src/image/src/metadata/moxcms.rs:201,1
    - Dst: transform
      Src: /src/image/src/metadata/moxcms.rs:202,1
    - Dst: expect
      Src: /src/image/src/metadata/moxcms.rs:202,1
    - Dst: CicpTransform::clamp_rgba
      Src: /src/image/src/metadata/moxcms.rs:203,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/moxcms.rs:206,1
    - Dst: chunks
      Src: /src/image/src/metadata/moxcms.rs:210,1
    - Dst: zip
      Src: /src/image/src/metadata/moxcms.rs:210,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/moxcms.rs:210,1
    - Dst: T::len
      Src: /src/image/src/metadata/moxcms.rs:211,1
    - Dst: CicpTransform::expand_luma_rgba
      Src: /src/image/src/metadata/moxcms.rs:214,1
    - Dst: transform
      Src: /src/image/src/metadata/moxcms.rs:215,1
    - Dst: expect
      Src: /src/image/src/metadata/moxcms.rs:215,1
    - Dst: CicpTransform::clamp_rgb
      Src: /src/image/src/metadata/moxcms.rs:216,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/moxcms.rs:219,1
    - Dst: chunks
      Src: /src/image/src/metadata/moxcms.rs:223,1
    - Dst: zip
      Src: /src/image/src/metadata/moxcms.rs:223,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/moxcms.rs:223,1
    - Dst: T::len
      Src: /src/image/src/metadata/moxcms.rs:224,1
    - Dst: CicpTransform::expand_luma_rgba
      Src: /src/image/src/metadata/moxcms.rs:227,1
    - Dst: transform
      Src: /src/image/src/metadata/moxcms.rs:228,1
    - Dst: expect
      Src: /src/image/src/metadata/moxcms.rs:228,1
    - Dst: CicpTransform::clamp_rgba
      Src: /src/image/src/metadata/moxcms.rs:229,1
    - Dst: clone
      Src: /src/image/src/metadata/moxcms.rs:237,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/moxcms.rs:240,1
    - Dst: chunks
      Src: /src/image/src/metadata/moxcms.rs:246,1
    - Dst: zip
      Src: /src/image/src/metadata/moxcms.rs:246,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/moxcms.rs:246,1
    - Dst: bool::len
      Src: /src/image/src/metadata/moxcms.rs:247,1
    - Dst: CicpTransform::expand_rgb
      Src: /src/image/src/metadata/moxcms.rs:250,1
    - Dst: transform
      Src: /src/image/src/metadata/moxcms.rs:251,1
    - Dst: expect
      Src: /src/image/src/metadata/moxcms.rs:251,1
    - Dst: CicpTransform::clamp_rgb_luma
      Src: /src/image/src/metadata/moxcms.rs:252,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/moxcms.rs:255,1
    - Dst: chunks
      Src: /src/image/src/metadata/moxcms.rs:261,1
    - Dst: zip
      Src: /src/image/src/metadata/moxcms.rs:261,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/moxcms.rs:261,1
    - Dst: bool::len
      Src: /src/image/src/metadata/moxcms.rs:262,1
    - Dst: CicpTransform::expand_rgb
      Src: /src/image/src/metadata/moxcms.rs:265,1
    - Dst: transform
      Src: /src/image/src/metadata/moxcms.rs:266,1
    - Dst: expect
      Src: /src/image/src/metadata/moxcms.rs:266,1
    - Dst: CicpTransform::clamp_rgba_luma
      Src: /src/image/src/metadata/moxcms.rs:267,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/moxcms.rs:270,1
    - Dst: chunks
      Src: /src/image/src/metadata/moxcms.rs:276,1
    - Dst: zip
      Src: /src/image/src/metadata/moxcms.rs:276,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/moxcms.rs:276,1
    - Dst: bool::len
      Src: /src/image/src/metadata/moxcms.rs:277,1
    - Dst: CicpTransform::expand_rgba
      Src: /src/image/src/metadata/moxcms.rs:280,1
    - Dst: transform
      Src: /src/image/src/metadata/moxcms.rs:281,1
    - Dst: expect
      Src: /src/image/src/metadata/moxcms.rs:281,1
    - Dst: CicpTransform::clamp_rgb_luma
      Src: /src/image/src/metadata/moxcms.rs:282,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/moxcms.rs:285,1
    - Dst: chunks
      Src: /src/image/src/metadata/moxcms.rs:291,1
    - Dst: zip
      Src: /src/image/src/metadata/moxcms.rs:291,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/moxcms.rs:291,1
    - Dst: bool::len
      Src: /src/image/src/metadata/moxcms.rs:292,1
    - Dst: CicpTransform::expand_rgba
      Src: /src/image/src/metadata/moxcms.rs:295,1
    - Dst: transform
      Src: /src/image/src/metadata/moxcms.rs:296,1
    - Dst: expect
      Src: /src/image/src/metadata/moxcms.rs:296,1
    - Dst: CicpTransform::clamp_rgba_luma
      Src: /src/image/src/metadata/moxcms.rs:297,1
    - Dst: clone
      Src: /src/image/src/metadata/moxcms.rs:305,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/moxcms.rs:308,1
    - Dst: chunks
      Src: /src/image/src/metadata/moxcms.rs:313,1
    - Dst: zip
      Src: /src/image/src/metadata/moxcms.rs:313,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/moxcms.rs:313,1
    - Dst: T::len
      Src: /src/image/src/metadata/moxcms.rs:314,1
    - Dst: CicpTransform::expand_luma_rgb
      Src: /src/image/src/metadata/moxcms.rs:317,1
    - Dst: transform
      Src: /src/image/src/metadata/moxcms.rs:318,1
    - Dst: expect
      Src: /src/image/src/metadata/moxcms.rs:318,1
    - Dst: CicpTransform::clamp_rgb_luma
      Src: /src/image/src/metadata/moxcms.rs:319,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/moxcms.rs:322,1
    - Dst: chunks
      Src: /src/image/src/metadata/moxcms.rs:327,1
    - Dst: zip
      Src: /src/image/src/metadata/moxcms.rs:327,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/moxcms.rs:327,1
    - Dst: T::len
      Src: /src/image/src/metadata/moxcms.rs:328,1
    - Dst: CicpTransform::expand_luma_rgb
      Src: /src/image/src/metadata/moxcms.rs:331,1
    - Dst: transform
      Src: /src/image/src/metadata/moxcms.rs:332,1
    - Dst: expect
      Src: /src/image/src/metadata/moxcms.rs:332,1
    - Dst: CicpTransform::clamp_rgba_luma
      Src: /src/image/src/metadata/moxcms.rs:333,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/moxcms.rs:336,1
    - Dst: chunks
      Src: /src/image/src/metadata/moxcms.rs:341,1
    - Dst: zip
      Src: /src/image/src/metadata/moxcms.rs:341,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/moxcms.rs:341,1
    - Dst: T::len
      Src: /src/image/src/metadata/moxcms.rs:342,1
    - Dst: CicpTransform::expand_luma_rgba
      Src: /src/image/src/metadata/moxcms.rs:345,1
    - Dst: transform
      Src: /src/image/src/metadata/moxcms.rs:346,1
    - Dst: expect
      Src: /src/image/src/metadata/moxcms.rs:346,1
    - Dst: CicpTransform::clamp_rgb_luma
      Src: /src/image/src/metadata/moxcms.rs:347,1
    - Dst: Arc::new
      Src: /src/image/src/metadata/moxcms.rs:350,1
    - Dst: chunks
      Src: /src/image/src/metadata/moxcms.rs:355,1
    - Dst: zip
      Src: /src/image/src/metadata/moxcms.rs:355,1
    - Dst: bool::chunks_mut
      Src: /src/image/src/metadata/moxcms.rs:355,1
    - Dst: T::len
      Src: /src/image/src/metadata/moxcms.rs:356,1
    - Dst: CicpTransform::expand_luma_rgba
      Src: /src/image/src/metadata/moxcms.rs:359,1
    - Dst: transform
      Src: /src/image/src/metadata/moxcms.rs:360,1
    - Dst: expect
      Src: /src/image/src/metadata/moxcms.rs:360,1
    - Dst: CicpTransform::clamp_rgba_luma
      Src: /src/image/src/metadata/moxcms.rs:361,1
    - Dst: Some
      Src: /src/image/src/metadata/moxcms.rs:367,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: 373
      start: 154
    functionDepth: 7
    functionLinenumber: 154
    functionLinenumberEnd: 373
    functionName: Moxcms::build_transforms
    functionSourceFile: /src/image/src/metadata/moxcms.rs
    functionUses: 0
    functionsReached:
    - '[Option<Arc<dyn moxcms::TransformExecutor<P> + Send + Sync>>; 4]::iter'
    - T::len
    - expect
    - Arc::new
    - CicpTransform::expand_rgba
    - chunks
    - Some
    - bool::len
    - CicpTransform::expand_luma_rgb
    - CicpTransform::clamp_rgb_luma
    - bool::chunks_mut
    - Self::map
    - CicpTransform::expand_luma_rgba
    - CicpTransform::expand_rgb
    - CicpTransform::clamp_rgba
    - ImageResult::map
    - CicpTransform::clamp_rgba_luma
    - Result::transform
    - clone
    - CicpTransform::clamp_rgb
    - transform
    - any
    - CbCrInverseTransform::expect
    - ImageResult::clone
    - 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<crate::metadata::cicp::RgbTransforms<P>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - layout
    argTypes:
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 395
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 395
    functionName: ColorProfile::map_layout
    functionSourceFile: /src/image/src/metadata/moxcms.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:
    - Dst: moxcms::ColorProfile::new_srgb
      Src: /src/image/src/metadata/moxcms.rs:430,1
    - Dst: update_rgb_colorimetry_from_cicp
      Src: /src/image/src/metadata/moxcms.rs:432,1
    - Dst: to_moxcms
      Src: /src/image/src/metadata/moxcms.rs:433,1
    - Dst: to_moxcms
      Src: /src/image/src/metadata/moxcms.rs:434,1
    - Dst: to_moxcms
      Src: /src/image/src/metadata/moxcms.rs:435,1
    - Dst: Some
      Src: /src/image/src/metadata/moxcms.rs:442,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 443
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 443
    functionName: Cicp::to_moxcms_compute_profile
    functionSourceFile: /src/image/src/metadata/moxcms.rs
    functionUses: 0
    functionsReached:
    - update_rgb_colorimetry_from_cicp
    - to_moxcms
    - Some
    - moxcms::ColorProfile::new_srgb
    linkageType: ''
    returnType: Option
    signature: fn to_moxcms_compute_profile(self) -> Option<ColorProfile>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 464
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 464
    functionName: CicpColorPrimaries::to_moxcms
    functionSourceFile: /src/image/src/metadata/moxcms.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: 490
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 490
    functionName: CicpTransferCharacteristics::to_moxcms
    functionSourceFile: /src/image/src/metadata/moxcms.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/moxcms.rs:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 516
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 516
    functionName: CicpMatrixCoefficients::to_moxcms
    functionSourceFile: /src/image/src/metadata/moxcms.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn to_moxcms(self) -> Option<moxcms::MatrixCoefficients>
  - 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: 201
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 201
    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:
    - Dst: crate::metadata::cms_provider
      Src: /src/image/src/metadata/cicp.rs:331,1
    - Dst: '&''static dyn CmsProvider::transform'
      Src: /src/image/src/metadata/cicp.rs:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - from
    - into
    argTypes:
    - Cicp
    - Cicp
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: CicpTransform::new
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 5
    functionsReached:
    - crate::metadata::cms_provider
    - '&''static dyn CmsProvider::transform'
    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:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 347
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 347
    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:353,1
    - Dst: Err
      Src: /src/image/src/metadata/cicp.rs:355,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/metadata/cicp.rs:355,1
    - Dst: check_expectation
      Src: /src/image/src/metadata/cicp.rs:361,1
    - Dst: map_err
      Src: /src/image/src/metadata/cicp.rs:361,1
    - Dst: check_expectation
      Src: /src/image/src/metadata/cicp.rs:362,1
    - Dst: map_err
      Src: /src/image/src/metadata/cicp.rs:362,1
    - Dst: Ok
      Src: /src/image/src/metadata/cicp.rs:364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - from
    - into
    argTypes:
    - Cicp
    - Cicp
    constantsTouched: []
    func_position:
      end: 365
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 365
    functionName: CicpTransform::check_applicable
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - check_expectation
    - ParameterError::from_kind
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn check_applicable(&self, from: Cicp, into: Cicp) -> Result<(),
      ImageError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::from
      Src: /src/image/src/metadata/cicp.rs:372,1
    - Dst: '&mut DynamicImage::width'
      Src: /src/image/src/metadata/cicp.rs:372,1
    - Dst: u64::from
      Src: /src/image/src/metadata/cicp.rs:372,1
    - Dst: '&mut DynamicImage::height'
      Src: /src/image/src/metadata/cicp.rs:372,1
    - Dst: LayoutWithColor::from
      Src: /src/image/src/metadata/cicp.rs:378,1
    - Dst: '&mut DynamicImage::color'
      Src: /src/image/src/metadata/cicp.rs:378,1
    - Dst: LayoutWithColor::from
      Src: /src/image/src/metadata/cicp.rs:379,1
    - Dst: '&DynamicImage::color'
      Src: /src/image/src/metadata/cicp.rs:379,1
    - Dst: step_by
      Src: /src/image/src/metadata/cicp.rs:415,1
    - Dst: min
      Src: /src/image/src/metadata/cicp.rs:416,1
    - Dst: CicpTransform::expand_luma_rgb
      Src: /src/image/src/metadata/cicp.rs:423,1
    - Dst: std::io::Result::subpixels
      Src: /src/image/src/metadata/cicp.rs:424,1
    - Dst: CicpTransform::expand_luma_rgba
      Src: /src/image/src/metadata/cicp.rs:429,1
    - Dst: std::io::Result::subpixels
      Src: /src/image/src/metadata/cicp.rs:430,1
    - Dst: CicpTransform::expand_rgb
      Src: /src/image/src/metadata/cicp.rs:435,1
    - Dst: std::io::Result::subpixels
      Src: /src/image/src/metadata/cicp.rs:436,1
    - Dst: CicpTransform::expand_rgba
      Src: /src/image/src/metadata/cicp.rs:441,1
    - Dst: std::io::Result::subpixels
      Src: /src/image/src/metadata/cicp.rs:442,1
    - Dst: CicpTransform::expand_luma_rgb
      Src: /src/image/src/metadata/cicp.rs:447,1
    - Dst: std::io::Result::subpixels
      Src: /src/image/src/metadata/cicp.rs:448,1
    - Dst: CicpTransform::expand_luma_rgba
      Src: /src/image/src/metadata/cicp.rs:453,1
    - Dst: std::io::Result::subpixels
      Src: /src/image/src/metadata/cicp.rs:454,1
    - Dst: CicpTransform::expand_rgb
      Src: /src/image/src/metadata/cicp.rs:459,1
    - Dst: std::io::Result::subpixels
      Src: /src/image/src/metadata/cicp.rs:460,1
    - Dst: CicpTransform::expand_rgba
      Src: /src/image/src/metadata/cicp.rs:466,1
    - Dst: std::io::Result::subpixels
      Src: /src/image/src/metadata/cicp.rs:467,1
    - Dst: CicpTransform::expand_rgb
      Src: /src/image/src/metadata/cicp.rs:472,1
    - Dst: std::io::Result::subpixels
      Src: /src/image/src/metadata/cicp.rs:473,1
    - Dst: CicpTransform::expand_rgba
      Src: /src/image/src/metadata/cicp.rs:478,1
    - Dst: std::io::Result::subpixels
      Src: /src/image/src/metadata/cicp.rs:479,1
    - Dst: inner_transform
      Src: /src/image/src/metadata/cicp.rs:488,1
    - Dst: CicpTransform::clamp_rgb_luma
      Src: /src/image/src/metadata/cicp.rs:492,1
    - Dst: std::io::Result::subpixels_mut
      Src: /src/image/src/metadata/cicp.rs:494,1
    - Dst: CicpTransform::clamp_rgba_luma
      Src: /src/image/src/metadata/cicp.rs:499,1
    - Dst: std::io::Result::subpixels_mut
      Src: /src/image/src/metadata/cicp.rs:501,1
    - Dst: CicpTransform::clamp_rgb
      Src: /src/image/src/metadata/cicp.rs:506,1
    - Dst: std::io::Result::subpixels_mut
      Src: /src/image/src/metadata/cicp.rs:508,1
    - Dst: CicpTransform::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:512,1
    - Dst: std::io::Result::subpixels_mut
      Src: /src/image/src/metadata/cicp.rs:514,1
    - Dst: CicpTransform::clamp_rgb_luma
      Src: /src/image/src/metadata/cicp.rs:518,1
    - Dst: std::io::Result::subpixels_mut
      Src: /src/image/src/metadata/cicp.rs:520,1
    - Dst: CicpTransform::clamp_rgba_luma
      Src: /src/image/src/metadata/cicp.rs:525,1
    - Dst: std::io::Result::subpixels_mut
      Src: /src/image/src/metadata/cicp.rs:527,1
    - Dst: CicpTransform::clamp_rgb
      Src: /src/image/src/metadata/cicp.rs:532,1
    - Dst: std::io::Result::subpixels_mut
      Src: /src/image/src/metadata/cicp.rs:534,1
    - Dst: CicpTransform::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:539,1
    - Dst: std::io::Result::subpixels_mut
      Src: /src/image/src/metadata/cicp.rs:541,1
    - Dst: CicpTransform::clamp_rgb
      Src: /src/image/src/metadata/cicp.rs:545,1
    - Dst: std::io::Result::subpixels_mut
      Src: /src/image/src/metadata/cicp.rs:547,1
    - Dst: CicpTransform::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:551,1
    - Dst: std::io::Result::subpixels_mut
      Src: /src/image/src/metadata/cicp.rs:553,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 338
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - '&mut DynamicImage'
    - '&DynamicImage'
    constantsTouched: []
    func_position:
      end: 558
      start: 366
    functionDepth: 6
    functionLinenumber: 366
    functionLinenumberEnd: 558
    functionName: CicpTransform::transform_dynamic
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - CicpTransform::expand_rgba
    - u64::from
    - CicpTransform::expand_luma_rgb
    - CicpTransform::clamp_rgb_luma
    - CicpTransform::expand_luma_rgba
    - min
    - CicpTransform::expand_rgb
    - CicpTransform::clamp_rgba
    - CicpTransform::clamp_rgba_luma
    - std::io::Result::subpixels
    - '&DynamicImage::color'
    - CicpTransform::clamp_rgb
    - '&mut DynamicImage::width'
    - LayoutWithColor::from
    - step_by
    - '&mut DynamicImage::height'
    - inner_transform
    - '&mut DynamicImage::color'
    - std::io::Result::subpixels_mut
    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:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - into
    argTypes:
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 571
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 571
    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:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - into
    argTypes:
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 578
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 578
    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:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - into
    argTypes:
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 585
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 585
    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:596,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:596,1
    - Dst: as_chunks_mut::<3>
      Src: /src/image/src/metadata/cicp.rs:596,1
    - Dst: iter_mut
      Src: /src/image/src/metadata/cicp.rs:596,1
    - Dst: expand_to_f32
      Src: /src/image/src/metadata/cicp.rs:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - luma
    - rgb
    argTypes:
    - '&[P]'
    - '&mut [f32]'
    constantsTouched: []
    func_position:
      end: 602
      start: 595
    functionDepth: 5
    functionLinenumber: 595
    functionLinenumberEnd: 602
    functionName: CicpTransform::expand_luma_rgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 3
    functionsReached:
    - iter_mut
    - T::iter
    - zip
    - as_chunks_mut::<3>
    - expand_to_f32
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn expand_luma_rgb<P: ColorComponentForCicp>(luma: &[P],
      rgb: &mut [f32])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_chunks::<2>
      Src: /src/image/src/metadata/cicp.rs:605,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:605,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/metadata/cicp.rs:606,1
    - Dst: iter_mut
      Src: /src/image/src/metadata/cicp.rs:606,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:607,1
    - Dst: expand_to_f32
      Src: /src/image/src/metadata/cicp.rs:608,1
    - Dst: expand_to_f32
      Src: /src/image/src/metadata/cicp.rs:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 2
    argNames:
    - luma
    - rgb
    argTypes:
    - '&[P]'
    - '&mut [f32]'
    constantsTouched: []
    func_position:
      end: 614
      start: 604
    functionDepth: 5
    functionLinenumber: 604
    functionLinenumberEnd: 614
    functionName: CicpTransform::expand_luma_rgba
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 3
    functionsReached:
    - iter
    - as_chunks::<2>
    - iter_mut
    - as_chunks_mut::<4>
    - zip
    - expand_to_f32
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn expand_luma_rgba<P: ColorComponentForCicp>(luma: &[P],
      rgb: &mut [f32])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[P]::iter'
      Src: /src/image/src/metadata/cicp.rs:617,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:617,1
    - Dst: ImageResult::expand_to_f32
      Src: /src/image/src/metadata/cicp.rs:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - '&[P]'
    - '&mut [f32]'
    constantsTouched: []
    func_position:
      end: 620
      start: 616
    functionDepth: 5
    functionLinenumber: 616
    functionLinenumberEnd: 620
    functionName: CicpTransform::expand_rgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 3
    functionsReached:
    - zip
    - '&[P]::iter'
    - ImageResult::expand_to_f32
    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:623,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:623,1
    - Dst: ImageResult::expand_to_f32
      Src: /src/image/src/metadata/cicp.rs:624,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - '&[P]'
    - '&mut [f32]'
    constantsTouched: []
    func_position:
      end: 626
      start: 622
    functionDepth: 5
    functionLinenumber: 622
    functionLinenumberEnd: 626
    functionName: CicpTransform::expand_rgba
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 3
    functionsReached:
    - zip
    - '&[P]::iter'
    - ImageResult::expand_to_f32
    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:630,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:630,1
    - Dst: P::clamp_from_f32
      Src: /src/image/src/metadata/cicp.rs:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - '&[f32]'
    - '&mut [P]'
    constantsTouched: []
    func_position:
      end: 633
      start: 628
    functionDepth: 5
    functionLinenumber: 628
    functionLinenumberEnd: 633
    functionName: CicpTransform::clamp_rgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 3
    functionsReached:
    - zip
    - '&[f32]::iter'
    - 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:636,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:636,1
    - Dst: P::clamp_from_f32
      Src: /src/image/src/metadata/cicp.rs:637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - '&[f32]'
    - '&mut [P]'
    constantsTouched: []
    func_position:
      end: 639
      start: 635
    functionDepth: 5
    functionLinenumber: 635
    functionLinenumberEnd: 639
    functionName: CicpTransform::clamp_rgba
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 3
    functionsReached:
    - zip
    - '&[f32]::iter'
    - 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:646,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:646,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:646,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:649,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:649,1
    - Dst: multiply_accumulate
      Src: /src/image/src/metadata/cicp.rs:650,1
    - Dst: P::clamp_from_f32
      Src: /src/image/src/metadata/cicp.rs:653,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 3
    argNames:
    - input
    - output
    - coef
    argTypes:
    - '&[f32]'
    - '&mut [P]'
    - '[f32; 3]'
    constantsTouched: []
    func_position:
      end: 655
      start: 641
    functionDepth: 5
    functionLinenumber: 641
    functionLinenumberEnd: 655
    functionName: CicpTransform::clamp_rgb_luma
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 3
    functionsReached:
    - iter
    - P::clamp_from_f32
    - zip
    - multiply_accumulate
    - as_chunks::<3>
    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:662,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:662,1
    - Dst: as_chunks_mut::<2>
      Src: /src/image/src/metadata/cicp.rs:663,1
    - Dst: iter_mut
      Src: /src/image/src/metadata/cicp.rs:663,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:664,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:667,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:667,1
    - Dst: multiply_accumulate
      Src: /src/image/src/metadata/cicp.rs:668,1
    - Dst: P::clamp_from_f32
      Src: /src/image/src/metadata/cicp.rs:671,1
    - Dst: P::clamp_from_f32
      Src: /src/image/src/metadata/cicp.rs:672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 3
    argNames:
    - input
    - output
    - coef
    argTypes:
    - '&[f32]'
    - '&mut [P]'
    - '[f32; 3]'
    constantsTouched: []
    func_position:
      end: 674
      start: 657
    functionDepth: 5
    functionLinenumber: 657
    functionLinenumberEnd: 674
    functionName: CicpTransform::clamp_rgba_luma
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 3
    functionsReached:
    - iter
    - iter_mut
    - P::clamp_from_f32
    - zip
    - multiply_accumulate
    - as_chunks_mut::<2>
    - as_chunks::<4>
    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:696,1
    - Dst: <IntoColor as SealedPixelWithColorType>::layout
      Src: /src/image/src/metadata/cicp.rs:697,1
    - Dst: CicpRgb::cast_pixels_by_layout
      Src: /src/image/src/metadata/cicp.rs:702,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: 703
      start: 681
    functionDepth: 13
    functionLinenumber: 681
    functionLinenumberEnd: 703
    functionName: CicpRgb::cast_pixels
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - <IntoColor as SealedPixelWithColorType>::layout
    - <FromColor as SealedPixelWithColorType>::layout
    - CicpRgb::cast_pixels_by_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:718,1
    - Dst: CicpRgb::derived_luminance
      Src: /src/image/src/metadata/cicp.rs:724,1
    - Dst: Option::unwrap_or_else
      Src: /src/image/src/metadata/cicp.rs:724,1
    - Dst: '&RgbaImage::len'
      Src: /src/image/src/metadata/cicp.rs:731,1
    - Dst: LayoutWithColor::channels
      Src: /src/image/src/metadata/cicp.rs:731,1
    - Dst: Self::create_output::<IntoSubpixel>
      Src: /src/image/src/metadata/cicp.rs:736,1
    - Dst: Self::cast_pixels_by_fallback
      Src: /src/image/src/metadata/cicp.rs:738,1
    - Dst: bool::as_mut_slice
      Src: /src/image/src/metadata/cicp.rs:740,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: 747
      start: 705
    functionDepth: 12
    functionLinenumber: 705
    functionLinenumberEnd: 747
    functionName: CicpRgb::cast_pixels_by_layout
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 1
    functionsReached:
    - Self::create_output::<IntoSubpixel>
    - Self::cast_pixels_by_fallback
    - Option::unwrap_or_else
    - '&RgbaImage::len'
    - CicpRgb::derived_luminance
    - bool::as_mut_slice
    - CicpRgb::cast_pixels_from_subpixels
    - LayoutWithColor::channels
    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:754,1
    - Dst: LayoutWithColor::channels
      Src: /src/image/src/metadata/cicp.rs:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - output
    - pixels
    - into_layout
    argTypes:
    - '&mut Vec<Into>'
    - usize
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 755
      start: 749
    functionDepth: 14
    functionLinenumber: 749
    functionLinenumberEnd: 755
    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:770,1
    - Dst: LayoutWithColor::channels
      Src: /src/image/src/metadata/cicp.rs:770,1
    - Dst: step_by
      Src: /src/image/src/metadata/cicp.rs:785,1
    - Dst: min
      Src: /src/image/src/metadata/cicp.rs:786,1
    - Dst: CicpTransform::expand_rgb
      Src: /src/image/src/metadata/cicp.rs:793,1
    - Dst: CicpTransform::expand_rgba
      Src: /src/image/src/metadata/cicp.rs:796,1
    - Dst: CicpTransform::expand_luma_rgb
      Src: /src/image/src/metadata/cicp.rs:799,1
    - Dst: CicpTransform::expand_luma_rgba
      Src: /src/image/src/metadata/cicp.rs:802,1
    - Dst: as_chunks::<3>
      Src: /src/image/src/metadata/cicp.rs:811,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:811,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/metadata/cicp.rs:812,1
    - Dst: iter_mut
      Src: /src/image/src/metadata/cicp.rs:812,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:813,1
    - Dst: take
      Src: /src/image/src/metadata/cicp.rs:813,1
    - Dst: as_chunks::<4>
      Src: /src/image/src/metadata/cicp.rs:823,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:823,1
    - Dst: as_chunks_mut::<3>
      Src: /src/image/src/metadata/cicp.rs:824,1
    - Dst: iter_mut
      Src: /src/image/src/metadata/cicp.rs:824,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:825,1
    - Dst: take
      Src: /src/image/src/metadata/cicp.rs:825,1
    - Dst: CicpTransform::clamp_rgb
      Src: /src/image/src/metadata/cicp.rs:841,1
    - Dst: CicpTransform::clamp_rgba
      Src: /src/image/src/metadata/cicp.rs:844,1
    - Dst: CicpTransform::clamp_rgb_luma
      Src: /src/image/src/metadata/cicp.rs:847,1
    - Dst: CicpTransform::clamp_rgba_luma
      Src: /src/image/src/metadata/cicp.rs:854,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: 862
      start: 757
    functionDepth: 11
    functionLinenumber: 757
    functionLinenumberEnd: 862
    functionName: CicpRgb::cast_pixels_by_fallback
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - CicpTransform::expand_rgba
    - '&RgbaImage::len'
    - as_chunks_mut::<4>
    - as_chunks::<3>
    - iter
    - CicpTransform::expand_luma_rgb
    - CicpTransform::clamp_rgb_luma
    - CicpTransform::expand_luma_rgba
    - min
    - CicpTransform::expand_rgb
    - as_chunks_mut::<3>
    - CicpTransform::clamp_rgba
    - CicpTransform::clamp_rgba_luma
    - CicpTransform::clamp_rgb
    - step_by
    - take
    - iter_mut
    - zip
    - LayoutWithColor::channels
    - as_chunks::<4>
    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:879,1
    - Dst: LayoutWithColor::channels
      Src: /src/image/src/metadata/cicp.rs:879,1
    - Dst: vec_try_with_capacity
      Src: /src/image/src/metadata/cicp.rs:881,1
    - Dst: LayoutWithColor::channels
      Src: /src/image/src/metadata/cicp.rs:881,1
    - Dst: Result::expect
      Src: /src/image/src/metadata/cicp.rs:881,1
    - Dst: bool::extend
      Src: /src/image/src/metadata/cicp.rs:909,1
    - Dst: '&RgbaImage::iter'
      Src: /src/image/src/metadata/cicp.rs:909,1
    - Dst: copied
      Src: /src/image/src/metadata/cicp.rs:909,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:909,1
    - Dst: Self::subpixel_cast_rgb_to_rgba
      Src: /src/image/src/metadata/cicp.rs:912,1
    - Dst: Self::subpixel_cast_rgba_to_rgb
      Src: /src/image/src/metadata/cicp.rs:915,1
    - Dst: Self::subpixel_cast_luma_to_luma_alpha
      Src: /src/image/src/metadata/cicp.rs:918,1
    - Dst: Self::subpixel_cast_luma_alpha_to_luma
      Src: /src/image/src/metadata/cicp.rs:921,1
    - Dst: Err
      Src: /src/image/src/metadata/cicp.rs:923,1
    - Dst: Ok
      Src: /src/image/src/metadata/cicp.rs:926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 3
    argNames:
    - buffer
    - from_layout
    - into_layout
    argTypes:
    - '&[FromSubpixel]'
    - LayoutWithColor
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 927
      start: 866
    functionDepth: 11
    functionLinenumber: 866
    functionLinenumberEnd: 927
    functionName: CicpRgb::cast_pixels_from_subpixels
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 1
    functionsReached:
    - vec_try_with_capacity
    - '&RgbaImage::iter'
    - Self::subpixel_cast_luma_to_luma_alpha
    - Err
    - bool::extend
    - map
    - Ok
    - Result::expect
    - copied
    - '&RgbaImage::len'
    - Self::subpixel_cast_luma_alpha_to_luma
    - Self::subpixel_cast_rgba_to_rgb
    - LayoutWithColor::channels
    - Self::subpixel_cast_rgb_to_rgba
    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:936,1
    - Dst: channels
      Src: /src/image/src/metadata/cicp.rs:936,1
    - Dst: Self::create_output::<IntoSubpixel>
      Src: /src/image/src/metadata/cicp.rs:937,1
    - Dst: as_chunks::<3>
      Src: /src/image/src/metadata/cicp.rs:942,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/src/metadata/cicp.rs:943,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:945,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:945,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:947,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:948,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 2
    argNames:
    - output
    - buffer
    argTypes:
    - '&mut Vec<IntoSubpixel>'
    - '&[FromSubpixel]'
    constantsTouched: []
    func_position:
      end: 953
      start: 929
    functionDepth: 11
    functionLinenumber: 929
    functionLinenumberEnd: 953
    functionName: CicpRgb::subpixel_cast_rgb_to_rgba
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - iter
    - map_channel
    - Self::create_output::<IntoSubpixel>
    - '&RgbaImage::len'
    - as_chunks_mut::<4>
    - zip
    - channels
    - as_chunks::<3>
    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:962,1
    - Dst: channels
      Src: /src/image/src/metadata/cicp.rs:962,1
    - Dst: Self::create_output::<IntoSubpixel>
      Src: /src/image/src/metadata/cicp.rs:963,1
    - Dst: as_chunks::<4>
      Src: /src/image/src/metadata/cicp.rs:967,1
    - Dst: as_chunks_mut::<3>
      Src: /src/image/src/metadata/cicp.rs:968,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:970,1
    - Dst: zip
      Src: /src/image/src/metadata/cicp.rs:970,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:971,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:971,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 2
    argNames:
    - output
    - buffer
    argTypes:
    - '&mut Vec<IntoSubpixel>'
    - '&[FromSubpixel]'
    constantsTouched: []
    func_position:
      end: 973
      start: 955
    functionDepth: 11
    functionLinenumber: 955
    functionLinenumberEnd: 973
    functionName: CicpRgb::subpixel_cast_rgba_to_rgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - iter
    - map_channel
    - Self::create_output::<IntoSubpixel>
    - '&RgbaImage::len'
    - zip
    - as_chunks_mut::<3>
    - channels
    - as_chunks::<4>
    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:986,1
    - Dst: '&RgbaImage::iter'
      Src: /src/image/src/metadata/cicp.rs:986,1
    - Dst: copied
      Src: /src/image/src/metadata/cicp.rs:986,1
    - Dst: flat_map
      Src: /src/image/src/metadata/cicp.rs:986,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - output
    - buffer
    argTypes:
    - '&mut Vec<IntoSubpixel>'
    - '&[FromSubpixel]'
    constantsTouched: []
    func_position:
      end: 994
      start: 977
    functionDepth: 5
    functionLinenumber: 977
    functionLinenumberEnd: 994
    functionName: CicpRgb::subpixel_cast_luma_to_luma_alpha
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - '&RgbaImage::iter'
    - bool::extend
    - copied
    - map_channel
    - 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:1005,1
    - Dst: bool::extend
      Src: /src/image/src/metadata/cicp.rs:1007,1
    - Dst: iter
      Src: /src/image/src/metadata/cicp.rs:1007,1
    - Dst: map
      Src: /src/image/src/metadata/cicp.rs:1007,1
    - Dst: map_channel
      Src: /src/image/src/metadata/cicp.rs:1007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - output
    - buffer
    argTypes:
    - '&mut Vec<IntoSubpixel>'
    - '&[FromSubpixel]'
    constantsTouched: []
    func_position:
      end: 1008
      start: 996
    functionDepth: 7
    functionLinenumber: 996
    functionLinenumberEnd: 1008
    functionName: CicpRgb::subpixel_cast_luma_alpha_to_luma
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - iter
    - bool::extend
    - map
    - as_chunks::<2>
    - map_channel
    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: 1049
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1049
    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: 1059
      start: 1052
    functionDepth: 0
    functionLinenumber: 1052
    functionLinenumberEnd: 1059
    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: 1066
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1066
    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: 1072
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1072
    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: 1078
      start: 1076
    functionDepth: 0
    functionLinenumber: 1076
    functionLinenumberEnd: 1078
    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: 1082
      start: 1080
    functionDepth: 0
    functionLinenumber: 1080
    functionLinenumberEnd: 1082
    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:1091,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 1
    argNames:
    - into
    argTypes:
    - LayoutWithColor
    constantsTouched: []
    func_position:
      end: 1111
      start: 1086
    functionDepth: 3
    functionLinenumber: 1086
    functionLinenumberEnd: 1111
    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: is_supported_for_transform
      Src: /src/image/src/metadata/cicp.rs:1171,1
    - Dst: is_supported_for_transform
      Src: /src/image/src/metadata/cicp.rs:1172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1173
    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: 1188
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1188
    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:1191,1
    - Dst: Cicp::into_rgb
      Src: /src/image/src/metadata/cicp.rs:1191,1
    - Dst: Err
      Src: /src/image/src/metadata/cicp.rs:1192,1
    - Dst: ImageError::Parameter
      Src: /src/image/src/metadata/cicp.rs:1192,1
    - Dst: ParameterError::from_kind
      Src: /src/image/src/metadata/cicp.rs:1192,1
    - Dst: ParameterErrorKind::RgbCicpRequired
      Src: /src/image/src/metadata/cicp.rs:1193,1
    - Dst: Ok
      Src: /src/image/src/metadata/cicp.rs:1196,1
    - Dst: Cicp::into_rgb
      Src: /src/image/src/metadata/cicp.rs:1196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1198
    functionName: Cicp::try_into_rgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - Err
    - Ok
    - ParameterError::from_kind
    - Cicp::from
    - ParameterErrorKind::RgbCicpRequired
    - ImageError::Parameter
    - Cicp::into_rgb
    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:1204,1
    - Dst: Some
      Src: /src/image/src/metadata/cicp.rs:1205,1
    - Dst: Some
      Src: /src/image/src/metadata/cicp.rs:1206,1
    - Dst: Some
      Src: /src/image/src/metadata/cicp.rs:1207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1203
    functionDepth: 1
    functionLinenumber: 1203
    functionLinenumberEnd: 1210
    functionName: CicpRgb::known_name
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - Some
    - Cicp::from
    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:1241,1
    - Dst: moxcms::Chromaticity::new
      Src: /src/image/src/metadata/cicp.rs:1242,1
    - Dst: transform_to_xyz
      Src: /src/image/src/metadata/cicp.rs:1248,1
    - Dst: Some
      Src: /src/image/src/metadata/cicp.rs:1251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1215
    functionDepth: 0
    functionLinenumber: 1215
    functionLinenumberEnd: 1252
    functionName: CicpRgb::derived_luminance
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 2
    functionsReached:
    - moxcms::Chromaticity::new
    - transform_to_xyz
    - Some
    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: 1263
      start: 1256
    functionDepth: 0
    functionLinenumber: 1256
    functionLinenumberEnd: 1263
    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: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1274
    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:1279,1
    - Dst: derived_luminance
      Src: /src/image/src/metadata/cicp.rs:1279,1
    - Dst: Option::unwrap
      Src: /src/image/src/metadata/cicp.rs:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1278
    functionDepth: 1
    functionLinenumber: 1278
    functionLinenumberEnd: 1284
    functionName: derived_luminance
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 3
    functionsReached:
    - into_rgb
    - Option::unwrap
    - derived_luminance
    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: 1297
      start: 1292
    functionDepth: 0
    functionLinenumber: 1292
    functionLinenumberEnd: 1297
    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: 1301
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1301
    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:1308,1
    - Dst: cast_pixels::<Rgba<u8>, Rgb<u8>>
      Src: /src/image/src/metadata/cicp.rs:1309,1
    - Dst: cast_pixels::<Rgba<u8>, Luma<u8>>
      Src: /src/image/src/metadata/cicp.rs:1311,1
    - Dst: cast_pixels::<Rgba<u8>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1315
    functionName: tests::transform_pixels_srgb
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - into_rgb
    - cast_pixels::<Rgba<u8>, LumaA<u8>>
    - cast_pixels::<Rgba<u8>, Rgb<u8>>
    - cast_pixels::<Rgba<u8>, Luma<u8>>
    linkageType: ''
    returnType: void
    signature: fn transform_pixels_srgb()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_rgb
      Src: /src/image/src/metadata/cicp.rs:1322,1
    - Dst: cast_pixels::<Luma<u16>, Rgb<u8>>
      Src: /src/image/src/metadata/cicp.rs:1323,1
    - Dst: cast_pixels::<Luma<u16>, Luma<u8>>
      Src: /src/image/src/metadata/cicp.rs:1325,1
    - Dst: cast_pixels::<Luma<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1327,1
    - Dst: into_rgb
      Src: /src/image/src/metadata/cicp.rs:1331,1
    - Dst: cast_pixels::<Luma<u16>, Rgb<u8>>
      Src: /src/image/src/metadata/cicp.rs:1332,1
    - Dst: cast_pixels::<Luma<u16>, Luma<u8>>
      Src: /src/image/src/metadata/cicp.rs:1334,1
    - Dst: cast_pixels::<Luma<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1338
    functionName: tests::transform_pixels_srgb_16
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - into_rgb
    - cast_pixels::<Luma<u16>, Luma<u8>>
    - cast_pixels::<Luma<u16>, Rgb<u8>>
    - 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:1345,1
    - Dst: cast_pixels::<LumaA<u16>, Rgb<u8>>
      Src: /src/image/src/metadata/cicp.rs:1346,1
    - Dst: cast_pixels::<LumaA<u16>, Luma<u8>>
      Src: /src/image/src/metadata/cicp.rs:1348,1
    - Dst: cast_pixels::<LumaA<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1350,1
    - Dst: cast_pixels::<LumaA<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1352,1
    - Dst: into_rgb
      Src: /src/image/src/metadata/cicp.rs:1356,1
    - Dst: cast_pixels::<LumaA<u16>, Rgb<u8>>
      Src: /src/image/src/metadata/cicp.rs:1357,1
    - Dst: cast_pixels::<LumaA<u16>, Luma<u8>>
      Src: /src/image/src/metadata/cicp.rs:1359,1
    - Dst: cast_pixels::<LumaA<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1361,1
    - Dst: cast_pixels::<LumaA<u16>, LumaA<u8>>
      Src: /src/image/src/metadata/cicp.rs:1363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1341
    functionDepth: 1
    functionLinenumber: 1341
    functionLinenumberEnd: 1365
    functionName: tests::transform_pixels_srgb_luma_alpha
    functionSourceFile: /src/image/src/metadata/cicp.rs
    functionUses: 0
    functionsReached:
    - into_rgb
    - cast_pixels::<LumaA<u16>, LumaA<u8>>
    - cast_pixels::<LumaA<u16>, Rgb<u8>>
    - cast_pixels::<LumaA<u16>, Luma<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: 4
    functionLinenumber: 56
    functionLinenumberEnd: 84
    functionName: resize_dimensions
    functionSourceFile: /src/image/src/math/utils.rs
    functionUses: 8
    functionsReached:
    - f64::min
    - f64::from
    - u64::from
    - f64::max
    - round
    - std::cmp::max
    linkageType: ''
    returnType: (u32, u32)
    signature: 'pub(crate) fn resize_dimensions(width: u32,height: u32,nwidth: u32,nheight:
      u32,fill: bool,) -> (u32, u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::resize_dimensions
      Src: /src/image/src/math/utils.rs: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: 5
    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: 5
    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: 5
    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: 5
    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: 5
    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: 20
    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: 6
    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: 4
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: Rect::test_in_bounds_of
    functionSourceFile: /src/image/src/math/rect.rs
    functionUses: 0
    functionsReached:
    - Err
    - Rect::is_in_bounds
    - Ok
    - error::ParameterError::from_kind
    - Vec::dimensions
    - error::ImageError::Parameter
    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: 4
    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: 1
    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: u32::from
      Src: /src/image/src/utils/mod.rs:13,1
    - Dst: is_multiple_of
      Src: /src/image/src/utils/mod.rs:14,1
    - Dst: u32::from
      Src: /src/image/src/utils/mod.rs:17,1
    - Dst: Vec::new
      Src: /src/image/src/utils/mod.rs:20,1
    - Dst: Result::push
      Src: /src/image/src/utils/mod.rs:29,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 3
    argNames:
    - bit_depth
    - row_size
    - buf
    argTypes:
    - u8
    - u32
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 35
      start: 9
    functionDepth: 3
    functionLinenumber: 9
    functionLinenumberEnd: 35
    functionName: expand_bits
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 1
    functionsReached:
    - is_multiple_of
    - Vec::new
    - 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:44,1
    - Dst: as_chunks_mut::<N>
      Src: /src/image/src/utils/mod.rs:45,1
    - Dst: <[_; PLANES]>::try_from
      Src: /src/image/src/utils/mod.rs:46,1
    - Dst: Result::unwrap
      Src: /src/image/src/utils/mod.rs:46,1
    - Dst: map
      Src: /src/image/src/utils/mod.rs:46,1
    - Dst: as_chunks::<N>
      Src: /src/image/src/utils/mod.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - out
    - planes
    argTypes:
    - '&mut [u8]'
    - '&[&[u8]]'
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 7
    functionLinenumber: 40
    functionLinenumberEnd: 50
    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:
    - interleave_planes_inner::<PLANES, N>
    - <[_; PLANES]>::try_from
    - map
    - as_chunks_mut::<N>
    - as_chunks::<N>
    - Result::unwrap
    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:55,1
    - Dst: trampoline::<2, 1>
      Src: /src/image/src/utils/mod.rs:56,1
    - Dst: trampoline::<3, 1>
      Src: /src/image/src/utils/mod.rs:57,1
    - Dst: trampoline::<4, 1>
      Src: /src/image/src/utils/mod.rs:58,1
    - Dst: trampoline::<1, 2>
      Src: /src/image/src/utils/mod.rs:59,1
    - Dst: trampoline::<2, 2>
      Src: /src/image/src/utils/mod.rs:60,1
    - Dst: trampoline::<3, 2>
      Src: /src/image/src/utils/mod.rs:61,1
    - Dst: trampoline::<4, 2>
      Src: /src/image/src/utils/mod.rs:62,1
    - Dst: trampoline::<3, 4>
      Src: /src/image/src/utils/mod.rs:63,1
    - Dst: trampoline::<4, 4>
      Src: /src/image/src/utils/mod.rs:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 3
    argNames:
    - out
    - color
    - planes
    argTypes:
    - '&mut [u8]'
    - crate::ColorType
    - '&[&[u8]]'
    constantsTouched: []
    func_position:
      end: 66
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 66
    functionName: interleave_planes
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 2
    functionsReached:
    - trampoline::<1, 2>
    - trampoline::<4, 2>
    - trampoline::<4, 1>
    - trampoline::<3, 2>
    - trampoline::<4, 4>
    - trampoline::<2, 2>
    - trampoline::<3, 4>
    - trampoline::<1, 1>
    - trampoline::<3, 1>
    - trampoline::<2, 1>
    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:73,1
    - Dst: Result::iter
      Src: /src/image/src/utils/mod.rs:73,1
    - Dst: copied
      Src: /src/image/src/utils/mod.rs:73,1
    - Dst: as_chunks_mut::<PLANES>
      Src: /src/image/src/utils/mod.rs:74,1
    - Dst: ImageResult::each_mut
      Src: /src/image/src/utils/mod.rs:75,1
    - Dst: map
      Src: /src/image/src/utils/mod.rs:75,1
    - Dst: unwrap_or
      Src: /src/image/src/utils/mod.rs:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 2
    argNames:
    - out
    - planes
    argTypes:
    - '&mut [[u8; N]]'
    - '[&[[u8; N]]; PLANES]'
    constantsTouched: []
    func_position:
      end: 82
      start: 69
    functionDepth: 7
    functionLinenumber: 69
    functionLinenumberEnd: 82
    functionName: interleave_planes_inner
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 0
    functionsReached:
    - ImageResult::each_mut
    - map
    - copied
    - Result::iter
    - as_chunks_mut::<PLANES>
    - 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: bytemuck::cast_slice
      Src: /src/image/src/utils/mod.rs:90,1
    - Dst: to_owned
      Src: /src/image/src/utils/mod.rs:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vec
    argTypes:
    - '&[T]'
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    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: 105
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 105
    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:109,1
    - Dst: io::Result::try_reserve_exact
      Src: /src/image/src/utils/mod.rs:110,1
    - Dst: Ok
      Src: /src/image/src/utils/mod.rs:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 112
    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:120,1
    - Dst: Self::unwrap
      Src: /src/image/src/utils/mod.rs:120,1
    - Dst: is_zero
      Src: /src/image/src/utils/mod.rs:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: is_integer
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 0
    functionsReached:
    - <T as num_traits::NumCast>::from
    - Self::unwrap
    - is_zero
    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:130,1
    - Dst: Err
      Src: /src/image/src/utils/mod.rs:131,1
    - Dst: std::io::Error::new
      Src: /src/image/src/utils/mod.rs:131,1
    - Dst: Result::seek
      Src: /src/image/src/utils/mod.rs:136,1
    - Dst: std::io::SeekFrom::Start
      Src: /src/image/src/utils/mod.rs:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - r
    - reader_offset
    - offset
    argTypes:
    - '&mut R'
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 137
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 137
    functionName: seek_start_with_offset
    functionSourceFile: /src/image/src/utils/mod.rs
    functionUses: 1
    functionsReached:
    - Err
    - std::io::Error::new
    - std::io::SeekFrom::Start
    - u64::checked_add
    - 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:147,1
    - Dst: check
      Src: /src/image/src/utils/mod.rs:156,1
    - Dst: check
      Src: /src/image/src/utils/mod.rs:163,1
    - Dst: check
      Src: /src/image/src/utils/mod.rs:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 142
    functionDepth: 11
    functionLinenumber: 142
    functionLinenumberEnd: 171
    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_png.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7
      start: 5
    functionDepth: 14
    functionLinenumber: 5
    functionLinenumberEnd: 7
    functionName: fuzz_target
    functionSourceFile: /src/image/fuzz/fuzzers/fuzzer_script_png.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: ImageResult::prepare_image
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:20,1
    - Dst: usize::try_from
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:21,1
    - Dst: total_bytes
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:21,1
    - Dst: ImageResult::set_limits
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:23,1
    - Dst: Limits::default
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:23,1
    - Dst: dimensions
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:24,1
    - Dst: ImageResult::read_image
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:26,1
    - Dst: '&RgbaImage::as_mut_slice'
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:26,1
    - Dst: Ok
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:27,1
    - Dst: Err
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:29,1
    - Dst: image::ImageError::Limits
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:29,1
    - Dst: image::error::LimitError::from_kind
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:30,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - read
    argTypes:
    - impl BufRead + Seek
    constantsTouched: []
    func_position:
      end: 35
      start: 18
    functionDepth: 12
    functionLinenumber: 18
    functionLinenumberEnd: 35
    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:
    - image::error::LimitError::from_kind
    - Err
    - ImageResult::read_image
    - OpenExrDecoder::with_alpha_preference
    - Ok
    - image::ImageError::Limits
    - Some
    - ImageResult::prepare_image
    - total_bytes
    - ImageResult::set_limits
    - dimensions
    - Limits::default
    - '&RgbaImage::as_mut_slice'
    - usize::try_from
    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:45,1
    - Dst: Self::write_image
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:45,1
    - Dst: ImageResult::as_slice
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - write
    argTypes:
    - impl Write + Seek
    - '&(u32, u32, Vec<u8>)'
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 51
    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:
    - ImageResult::as_slice
    - OpenExrEncoder::new
    - Self::write_image
    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:53,1
    - Dst: Cursor::new
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:53,1
    - Dst: Vec::with_capacity
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:56,1
    - Dst: '&[u8]::len'
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:56,1
    - Dst: write_rgba_image
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:57,1
    - Dst: Cursor::new
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:57,1
    - Dst: read_as_rgba_byte_image
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:59,1
    - Dst: Cursor::new
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:59,1
    - Dst: Ok
      Src: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs:66,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 59
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 67
      start: 15
    functionDepth: 13
    functionLinenumber: 15
    functionLinenumberEnd: 67
    functionName: roundtrip
    functionSourceFile: /src/image/fuzz/fuzzers/fuzzer_script_exr.rs
    functionUses: 0
    functionsReached:
    - read_as_rgba_byte_image
    - write_rgba_image
    - Ok
    - Vec::with_capacity
    - '&[u8]::len'
    - Cursor::new
    linkageType: ''
    returnType: ImageResult
    signature: 'fn roundtrip(bytes: &[u8]) -> ImageResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: image::codecs::tga::TgaDecoder::new
      Src: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs:11,1
    - Dst: std::io::Cursor::new
      Src: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs:11,1
    - Dst: ImageResult::prepare_image
      Src: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs:12,1
    - Dst: 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: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 18
      start: 9
    functionDepth: 4
    functionLinenumber: 9
    functionLinenumberEnd: 18
    functionName: decode
    functionSourceFile: /src/image/fuzz/fuzzers/fuzzer_script_tga.rs
    functionUses: 26
    functionsReached:
    - image::codecs::tga::TgaDecoder::new
    - std::io::Cursor::new
    - Ok
    - ImageResult::read_image
    - total_bytes
    - ImageResult::prepare_image
    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:
    - ImageResult::elapsed
    - 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: 7
    functionLinenumber: 20
    functionLinenumberEnd: 43
    functionName: h_concat
    functionSourceFile: /src/image/examples/concat/main.rs
    functionUses: 0
    functionsReached:
    - iter
    - ImageBuffer::copy_from
    - Option::width
    - map
    - ImageResult::sum
    - ImageResult::unwrap
    - ImageResult::max
    - width
    - height
    - unwrap_or
    - image::ImageBuffer::new
    linkageType: ''
    returnType: ImageBuffer
    signature: 'fn h_concat<I, P, S>(images: &[I]) -> ImageBuffer<P, Vec<S>>whereI:
      GenericImageView<Pixel = P>,P: Pixel<Subpixel = S>,S: Primitive,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bench_load
      Src: /src/image/benches/decode.rs:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 51
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 93
      start: 13
    functionDepth: 15
    functionLinenumber: 13
    functionLinenumberEnd: 93
    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:100,1
    - Dst: std::iter
      Src: /src/image/benches/decode.rs:101,1
    - Dst: chain
      Src: /src/image/benches/decode.rs:101,1
    - Dst: clone
      Src: /src/image/benches/decode.rs:104,1
    - Dst: chain
      Src: /src/image/benches/decode.rs:104,1
    - Dst: iter::once
      Src: /src/image/benches/decode.rs:104,1
    - Dst: collect
      Src: /src/image/benches/decode.rs:104,1
    - Dst: fs::read
      Src: /src/image/benches/decode.rs:105,1
    - Dst: std::io::Result::unwrap
      Src: /src/image/benches/decode.rs:105,1
    - Dst: std::io::Result::as_slice
      Src: /src/image/benches/decode.rs:106,1
    - Dst: bench_function
      Src: /src/image/benches/decode.rs:108,1
    - Dst: to_owned
      Src: /src/image/benches/decode.rs:108,1
    - Dst: std::iter
      Src: /src/image/benches/decode.rs:109,1
    - Dst: image::load_from_memory_with_format
      Src: /src/image/benches/decode.rs:110,1
    - Dst: std::hint::black_box
      Src: /src/image/benches/decode.rs:110,1
    - Dst: std::hint::black_box
      Src: /src/image/benches/decode.rs:110,1
    - Dst: std::hint::black_box
      Src: /src/image/benches/decode.rs:111,1
    - Dst: Result::unwrap
      Src: /src/image/benches/decode.rs:111,1
    - Dst: decode_animation
      Src: /src/image/benches/decode.rs:115,1
    - Dst: image::ImageResult::unwrap_or
      Src: /src/image/benches/decode.rs:115,1
    - Dst: bench_function
      Src: /src/image/benches/decode.rs:116,1
    - Dst: '&str::to_owned'
      Src: /src/image/benches/decode.rs:116,1
    - Dst: std::iter
      Src: /src/image/benches/decode.rs:117,1
    - Dst: decode_animation
      Src: /src/image/benches/decode.rs:118,1
    - Dst: std::hint::black_box
      Src: /src/image/benches/decode.rs:118,1
    - Dst: std::hint::black_box
      Src: /src/image/benches/decode.rs:118,1
    - Dst: std::hint::black_box
      Src: /src/image/benches/decode.rs:119,1
    - Dst: Result::unwrap
      Src: /src/image/benches/decode.rs:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 67
    argCount: 2
    argNames:
    - c
    - def
    argTypes:
    - '&mut Criterion'
    - '&BenchDef'
    constantsTouched: []
    func_position:
      end: 124
      start: 98
    functionDepth: 14
    functionLinenumber: 98
    functionLinenumberEnd: 124
    functionName: bench_load
    functionSourceFile: /src/image/benches/decode.rs
    functionUses: 1
    functionsReached:
    - chain
    - std::io::Result::as_slice
    - decode_animation
    - iter::once
    - io::Result::benchmark_group
    - bench_function
    - image::load_from_memory_with_format
    - fs::read
    - std::iter
    - std::hint::black_box
    - image::ImageResult::unwrap_or
    - '&str::to_owned'
    - std::io::Result::unwrap
    - to_owned
    - collect
    - Result::unwrap
    - clone
    linkageType: ''
    returnType: void
    signature: 'fn bench_load(c: &mut Criterion, def: &BenchDef)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::io::Cursor::new
      Src: /src/image/benches/decode.rs:127,1
    - Dst: ImageReader::from_decoder
      Src: /src/image/benches/decode.rs:130,1
    - Dst: Box::new
      Src: /src/image/benches/decode.rs:130,1
    - Dst: image::codecs::gif::GifDecoder::new
      Src: /src/image/benches/decode.rs:130,1
    - Dst: Self::into_frames
      Src: /src/image/benches/decode.rs:130,1
    - Dst: ImageReader::from_decoder
      Src: /src/image/benches/decode.rs:134,1
    - Dst: Box::new
      Src: /src/image/benches/decode.rs:134,1
    - Dst: image::codecs::webp::WebPDecoder::new
      Src: /src/image/benches/decode.rs:134,1
    - Dst: Self::into_frames
      Src: /src/image/benches/decode.rs:134,1
    - Dst: Ok
      Src: /src/image/benches/decode.rs:137,1
    - Dst: Ok
      Src: /src/image/benches/decode.rs:139,1
    - Dst: ImageResult::count
      Src: /src/image/benches/decode.rs:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - buf
    - format
    argTypes:
    - '&[u8]'
    - ImageFormat
    constantsTouched: []
    func_position:
      end: 140
      start: 126
    functionDepth: 11
    functionLinenumber: 126
    functionLinenumberEnd: 140
    functionName: decode_animation
    functionSourceFile: /src/image/benches/decode.rs
    functionUses: 1
    functionsReached:
    - Ok
    - std::io::Cursor::new
    - ImageReader::from_decoder
    - Box::new
    - Self::into_frames
    - image::codecs::gif::GifDecoder::new
    - image::codecs::webp::WebPDecoder::new
    - ImageResult::count
    linkageType: ''
    returnType: image::ImageResult
    signature: 'fn decode_animation(buf: &[u8], format: ImageFormat) -> image::ImageResult<usize>'
  - 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: DynamicImage::from
      Src: /src/image/benches/imageops.rs:16,1
    - Dst: ImageBuffer::clone
      Src: /src/image/benches/imageops.rs:16,1
    - Dst: Self::to_luma8
      Src: /src/image/benches/imageops.rs:17,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:19,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:20,1
    - Dst: imageops::filter3x3
      Src: /src/image/benches/imageops.rs:20,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:23,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:24,1
    - Dst: imageops::brighten
      Src: /src/image/benches/imageops.rs:24,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:27,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:28,1
    - Dst: imageops::contrast
      Src: /src/image/benches/imageops.rs:28,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:31,1
    - Dst: ImageBuffer::convert
      Src: /src/image/benches/imageops.rs:32,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:33,1
    - Dst: T::clone
      Src: /src/image/benches/imageops.rs:34,1
    - Dst: imageops::dither
      Src: /src/image/benches/imageops.rs:35,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_horizontal
      Src: /src/image/benches/imageops.rs:40,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:42,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:43,1
    - Dst: imageops::flip_vertical
      Src: /src/image/benches/imageops.rs:43,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
      Src: /src/image/benches/imageops.rs:47,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:49,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:50,1
    - Dst: imageops::grayscale_alpha
      Src: /src/image/benches/imageops.rs:50,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:53,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:54,1
    - Dst: imageops::huerotate
      Src: /src/image/benches/imageops.rs:54,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:57,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:58,1
    - Dst: ImageBuffer::clone
      Src: /src/image/benches/imageops.rs:59,1
    - Dst: imageops::invert
      Src: /src/image/benches/imageops.rs:60,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::rotate90
      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::rotate180
      Src: /src/image/benches/imageops.rs:68,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:70,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:71,1
    - Dst: imageops::rotate270
      Src: /src/image/benches/imageops.rs:71,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:74,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:75,1
    - Dst: imageops::unsharpen
      Src: /src/image/benches/imageops.rs:75,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:78,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:79,1
    - Dst: Self::crop
      Src: /src/image/benches/imageops.rs:80,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:89,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:91,1
    - Dst: GrayImage::expand_palette
      Src: /src/image/benches/imageops.rs:91,1
    - Dst: std::hint::black_box
      Src: /src/image/benches/imageops.rs:91,1
    - Dst: std::hint::black_box
      Src: /src/image/benches/imageops.rs:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 195
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 93
      start: 10
    functionDepth: 14
    functionLinenumber: 10
    functionLinenumberEnd: 93
    functionName: bench_imageops
    functionSourceFile: /src/image/benches/imageops.rs
    functionUses: 0
    functionsReached:
    - ImageBuffer::from_fn
    - imageops::rotate90
    - imageops::rotate180
    - Self::to_luma8
    - imageops::invert
    - iter
    - imageops::dither
    - imageops::rotate270
    - imageops::flip_horizontal
    - imageops::grayscale_alpha
    - T::clone
    - imageops::filter3x3
    - imageops::huerotate
    - DynamicImage::from
    - imageops::grayscale
    - io::Result::bench_function
    - ImageBuffer::convert
    - imageops::unsharpen
    - imageops::brighten
    - image::Rgb
    - ImageBuffer::clone
    - std::hint::black_box
    - Self::crop
    - imageops::contrast
    - GrayImage::expand_palette
    - imageops::flip_vertical
    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:96,1
    - Dst: image::Rgb
      Src: /src/image/benches/imageops.rs:98,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:110,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:111,1
    - Dst: imageops::resize
      Src: /src/image/benches/imageops.rs:111,1
    - Dst: io::Result::benchmark_group
      Src: /src/image/benches/imageops.rs:116,1
    - Dst: warm_up_time
      Src: /src/image/benches/imageops.rs:117,1
    - Dst: Duration::from_secs
      Src: /src/image/benches/imageops.rs:117,1
    - Dst: sample_size
      Src: /src/image/benches/imageops.rs:117,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/imageops.rs:120,1
    - Dst: iter
      Src: /src/image/benches/imageops.rs:121,1
    - Dst: imageops::resize
      Src: /src/image/benches/imageops.rs:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 47
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 124
      start: 95
    functionDepth: 14
    functionLinenumber: 95
    functionLinenumberEnd: 124
    functionName: bench_resize
    functionSourceFile: /src/image/benches/imageops.rs
    functionUses: 0
    functionsReached:
    - iter
    - io::Result::benchmark_group
    - image::Rgb
    - Duration::from_secs
    - sample_size
    - ImageBuffer::from_fn
    - warm_up_time
    - io::Result::bench_function
    - imageops::resize
    linkageType: ''
    returnType: void
    signature: 'pub fn bench_resize(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::from_raw
      Src: /src/image/benches/bgra_to_rgba.rs:8,1
    - Dst: Option::pixels_mut
      Src: /src/image/benches/bgra_to_rgba.rs:9,1
    - Dst: reverse
      Src: /src/image/benches/bgra_to_rgba.rs:10,1
    - Dst: Some
      Src: /src/image/benches/bgra_to_rgba.rs:12,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - width
    - height
    - container
    argTypes:
    - u32
    - u32
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 13
      start: 7
    functionDepth: 4
    functionLinenumber: 7
    functionLinenumberEnd: 13
    functionName: from_raw_bgra_old
    functionSourceFile: /src/image/benches/bgra_to_rgba.rs
    functionUses: 1
    functionsReached:
    - reverse
    - Some
    - RgbaImage::from_raw
    - Option::pixels_mut
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_raw_bgra_old(width: u32, height: u32, container: Vec<u8>)
      -> Option<RgbaImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RgbaImage::from_raw
      Src: /src/image/benches/bgra_to_rgba.rs:16,1
    - Dst: as_chunks_mut::<4>
      Src: /src/image/benches/bgra_to_rgba.rs:17,1
    - Dst: swap
      Src: /src/image/benches/bgra_to_rgba.rs:18,1
    - Dst: Some
      Src: /src/image/benches/bgra_to_rgba.rs:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - width
    - height
    - container
    argTypes:
    - u32
    - u32
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 4
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: from_raw_bgra_newdefault
    functionSourceFile: /src/image/benches/bgra_to_rgba.rs
    functionUses: 1
    functionsReached:
    - as_chunks_mut::<4>
    - swap
    - Some
    - RgbaImage::from_raw
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_raw_bgra_newdefault(width: u32, height: u32, container:
      Vec<u8>) -> Option<RgbaImage>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/bgra_to_rgba.rs:27,1
    - Dst: image::Rgba
      Src: /src/image/benches/bgra_to_rgba.rs:27,1
    - Dst: ImageBuffer::to_vec
      Src: /src/image/benches/bgra_to_rgba.rs:27,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/bgra_to_rgba.rs:28,1
    - Dst: image::Rgb
      Src: /src/image/benches/bgra_to_rgba.rs:28,1
    - Dst: ImageBuffer::to_vec
      Src: /src/image/benches/bgra_to_rgba.rs:28,1
    - Dst: io::Result::benchmark_group
      Src: /src/image/benches/bgra_to_rgba.rs:29,1
    - Dst: measurement_time
      Src: /src/image/benches/bgra_to_rgba.rs:30,1
    - Dst: Duration::from_secs
      Src: /src/image/benches/bgra_to_rgba.rs:30,1
    - Dst: bench_function
      Src: /src/image/benches/bgra_to_rgba.rs:31,1
    - Dst: iter_batched
      Src: /src/image/benches/bgra_to_rgba.rs:32,1
    - Dst: ImageResult::clone
      Src: /src/image/benches/bgra_to_rgba.rs:33,1
    - Dst: RgbaImage::from_raw_bgra
      Src: /src/image/benches/bgra_to_rgba.rs:34,1
    - Dst: bench_function
      Src: /src/image/benches/bgra_to_rgba.rs:38,1
    - Dst: iter_batched
      Src: /src/image/benches/bgra_to_rgba.rs:39,1
    - Dst: ImageResult::clone
      Src: /src/image/benches/bgra_to_rgba.rs:40,1
    - Dst: from_raw_bgra_old
      Src: /src/image/benches/bgra_to_rgba.rs:41,1
    - Dst: bench_function
      Src: /src/image/benches/bgra_to_rgba.rs:45,1
    - Dst: iter_batched
      Src: /src/image/benches/bgra_to_rgba.rs:46,1
    - Dst: ImageResult::clone
      Src: /src/image/benches/bgra_to_rgba.rs:47,1
    - Dst: from_raw_bgra_newdefault
      Src: /src/image/benches/bgra_to_rgba.rs:48,1
    - Dst: bench_function
      Src: /src/image/benches/bgra_to_rgba.rs:52,1
    - Dst: iter_batched
      Src: /src/image/benches/bgra_to_rgba.rs:53,1
    - Dst: ImageResult::clone
      Src: /src/image/benches/bgra_to_rgba.rs:54,1
    - Dst: RgbImage::from_raw_bgr
      Src: /src/image/benches/bgra_to_rgba.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 64
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 59
      start: 23
    functionDepth: 7
    functionLinenumber: 23
    functionLinenumberEnd: 59
    functionName: bench_bgra_to_rgba
    functionSourceFile: /src/image/benches/bgra_to_rgba.rs
    functionUses: 0
    functionsReached:
    - from_raw_bgra_newdefault
    - RgbImage::from_raw_bgr
    - bench_function
    - io::Result::benchmark_group
    - image::Rgb
    - Duration::from_secs
    - iter_batched
    - measurement_time
    - ImageResult::clone
    - ImageBuffer::to_vec
    - image::Rgba
    - ImageBuffer::from_pixel
    - from_raw_bgra_old
    - RgbaImage::from_raw_bgra
    linkageType: ''
    returnType: void
    signature: 'pub fn bench_bgra_to_rgba(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: 7
    functionLinenumber: 4
    functionLinenumberEnd: 103
    functionName: bench_cast_intra_colorspace
    functionSourceFile: /src/image/benches/convert.rs
    functionUses: 0
    functionsReached:
    - image::LumaA
    - to_rgb8
    - to_rgba16
    - image::Rgba
    - to_luma16
    - ImageBuffer::from_pixel
    - iter
    - DynamicImage::ImageLumaA8
    - to_rgb16
    - DynamicImage::ImageLuma8
    - Default::default
    - to_rgb32f
    - to_luma8
    - io::Result::bench_function
    - criterion::black_box
    - image::Luma
    - to_luma_alpha8
    - to_rgba32f
    - DynamicImage::ImageRgba8
    - DynamicImage::ImageLumaA16
    - to_rgba8
    - to_luma_alpha16
    - DynamicImage::ImageRgba32F
    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: 7
    functionLinenumber: 105
    functionLinenumberEnd: 120
    functionName: bench_cast_with_coefficient
    functionSourceFile: /src/image/benches/convert.rs
    functionUses: 0
    functionsReached:
    - iter
    - DynamicImage::ImageRgba8
    - to_luma8
    - io::Result::bench_function
    - criterion::black_box
    - image::Rgba
    - to_luma16
    - to_luma_alpha16
    - ImageBuffer::from_pixel
    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: io::Result::benchmark_group
      Src: /src/image/benches/copy_from.rs:6,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: ImageBuffer::from_pixel
      Src: /src/image/benches/copy_from.rs:10,1
    - Dst: image::Rgba
      Src: /src/image/benches/copy_from.rs:10,1
    - Dst: image::GenericImageView::view
      Src: /src/image/benches/copy_from.rs:12,1
    - Dst: image::flat::FlatSamples::with_monocolor
      Src: /src/image/benches/copy_from.rs:15,1
    - Dst: ImageResult::as_view
      Src: /src/image/benches/copy_from.rs:16,1
    - Dst: Result::unwrap
      Src: /src/image/benches/copy_from.rs:16,1
    - Dst: ImageBuffer::as_flat_samples
      Src: /src/image/benches/copy_from.rs:18,1
    - Dst: ImageResult::as_view
      Src: /src/image/benches/copy_from.rs:23,1
    - Dst: Result::unwrap
      Src: /src/image/benches/copy_from.rs:23,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:25,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:26,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:26,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:26,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:29,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:30,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:30,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:30,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:33,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:34,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:34,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:34,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:37,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:38,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:38,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:38,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:41,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:42,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:42,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 117
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 44
      start: 4
    functionDepth: 13
    functionLinenumber: 4
    functionLinenumberEnd: 44
    functionName: bench_copy_from
    functionSourceFile: /src/image/benches/copy_from.rs
    functionUses: 0
    functionsReached:
    - iter
    - ImageResult::as_view
    - io::Result::benchmark_group
    - image::GenericImageView::view
    - io::Result::bench_function
    - criterion::black_box
    - ImageBuffer::as_flat_samples
    - image::Rgba
    - image::math::Rect::from_xy_ranges
    - ImageBuffer::from_pixel
    - image::flat::FlatSamples::with_monocolor
    - copy_from
    - Result::unwrap
    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:47,1
    - Dst: image::math::Rect::from_xy_ranges
      Src: /src/image/benches/copy_from.rs:48,1
    - Dst: io::Result::benchmark_group
      Src: /src/image/benches/copy_from.rs:49,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/copy_from.rs:51,1
    - Dst: image::Rgba
      Src: /src/image/benches/copy_from.rs:51,1
    - Dst: sub_image
      Src: /src/image/benches/copy_from.rs:52,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/copy_from.rs:54,1
    - Dst: image::Rgba
      Src: /src/image/benches/copy_from.rs:54,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/copy_from.rs:55,1
    - Dst: image::Rgba
      Src: /src/image/benches/copy_from.rs:55,1
    - Dst: image::GenericImageView::view
      Src: /src/image/benches/copy_from.rs:56,1
    - Dst: image::flat::FlatSamples::with_monocolor
      Src: /src/image/benches/copy_from.rs:59,1
    - Dst: ImageResult::as_view
      Src: /src/image/benches/copy_from.rs:60,1
    - Dst: Result::unwrap
      Src: /src/image/benches/copy_from.rs:60,1
    - Dst: ImageBuffer::as_flat_samples
      Src: /src/image/benches/copy_from.rs:62,1
    - Dst: ImageResult::as_view
      Src: /src/image/benches/copy_from.rs:67,1
    - Dst: Result::unwrap
      Src: /src/image/benches/copy_from.rs:67,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:69,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:70,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:70,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:70,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:73,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:74,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:74,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:74,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:77,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:78,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:78,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:78,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:81,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:82,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:82,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:82,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:85,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:86,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:86,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 128
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 88
      start: 46
    functionDepth: 13
    functionLinenumber: 46
    functionLinenumberEnd: 88
    functionName: bench_copy_subimage_from
    functionSourceFile: /src/image/benches/copy_from.rs
    functionUses: 0
    functionsReached:
    - iter
    - sub_image
    - ImageResult::as_view
    - io::Result::benchmark_group
    - image::GenericImageView::view
    - io::Result::bench_function
    - criterion::black_box
    - ImageBuffer::as_flat_samples
    - image::Rgba
    - image::math::Rect::from_xy_ranges
    - ImageBuffer::from_pixel
    - image::flat::FlatSamples::with_monocolor
    - copy_from
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'pub fn bench_copy_subimage_from(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: image::math::Rect::from_xy_ranges
      Src: /src/image/benches/copy_from.rs:91,1
    - Dst: io::Result::benchmark_group
      Src: /src/image/benches/copy_from.rs:92,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/copy_from.rs:94,1
    - Dst: image::Rgba
      Src: /src/image/benches/copy_from.rs:94,1
    - Dst: as_pixel_view_mut
      Src: /src/image/benches/copy_from.rs:96,1
    - Dst: shrink_to
      Src: /src/image/benches/copy_from.rs:97,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/copy_from.rs:99,1
    - Dst: image::Rgba
      Src: /src/image/benches/copy_from.rs:99,1
    - Dst: ImageBuffer::from_pixel
      Src: /src/image/benches/copy_from.rs:100,1
    - Dst: image::Rgba
      Src: /src/image/benches/copy_from.rs:100,1
    - Dst: image::GenericImageView::view
      Src: /src/image/benches/copy_from.rs:102,1
    - Dst: image::flat::FlatSamples::with_monocolor
      Src: /src/image/benches/copy_from.rs:105,1
    - Dst: ImageResult::as_view
      Src: /src/image/benches/copy_from.rs:106,1
    - Dst: Result::unwrap
      Src: /src/image/benches/copy_from.rs:106,1
    - Dst: ImageBuffer::as_flat_samples
      Src: /src/image/benches/copy_from.rs:108,1
    - Dst: ImageResult::as_view
      Src: /src/image/benches/copy_from.rs:113,1
    - Dst: Result::unwrap
      Src: /src/image/benches/copy_from.rs:113,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:115,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:116,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:116,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:116,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:119,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:120,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:120,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:120,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:123,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:124,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:124,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:124,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:127,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:128,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:128,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:128,1
    - Dst: io::Result::bench_function
      Src: /src/image/benches/copy_from.rs:131,1
    - Dst: iter
      Src: /src/image/benches/copy_from.rs:132,1
    - Dst: copy_from
      Src: /src/image/benches/copy_from.rs:132,1
    - Dst: criterion::black_box
      Src: /src/image/benches/copy_from.rs:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 122
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 134
      start: 90
    functionDepth: 14
    functionLinenumber: 90
    functionLinenumberEnd: 134
    functionName: bench_view_copy_from
    functionSourceFile: /src/image/benches/copy_from.rs
    functionUses: 0
    functionsReached:
    - iter
    - ImageResult::as_view
    - io::Result::benchmark_group
    - image::GenericImageView::view
    - io::Result::bench_function
    - as_pixel_view_mut
    - criterion::black_box
    - ImageBuffer::as_flat_samples
    - image::Rgba
    - image::math::Rect::from_xy_ranges
    - ImageBuffer::from_pixel
    - image::flat::FlatSamples::with_monocolor
    - copy_from
    - Result::unwrap
    - shrink_to
    linkageType: ''
    returnType: void
    signature: 'pub fn bench_view_copy_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: 16
    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: ImageResult::encode_raw
      Src: /src/image/benches/encode.rs:63,1
    - Dst: iter
      Src: /src/image/benches/encode.rs:64,1
    - Dst: ImageResult::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: ImageResult::encode_raw
      Src: /src/image/benches/encode.rs:72,1
    - Dst: iter
      Src: /src/image/benches/encode.rs:73,1
    - Dst: ImageResult::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: ImageResult::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: 14
    functionLinenumber: 55
    functionLinenumberEnd: 86
    functionName: encode_zeroed
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 1
    functionsReached:
    - iter
    - ImageResult::encode_raw
    - File::create
    - ImageResult::encode_file
    - '&mut BenchGroup::bench_with_input'
    - BenchmarkId::new
    - PathBuf::from
    - Self::join
    - unwrap
    - ImageResult::encode_bufvec
    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: 15
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: encode_definition
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 1
    functionsReached:
    - encode_zeroed
    - '&mut Criterion::benchmark_group'
    - bool::into
    linkageType: ''
    returnType: void
    signature: 'fn encode_definition(criterion: &mut Criterion, def: &BenchDef)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::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: 13
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: T::encode_raw
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 0
    functionsReached:
    - T::encode
    - ImageResult::clear
    linkageType: ''
    returnType: void
    signature: 'fn encode_raw(&self, into: &mut Vec<u8>, im: &[u8], dims: u32, color:
      ExtendedColorType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ImageResult::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: 13
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: T::encode_bufvec
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 0
    functionsReached:
    - T::encode
    - BufWriter::new
    - ImageResult::clear
    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: 13
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: T::encode_file
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 0
    functionsReached:
    - SeekFrom::Start
    - T::encode
    - seek
    - BufWriter::new
    - std::io::Result::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn encode_file(&self, mut file: &File, im: &[u8], dims: u32, color:
      ExtendedColorType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BmpEncoder::new
      Src: /src/image/benches/encode.rs: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: 13
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: Bmp::encode
    functionSourceFile: /src/image/benches/encode.rs
    functionUses: 0
    functionsReached:
    - encode
    - BmpEncoder::new
    - ImageResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn encode(&self, mut into: impl Write, im: &[u8], size: u32, color:
      ExtendedColorType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JpegEncoder::new
      Src: /src/image/benches/encode.rs: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:
    - JpegEncoder::new
    - ImageResult::unwrap
    - write_image
    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: 7
    functionLinenumber: 5
    functionLinenumberEnd: 44
    functionName: bench_fast_blur
    functionSourceFile: /src/image/benches/blur.rs
    functionUses: 0
    functionsReached:
    - iter
    - image::imageops::fast_blur
    - GaussianBlurParameters::new_from_sigma
    - image::imageops::blur_advanced
    - image::Rgb
    - RgbImage::from_pixel
    - io::Result::bench_function
    - ImageBuffer::from_pixel
    - DynamicImage::ImageRgb8
    linkageType: ''
    returnType: void
    signature: 'pub fn bench_fast_blur(c: &mut Criterion)'
Fuzzer filename: /src/image/fuzz/fuzzers/fuzzer_script_png.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
  - test_decode_8bit_cmyk
  - test_decode_8bit_cmyk_truncation
  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:
  - cms_provider
  - 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
  - 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
  - ImageLayout::new
  - ImageLayout::empty
  - ImageLayout::dimensions
  - ImageLayout::total_bytes
  - ImageLayout::total_bytes_overflows_u64
  - DecoderPreparedImage::from
  - DecoderPreparedImage::new
  - DecoderPreparedImage::total_bytes
  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:
  - BgraSwizzle::swizzle_rgb_bgr
  - BgraSwizzle::swizzle_rgba_bgra
  - u8::swizzle_rgba_bgra
  - u8::nearest_from
  - u8::clamp_nearest_from
  - u16::nearest_from
  - u16::clamp_nearest_from
  - f32::nearest_from
  - f32::clamp_nearest_from
  - f64::nearest_from
  - f64::clamp_nearest_from
  - impl_nearest_from_f32_for_ints
  - impl_with_blur_acc_f32
  source_file: /src/image/src/primitive_sealed.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:
  - ImageReaderOptions::new
  - ImageReaderOptions::with_format
  - ImageReaderOptions::format
  - ImageReaderOptions::set_format
  - ImageReaderOptions::clear_format
  - ImageReaderOptions::no_limits
  - ImageReaderOptions::limits
  - ImageReaderOptions::set_spec_compliance
  - ImageReaderOptions::into_inner
  - ImageReaderOptions::make_decoder
  - ImageReaderOptions::into_decoder
  - ImageReaderOptions::into_reader
  - ImageReaderOptions::with_guessed_format
  - ImageReaderOptions::guess_format
  - ImageReaderOptions::into_dimensions
  - ImageReaderOptions::decode
  - ImageReaderOptions::require_format
  - MetadataBlock::is_not_none
  - MetadataBlock::get
  - ImageReaderSettings::default
  - ImageReaderOptions::open
  - ImageReaderOptions::open_impl
  - ImageReader::peek_layout
  - ImageReader::decode
  - ImageReader::decode_to_dynimage
  - ImageReader::decode_into
  - ImageReader::skip_image
  - ImageReader::animation_attributes
  - ImageReader::fill_header_metadata_if_any
  - ImageReader::new
  - ImageReader::open
  - ImageReader::from_decoder
  - ImageReader::set_limits
  - I::m::a::g::e::R::e::a::d::e::r::::::::i::n::t::o::_::f::r::a::m::e::s::is_end_reached
  - ImageReader::into_frames
  - DecodedImageMetadata::exif_metadata
  - DecodedImageMetadata::icc_profile
  - DecodedImageMetadata::xmp_metadata
  - DecodedImageMetadata::iptc_metadata
  - DecodedImageMetadata::apply_metdata
  - DecodedImageMetadata::access_block_with
  - DecodedImageMetadata::attributes
  - tests::in_header_data_applies
  - tests::error_stays_error
  - tests::unsupported_error_repeats
  source_file: /src/image/src/io/image_reader_type.rs
- function_names:
  - ImageEncoder::set_icc_profile
  - ImageEncoder::set_exif_metadata
  - ImageEncoder::set_xmp_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_layout_dimensions
  - 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::set_limits
  - ImageDecoder::format_attributes
  - ImageDecoder::animation_attributes
  - ImageDecoder::icc_profile
  - ImageDecoder::exif_metadata
  - ImageDecoder::xmp_metadata
  - ImageDecoder::iptc_metadata
  - ImageDecoder::more_images
  - ImageDecoder::finish
  - DecodedAnimationAttributes::default
  - Box::format_attributes
  - Box::prepare_image
  - Box::animation_attributes
  - Box::icc_profile
  - Box::exif_metadata
  - Box::xmp_metadata
  - Box::iptc_metadata
  - Box::read_image
  - Box::set_limits
  - Box::more_images
  - Box::finish
  - 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_swap_be_ne
  - FarbfeldDecoder::new
  - FarbfeldDecoder::prepare_image
  - FarbfeldDecoder::read_image
  - 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::ensure_decoder
  - GifDecoder::layout_from_decoder
  - GifDecoder::format_attributes
  - GifDecoder::animation_attributes
  - GifDecoder::prepare_image
  - GifDecoder::set_limits
  - GifDecoder::read_image
  - GifDecoder::icc_profile
  - GifDecoder::xmp_metadata
  - blend_and_dispose_region
  - blend_and_dispose_pixel
  - 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::peek_info
  - TiffDecoder::reset_info_from_current_image
  - TiffDecoder::redistribute_limits
  - TiffDecoder::interleave_planes
  - ImageInfo::total_bytes_buffer
  - check_ycbcr_subsampling
  - read_ycbcr_coefficients
  - check_sample_format
  - err_unknown_color_type
  - ImageError::from_tiff_decode
  - ImageError::from_tiff_encode
  - TiffDecoder::format_attributes
  - TiffDecoder::prepare_image
  - TiffDecoder::icc_profile
  - TiffDecoder::xmp_metadata
  - TiffDecoder::set_limits
  - TiffDecoder::read_image
  - TiffDecoder::exif_metadata
  - TiffDecoder::iptc_metadata
  - TiffDecoder::more_images
  - 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
  - TiffEncoder::set_xmp_metadata
  - tests::roundtrip_xmp
  source_file: /src/image/src/codecs/tiff.rs
- function_names:
  - PngDecoder::new
  - PngDecoder::with_limits
  - PngDecoder::ensure_reader_and_header
  - PngDecoder::gamma_value
  - PngDecoder::apng
  - PngDecoder::is_apng
  - PngDecoder::color_type_info
  - attributes_from_info
  - unsupported_color
  - decoding_not_yet_started
  - decoding_started_already
  - reader_finished_already
  - PngDecoder::prepare_image
  - PngDecoder::format_attributes
  - PngDecoder::animation_attributes
  - PngDecoder::icc_profile
  - PngDecoder::exif_metadata
  - PngDecoder::xmp_metadata
  - PngDecoder::iptc_metadata
  - PngDecoder::read_image
  - PngDecoder::set_limits
  - ApngDecoder::read_sequence_data
  - ApngDecoder::mix_next_frame
  - ApngDecoder::animatable_color_type
  - ApngDecoder::format_attributes
  - ApngDecoder::animation_attributes
  - ApngDecoder::prepare_image
  - ApngDecoder::read_image
  - ApngDecoder::more_images
  - PngEncoder::new
  - PngEncoder::new_with_quality
  - PngEncoder::encode_inner
  - PngEncoder::write_image
  - PngEncoder::set_icc_profile
  - PngEncoder::set_exif_metadata
  - PngEncoder::set_xmp_metadata
  - PngEncoder::make_compatible_img
  - ImageError::from_png
  - copy_pixel_bytes
  - b::l::e::n::d::_::p::i::x::e::l::_::b::y::t::e::s::inner
  - blend_pixel_bytes
  - tests::ensure_no_decoder_off_by_one
  - tests::underlying_error
  - tests::encode_bad_color_type
  - tests::roundtrip_xmp
  source_file: /src/image/src/codecs/png.rs
- function_names:
  - OpenExrDecoder::new
  - OpenExrDecoder::with_alpha_preference
  - OpenExrDecoder::prepare_image
  - OpenExrDecoder::read_image
  - 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::prepare_image
  - QoiDecoder::read_image
  - decoding_error
  - encoding_error
  - QoiEncoder::new
  - QoiEncoder::write_image
  - tests::decode_test_image
  source_file: /src/image/src/codecs/qoi.rs
- function_names:
  - HdrEncoder::write_image
  - HdrEncoder::new
  - HdrEncoder::encode
  - HdrEncoder::encode_pixels
  - RunIterator::new
  - RunIterator::next
  - NorunCombineIterator::new
  - NorunCombineIterator::next
  - rle_compress
  - write_rgbe8
  - to_rgbe8
  - t::o::_::r::g::b::e::8::_::t::e::s::t::relative_dist
  - to_rgbe8_test
  - runiterator_test
  - n::o::r::u::n::c::o::m::b::i::n::e::_::t::e::s::t::a
  - noruncombine_test
  source_file: /src/image/src/codecs/hdr/encoder.rs
- function_names:
  - DecoderError::fmt
  - ImageError::from
  - DecoderError::source
  - LineType::fmt
  - rgbe8
  - Rgbe8Pixel::to_hdr
  - HdrDecoder::new
  - HdrDecoder::new_nonstrict
  - HdrDecoder::with_spec_compliance
  - HdrDecoder::with_strictness
  - HdrDecoder::metadata
  - HdrDecoder::prepare_image
  - HdrDecoder::set_limits
  - HdrDecoder::read_image
  - 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::encode_1bit_palette
  - 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
  - tests::round_trip_1bit
  - tests::round_trip_1bit_non_multiple_of_8
  - tests::round_trip_1bit_single_pixel
  - tests::round_trip_1bit_9px
  - tests::round_trip_1bit_with_custom_palette
  - tests::round_trip_1bit_various_widths
  - tests::encode_1bit_invalid_palette_type
  - tests::round_trip_1bit_checkerboard
  - tests::round_trip_1bit_13x3
  - tests::dimensions_i32
  source_file: /src/image/src/codecs/bmp/encoder.rs
- function_names:
  - RowsDecoded::rows
  - ParsedCoreHeader::parse
  - ParsedInfoHeader::parse
  - ParsedBitfields::parse
  - ParsedIccProfile::parse
  - ColorSpaceInfo::parse
  - CalibratedRgb::to_color_profile
  - DecoderState::default
  - RowIterator::next
  - DecoderError::fmt
  - ImageError::from
  - ChannelWidthError::fmt
  - calculate_row_padding
  - allocate_row_buffer
  - read_scanline
  - 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_len_shift
  - 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::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::prepare_image
  - BmpDecoder::icc_profile
  - BmpDecoder::read_image
  - test::test_bitfield_len
  - test::read_rle_too_short
  - test::test_no_header
  - test::validate_icc_profile
  - test::test_icc_profile
  - test::test_calibrated_rgb_icc_profile
  - test::is_unexpected_eof
  - test::test_resumable_decoding
  - test::test_strict_vs_lenient_spec_validation
  - test::test_invalid_data_offset_into_dib_header
  - test::test_strict_mode_fails_on_rle_errors
  - test::test_decode_bmp_rle_overflow
  - test::test_decode_bmp_badrle
  - test::test_decode_truncated_bmp
  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
  - T::g::a::D::e::c::o::d::e::r::::::::p::r::e::p::a::r::e::_::i::m::a::g::e::try_dimensions
  - TgaDecoder::prepare_image
  - TgaDecoder::read_image
  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
  - TupleType::expanded_color
  - TupleType::original_color
  - 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::prepare_image
  - PnmDecoder::read_image
  - 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::set_xmp_metadata
  - JpegEncoder::make_compatible_img
  - tests::decode
  - tests::roundtrip_sanity_check
  - tests::grayscale_roundtrip_sanity_check
  - tests::roundtrip_exif_icc
  - tests::roundtrip_xmp
  - 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::with_spec_compliance
  - JpegDecoder::ensure_headers
  - JpegDecoder::format_attributes
  - JpegDecoder::prepare_image
  - JpegDecoder::icc_profile
  - JpegDecoder::exif_metadata
  - JpegDecoder::xmp_metadata
  - JpegDecoder::iptc_metadata
  - JpegDecoder::read_image
  - JpegDecoder::set_limits
  - ColorType::from_jpeg
  - to_supported_color_space
  - 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::set_xmp_metadata
  - WebPEncoder::make_compatible_img
  - ImageError::from_webp_encode
  - tests::write_webp
  - tests::roundtrip_xmp
  source_file: /src/image/src/codecs/webp/encoder.rs
- function_names:
  - WebPDecoder::new
  - WebPDecoder::has_animation
  - WebPDecoder::set_background_color
  - WebPDecoder::format_attributes
  - WebPDecoder::animation_attributes
  - WebPDecoder::prepare_image
  - WebPDecoder::read_image
  - WebPDecoder::icc_profile
  - WebPDecoder::exif_metadata
  - WebPDecoder::xmp_metadata
  - WebPDecoder::more_images
  - 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::set_limits
  - AvifDecoder::prepare_image
  - AvifDecoder::icc_profile
  - AvifDecoder::read_image
  - 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::format_attributes
  - IcoDecoder::prepare_image
  - IcoDecoder::animation_attributes
  - IcoDecoder::read_image
  - IcoDecoder::icc_profile
  - IcoDecoder::exif_metadata
  - IcoDecoder::xmp_metadata
  - IcoDecoder::iptc_metadata
  - IcoDecoder::set_limits
  - IcoDecoder::more_images
  - IcoDecoder::finish
  - 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:
  - 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
  - tests::thumbnail_huge_block
  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_dither_1x1
  - test::test_dither_1xn
  - test::test_dither_nx1
  - test::test_dither_empty
  - test::test_dither_empty_oversized
  - 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:
  - u32::from_primitive
  - u32::scale
  - u32::create_weight
  - u32::to_store
  - f32::from_primitive
  - f32::scale
  - f32::create_weight
  - f32::to_store
  - fast_blur
  - test_radius_size
  - boxes_for_gauss
  - ceil_to_odd
  - box_blur_horizontal_pass_strategy
  - box_blur_horizontal_pass_dispatch_cn
  - box_blur_vertical_pass_strategy
  - box_blur_horizontal_pass
  - box_blur_vertical_pass
  - tests::u8_weight_exhaustive_small
  - tests::u8_weight_sampled_large
  - 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:
  - 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_enumerate_pixels
  - 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
  - GenericImage::to_pixel_view_mut
  - 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::decode_raw
  - 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::as_mut_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::into_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
  - View::iter_rows
  - View::with_monocolor
  - 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
  - ViewMut::inner_copy_from
  - ViewMut::inner_copy_from_samples
  - 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
  - ViewMut::copy_from
  - ImageError::from
  - Error::fmt
  - NormalForm::partial_cmp
  - tests::aliasing_view
  - tests::mutable_view
  - tests::normal_forms
  - tests::image_buffer_conversion
  - tests::copy_buffer_like_view
  - tests::copy_heightstride_view
  - tests::copy_widthstride_view
  - tests::copy_column_major_view
  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
  - SubImageInner::to_pixel_view_mut
  - tests::preserves_color_space
  - tests::deep_preserves_color_space
  source_file: /src/image/src/images/sub_image.rs
- function_names:
  - 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::subpixels
  - 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_pixel_view
  - ImageBuffer::as_flat_samples_mut
  - ImageBuffer::as_pixel_view_mut
  - ImageBuffer::subpixels_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::to_pixel_view_mut
  - 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
  - test::expend_palette
  - benchmarks::conversion
  - benchmarks::image_access_row_by_row
  - benchmarks::image_access_col_by_col
  source_file: /src/image/src/images/buffer.rs
- function_names:
  - Moxcms::transform
  - Moxcms::parse_icc
  - Moxcms::build_transforms
  - ColorProfile::map_layout
  - Cicp::to_moxcms_compute_profile
  - CicpColorPrimaries::to_moxcms
  - CicpTransferCharacteristics::to_moxcms
  - CicpMatrixCoefficients::to_moxcms
  source_file: /src/image/src/metadata/moxcms.rs
- function_names:
  - CicpColorPrimaries::is_supported_for_transform
  - CicpTransferCharacteristics::is_supported_for_transform
  - CicpTransform::new
  - CicpTransform::supported_transform_fn
  - CicpTransform::check_applicable
  - 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::qualify_stability
  - Cicp::into_rgb
  - Cicp::try_into_rgb
  - CicpRgb::known_name
  - CicpRgb::derived_luminance
  - Cicp::from
  - 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_bits
  - i::n::t::e::r::l::e::a::v::e::_::p::l::a::n::e::s::trampoline
  - interleave_planes
  - interleave_planes_inner
  - 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/bmp_1bit_encoding.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
  - decode_animation
  source_file: /src/image/benches/decode.rs
- function_names:
  - bench_imageops
  - bench_resize
  source_file: /src/image/benches/imageops.rs
- function_names:
  - from_raw_bgra_old
  - from_raw_bgra_newdefault
  - bench_bgra_to_rgba
  source_file: /src/image/benches/bgra_to_rgba.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
  - bench_view_copy_from
  source_file: /src/image/benches/copy_from.rs
- function_names:
  - encode_all
  - encode_zeroed
  - encode_definition
  - T::encode_raw
  - T::encode_bufvec
  - T::encode_file
  - Bmp::encode
  - Jpeg::encode
  source_file: /src/image/benches/encode.rs
- function_names:
  - bench_fast_blur
  source_file: /src/image/benches/blur.rs
